diff --git a/Makefile b/Makefile index 7269d763..b3c69c54 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ all: clone-injective-indexer: - git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.16.91 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.17.0-beta --depth 1 --single-branch clone-injective-core: - git clone https://github.com/InjectiveLabs/injective-core.git -b v1.16.4 --depth 1 --single-branch + git clone https://github.com/InjectiveLabs/injective-core.git -b v1.17.0-beta.3 --depth 1 --single-branch copy-exchange-client: clone-injective-indexer rm -rf exchange/* @@ -166,9 +166,9 @@ copy-chain-types: clone-injective-core make extract-message-names extract-message-names: - @echo "Extracting message names from tx.pb.go files..." + @echo "Extracting message names from tx.pb.go and msgs.pb.go files..." @mkdir -p injective_data - @find ./chain -name "tx.pb.go" -exec grep -h "proto\.RegisterType" {} \; | \ + @find ./chain \( -name "tx.pb.go" -o -name "msgs.pb.go" \) -exec grep -h "proto\.RegisterType" {} \; | \ sed -n 's/.*proto\.RegisterType([^"]*"\([^"]*\)".*/\1/p' | \ grep -v 'Response$$' | \ sort -u | \ diff --git a/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go b/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go index e6a6ba5d..9cc00e26 100644 --- a/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go +++ b/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go @@ -31,8 +31,8 @@ var ( // FixedSupplyBankERC20MetaData contains all meta data concerning the FixedSupplyBankERC20 contract. var FixedSupplyBankERC20MetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"initial_supply_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x6080604052606460055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051611e70380380611e7083398181016040528101906100669190610677565b83838360405180602001604052805f81525060405180602001604052805f8152508160039081610096919061091a565b5080600490816100a6919061091a565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b815260040161010793929190610a40565b6020604051808303815f875af1158015610123573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101479190610ab8565b505050505f81111561016457610163338261016d60201b60201c565b5b50505050610bbf565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036101dd575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016101d49190610b22565b60405180910390fd5b6101ee5f83836101f260201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036102c75760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610281929190610b4a565b6020604051808303815f875af115801561029d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c19190610ab8565b5061043d565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361039c5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610356929190610b4a565b6020604051808303815f875af1158015610372573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103969190610ab8565b5061043c565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b81526004016103fa93929190610b71565b6020604051808303815f875af1158015610416573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043a9190610ab8565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161049a9190610ba6565b60405180910390a3505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610506826104c0565b810181811067ffffffffffffffff82111715610525576105246104d0565b5b80604052505050565b5f6105376104a7565b905061054382826104fd565b919050565b5f67ffffffffffffffff821115610562576105616104d0565b5b61056b826104c0565b9050602081019050919050565b5f5b8381101561059557808201518184015260208101905061057a565b5f8484015250505050565b5f6105b26105ad84610548565b61052e565b9050828152602081018484840111156105ce576105cd6104bc565b5b6105d9848285610578565b509392505050565b5f82601f8301126105f5576105f46104b8565b5b81516106058482602086016105a0565b91505092915050565b5f60ff82169050919050565b6106238161060e565b811461062d575f5ffd5b50565b5f8151905061063e8161061a565b92915050565b5f819050919050565b61065681610644565b8114610660575f5ffd5b50565b5f815190506106718161064d565b92915050565b5f5f5f5f6080858703121561068f5761068e6104b0565b5b5f85015167ffffffffffffffff8111156106ac576106ab6104b4565b5b6106b8878288016105e1565b945050602085015167ffffffffffffffff8111156106d9576106d86104b4565b5b6106e5878288016105e1565b93505060406106f687828801610630565b925050606061070787828801610663565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061076157607f821691505b6020821081036107745761077361071d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261079b565b6107e0868361079b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61081b61081661081184610644565b6107f8565b610644565b9050919050565b5f819050919050565b61083483610801565b61084861084082610822565b8484546107a7565b825550505050565b5f5f905090565b61085f610850565b61086a81848461082b565b505050565b5b8181101561088d576108825f82610857565b600181019050610870565b5050565b601f8211156108d2576108a38161077a565b6108ac8461078c565b810160208510156108bb578190505b6108cf6108c78561078c565b83018261086f565b50505b505050565b5f82821c905092915050565b5f6108f25f19846008026108d7565b1980831691505092915050565b5f61090a83836108e3565b9150826002028217905092915050565b61092382610713565b67ffffffffffffffff81111561093c5761093b6104d0565b5b610946825461074a565b610951828285610891565b5f60209050601f831160018114610982575f8415610970578287015190505b61097a85826108ff565b8655506109e1565b601f1984166109908661077a565b5f5b828110156109b757848901518255600182019150602085019450602081019050610992565b868310156109d457848901516109d0601f8916826108e3565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f610a0382610713565b610a0d81856109e9565b9350610a1d818560208601610578565b610a26816104c0565b840191505092915050565b610a3a8161060e565b82525050565b5f6060820190508181035f830152610a5881866109f9565b90508181036020830152610a6c81856109f9565b9050610a7b6040830184610a31565b949350505050565b5f8115159050919050565b610a9781610a83565b8114610aa1575f5ffd5b50565b5f81519050610ab281610a8e565b92915050565b5f60208284031215610acd57610acc6104b0565b5b5f610ada84828501610aa4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b0c82610ae3565b9050919050565b610b1c81610b02565b82525050565b5f602082019050610b355f830184610b13565b92915050565b610b4481610644565b82525050565b5f604082019050610b5d5f830185610b13565b610b6a6020830184610b3b565b9392505050565b5f606082019050610b845f830186610b13565b610b916020830185610b13565b610b9e6040830184610b3b565b949350505050565b5f602082019050610bb95f830184610b3b565b92915050565b6112a480610bcc5f395ff3fe608060405234801561000f575f5ffd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f5ffd5b61009d6101fd565b6040516100aa9190610ce6565b60405180910390f35b6100cd60048036038101906100c89190610da4565b6102aa565b6040516100da9190610dfc565b60405180910390f35b6100eb6102cc565b6040516100f89190610e24565b60405180910390f35b61011b60048036038101906101169190610e3d565b61036b565b6040516101289190610dfc565b60405180910390f35b610139610399565b6040516101469190610ea8565b60405180910390f35b61016960048036038101906101649190610ec1565b610447565b6040516101769190610e24565b60405180910390f35b6101876104ea565b6040516101949190610ce6565b60405180910390f35b6101b760048036038101906101b29190610da4565b610598565b6040516101c49190610dfc565b60405180910390f35b6101e760048036038101906101e29190610eec565b6105ba565b6040516101f49190610e24565b60405180910390f35b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161025a9190610f39565b5f60405180830381865afa158015610274573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061029c919061109a565b905050809150508091505090565b5f5f6102b461063c565b90506102c1818585610643565b600191505092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016103279190610f39565b602060405180830381865afa158015610342573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103669190611136565b905090565b5f5f61037561063c565b9050610382858285610655565b61038d8585856106e8565b60019150509392505050565b5f5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f59190610f39565b5f60405180830381865afa15801561040f573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610437919061109a565b9091509050809150508091505090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b81526004016104a4929190611161565b602060405180830381865afa1580156104bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e39190611136565b9050919050565b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016105479190610f39565b5f60405180830381865afa158015610561573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610589919061109a565b90915050809150508091505090565b5f5f6105a261063c565b90506105af8185856106e8565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61065083838360016107d8565b505050565b5f61066084846105ba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106e257818110156106d3578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106ca93929190611188565b60405180910390fd5b6106e184848484035f6107d8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610758575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c8575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107bf9190610f39565b60405180910390fd5b6107d38383836109a7565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610848575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161083f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b8575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108af9190610f39565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156109a1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109989190610e24565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7c5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610a369291906111bd565b6020604051808303815f875af1158015610a52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a76919061120e565b50610bf2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b515760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610b0b9291906111bd565b6020604051808303815f875af1158015610b27573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4b919061120e565b50610bf1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b8152600401610baf93929190611239565b6020604051808303815f875af1158015610bcb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef919061120e565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4f9190610e24565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c93578082015181840152602081019050610c78565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610cb882610c5c565b610cc28185610c66565b9350610cd2818560208601610c76565b610cdb81610c9e565b840191505092915050565b5f6020820190508181035f830152610cfe8184610cae565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d4082610d17565b9050919050565b610d5081610d36565b8114610d5a575f5ffd5b50565b5f81359050610d6b81610d47565b92915050565b5f819050919050565b610d8381610d71565b8114610d8d575f5ffd5b50565b5f81359050610d9e81610d7a565b92915050565b5f5f60408385031215610dba57610db9610d0f565b5b5f610dc785828601610d5d565b9250506020610dd885828601610d90565b9150509250929050565b5f8115159050919050565b610df681610de2565b82525050565b5f602082019050610e0f5f830184610ded565b92915050565b610e1e81610d71565b82525050565b5f602082019050610e375f830184610e15565b92915050565b5f5f5f60608486031215610e5457610e53610d0f565b5b5f610e6186828701610d5d565b9350506020610e7286828701610d5d565b9250506040610e8386828701610d90565b9150509250925092565b5f60ff82169050919050565b610ea281610e8d565b82525050565b5f602082019050610ebb5f830184610e99565b92915050565b5f60208284031215610ed657610ed5610d0f565b5b5f610ee384828501610d5d565b91505092915050565b5f5f60408385031215610f0257610f01610d0f565b5b5f610f0f85828601610d5d565b9250506020610f2085828601610d5d565b9150509250929050565b610f3381610d36565b82525050565b5f602082019050610f4c5f830184610f2a565b92915050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610f9082610c9e565b810181811067ffffffffffffffff82111715610faf57610fae610f5a565b5b80604052505050565b5f610fc1610d06565b9050610fcd8282610f87565b919050565b5f67ffffffffffffffff821115610fec57610feb610f5a565b5b610ff582610c9e565b9050602081019050919050565b5f61101461100f84610fd2565b610fb8565b9050828152602081018484840111156110305761102f610f56565b5b61103b848285610c76565b509392505050565b5f82601f83011261105757611056610f52565b5b8151611067848260208601611002565b91505092915050565b61107981610e8d565b8114611083575f5ffd5b50565b5f8151905061109481611070565b92915050565b5f5f5f606084860312156110b1576110b0610d0f565b5b5f84015167ffffffffffffffff8111156110ce576110cd610d13565b5b6110da86828701611043565b935050602084015167ffffffffffffffff8111156110fb576110fa610d13565b5b61110786828701611043565b925050604061111886828701611086565b9150509250925092565b5f8151905061113081610d7a565b92915050565b5f6020828403121561114b5761114a610d0f565b5b5f61115884828501611122565b91505092915050565b5f6040820190506111745f830185610f2a565b6111816020830184610f2a565b9392505050565b5f60608201905061119b5f830186610f2a565b6111a86020830185610e15565b6111b56040830184610e15565b949350505050565b5f6040820190506111d05f830185610f2a565b6111dd6020830184610e15565b9392505050565b6111ed81610de2565b81146111f7575f5ffd5b50565b5f81519050611208816111e4565b92915050565b5f6020828403121561122357611222610d0f565b5b5f611230848285016111fa565b91505092915050565b5f60608201905061124c5f830186610f2a565b6112596020830185610f2a565b6112666040830184610e15565b94935050505056fea2646970667358221220e72ce46492ce4539131ab8c7bc5f37356347b1bada6320589d941b313e79bb5c64736f6c634300081b0033", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initial_supply_\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052606460055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162001f3f38038062001f3f83398181016040528101906200006a9190620006ca565b83838360405180602001604052805f81525060405180602001604052805f81525081600390816200009c9190620009a5565b508060049081620000ae9190620009a5565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b8152600401620001119392919062000aea565b6020604051808303815f875af11580156200012e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000154919062000b6d565b505050505f81111562000174576200017333826200017e60201b60201c565b5b5050505062000c8d565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001f1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620001e8919062000be0565b60405180910390fd5b620002045f83836200020860201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620002e45760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b81526004016200029a92919062000c0c565b6020604051808303815f875af1158015620002b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000b6d565b5062000466565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003c05760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b81526004016200037692919062000c0c565b6020604051808303815f875af115801562000393573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000b6d565b5062000465565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b8152600401620004209392919062000c37565b6020604051808303815f875af11580156200043d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000463919062000b6d565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004c5919062000c72565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200053382620004eb565b810181811067ffffffffffffffff82111715620005555762000554620004fb565b5b80604052505050565b5f62000569620004d2565b905062000577828262000528565b919050565b5f67ffffffffffffffff821115620005995762000598620004fb565b5b620005a482620004eb565b9050602081019050919050565b5f5b83811015620005d0578082015181840152602081019050620005b3565b5f8484015250505050565b5f620005f1620005eb846200057c565b6200055e565b90508281526020810184848401111562000610576200060f620004e7565b5b6200061d848285620005b1565b509392505050565b5f82601f8301126200063c576200063b620004e3565b5b81516200064e848260208601620005db565b91505092915050565b5f60ff82169050919050565b6200066e8162000657565b811462000679575f80fd5b50565b5f815190506200068c8162000663565b92915050565b5f819050919050565b620006a68162000692565b8114620006b1575f80fd5b50565b5f81519050620006c4816200069b565b92915050565b5f805f8060808587031215620006e557620006e4620004db565b5b5f85015167ffffffffffffffff811115620007055762000704620004df565b5b620007138782880162000625565b945050602085015167ffffffffffffffff811115620007375762000736620004df565b5b620007458782880162000625565b935050604062000758878288016200067c565b92505060606200076b87828801620006b4565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620007c657607f821691505b602082108103620007dc57620007db62000781565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000803565b6200084c868362000803565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200088d62000887620008818462000692565b62000864565b62000692565b9050919050565b5f819050919050565b620008a8836200086d565b620008c0620008b78262000894565b8484546200080f565b825550505050565b5f90565b620008d6620008c8565b620008e38184846200089d565b505050565b5b818110156200090a57620008fe5f82620008cc565b600181019050620008e9565b5050565b601f82111562000959576200092381620007e2565b6200092e84620007f4565b810160208510156200093e578190505b620009566200094d85620007f4565b830182620008e8565b50505b505050565b5f82821c905092915050565b5f6200097b5f19846008026200095e565b1980831691505092915050565b5f6200099583836200096a565b9150826002028217905092915050565b620009b08262000777565b67ffffffffffffffff811115620009cc57620009cb620004fb565b5b620009d88254620007ae565b620009e58282856200090e565b5f60209050601f83116001811462000a1b575f841562000a06578287015190505b62000a12858262000988565b86555062000a81565b601f19841662000a2b86620007e2565b5f5b8281101562000a545784890151825560018201915060208501945060208101905062000a2d565b8683101562000a74578489015162000a70601f8916826200096a565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f62000aa58262000777565b62000ab1818562000a89565b935062000ac3818560208601620005b1565b62000ace81620004eb565b840191505092915050565b62000ae48162000657565b82525050565b5f6060820190508181035f83015262000b04818662000a99565b9050818103602083015262000b1a818562000a99565b905062000b2b604083018462000ad9565b949350505050565b5f8115159050919050565b62000b498162000b33565b811462000b54575f80fd5b50565b5f8151905062000b678162000b3e565b92915050565b5f6020828403121562000b855762000b84620004db565b5b5f62000b948482850162000b57565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000bc88262000b9d565b9050919050565b62000bda8162000bbc565b82525050565b5f60208201905062000bf55f83018462000bcf565b92915050565b62000c068162000692565b82525050565b5f60408201905062000c215f83018562000bcf565b62000c30602083018462000bfb565b9392505050565b5f60608201905062000c4c5f83018662000bcf565b62000c5b602083018562000bcf565b62000c6a604083018462000bfb565b949350505050565b5f60208201905062000c875f83018462000bfb565b92915050565b6112a48062000c9b5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610ce6565b60405180910390f35b6100cd60048036038101906100c89190610da4565b6102aa565b6040516100da9190610dfc565b60405180910390f35b6100eb6102cc565b6040516100f89190610e24565b60405180910390f35b61011b60048036038101906101169190610e3d565b61036b565b6040516101289190610dfc565b60405180910390f35b610139610399565b6040516101469190610ea8565b60405180910390f35b61016960048036038101906101649190610ec1565b610447565b6040516101769190610e24565b60405180910390f35b6101876104ea565b6040516101949190610ce6565b60405180910390f35b6101b760048036038101906101b29190610da4565b610598565b6040516101c49190610dfc565b60405180910390f35b6101e760048036038101906101e29190610eec565b6105ba565b6040516101f49190610e24565b60405180910390f35b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161025a9190610f39565b5f60405180830381865afa158015610274573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061029c919061109a565b905050809150508091505090565b5f806102b461063c565b90506102c1818585610643565b600191505092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016103279190610f39565b602060405180830381865afa158015610342573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103669190611136565b905090565b5f8061037561063c565b9050610382858285610655565b61038d8585856106e8565b60019150509392505050565b5f8060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f59190610f39565b5f60405180830381865afa15801561040f573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610437919061109a565b9091509050809150508091505090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b81526004016104a4929190611161565b602060405180830381865afa1580156104bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e39190611136565b9050919050565b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016105479190610f39565b5f60405180830381865afa158015610561573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610589919061109a565b90915050809150508091505090565b5f806105a261063c565b90506105af8185856106e8565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61065083838360016107d8565b505050565b5f61066084846105ba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106e257818110156106d3578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106ca93929190611188565b60405180910390fd5b6106e184848484035f6107d8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610758575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c8575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107bf9190610f39565b60405180910390fd5b6107d38383836109a7565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610848575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161083f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b8575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108af9190610f39565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156109a1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109989190610e24565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7c5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610a369291906111bd565b6020604051808303815f875af1158015610a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a76919061120e565b50610bf2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b515760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610b0b9291906111bd565b6020604051808303815f875af1158015610b27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4b919061120e565b50610bf1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b8152600401610baf93929190611239565b6020604051808303815f875af1158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef919061120e565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4f9190610e24565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c93578082015181840152602081019050610c78565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610cb882610c5c565b610cc28185610c66565b9350610cd2818560208601610c76565b610cdb81610c9e565b840191505092915050565b5f6020820190508181035f830152610cfe8184610cae565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d4082610d17565b9050919050565b610d5081610d36565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f819050919050565b610d8381610d71565b8114610d8d575f80fd5b50565b5f81359050610d9e81610d7a565b92915050565b5f8060408385031215610dba57610db9610d0f565b5b5f610dc785828601610d5d565b9250506020610dd885828601610d90565b9150509250929050565b5f8115159050919050565b610df681610de2565b82525050565b5f602082019050610e0f5f830184610ded565b92915050565b610e1e81610d71565b82525050565b5f602082019050610e375f830184610e15565b92915050565b5f805f60608486031215610e5457610e53610d0f565b5b5f610e6186828701610d5d565b9350506020610e7286828701610d5d565b9250506040610e8386828701610d90565b9150509250925092565b5f60ff82169050919050565b610ea281610e8d565b82525050565b5f602082019050610ebb5f830184610e99565b92915050565b5f60208284031215610ed657610ed5610d0f565b5b5f610ee384828501610d5d565b91505092915050565b5f8060408385031215610f0257610f01610d0f565b5b5f610f0f85828601610d5d565b9250506020610f2085828601610d5d565b9150509250929050565b610f3381610d36565b82525050565b5f602082019050610f4c5f830184610f2a565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610f9082610c9e565b810181811067ffffffffffffffff82111715610faf57610fae610f5a565b5b80604052505050565b5f610fc1610d06565b9050610fcd8282610f87565b919050565b5f67ffffffffffffffff821115610fec57610feb610f5a565b5b610ff582610c9e565b9050602081019050919050565b5f61101461100f84610fd2565b610fb8565b9050828152602081018484840111156110305761102f610f56565b5b61103b848285610c76565b509392505050565b5f82601f83011261105757611056610f52565b5b8151611067848260208601611002565b91505092915050565b61107981610e8d565b8114611083575f80fd5b50565b5f8151905061109481611070565b92915050565b5f805f606084860312156110b1576110b0610d0f565b5b5f84015167ffffffffffffffff8111156110ce576110cd610d13565b5b6110da86828701611043565b935050602084015167ffffffffffffffff8111156110fb576110fa610d13565b5b61110786828701611043565b925050604061111886828701611086565b9150509250925092565b5f8151905061113081610d7a565b92915050565b5f6020828403121561114b5761114a610d0f565b5b5f61115884828501611122565b91505092915050565b5f6040820190506111745f830185610f2a565b6111816020830184610f2a565b9392505050565b5f60608201905061119b5f830186610f2a565b6111a86020830185610e15565b6111b56040830184610e15565b949350505050565b5f6040820190506111d05f830185610f2a565b6111dd6020830184610e15565b9392505050565b6111ed81610de2565b81146111f7575f80fd5b50565b5f81519050611208816111e4565b92915050565b5f6020828403121561122357611222610d0f565b5b5f611230848285016111fa565b91505092915050565b5f60608201905061124c5f830186610f2a565b6112596020830185610f2a565b6112666040830184610e15565b94935050505056fea2646970667358221220f46d089a4318bb946632ecd6859aaafd21c001203190b421f595ecd0e45f0f8b64736f6c63430008180033", } // FixedSupplyBankERC20ABI is the input ABI used to generate the binding from. diff --git a/chain/evm/precompiles/bank/i_bank_module.abigen.go b/chain/evm/precompiles/bank/i_bank_module.abigen.go index c6ba88d6..756f9ecc 100644 --- a/chain/evm/precompiles/bank/i_bank_module.abigen.go +++ b/chain/evm/precompiles/bank/i_bank_module.abigen.go @@ -31,7 +31,7 @@ var ( // BankModuleMetaData contains all meta data concerning the BankModule contract. var BankModuleMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"metadata\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setMetadata\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"setMetadata\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]", } // BankModuleABI is the input ABI used to generate the binding from. diff --git a/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go b/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go index 256b0540..e20f4b5f 100644 --- a/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go +++ b/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go @@ -31,8 +31,8 @@ var ( // MintBurnBankERC20MetaData contains all meta data concerning the MintBurnBankERC20 contract. var MintBurnBankERC20MetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x6080604052606460065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516120ea3803806120ea8339818101604052810190610066919061048d565b82828260405180602001604052805f81525060405180602001604052805f815250885f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100f8575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100ef9190610538565b60405180910390fd5b610107816101d560201b60201c565b5081600490816101179190610761565b5080600590816101279190610761565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b815260040161018893929190610887565b6020604051808303815f875af11580156101a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c891906108ff565b505050505050505061092a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102d0826102a7565b9050919050565b6102e0816102c6565b81146102ea575f5ffd5b50565b5f815190506102fb816102d7565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61034f82610309565b810181811067ffffffffffffffff8211171561036e5761036d610319565b5b80604052505050565b5f610380610296565b905061038c8282610346565b919050565b5f67ffffffffffffffff8211156103ab576103aa610319565b5b6103b482610309565b9050602081019050919050565b5f5b838110156103de5780820151818401526020810190506103c3565b5f8484015250505050565b5f6103fb6103f684610391565b610377565b90508281526020810184848401111561041757610416610305565b5b6104228482856103c1565b509392505050565b5f82601f83011261043e5761043d610301565b5b815161044e8482602086016103e9565b91505092915050565b5f60ff82169050919050565b61046c81610457565b8114610476575f5ffd5b50565b5f8151905061048781610463565b92915050565b5f5f5f5f608085870312156104a5576104a461029f565b5b5f6104b2878288016102ed565b945050602085015167ffffffffffffffff8111156104d3576104d26102a3565b5b6104df8782880161042a565b935050604085015167ffffffffffffffff811115610500576104ff6102a3565b5b61050c8782880161042a565b925050606061051d87828801610479565b91505092959194509250565b610532816102c6565b82525050565b5f60208201905061054b5f830184610529565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061059f57607f821691505b6020821081036105b2576105b161055b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826105d9565b61061e86836105d9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61066261065d61065884610636565b61063f565b610636565b9050919050565b5f819050919050565b61067b83610648565b61068f61068782610669565b8484546105e5565b825550505050565b5f5f905090565b6106a6610697565b6106b1818484610672565b505050565b5b818110156106d4576106c95f8261069e565b6001810190506106b7565b5050565b601f821115610719576106ea816105b8565b6106f3846105ca565b81016020851015610702578190505b61071661070e856105ca565b8301826106b6565b50505b505050565b5f82821c905092915050565b5f6107395f198460080261071e565b1980831691505092915050565b5f610751838361072a565b9150826002028217905092915050565b61076a82610551565b67ffffffffffffffff81111561078357610782610319565b5b61078d8254610588565b6107988282856106d8565b5f60209050601f8311600181146107c9575f84156107b7578287015190505b6107c18582610746565b865550610828565b601f1984166107d7866105b8565b5f5b828110156107fe578489015182556001820191506020850194506020810190506107d9565b8683101561081b5784890151610817601f89168261072a565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f61084a82610551565b6108548185610830565b93506108648185602086016103c1565b61086d81610309565b840191505092915050565b61088181610457565b82525050565b5f6060820190508181035f83015261089f8186610840565b905081810360208301526108b38185610840565b90506108c26040830184610878565b949350505050565b5f8115159050919050565b6108de816108ca565b81146108e8575f5ffd5b50565b5f815190506108f9816108d5565b92915050565b5f602082840312156109145761091361029f565b5b5f610921848285016108eb565b91505092915050565b6117b3806109375f395ff3fe6080604052600436106100e7575f3560e01c806370a082311161008957806395d89b411161005857806395d89b41146102c9578063a9059cbb146102f3578063dd62ed3e1461032f578063f2fde38b1461036b576100e7565b806370a0823114610225578063715018a61461026157806379cc6790146102775780638da5cb5b1461029f576100e7565b806323b872dd116100c557806323b872dd1461017b578063313ce567146101b757806340c10f19146101e157806342966c68146101fd576100e7565b806306fdde03146100eb578063095ea7b31461011557806318160ddd14610151575b5f5ffd5b3480156100f6575f5ffd5b506100ff610393565b60405161010c91906111ca565b60405180910390f35b348015610120575f5ffd5b5061013b60048036038101906101369190611288565b610440565b60405161014891906112e0565b60405180910390f35b34801561015c575f5ffd5b50610165610462565b6040516101729190611308565b60405180910390f35b348015610186575f5ffd5b506101a1600480360381019061019c9190611321565b610501565b6040516101ae91906112e0565b60405180910390f35b3480156101c2575f5ffd5b506101cb61052f565b6040516101d8919061138c565b60405180910390f35b6101fb60048036038101906101f69190611288565b6105dd565b005b348015610208575f5ffd5b50610223600480360381019061021e91906113a5565b6105f3565b005b348015610230575f5ffd5b5061024b600480360381019061024691906113d0565b610607565b6040516102589190611308565b60405180910390f35b34801561026c575f5ffd5b506102756106aa565b005b348015610282575f5ffd5b5061029d60048036038101906102989190611288565b6106bd565b005b3480156102aa575f5ffd5b506102b36106dd565b6040516102c0919061140a565b60405180910390f35b3480156102d4575f5ffd5b506102dd610704565b6040516102ea91906111ca565b60405180910390f35b3480156102fe575f5ffd5b5061031960048036038101906103149190611288565b6107b2565b60405161032691906112e0565b60405180910390f35b34801561033a575f5ffd5b5061035560048036038101906103509190611423565b6107d4565b6040516103629190611308565b60405180910390f35b348015610376575f5ffd5b50610391600480360381019061038c91906113d0565b610856565b005b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f0919061140a565b5f60405180830381865afa15801561040a573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061043291906115a9565b905050809150508091505090565b5f5f61044a6108da565b90506104578185856108e1565b600191505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016104bd919061140a565b602060405180830381865afa1580156104d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fc9190611645565b905090565b5f5f61050b6108da565b90506105188582856108f3565b610523858585610986565b60019150509392505050565b5f5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161058b919061140a565b5f60405180830381865afa1580156105a5573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105cd91906115a9565b9091509050809150508091505090565b6105e5610a76565b6105ef8282610afd565b5050565b6106046105fe6108da565b82610b7c565b50565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b8152600401610664929190611670565b602060405180830381865afa15801561067f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a39190611645565b9050919050565b6106b2610a76565b6106bb5f610bfb565b565b6106cf826106c96108da565b836108f3565b6106d98282610b7c565b5050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b8152600401610761919061140a565b5f60405180830381865afa15801561077b573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107a391906115a9565b90915050809150508091505090565b5f5f6107bc6108da565b90506107c9818585610986565b600191505092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61085e610a76565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108ce575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108c5919061140a565b60405180910390fd5b6108d781610bfb565b50565b5f33905090565b6108ee8383836001610cbc565b505050565b5f6108fe84846107d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156109805781811015610971578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161096893929190611697565b60405180910390fd5b61097f84848484035f610cbc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109f6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109ed919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a66575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a5d919061140a565b60405180910390fd5b610a71838383610e8b565b505050565b610a7e6108da565b73ffffffffffffffffffffffffffffffffffffffff16610a9c6106dd565b73ffffffffffffffffffffffffffffffffffffffff1614610afb57610abf6108da565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610af2919061140a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6d575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b64919061140a565b60405180910390fd5b610b785f8383610e8b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bec575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610be3919061140a565b60405180910390fd5b610bf7825f83610e8b565b5050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d2c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d23919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d9c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d93919061140a565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e85578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e7c9190611308565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f605760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610f1a9291906116cc565b6020604051808303815f875af1158015610f36573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a919061171d565b506110d6565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110355760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610fef9291906116cc565b6020604051808303815f875af115801561100b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f919061171d565b506110d5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b815260040161109393929190611748565b6020604051808303815f875af11580156110af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d3919061171d565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111339190611308565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561117757808201518184015260208101905061115c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61119c82611140565b6111a6818561114a565b93506111b681856020860161115a565b6111bf81611182565b840191505092915050565b5f6020820190508181035f8301526111e28184611192565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611224826111fb565b9050919050565b6112348161121a565b811461123e575f5ffd5b50565b5f8135905061124f8161122b565b92915050565b5f819050919050565b61126781611255565b8114611271575f5ffd5b50565b5f813590506112828161125e565b92915050565b5f5f6040838503121561129e5761129d6111f3565b5b5f6112ab85828601611241565b92505060206112bc85828601611274565b9150509250929050565b5f8115159050919050565b6112da816112c6565b82525050565b5f6020820190506112f35f8301846112d1565b92915050565b61130281611255565b82525050565b5f60208201905061131b5f8301846112f9565b92915050565b5f5f5f60608486031215611338576113376111f3565b5b5f61134586828701611241565b935050602061135686828701611241565b925050604061136786828701611274565b9150509250925092565b5f60ff82169050919050565b61138681611371565b82525050565b5f60208201905061139f5f83018461137d565b92915050565b5f602082840312156113ba576113b96111f3565b5b5f6113c784828501611274565b91505092915050565b5f602082840312156113e5576113e46111f3565b5b5f6113f284828501611241565b91505092915050565b6114048161121a565b82525050565b5f60208201905061141d5f8301846113fb565b92915050565b5f5f60408385031215611439576114386111f3565b5b5f61144685828601611241565b925050602061145785828601611241565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61149f82611182565b810181811067ffffffffffffffff821117156114be576114bd611469565b5b80604052505050565b5f6114d06111ea565b90506114dc8282611496565b919050565b5f67ffffffffffffffff8211156114fb576114fa611469565b5b61150482611182565b9050602081019050919050565b5f61152361151e846114e1565b6114c7565b90508281526020810184848401111561153f5761153e611465565b5b61154a84828561115a565b509392505050565b5f82601f83011261156657611565611461565b5b8151611576848260208601611511565b91505092915050565b61158881611371565b8114611592575f5ffd5b50565b5f815190506115a38161157f565b92915050565b5f5f5f606084860312156115c0576115bf6111f3565b5b5f84015167ffffffffffffffff8111156115dd576115dc6111f7565b5b6115e986828701611552565b935050602084015167ffffffffffffffff81111561160a576116096111f7565b5b61161686828701611552565b925050604061162786828701611595565b9150509250925092565b5f8151905061163f8161125e565b92915050565b5f6020828403121561165a576116596111f3565b5b5f61166784828501611631565b91505092915050565b5f6040820190506116835f8301856113fb565b61169060208301846113fb565b9392505050565b5f6060820190506116aa5f8301866113fb565b6116b760208301856112f9565b6116c460408301846112f9565b949350505050565b5f6040820190506116df5f8301856113fb565b6116ec60208301846112f9565b9392505050565b6116fc816112c6565b8114611706575f5ffd5b50565b5f81519050611717816116f3565b92915050565b5f60208284031215611732576117316111f3565b5b5f61173f84828501611709565b91505092915050565b5f60608201905061175b5f8301866113fb565b61176860208301856113fb565b61177560408301846112f9565b94935050505056fea2646970667358221220b1a2e489a0cc5a7021b5aabe4f8c5290df09319dc626a0722b89c23b3160138e64736f6c634300081b0033", + ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + Bin: "0x6080604052606460065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620021933803806200219383398181016040528101906200006a9190620004ca565b82828260405180602001604052805f81525060405180602001604052805f815250885f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ff575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000f6919062000588565b60405180910390fd5b6200011081620001e860201b60201c565b508160049081620001229190620007da565b508060059081620001349190620007da565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b815260040162000197939291906200091f565b6020604051808303815f875af1158015620001b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001da9190620009a2565b5050505050505050620009d2565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002e582620002ba565b9050919050565b620002f781620002d9565b811462000302575f80fd5b50565b5f815190506200031581620002ec565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200036b8262000323565b810181811067ffffffffffffffff821117156200038d576200038c62000333565b5b80604052505050565b5f620003a1620002a9565b9050620003af828262000360565b919050565b5f67ffffffffffffffff821115620003d157620003d062000333565b5b620003dc8262000323565b9050602081019050919050565b5f5b8381101562000408578082015181840152602081019050620003eb565b5f8484015250505050565b5f620004296200042384620003b4565b62000396565b9050828152602081018484840111156200044857620004476200031f565b5b62000455848285620003e9565b509392505050565b5f82601f8301126200047457620004736200031b565b5b81516200048684826020860162000413565b91505092915050565b5f60ff82169050919050565b620004a6816200048f565b8114620004b1575f80fd5b50565b5f81519050620004c4816200049b565b92915050565b5f805f8060808587031215620004e557620004e4620002b2565b5b5f620004f48782880162000305565b945050602085015167ffffffffffffffff811115620005185762000517620002b6565b5b62000526878288016200045d565b935050604085015167ffffffffffffffff8111156200054a5762000549620002b6565b5b62000558878288016200045d565b92505060606200056b87828801620004b4565b91505092959194509250565b6200058281620002d9565b82525050565b5f6020820190506200059d5f83018462000577565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005f257607f821691505b602082108103620006085762000607620005ad565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200066c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200062f565b6200067886836200062f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006c2620006bc620006b68462000690565b62000699565b62000690565b9050919050565b5f819050919050565b620006dd83620006a2565b620006f5620006ec82620006c9565b8484546200063b565b825550505050565b5f90565b6200070b620006fd565b62000718818484620006d2565b505050565b5b818110156200073f57620007335f8262000701565b6001810190506200071e565b5050565b601f8211156200078e5762000758816200060e565b620007638462000620565b8101602085101562000773578190505b6200078b620007828562000620565b8301826200071d565b50505b505050565b5f82821c905092915050565b5f620007b05f198460080262000793565b1980831691505092915050565b5f620007ca83836200079f565b9150826002028217905092915050565b620007e582620005a3565b67ffffffffffffffff81111562000801576200080062000333565b5b6200080d8254620005da565b6200081a82828562000743565b5f60209050601f83116001811462000850575f84156200083b578287015190505b620008478582620007bd565b865550620008b6565b601f19841662000860866200060e565b5f5b82811015620008895784890151825560018201915060208501945060208101905062000862565b86831015620008a95784890151620008a5601f8916826200079f565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f620008da82620005a3565b620008e68185620008be565b9350620008f8818560208601620003e9565b620009038162000323565b840191505092915050565b62000919816200048f565b82525050565b5f6060820190508181035f830152620009398186620008ce565b905081810360208301526200094f8185620008ce565b90506200096060408301846200090e565b949350505050565b5f8115159050919050565b6200097e8162000968565b811462000989575f80fd5b50565b5f815190506200099c8162000973565b92915050565b5f60208284031215620009ba57620009b9620002b2565b5b5f620009c9848285016200098c565b91505092915050565b6117b380620009e05f395ff3fe6080604052600436106100e7575f3560e01c806370a082311161008957806395d89b411161005857806395d89b41146102c9578063a9059cbb146102f3578063dd62ed3e1461032f578063f2fde38b1461036b576100e7565b806370a0823114610225578063715018a61461026157806379cc6790146102775780638da5cb5b1461029f576100e7565b806323b872dd116100c557806323b872dd1461017b578063313ce567146101b757806340c10f19146101e157806342966c68146101fd576100e7565b806306fdde03146100eb578063095ea7b31461011557806318160ddd14610151575b5f80fd5b3480156100f6575f80fd5b506100ff610393565b60405161010c91906111ca565b60405180910390f35b348015610120575f80fd5b5061013b60048036038101906101369190611288565b610440565b60405161014891906112e0565b60405180910390f35b34801561015c575f80fd5b50610165610462565b6040516101729190611308565b60405180910390f35b348015610186575f80fd5b506101a1600480360381019061019c9190611321565b610501565b6040516101ae91906112e0565b60405180910390f35b3480156101c2575f80fd5b506101cb61052f565b6040516101d8919061138c565b60405180910390f35b6101fb60048036038101906101f69190611288565b6105dd565b005b348015610208575f80fd5b50610223600480360381019061021e91906113a5565b6105f3565b005b348015610230575f80fd5b5061024b600480360381019061024691906113d0565b610607565b6040516102589190611308565b60405180910390f35b34801561026c575f80fd5b506102756106aa565b005b348015610282575f80fd5b5061029d60048036038101906102989190611288565b6106bd565b005b3480156102aa575f80fd5b506102b36106dd565b6040516102c0919061140a565b60405180910390f35b3480156102d4575f80fd5b506102dd610704565b6040516102ea91906111ca565b60405180910390f35b3480156102fe575f80fd5b5061031960048036038101906103149190611288565b6107b2565b60405161032691906112e0565b60405180910390f35b34801561033a575f80fd5b5061035560048036038101906103509190611423565b6107d4565b6040516103629190611308565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906113d0565b610856565b005b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f0919061140a565b5f60405180830381865afa15801561040a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061043291906115a9565b905050809150508091505090565b5f8061044a6108da565b90506104578185856108e1565b600191505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016104bd919061140a565b602060405180830381865afa1580156104d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fc9190611645565b905090565b5f8061050b6108da565b90506105188582856108f3565b610523858585610986565b60019150509392505050565b5f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161058b919061140a565b5f60405180830381865afa1580156105a5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105cd91906115a9565b9091509050809150508091505090565b6105e5610a76565b6105ef8282610afd565b5050565b6106046105fe6108da565b82610b7c565b50565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b8152600401610664929190611670565b602060405180830381865afa15801561067f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a39190611645565b9050919050565b6106b2610a76565b6106bb5f610bfb565b565b6106cf826106c96108da565b836108f3565b6106d98282610b7c565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b8152600401610761919061140a565b5f60405180830381865afa15801561077b573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107a391906115a9565b90915050809150508091505090565b5f806107bc6108da565b90506107c9818585610986565b600191505092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61085e610a76565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108ce575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108c5919061140a565b60405180910390fd5b6108d781610bfb565b50565b5f33905090565b6108ee8383836001610cbc565b505050565b5f6108fe84846107d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156109805781811015610971578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161096893929190611697565b60405180910390fd5b61097f84848484035f610cbc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109f6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109ed919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a66575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a5d919061140a565b60405180910390fd5b610a71838383610e8b565b505050565b610a7e6108da565b73ffffffffffffffffffffffffffffffffffffffff16610a9c6106dd565b73ffffffffffffffffffffffffffffffffffffffff1614610afb57610abf6108da565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610af2919061140a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6d575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b64919061140a565b60405180910390fd5b610b785f8383610e8b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bec575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610be3919061140a565b60405180910390fd5b610bf7825f83610e8b565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d2c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d23919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d9c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d93919061140a565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e85578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e7c9190611308565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f605760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610f1a9291906116cc565b6020604051808303815f875af1158015610f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a919061171d565b506110d6565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110355760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610fef9291906116cc565b6020604051808303815f875af115801561100b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f919061171d565b506110d5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b815260040161109393929190611748565b6020604051808303815f875af11580156110af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d3919061171d565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111339190611308565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561117757808201518184015260208101905061115c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61119c82611140565b6111a6818561114a565b93506111b681856020860161115a565b6111bf81611182565b840191505092915050565b5f6020820190508181035f8301526111e28184611192565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611224826111fb565b9050919050565b6112348161121a565b811461123e575f80fd5b50565b5f8135905061124f8161122b565b92915050565b5f819050919050565b61126781611255565b8114611271575f80fd5b50565b5f813590506112828161125e565b92915050565b5f806040838503121561129e5761129d6111f3565b5b5f6112ab85828601611241565b92505060206112bc85828601611274565b9150509250929050565b5f8115159050919050565b6112da816112c6565b82525050565b5f6020820190506112f35f8301846112d1565b92915050565b61130281611255565b82525050565b5f60208201905061131b5f8301846112f9565b92915050565b5f805f60608486031215611338576113376111f3565b5b5f61134586828701611241565b935050602061135686828701611241565b925050604061136786828701611274565b9150509250925092565b5f60ff82169050919050565b61138681611371565b82525050565b5f60208201905061139f5f83018461137d565b92915050565b5f602082840312156113ba576113b96111f3565b5b5f6113c784828501611274565b91505092915050565b5f602082840312156113e5576113e46111f3565b5b5f6113f284828501611241565b91505092915050565b6114048161121a565b82525050565b5f60208201905061141d5f8301846113fb565b92915050565b5f8060408385031215611439576114386111f3565b5b5f61144685828601611241565b925050602061145785828601611241565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61149f82611182565b810181811067ffffffffffffffff821117156114be576114bd611469565b5b80604052505050565b5f6114d06111ea565b90506114dc8282611496565b919050565b5f67ffffffffffffffff8211156114fb576114fa611469565b5b61150482611182565b9050602081019050919050565b5f61152361151e846114e1565b6114c7565b90508281526020810184848401111561153f5761153e611465565b5b61154a84828561115a565b509392505050565b5f82601f83011261156657611565611461565b5b8151611576848260208601611511565b91505092915050565b61158881611371565b8114611592575f80fd5b50565b5f815190506115a38161157f565b92915050565b5f805f606084860312156115c0576115bf6111f3565b5b5f84015167ffffffffffffffff8111156115dd576115dc6111f7565b5b6115e986828701611552565b935050602084015167ffffffffffffffff81111561160a576116096111f7565b5b61161686828701611552565b925050604061162786828701611595565b9150509250925092565b5f8151905061163f8161125e565b92915050565b5f6020828403121561165a576116596111f3565b5b5f61166784828501611631565b91505092915050565b5f6040820190506116835f8301856113fb565b61169060208301846113fb565b9392505050565b5f6060820190506116aa5f8301866113fb565b6116b760208301856112f9565b6116c460408301846112f9565b949350505050565b5f6040820190506116df5f8301856113fb565b6116ec60208301846112f9565b9392505050565b6116fc816112c6565b8114611706575f80fd5b50565b5f81519050611717816116f3565b92915050565b5f60208284031215611732576117316111f3565b5b5f61173f84828501611709565b91505092915050565b5f60608201905061175b5f8301866113fb565b61176860208301856113fb565b61177560408301846112f9565b94935050505056fea264697066735822122019ec31921e777a6c5f5d27b3afb27acc7727f7637b7555591c0b50efc95e6bc964736f6c63430008180033", } // MintBurnBankERC20ABI is the input ABI used to generate the binding from. diff --git a/chain/evm/precompiles/staking/i_staking_module.abigen.go b/chain/evm/precompiles/staking/i_staking_module.abigen.go index 498c4a3d..5d9a4301 100644 --- a/chain/evm/precompiles/staking/i_staking_module.abigen.go +++ b/chain/evm/precompiles/staking/i_staking_module.abigen.go @@ -37,7 +37,7 @@ type CosmosCoin struct { // StakingModuleMetaData contains all meta data concerning the StakingModule contract. var StakingModuleMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"delegate\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[{\"name\":\"delegatorAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balance\",\"type\":\"tuple\",\"internalType\":\"structCosmos.Coin\",\"components\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"validatorSrcAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"validatorDstAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawDelegatorRewards\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"amount\",\"type\":\"tuple[]\",\"internalType\":\"structCosmos.Coin[]\",\"components\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"}],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin\",\"name\":\"balance\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorSrcAddress\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"validatorDstAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"redelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"}],\"name\":\"withdrawDelegatorRewards\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"amount\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // StakingModuleABI is the input ABI used to generate the binding from. diff --git a/chain/evm/types/errors.go b/chain/evm/types/errors.go index 40f94506..0aa09a1a 100644 --- a/chain/evm/types/errors.go +++ b/chain/evm/types/errors.go @@ -7,6 +7,7 @@ import ( errorsmod "cosmossdk.io/errors" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common/hexutil" @@ -111,6 +112,11 @@ var ( ErrConfigOverrides = errorsmod.Register(ModuleName, codeErrConfigOverrides, "failed to apply state override") ) +var ( + // RevertSelector is selector of ErrExecutionReverted + RevertSelector = crypto.Keccak256([]byte("Error(string)"))[:4] +) + // VMError is an interface that represents a reverted or failed EVM execution. // The Ret() method returns the revert reason bytes associated with the error, if any. // The Cause() method returns the unwrapped error. For ABCIInfo integration. @@ -289,3 +295,19 @@ func (e *RevertError) ErrorCode() int { func (e *RevertError) ErrorData() interface{} { return e.reason } + +// RevertReasonBytes converts a message to ABI-encoded revert bytes. +func RevertReasonBytes(reason string) ([]byte, error) { + typ, err := abi.NewType("string", "", nil) + if err != nil { + return nil, err + } + packed, err := (abi.Arguments{{Type: typ}}).Pack(reason) + if err != nil { + return nil, err + } + bz := make([]byte, 0, len(RevertSelector)+len(packed)) + bz = append(bz, RevertSelector...) + bz = append(bz, packed...) + return bz, nil +} diff --git a/chain/exchange/types/codec.go b/chain/exchange/types/codec.go index 8feb1253..6db21664 100644 --- a/chain/exchange/types/codec.go +++ b/chain/exchange/types/codec.go @@ -18,6 +18,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgDeposit{}, "exchange/MsgDeposit", nil) cdc.RegisterConcrete(&MsgWithdraw{}, "exchange/MsgWithdraw", nil) cdc.RegisterConcrete(&MsgInstantSpotMarketLaunch{}, "exchange/MsgInstantSpotMarketLaunch", nil) + cdc.RegisterConcrete(&MsgInstantPerpetualMarketLaunch{}, "exchange/MsgInstantPerpetualMarketLaunch", nil) + cdc.RegisterConcrete(&MsgInstantExpiryFuturesMarketLaunch{}, "exchange/MsgInstantExpiryFuturesMarketLaunch", nil) cdc.RegisterConcrete(&MsgCreateSpotLimitOrder{}, "exchange/MsgCreateSpotLimitOrder", nil) cdc.RegisterConcrete(&MsgBatchCreateSpotLimitOrders{}, "exchange/MsgBatchCreateSpotLimitOrders", nil) cdc.RegisterConcrete(&MsgCreateSpotMarketOrder{}, "exchange/MsgCreateSpotMarketOrder", nil) @@ -85,6 +87,8 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgDeposit{}, &MsgWithdraw{}, &MsgInstantSpotMarketLaunch{}, + &MsgInstantPerpetualMarketLaunch{}, + &MsgInstantExpiryFuturesMarketLaunch{}, &MsgCreateSpotLimitOrder{}, &MsgBatchCreateSpotLimitOrders{}, &MsgCreateSpotMarketOrder{}, diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index b48c5930..d2c2185e 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -30,49 +30,49 @@ var ( ErrExpiryFuturesMarketExists = errors.Register(ModuleName, 22, "expiry futures market exists") ErrExpiryFuturesMarketExpired = errors.Register(ModuleName, 23, "expiry futures market expired") ErrNoLiquidity = errors.Register(ModuleName, 24, "no liquidity on the orderbook!") - ErrSlippageExceedsWorstPrice = errors.Register(ModuleName, 25, "Orderbook liquidity cannot satisfy current worst price") + ErrSlippageExceedsWorstPrice = errors.Register(ModuleName, 25, "orderbook liquidity cannot satisfy current worst price") ErrInsufficientMargin = errors.Register(ModuleName, 26, "insufficient margin") - ErrDerivativeMarketNotFound = errors.Register(ModuleName, 27, "Derivative market not found") - ErrPositionNotFound = errors.Register(ModuleName, 28, "Position not found") - ErrInvalidReduceOnlyPositionDirection = errors.Register(ModuleName, 29, "Position direction does not oppose the reduce-only order") - ErrPriceSurpassesBankruptcyPrice = errors.Register(ModuleName, 30, "Price Surpasses Bankruptcy Price") - ErrPositionNotLiquidable = errors.Register(ModuleName, 31, "Position not liquidable") + ErrDerivativeMarketNotFound = errors.Register(ModuleName, 27, "derivative market not found") + ErrPositionNotFound = errors.Register(ModuleName, 28, "position not found") + ErrInvalidReduceOnlyPositionDirection = errors.Register(ModuleName, 29, "position direction does not oppose the reduce-only order") + ErrPriceSurpassesBankruptcyPrice = errors.Register(ModuleName, 30, "price Surpasses Bankruptcy Price") + ErrPositionNotLiquidable = errors.Register(ModuleName, 31, "position not liquidable") ErrInvalidTriggerPrice = errors.Register(ModuleName, 32, "invalid trigger price") ErrInvalidOracleType = errors.Register(ModuleName, 33, "invalid oracle type") ErrInvalidPriceTickSize = errors.Register(ModuleName, 34, "invalid minimum price tick size") ErrInvalidQuantityTickSize = errors.Register(ModuleName, 35, "invalid minimum quantity tick size") ErrInvalidMargin = errors.Register(ModuleName, 36, "invalid minimum order margin") - ErrExceedsOrderSideCount = errors.Register(ModuleName, 37, "Exceeds order side count") - ErrMarketOrderAlreadyExists = errors.Register(ModuleName, 38, "Subaccount cannot place a market order when a market order in the same market was already placed in same block") + ErrExceedsOrderSideCount = errors.Register(ModuleName, 37, "exceeds order side count") + ErrMarketOrderAlreadyExists = errors.Register(ModuleName, 38, "subaccount cannot place a market order when a market order in the same market was already placed in same block") ErrConditionalMarketOrderAlreadyExists = errors.Register(ModuleName, 39, "cannot place a conditional market order when a conditional market order in same relative direction already exists") - ErrMarketLaunchProposalAlreadyExists = errors.Register(ModuleName, 40, "An equivalent market launch proposal already exists.") - ErrInvalidMarketStatus = errors.Register(ModuleName, 41, "Invalid Market Status") + ErrMarketLaunchProposalAlreadyExists = errors.Register(ModuleName, 40, "equivalent market launch proposal already exists") + ErrInvalidMarketStatus = errors.Register(ModuleName, 41, "invalid market status") ErrSameDenoms = errors.Register(ModuleName, 42, "base denom cannot be same with quote denom") ErrSameOracles = errors.Register(ModuleName, 43, "oracle base cannot be same with oracle quote") - ErrFeeRatesRelation = errors.Register(ModuleName, 44, "MakerFeeRate does not match TakerFeeRate requirements") - ErrMarginsRelation = errors.Register(ModuleName, 45, "Ensure that MaintenanceMarginRatio < InitialMarginRatio <= ReduceMarginRatio") - ErrExceedsMaxOracleScaleFactor = errors.Register(ModuleName, 46, "OracleScaleFactor cannot be greater than MaxOracleScaleFactor") - ErrSpotExchangeNotEnabled = errors.Register(ModuleName, 47, "Spot exchange is not enabled yet") - ErrDerivativesExchangeNotEnabled = errors.Register(ModuleName, 48, "Derivatives exchange is not enabled yet") - ErrOraclePriceDeltaExceedsThreshold = errors.Register(ModuleName, 49, "Oracle price delta exceeds threshold") - ErrInvalidHourlyInterestRate = errors.Register(ModuleName, 50, "Invalid hourly interest rate") - ErrInvalidHourlyFundingRateCap = errors.Register(ModuleName, 51, "Invalid hourly funding rate cap") - ErrInvalidMarketFundingParamUpdate = errors.Register(ModuleName, 52, "Only perpetual markets can update funding parameters") - ErrInvalidTradingRewardCampaign = errors.Register(ModuleName, 53, "Invalid trading reward campaign") - ErrInvalidFeeDiscountSchedule = errors.Register(ModuleName, 54, "Invalid fee discount schedule") + ErrFeeRatesRelation = errors.Register(ModuleName, 44, "makerFeeRate does not match TakerFeeRate requirements") + ErrMarginsRelation = errors.Register(ModuleName, 45, "ensure that MaintenanceMarginRatio < InitialMarginRatio <= ReduceMarginRatio") + ErrExceedsMaxOracleScaleFactor = errors.Register(ModuleName, 46, "oracleScaleFactor cannot be greater than MaxOracleScaleFactor") + ErrSpotExchangeNotEnabled = errors.Register(ModuleName, 47, "spot exchange is not enabled yet") + ErrDerivativesExchangeNotEnabled = errors.Register(ModuleName, 48, "derivatives exchange is not enabled yet") + ErrOraclePriceDeltaExceedsThreshold = errors.Register(ModuleName, 49, "oracle price delta exceeds threshold") + ErrInvalidHourlyInterestRate = errors.Register(ModuleName, 50, "invalid hourly interest rate") + ErrInvalidHourlyFundingRateCap = errors.Register(ModuleName, 51, "invalid hourly funding rate cap") + ErrInvalidMarketFundingParamUpdate = errors.Register(ModuleName, 52, "only perpetual markets can update funding parameters") + ErrInvalidTradingRewardCampaign = errors.Register(ModuleName, 53, "invalid trading reward campaign") + ErrInvalidFeeDiscountSchedule = errors.Register(ModuleName, 54, "invalid fee discount schedule") ErrInvalidLiquidationOrder = errors.Register(ModuleName, 55, "invalid liquidation order") - ErrTradingRewardCampaignDistributionError = errors.Register(ModuleName, 56, "Unknown error happened for campaign distributions") - ErrInvalidTradingRewardsPendingPointsUpdate = errors.Register(ModuleName, 57, "Invalid trading reward points update") - ErrInvalidBatchMsgUpdate = errors.Register(ModuleName, 58, "Invalid batch msg update") - ErrExceedsTopOfBookPrice = errors.Register(ModuleName, 59, "Post-only order exceeds top of book price") - ErrInvalidOrderTypeForMessage = errors.Register(ModuleName, 60, "Order type not supported for given message") - ErrInvalidDMMSender = errors.Register(ModuleName, 61, "Sender must match dmm account") + ErrTradingRewardCampaignDistributionError = errors.Register(ModuleName, 56, "unknown error happened for campaign distributions") + ErrInvalidTradingRewardsPendingPointsUpdate = errors.Register(ModuleName, 57, "invalid trading reward points update") + ErrInvalidBatchMsgUpdate = errors.Register(ModuleName, 58, "invalid batch msg update") + ErrExceedsTopOfBookPrice = errors.Register(ModuleName, 59, "post-only order exceeds top of book price") + ErrInvalidOrderTypeForMessage = errors.Register(ModuleName, 60, "order type not supported for given message") + ErrInvalidDMMSender = errors.Register(ModuleName, 61, "sender must match dmm account") ErrAlreadyOptedOutOfRewards = errors.Register(ModuleName, 62, "already opted out of rewards") - ErrInvalidMarginRatio = errors.Register(ModuleName, 63, "Invalid margin ratio") - ErrBelowMinimalContribution = errors.Register(ModuleName, 64, "Provided funds are below minimum") - ErrLowPositionMargin = errors.Register(ModuleName, 65, "Position is below initial margin requirement") - ErrInvalidTotalSupply = errors.Register(ModuleName, 66, "Pool has non-positive total lp token supply") - ErrInvalidLpTokenBurnAmount = errors.Register(ModuleName, 67, "Passed lp token burn amount is greater than total lp token supply") + ErrInvalidMarginRatio = errors.Register(ModuleName, 63, "invalid margin ratio") + ErrBelowMinimalContribution = errors.Register(ModuleName, 64, "provided funds are below minimum") + ErrLowPositionMargin = errors.Register(ModuleName, 65, "position is below initial margin requirement") + ErrInvalidTotalSupply = errors.Register(ModuleName, 66, "pool has non-positive total lp token supply") + ErrInvalidLpTokenBurnAmount = errors.Register(ModuleName, 67, "passed lp token burn amount is greater than total lp token supply") ErrUnsupportedAction = errors.Register(ModuleName, 68, "unsupported action") ErrNegativePositionQuantity = errors.Register(ModuleName, 69, "position quantity cannot be negative") ErrBinaryOptionsMarketExists = errors.Register(ModuleName, 70, "binary options market exists") @@ -82,24 +82,24 @@ var ( ErrSenderIsNotAnAdmin = errors.Register(ModuleName, 74, "sender should be a market admin") ErrMarketAlreadyScheduledToSettle = errors.Register(ModuleName, 75, "market is already scheduled to settle") ErrGenericMarketNotFound = errors.Register(ModuleName, 76, "market not found") - ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal cannot be higher than max scale factor") + ErrInvalidDenomDecimal = errors.Register(ModuleName, 77, "denom decimal should be greater than 0 and not greater than max scale factor") ErrInvalidState = errors.Register(ModuleName, 78, "state is invalid") ErrTransientOrdersUpToCancelNotSupported = errors.Register(ModuleName, 79, "transient orders up to cancellation not supported") ErrInvalidTrade = errors.Register(ModuleName, 80, "invalid trade") ErrNoMarginLocked = errors.Register(ModuleName, 81, "no margin locked in subaccount") - ErrInvalidAccessLevel = errors.Register(ModuleName, 82, "Invalid access level to perform action") - ErrInvalidAddress = errors.Register(ModuleName, 83, "Invalid address") - ErrInvalidArgument = errors.Register(ModuleName, 84, "Invalid argument") - ErrInvalidFundsDirection = errors.Register(ModuleName, 85, "Invalid funds direction") - ErrNoFundsProvided = errors.Register(ModuleName, 86, "No funds provided") - ErrInvalidSignature = errors.Register(ModuleName, 87, "Invalid signature") + ErrInvalidAccessLevel = errors.Register(ModuleName, 82, "invalid access level to perform action") + ErrInvalidAddress = errors.Register(ModuleName, 83, "invalid address") + ErrInvalidArgument = errors.Register(ModuleName, 84, "invalid argument") + ErrInvalidFundsDirection = errors.Register(ModuleName, 85, "invalid funds direction") + ErrNoFundsProvided = errors.Register(ModuleName, 86, "no funds provided") + ErrInvalidSignature = errors.Register(ModuleName, 87, "invalid signature") ErrNoFundsToUnlock = errors.Register(ModuleName, 88, "no funds to unlock") - ErrNoMsgsProvided = errors.Register(ModuleName, 89, "No msgs provided") - ErrNoMsgProvided = errors.Register(ModuleName, 90, "No msg provided") - ErrInvalidAmount = errors.Register(ModuleName, 91, "Invalid amount") + ErrNoMsgsProvided = errors.Register(ModuleName, 89, "no msgs provided") + ErrNoMsgProvided = errors.Register(ModuleName, 90, "no msg provided") + ErrInvalidAmount = errors.Register(ModuleName, 91, "invalid amount") ErrFeatureDisabled = errors.Register(ModuleName, 92, "The current feature has been disabled") - ErrTooMuchOrderMargin = errors.Register(ModuleName, 93, "Order has too much margin") - ErrBadSubaccountNonce = errors.Register(ModuleName, 94, "Subaccount nonce is invalid") + ErrTooMuchOrderMargin = errors.Register(ModuleName, 93, "order has too much margin") + ErrBadSubaccountNonce = errors.Register(ModuleName, 94, "subaccount nonce is invalid") ErrInsufficientFunds = errors.Register(ModuleName, 95, "insufficient funds") ErrPostOnlyMode = errors.Register(ModuleName, 96, "exchange is in post-only mode") ErrClientOrderIdAlreadyExists = errors.Register(ModuleName, 97, "client order id already exists") @@ -114,4 +114,7 @@ var ( ErrInsufficientMarketBalance = errors.Register(ModuleName, 106, "insufficient market balance") ErrInvalidExpirationBlock = errors.Register(ModuleName, 107, "invalid expiration block") ErrV1DerivativeMarketLaunch = errors.Register(ModuleName, 108, "v1 perpetual and expiry market launch proposal is not supported") + ErrPositionNotOffsettable = errors.Register(ModuleName, 109, "position not offsettable") + ErrOffsettingSubaccountIDsEmpty = errors.Register(ModuleName, 110, "offsetting subaccount IDs cannot be empty") + ErrInvalidOpenNotionalCap = errors.Register(ModuleName, 111, "invalid open notional cap") ) diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index 40b8d720..f4096b24 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -229,6 +229,164 @@ func (OrderMask) EnumDescriptor() ([]byte, []int) { return fileDescriptor_2116e2804e9c53f9, []int{4} } +type OpenNotionalCap struct { + // Types that are valid to be assigned to Cap: + // *OpenNotionalCap_Uncapped + // *OpenNotionalCap_Capped + Cap isOpenNotionalCap_Cap `protobuf_oneof:"cap"` +} + +func (m *OpenNotionalCap) Reset() { *m = OpenNotionalCap{} } +func (m *OpenNotionalCap) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCap) ProtoMessage() {} +func (*OpenNotionalCap) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{0} +} +func (m *OpenNotionalCap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCap) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCap.Merge(m, src) +} +func (m *OpenNotionalCap) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCap) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCap.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCap proto.InternalMessageInfo + +type isOpenNotionalCap_Cap interface { + isOpenNotionalCap_Cap() + MarshalTo([]byte) (int, error) + Size() int +} + +type OpenNotionalCap_Uncapped struct { + Uncapped *OpenNotionalCapUncapped `protobuf:"bytes,1,opt,name=uncapped,proto3,oneof" json:"uncapped,omitempty"` +} +type OpenNotionalCap_Capped struct { + Capped *OpenNotionalCapCapped `protobuf:"bytes,2,opt,name=capped,proto3,oneof" json:"capped,omitempty"` +} + +func (*OpenNotionalCap_Uncapped) isOpenNotionalCap_Cap() {} +func (*OpenNotionalCap_Capped) isOpenNotionalCap_Cap() {} + +func (m *OpenNotionalCap) GetCap() isOpenNotionalCap_Cap { + if m != nil { + return m.Cap + } + return nil +} + +func (m *OpenNotionalCap) GetUncapped() *OpenNotionalCapUncapped { + if x, ok := m.GetCap().(*OpenNotionalCap_Uncapped); ok { + return x.Uncapped + } + return nil +} + +func (m *OpenNotionalCap) GetCapped() *OpenNotionalCapCapped { + if x, ok := m.GetCap().(*OpenNotionalCap_Capped); ok { + return x.Capped + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*OpenNotionalCap) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*OpenNotionalCap_Uncapped)(nil), + (*OpenNotionalCap_Capped)(nil), + } +} + +type OpenNotionalCapUncapped struct { +} + +func (m *OpenNotionalCapUncapped) Reset() { *m = OpenNotionalCapUncapped{} } +func (m *OpenNotionalCapUncapped) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCapUncapped) ProtoMessage() {} +func (*OpenNotionalCapUncapped) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{1} +} +func (m *OpenNotionalCapUncapped) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCapUncapped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCapUncapped.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCapUncapped) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCapUncapped.Merge(m, src) +} +func (m *OpenNotionalCapUncapped) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCapUncapped) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCapUncapped.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCapUncapped proto.InternalMessageInfo + +type OpenNotionalCapCapped struct { + Value cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=value,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"value"` +} + +func (m *OpenNotionalCapCapped) Reset() { *m = OpenNotionalCapCapped{} } +func (m *OpenNotionalCapCapped) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCapCapped) ProtoMessage() {} +func (*OpenNotionalCapCapped) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{2} +} +func (m *OpenNotionalCapCapped) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCapCapped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCapCapped.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCapCapped) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCapCapped.Merge(m, src) +} +func (m *OpenNotionalCapCapped) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCapCapped) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCapCapped.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCapCapped proto.InternalMessageInfo + type Params struct { // spot_market_instant_listing_fee defines the expedited fee in INJ required // to create a spot market by bypassing governance @@ -317,7 +475,7 @@ func (m *Params) Reset() { *m = Params{} } func (m *Params) String() string { return proto.CompactTextString(m) } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{0} + return fileDescriptor_2116e2804e9c53f9, []int{3} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -446,7 +604,7 @@ func (m *MarketFeeMultiplier) Reset() { *m = MarketFeeMultiplier{} } func (m *MarketFeeMultiplier) String() string { return proto.CompactTextString(m) } func (*MarketFeeMultiplier) ProtoMessage() {} func (*MarketFeeMultiplier) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{1} + return fileDescriptor_2116e2804e9c53f9, []int{4} } func (m *MarketFeeMultiplier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -526,13 +684,15 @@ type DerivativeMarket struct { QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,21,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,22,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} } func (m *DerivativeMarket) String() string { return proto.CompactTextString(m) } func (*DerivativeMarket) ProtoMessage() {} func (*DerivativeMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{2} + return fileDescriptor_2116e2804e9c53f9, []int{5} } func (m *DerivativeMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -612,7 +772,7 @@ func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} } func (m *BinaryOptionsMarket) String() string { return proto.CompactTextString(m) } func (*BinaryOptionsMarket) ProtoMessage() {} func (*BinaryOptionsMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{3} + return fileDescriptor_2116e2804e9c53f9, []int{6} } func (m *BinaryOptionsMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -662,7 +822,7 @@ func (m *ExpiryFuturesMarketInfo) Reset() { *m = ExpiryFuturesMarketInfo func (m *ExpiryFuturesMarketInfo) String() string { return proto.CompactTextString(m) } func (*ExpiryFuturesMarketInfo) ProtoMessage() {} func (*ExpiryFuturesMarketInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{4} + return fileDescriptor_2116e2804e9c53f9, []int{7} } func (m *ExpiryFuturesMarketInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -732,7 +892,7 @@ func (m *PerpetualMarketInfo) Reset() { *m = PerpetualMarketInfo{} } func (m *PerpetualMarketInfo) String() string { return proto.CompactTextString(m) } func (*PerpetualMarketInfo) ProtoMessage() {} func (*PerpetualMarketInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{5} + return fileDescriptor_2116e2804e9c53f9, []int{8} } func (m *PerpetualMarketInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -797,7 +957,7 @@ func (m *PerpetualMarketFunding) Reset() { *m = PerpetualMarketFunding{} func (m *PerpetualMarketFunding) String() string { return proto.CompactTextString(m) } func (*PerpetualMarketFunding) ProtoMessage() {} func (*PerpetualMarketFunding) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{6} + return fileDescriptor_2116e2804e9c53f9, []int{9} } func (m *PerpetualMarketFunding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -844,7 +1004,7 @@ func (m *DerivativeMarketSettlementInfo) Reset() { *m = DerivativeMarket func (m *DerivativeMarketSettlementInfo) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketSettlementInfo) ProtoMessage() {} func (*DerivativeMarketSettlementInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{7} + return fileDescriptor_2116e2804e9c53f9, []int{10} } func (m *DerivativeMarketSettlementInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -888,7 +1048,7 @@ func (m *NextFundingTimestamp) Reset() { *m = NextFundingTimestamp{} } func (m *NextFundingTimestamp) String() string { return proto.CompactTextString(m) } func (*NextFundingTimestamp) ProtoMessage() {} func (*NextFundingTimestamp) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{8} + return fileDescriptor_2116e2804e9c53f9, []int{11} } func (m *NextFundingTimestamp) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -937,7 +1097,7 @@ func (m *MidPriceAndTOB) Reset() { *m = MidPriceAndTOB{} } func (m *MidPriceAndTOB) String() string { return proto.CompactTextString(m) } func (*MidPriceAndTOB) ProtoMessage() {} func (*MidPriceAndTOB) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{9} + return fileDescriptor_2116e2804e9c53f9, []int{12} } func (m *MidPriceAndTOB) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1009,7 +1169,7 @@ func (m *SpotMarket) Reset() { *m = SpotMarket{} } func (m *SpotMarket) String() string { return proto.CompactTextString(m) } func (*SpotMarket) ProtoMessage() {} func (*SpotMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{10} + return fileDescriptor_2116e2804e9c53f9, []int{13} } func (m *SpotMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1111,7 +1271,7 @@ func (m *Deposit) Reset() { *m = Deposit{} } func (m *Deposit) String() string { return proto.CompactTextString(m) } func (*Deposit) ProtoMessage() {} func (*Deposit) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{11} + return fileDescriptor_2116e2804e9c53f9, []int{14} } func (m *Deposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1148,7 +1308,7 @@ func (m *SubaccountTradeNonce) Reset() { *m = SubaccountTradeNonce{} } func (m *SubaccountTradeNonce) String() string { return proto.CompactTextString(m) } func (*SubaccountTradeNonce) ProtoMessage() {} func (*SubaccountTradeNonce) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{12} + return fileDescriptor_2116e2804e9c53f9, []int{15} } func (m *SubaccountTradeNonce) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1200,7 +1360,7 @@ func (m *OrderInfo) Reset() { *m = OrderInfo{} } func (m *OrderInfo) String() string { return proto.CompactTextString(m) } func (*OrderInfo) ProtoMessage() {} func (*OrderInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{13} + return fileDescriptor_2116e2804e9c53f9, []int{16} } func (m *OrderInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1265,7 +1425,7 @@ func (m *SpotOrder) Reset() { *m = SpotOrder{} } func (m *SpotOrder) String() string { return proto.CompactTextString(m) } func (*SpotOrder) ProtoMessage() {} func (*SpotOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{14} + return fileDescriptor_2116e2804e9c53f9, []int{17} } func (m *SpotOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1332,7 +1492,7 @@ func (m *SpotLimitOrder) Reset() { *m = SpotLimitOrder{} } func (m *SpotLimitOrder) String() string { return proto.CompactTextString(m) } func (*SpotLimitOrder) ProtoMessage() {} func (*SpotLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{15} + return fileDescriptor_2116e2804e9c53f9, []int{18} } func (m *SpotLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1398,7 +1558,7 @@ func (m *SpotMarketOrder) Reset() { *m = SpotMarketOrder{} } func (m *SpotMarketOrder) String() string { return proto.CompactTextString(m) } func (*SpotMarketOrder) ProtoMessage() {} func (*SpotMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{16} + return fileDescriptor_2116e2804e9c53f9, []int{19} } func (m *SpotMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1465,7 +1625,7 @@ func (m *DerivativeOrder) Reset() { *m = DerivativeOrder{} } func (m *DerivativeOrder) String() string { return proto.CompactTextString(m) } func (*DerivativeOrder) ProtoMessage() {} func (*DerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{17} + return fileDescriptor_2116e2804e9c53f9, []int{20} } func (m *DerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1536,7 +1696,7 @@ func (m *SubaccountOrderbookMetadata) Reset() { *m = SubaccountOrderbook func (m *SubaccountOrderbookMetadata) String() string { return proto.CompactTextString(m) } func (*SubaccountOrderbookMetadata) ProtoMessage() {} func (*SubaccountOrderbookMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{18} + return fileDescriptor_2116e2804e9c53f9, []int{21} } func (m *SubaccountOrderbookMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1606,7 +1766,7 @@ func (m *SubaccountOrder) Reset() { *m = SubaccountOrder{} } func (m *SubaccountOrder) String() string { return proto.CompactTextString(m) } func (*SubaccountOrder) ProtoMessage() {} func (*SubaccountOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{19} + return fileDescriptor_2116e2804e9c53f9, []int{22} } func (m *SubaccountOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1658,7 +1818,7 @@ func (m *SubaccountOrderData) Reset() { *m = SubaccountOrderData{} } func (m *SubaccountOrderData) String() string { return proto.CompactTextString(m) } func (*SubaccountOrderData) ProtoMessage() {} func (*SubaccountOrderData) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{20} + return fileDescriptor_2116e2804e9c53f9, []int{23} } func (m *SubaccountOrderData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1720,7 +1880,7 @@ func (m *DerivativeLimitOrder) Reset() { *m = DerivativeLimitOrder{} } func (m *DerivativeLimitOrder) String() string { return proto.CompactTextString(m) } func (*DerivativeLimitOrder) ProtoMessage() {} func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{21} + return fileDescriptor_2116e2804e9c53f9, []int{24} } func (m *DerivativeLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1787,7 +1947,7 @@ func (m *DerivativeMarketOrder) Reset() { *m = DerivativeMarketOrder{} } func (m *DerivativeMarketOrder) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketOrder) ProtoMessage() {} func (*DerivativeMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{22} + return fileDescriptor_2116e2804e9c53f9, []int{25} } func (m *DerivativeMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1854,7 +2014,7 @@ func (m *Position) Reset() { *m = Position{} } func (m *Position) String() string { return proto.CompactTextString(m) } func (*Position) ProtoMessage() {} func (*Position) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{23} + return fileDescriptor_2116e2804e9c53f9, []int{26} } func (m *Position) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1900,7 +2060,7 @@ func (m *MarketOrderIndicator) Reset() { *m = MarketOrderIndicator{} } func (m *MarketOrderIndicator) String() string { return proto.CompactTextString(m) } func (*MarketOrderIndicator) ProtoMessage() {} func (*MarketOrderIndicator) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{24} + return fileDescriptor_2116e2804e9c53f9, []int{27} } func (m *MarketOrderIndicator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1958,7 +2118,7 @@ func (m *TradeLog) Reset() { *m = TradeLog{} } func (m *TradeLog) String() string { return proto.CompactTextString(m) } func (*TradeLog) ProtoMessage() {} func (*TradeLog) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{25} + return fileDescriptor_2116e2804e9c53f9, []int{28} } func (m *TradeLog) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2026,7 +2186,7 @@ func (m *PositionDelta) Reset() { *m = PositionDelta{} } func (m *PositionDelta) String() string { return proto.CompactTextString(m) } func (*PositionDelta) ProtoMessage() {} func (*PositionDelta) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{26} + return fileDescriptor_2116e2804e9c53f9, []int{29} } func (m *PositionDelta) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2077,7 +2237,7 @@ func (m *DerivativeTradeLog) Reset() { *m = DerivativeTradeLog{} } func (m *DerivativeTradeLog) String() string { return proto.CompactTextString(m) } func (*DerivativeTradeLog) ProtoMessage() {} func (*DerivativeTradeLog) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{27} + return fileDescriptor_2116e2804e9c53f9, []int{30} } func (m *DerivativeTradeLog) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2150,7 +2310,7 @@ func (m *SubaccountPosition) Reset() { *m = SubaccountPosition{} } func (m *SubaccountPosition) String() string { return proto.CompactTextString(m) } func (*SubaccountPosition) ProtoMessage() {} func (*SubaccountPosition) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{28} + return fileDescriptor_2116e2804e9c53f9, []int{31} } func (m *SubaccountPosition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2202,7 +2362,7 @@ func (m *SubaccountDeposit) Reset() { *m = SubaccountDeposit{} } func (m *SubaccountDeposit) String() string { return proto.CompactTextString(m) } func (*SubaccountDeposit) ProtoMessage() {} func (*SubaccountDeposit) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{29} + return fileDescriptor_2116e2804e9c53f9, []int{32} } func (m *SubaccountDeposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2254,7 +2414,7 @@ func (m *DepositUpdate) Reset() { *m = DepositUpdate{} } func (m *DepositUpdate) String() string { return proto.CompactTextString(m) } func (*DepositUpdate) ProtoMessage() {} func (*DepositUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{30} + return fileDescriptor_2116e2804e9c53f9, []int{33} } func (m *DepositUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2306,7 +2466,7 @@ func (m *PointsMultiplier) Reset() { *m = PointsMultiplier{} } func (m *PointsMultiplier) String() string { return proto.CompactTextString(m) } func (*PointsMultiplier) ProtoMessage() {} func (*PointsMultiplier) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{31} + return fileDescriptor_2116e2804e9c53f9, []int{34} } func (m *PointsMultiplier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2346,7 +2506,7 @@ func (m *TradingRewardCampaignBoostInfo) Reset() { *m = TradingRewardCam func (m *TradingRewardCampaignBoostInfo) String() string { return proto.CompactTextString(m) } func (*TradingRewardCampaignBoostInfo) ProtoMessage() {} func (*TradingRewardCampaignBoostInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{32} + return fileDescriptor_2116e2804e9c53f9, []int{35} } func (m *TradingRewardCampaignBoostInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2414,7 +2574,7 @@ func (m *CampaignRewardPool) Reset() { *m = CampaignRewardPool{} } func (m *CampaignRewardPool) String() string { return proto.CompactTextString(m) } func (*CampaignRewardPool) ProtoMessage() {} func (*CampaignRewardPool) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{33} + return fileDescriptor_2116e2804e9c53f9, []int{36} } func (m *CampaignRewardPool) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2472,7 +2632,7 @@ func (m *TradingRewardCampaignInfo) Reset() { *m = TradingRewardCampaign func (m *TradingRewardCampaignInfo) String() string { return proto.CompactTextString(m) } func (*TradingRewardCampaignInfo) ProtoMessage() {} func (*TradingRewardCampaignInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{34} + return fileDescriptor_2116e2804e9c53f9, []int{37} } func (m *TradingRewardCampaignInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2544,7 +2704,7 @@ func (m *FeeDiscountTierInfo) Reset() { *m = FeeDiscountTierInfo{} } func (m *FeeDiscountTierInfo) String() string { return proto.CompactTextString(m) } func (*FeeDiscountTierInfo) ProtoMessage() {} func (*FeeDiscountTierInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{35} + return fileDescriptor_2116e2804e9c53f9, []int{38} } func (m *FeeDiscountTierInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2590,7 +2750,7 @@ func (m *FeeDiscountSchedule) Reset() { *m = FeeDiscountSchedule{} } func (m *FeeDiscountSchedule) String() string { return proto.CompactTextString(m) } func (*FeeDiscountSchedule) ProtoMessage() {} func (*FeeDiscountSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{36} + return fileDescriptor_2116e2804e9c53f9, []int{39} } func (m *FeeDiscountSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2663,7 +2823,7 @@ func (m *FeeDiscountTierTTL) Reset() { *m = FeeDiscountTierTTL{} } func (m *FeeDiscountTierTTL) String() string { return proto.CompactTextString(m) } func (*FeeDiscountTierTTL) ProtoMessage() {} func (*FeeDiscountTierTTL) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{37} + return fileDescriptor_2116e2804e9c53f9, []int{40} } func (m *FeeDiscountTierTTL) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2715,7 +2875,7 @@ func (m *VolumeRecord) Reset() { *m = VolumeRecord{} } func (m *VolumeRecord) String() string { return proto.CompactTextString(m) } func (*VolumeRecord) ProtoMessage() {} func (*VolumeRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{38} + return fileDescriptor_2116e2804e9c53f9, []int{41} } func (m *VolumeRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2753,7 +2913,7 @@ func (m *AccountRewards) Reset() { *m = AccountRewards{} } func (m *AccountRewards) String() string { return proto.CompactTextString(m) } func (*AccountRewards) ProtoMessage() {} func (*AccountRewards) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{39} + return fileDescriptor_2116e2804e9c53f9, []int{42} } func (m *AccountRewards) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2805,7 +2965,7 @@ func (m *TradeRecords) Reset() { *m = TradeRecords{} } func (m *TradeRecords) String() string { return proto.CompactTextString(m) } func (*TradeRecords) ProtoMessage() {} func (*TradeRecords) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{40} + return fileDescriptor_2116e2804e9c53f9, []int{43} } func (m *TradeRecords) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2856,7 +3016,7 @@ func (m *SubaccountIDs) Reset() { *m = SubaccountIDs{} } func (m *SubaccountIDs) String() string { return proto.CompactTextString(m) } func (*SubaccountIDs) ProtoMessage() {} func (*SubaccountIDs) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{41} + return fileDescriptor_2116e2804e9c53f9, []int{44} } func (m *SubaccountIDs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2905,7 +3065,7 @@ func (m *TradeRecord) Reset() { *m = TradeRecord{} } func (m *TradeRecord) String() string { return proto.CompactTextString(m) } func (*TradeRecord) ProtoMessage() {} func (*TradeRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{42} + return fileDescriptor_2116e2804e9c53f9, []int{45} } func (m *TradeRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2952,7 +3112,7 @@ func (m *Level) Reset() { *m = Level{} } func (m *Level) String() string { return proto.CompactTextString(m) } func (*Level) ProtoMessage() {} func (*Level) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{43} + return fileDescriptor_2116e2804e9c53f9, []int{46} } func (m *Level) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2992,7 +3152,7 @@ func (m *AggregateSubaccountVolumeRecord) Reset() { *m = AggregateSubacc func (m *AggregateSubaccountVolumeRecord) String() string { return proto.CompactTextString(m) } func (*AggregateSubaccountVolumeRecord) ProtoMessage() {} func (*AggregateSubaccountVolumeRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{44} + return fileDescriptor_2116e2804e9c53f9, []int{47} } func (m *AggregateSubaccountVolumeRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3044,7 +3204,7 @@ func (m *AggregateAccountVolumeRecord) Reset() { *m = AggregateAccountVo func (m *AggregateAccountVolumeRecord) String() string { return proto.CompactTextString(m) } func (*AggregateAccountVolumeRecord) ProtoMessage() {} func (*AggregateAccountVolumeRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{45} + return fileDescriptor_2116e2804e9c53f9, []int{48} } func (m *AggregateAccountVolumeRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3096,7 +3256,7 @@ func (m *MarketVolume) Reset() { *m = MarketVolume{} } func (m *MarketVolume) String() string { return proto.CompactTextString(m) } func (*MarketVolume) ProtoMessage() {} func (*MarketVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{46} + return fileDescriptor_2116e2804e9c53f9, []int{49} } func (m *MarketVolume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3148,7 +3308,7 @@ func (m *DenomDecimals) Reset() { *m = DenomDecimals{} } func (m *DenomDecimals) String() string { return proto.CompactTextString(m) } func (*DenomDecimals) ProtoMessage() {} func (*DenomDecimals) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{47} + return fileDescriptor_2116e2804e9c53f9, []int{50} } func (m *DenomDecimals) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3200,7 +3360,7 @@ func (m *GrantAuthorization) Reset() { *m = GrantAuthorization{} } func (m *GrantAuthorization) String() string { return proto.CompactTextString(m) } func (*GrantAuthorization) ProtoMessage() {} func (*GrantAuthorization) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{48} + return fileDescriptor_2116e2804e9c53f9, []int{51} } func (m *GrantAuthorization) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3245,7 +3405,7 @@ func (m *ActiveGrant) Reset() { *m = ActiveGrant{} } func (m *ActiveGrant) String() string { return proto.CompactTextString(m) } func (*ActiveGrant) ProtoMessage() {} func (*ActiveGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{49} + return fileDescriptor_2116e2804e9c53f9, []int{52} } func (m *ActiveGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3291,7 +3451,7 @@ func (m *EffectiveGrant) Reset() { *m = EffectiveGrant{} } func (m *EffectiveGrant) String() string { return proto.CompactTextString(m) } func (*EffectiveGrant) ProtoMessage() {} func (*EffectiveGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{50} + return fileDescriptor_2116e2804e9c53f9, []int{53} } func (m *EffectiveGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3345,7 +3505,7 @@ func (m *DenomMinNotional) Reset() { *m = DenomMinNotional{} } func (m *DenomMinNotional) String() string { return proto.CompactTextString(m) } func (*DenomMinNotional) ProtoMessage() {} func (*DenomMinNotional) Descriptor() ([]byte, []int) { - return fileDescriptor_2116e2804e9c53f9, []int{51} + return fileDescriptor_2116e2804e9c53f9, []int{54} } func (m *DenomMinNotional) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3387,6 +3547,9 @@ func init() { proto.RegisterEnum("injective.exchange.v1beta1.OrderType", OrderType_name, OrderType_value) proto.RegisterEnum("injective.exchange.v1beta1.ExecutionType", ExecutionType_name, ExecutionType_value) proto.RegisterEnum("injective.exchange.v1beta1.OrderMask", OrderMask_name, OrderMask_value) + proto.RegisterType((*OpenNotionalCap)(nil), "injective.exchange.v1beta1.OpenNotionalCap") + proto.RegisterType((*OpenNotionalCapUncapped)(nil), "injective.exchange.v1beta1.OpenNotionalCapUncapped") + proto.RegisterType((*OpenNotionalCapCapped)(nil), "injective.exchange.v1beta1.OpenNotionalCapCapped") proto.RegisterType((*Params)(nil), "injective.exchange.v1beta1.Params") proto.RegisterType((*MarketFeeMultiplier)(nil), "injective.exchange.v1beta1.MarketFeeMultiplier") proto.RegisterType((*DerivativeMarket)(nil), "injective.exchange.v1beta1.DerivativeMarket") @@ -3446,291 +3609,297 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4533 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x4b, 0x6f, 0x24, 0x59, - 0x56, 0xae, 0xc8, 0xf4, 0x23, 0xf3, 0xe4, 0xc3, 0xe9, 0xb0, 0xcb, 0x4e, 0xdb, 0x55, 0x76, 0x76, - 0x56, 0xd7, 0xb4, 0xbb, 0xba, 0xdb, 0x9e, 0x6a, 0xe8, 0x51, 0x4f, 0x8f, 0x46, 0x53, 0xe9, 0x57, - 0x55, 0xd2, 0x7e, 0x4d, 0xa4, 0xdd, 0x50, 0x33, 0x9a, 0x09, 0x5d, 0x47, 0x5c, 0x3b, 0x6f, 0x39, - 0x1e, 0x59, 0x71, 0x23, 0x5d, 0x76, 0x23, 0x24, 0x16, 0x2d, 0x44, 0x1b, 0x10, 0xc3, 0x02, 0x21, - 0x21, 0x19, 0x0d, 0x0b, 0x84, 0x60, 0x03, 0x4b, 0x24, 0x58, 0x20, 0x21, 0x60, 0x16, 0x83, 0x34, - 0x0b, 0x16, 0x88, 0xc5, 0x80, 0xba, 0x91, 0x18, 0xf1, 0x1b, 0xd0, 0x08, 0xdd, 0x47, 0x3c, 0xf2, - 0xe1, 0x74, 0xa6, 0xed, 0x86, 0x01, 0x36, 0x55, 0x79, 0x1f, 0xe7, 0xbb, 0xe7, 0x9e, 0x73, 0xee, - 0x39, 0xe7, 0x3e, 0xc2, 0xf0, 0x26, 0x71, 0x5e, 0x60, 0xc3, 0x27, 0x27, 0x78, 0x19, 0x9f, 0x1a, - 0x75, 0xe4, 0x1c, 0xe1, 0xe5, 0x93, 0xc7, 0x07, 0xd8, 0x47, 0x8f, 0xc3, 0x8a, 0xa5, 0x86, 0xe7, - 0xfa, 0xae, 0x3a, 0x1b, 0x76, 0x5d, 0x0a, 0x5b, 0x64, 0xd7, 0xd9, 0xc9, 0x23, 0xf7, 0xc8, 0xe5, - 0xdd, 0x96, 0xd9, 0x2f, 0x41, 0x31, 0x3b, 0x6f, 0xb8, 0xd4, 0x76, 0xe9, 0xf2, 0x01, 0xa2, 0x11, - 0xaa, 0xe1, 0x12, 0x47, 0xb6, 0x3f, 0x8c, 0x06, 0x77, 0x3d, 0x64, 0x58, 0x51, 0x27, 0x51, 0x94, - 0xdd, 0xc6, 0x91, 0x4d, 0x1c, 0x77, 0x99, 0xff, 0x2b, 0xaa, 0xca, 0x9f, 0x4e, 0xc1, 0xc8, 0x2e, - 0xf2, 0x90, 0x4d, 0x55, 0x0c, 0x0b, 0xb4, 0xe1, 0xfa, 0xba, 0x8d, 0xbc, 0x63, 0xec, 0xeb, 0xc4, - 0xa1, 0x3e, 0x72, 0x7c, 0xdd, 0x22, 0xd4, 0x27, 0xce, 0x91, 0x7e, 0x88, 0x71, 0x51, 0x29, 0x29, - 0x8b, 0x99, 0x77, 0x67, 0x96, 0x04, 0x3b, 0x4b, 0x8c, 0x9d, 0x80, 0xf3, 0xa5, 0x55, 0x97, 0x38, - 0x2b, 0x43, 0x3f, 0xf8, 0xf1, 0xc2, 0x1d, 0x6d, 0x8e, 0xe1, 0x6c, 0x71, 0x98, 0xaa, 0x40, 0xd9, - 0x14, 0x20, 0x1b, 0x18, 0xab, 0x2f, 0xe1, 0xa1, 0x89, 0x3d, 0x72, 0x82, 0x18, 0xbb, 0xbd, 0x06, - 0x4b, 0xf4, 0x37, 0xd8, 0x6b, 0x11, 0xda, 0x65, 0x43, 0x22, 0x98, 0x33, 0xf1, 0x21, 0x6a, 0x5a, - 0xbe, 0x2e, 0x67, 0x78, 0x8c, 0x3d, 0x36, 0x86, 0xee, 0x21, 0x1f, 0x17, 0x93, 0x25, 0x65, 0x31, - 0xbd, 0xf2, 0x80, 0xa1, 0xfd, 0xf3, 0x8f, 0x17, 0xe6, 0xc4, 0x78, 0xd4, 0x3c, 0x5e, 0x22, 0xee, - 0xb2, 0x8d, 0xfc, 0xfa, 0xd2, 0x26, 0x3e, 0x42, 0xc6, 0xd9, 0x1a, 0x36, 0xb4, 0x69, 0x89, 0x53, - 0xe3, 0x13, 0x3c, 0xc6, 0xde, 0x06, 0xc6, 0x1a, 0xf2, 0x3b, 0x87, 0xf0, 0x5b, 0x87, 0x18, 0xba, - 0xde, 0x10, 0x7b, 0xf1, 0x21, 0x6c, 0x78, 0x2d, 0x18, 0xa2, 0x45, 0x80, 0x2d, 0x03, 0x0d, 0xf7, - 0x3f, 0xd0, 0x7d, 0x89, 0xb6, 0x16, 0x93, 0xdf, 0x95, 0xc3, 0xb5, 0xcd, 0x6b, 0xe4, 0x26, 0xc3, - 0xb5, 0xcc, 0xce, 0x84, 0x7b, 0xc1, 0x70, 0xc4, 0x21, 0x3e, 0x41, 0x16, 0xb3, 0x8d, 0x23, 0xe2, - 0xb0, 0x81, 0x88, 0x5b, 0x1c, 0xed, 0x7f, 0xa4, 0x19, 0x09, 0x54, 0x15, 0x38, 0x5b, 0x1c, 0x46, - 0x63, 0x28, 0xaa, 0x05, 0xa5, 0x60, 0x14, 0x1b, 0x11, 0xc7, 0xc7, 0x0e, 0x72, 0x0c, 0xdc, 0x3a, - 0x52, 0x6a, 0xf0, 0x39, 0x6d, 0x45, 0x58, 0xf1, 0xd1, 0xde, 0x87, 0x62, 0x30, 0xda, 0x61, 0xd3, - 0x31, 0x99, 0x61, 0xb3, 0x7e, 0xde, 0x09, 0xb2, 0x8a, 0xe9, 0x92, 0xb2, 0x98, 0xd4, 0xa6, 0x64, - 0xfb, 0x86, 0x68, 0xae, 0xca, 0x56, 0xf5, 0x4d, 0x28, 0x04, 0x14, 0x76, 0xd3, 0xf2, 0x49, 0xc3, - 0xc2, 0x45, 0xe0, 0x14, 0x63, 0xb2, 0x7e, 0x4b, 0x56, 0xab, 0xbf, 0x04, 0x53, 0x1e, 0xb6, 0xd0, - 0x99, 0x54, 0x0b, 0xad, 0x23, 0x4f, 0x2a, 0x27, 0xd3, 0xff, 0x44, 0x26, 0x24, 0xc4, 0x06, 0xc6, - 0x35, 0x06, 0xc0, 0x55, 0x42, 0x60, 0x21, 0x60, 0xbf, 0xee, 0x36, 0x3d, 0xeb, 0x2c, 0x9c, 0x05, - 0x83, 0xd7, 0x0d, 0xd4, 0x28, 0x66, 0xfb, 0x1f, 0x22, 0x58, 0x1f, 0xcf, 0x38, 0x94, 0x9c, 0x30, - 0x1b, 0x67, 0x15, 0x35, 0xe2, 0xda, 0x97, 0x43, 0x71, 0x41, 0x61, 0xea, 0x8b, 0xa9, 0xe4, 0x06, - 0xd7, 0xbe, 0x18, 0xa7, 0x2a, 0x61, 0xf8, 0x84, 0xd6, 0x60, 0xc1, 0x46, 0xa7, 0x71, 0x73, 0x76, - 0x3d, 0x13, 0x7b, 0x3a, 0x25, 0x26, 0xd6, 0x0d, 0xb7, 0xe9, 0xf8, 0xc5, 0x7c, 0x49, 0x59, 0xcc, - 0x69, 0x73, 0x36, 0x3a, 0x8d, 0xec, 0x74, 0x87, 0x75, 0xaa, 0x11, 0x13, 0xaf, 0xb2, 0x2e, 0x2a, - 0x85, 0x37, 0x88, 0xf3, 0x42, 0xf7, 0xf0, 0x2b, 0xe4, 0x99, 0x3a, 0x65, 0x2b, 0xc2, 0xd4, 0x3d, - 0xfc, 0xb2, 0x49, 0x3c, 0x6c, 0x63, 0xc7, 0xd7, 0xfd, 0xba, 0x87, 0x69, 0xdd, 0xb5, 0xcc, 0xe2, - 0x18, 0x67, 0xfb, 0xbe, 0x64, 0xfb, 0x6e, 0x27, 0xdb, 0x55, 0xc7, 0xd7, 0x1e, 0x10, 0xe7, 0x85, - 0xc6, 0xc1, 0x6a, 0x1c, 0x4b, 0x8b, 0xa0, 0xf6, 0x02, 0x24, 0xf5, 0x29, 0x94, 0x7c, 0x0f, 0x09, - 0xe1, 0xf3, 0xbe, 0x54, 0x3f, 0xc1, 0xc2, 0x57, 0x9a, 0x4d, 0x6e, 0xb7, 0x4e, 0xb1, 0xc0, 0x0d, - 0xe4, 0xbe, 0xec, 0x27, 0x20, 0xe9, 0x47, 0xa2, 0xd7, 0x9a, 0xec, 0xc4, 0x24, 0x6d, 0x91, 0x97, - 0x4d, 0x62, 0x22, 0xdf, 0xf5, 0xc2, 0x49, 0x44, 0x46, 0x33, 0x3e, 0x80, 0xa4, 0x23, 0x20, 0xc9, - 0x7f, 0x68, 0x3a, 0xa7, 0xf0, 0xe6, 0x01, 0x71, 0x90, 0x77, 0xa6, 0xbb, 0x0d, 0x36, 0x2c, 0xed, - 0xe5, 0xe8, 0xd5, 0xfe, 0x1c, 0xfd, 0xeb, 0x02, 0x71, 0x47, 0x00, 0x5e, 0xe6, 0xeb, 0x7f, 0x55, - 0x81, 0x12, 0xf2, 0x5d, 0x9b, 0x18, 0xc1, 0x90, 0x42, 0xc7, 0xc8, 0x30, 0x30, 0xa5, 0xba, 0x85, - 0x4f, 0xb0, 0x55, 0x9c, 0x28, 0x29, 0x8b, 0xf9, 0x77, 0xdf, 0x5f, 0xba, 0x3c, 0x10, 0x2f, 0x55, - 0x38, 0x86, 0x18, 0x85, 0x1b, 0x40, 0x85, 0x03, 0x6c, 0x32, 0x7a, 0xed, 0x1e, 0xea, 0xd1, 0xaa, - 0x9e, 0xc2, 0x1b, 0x3c, 0x06, 0x74, 0x63, 0x83, 0x2d, 0x51, 0xb9, 0xa2, 0x09, 0xf6, 0x8a, 0x93, - 0xfd, 0x4b, 0xbb, 0xcc, 0x30, 0x3b, 0xb8, 0xda, 0xc0, 0x78, 0x2b, 0x84, 0x53, 0x3f, 0x51, 0xe0, - 0x9d, 0x98, 0x75, 0xf7, 0xc1, 0xc0, 0xdd, 0xfe, 0x19, 0x58, 0x8c, 0x90, 0xaf, 0x60, 0xe3, 0x37, - 0x14, 0x78, 0xdc, 0xa6, 0xfe, 0x3e, 0x58, 0x99, 0xea, 0x9f, 0x95, 0xb7, 0x5a, 0x4c, 0xe1, 0x0a, - 0x6e, 0xbe, 0x0b, 0x33, 0x36, 0x71, 0x88, 0x8d, 0x2c, 0x9d, 0xe7, 0x3c, 0x86, 0x6b, 0x45, 0x01, - 0x6c, 0xba, 0xff, 0x41, 0xa7, 0x24, 0xca, 0xae, 0x04, 0x09, 0x22, 0xd7, 0xb7, 0xe1, 0x2d, 0x42, - 0x43, 0xc3, 0xee, 0xcc, 0x6d, 0x2c, 0xd4, 0x74, 0x8c, 0xba, 0x8e, 0x1d, 0x74, 0x60, 0x61, 0xb3, - 0x58, 0x2c, 0x29, 0x8b, 0x29, 0xed, 0x4b, 0x84, 0x4a, 0xdb, 0x5d, 0x6b, 0x4b, 0x5f, 0x36, 0x79, - 0xf7, 0x75, 0xd1, 0x9b, 0xb9, 0xac, 0x86, 0x4b, 0x7d, 0xdd, 0x75, 0xac, 0x33, 0xdd, 0x76, 0x4d, - 0xac, 0xd7, 0x31, 0x39, 0xaa, 0xc7, 0x9d, 0xcc, 0x0c, 0x5f, 0xf6, 0x73, 0xac, 0xdb, 0x8e, 0x63, - 0x9d, 0x6d, 0xb9, 0x26, 0x7e, 0xc6, 0xfb, 0x44, 0xde, 0xe3, 0x08, 0x1e, 0xcb, 0x10, 0x67, 0x62, - 0xc3, 0xc3, 0x88, 0x62, 0xbd, 0xe1, 0x11, 0x03, 0xeb, 0x3e, 0xb1, 0x31, 0xf5, 0x91, 0xdd, 0x88, - 0xf0, 0x74, 0x8a, 0x0d, 0xd7, 0x31, 0x69, 0x71, 0x96, 0xe3, 0xbe, 0x2d, 0x08, 0xd7, 0x24, 0xdd, - 0x2e, 0x23, 0xdb, 0x0b, 0xa8, 0xc2, 0x11, 0x6a, 0x82, 0x46, 0x7d, 0x03, 0xc6, 0x82, 0x95, 0xa4, - 0x23, 0xd3, 0x26, 0x0e, 0x2d, 0xce, 0x95, 0x92, 0x8b, 0x69, 0x2d, 0x1f, 0x54, 0x57, 0x78, 0xad, - 0xba, 0x09, 0x13, 0xcc, 0x89, 0xa2, 0xa6, 0xc1, 0x54, 0xa8, 0x33, 0xb7, 0xcc, 0xe2, 0xc9, 0xbd, - 0x7e, 0x1c, 0x66, 0x81, 0x38, 0x2f, 0x2a, 0x82, 0x70, 0x0b, 0x9d, 0xb2, 0xf0, 0xf1, 0x08, 0xc6, - 0x0f, 0xc9, 0x29, 0x36, 0xf5, 0x23, 0x44, 0x43, 0x41, 0xdf, 0xe7, 0x82, 0x1e, 0xe3, 0x0d, 0x4f, - 0x11, 0x95, 0x12, 0xfd, 0xa0, 0xf8, 0x93, 0xef, 0x2f, 0x28, 0xe7, 0xff, 0xfe, 0xe7, 0x8f, 0x42, - 0x4e, 0x97, 0x45, 0x02, 0x5c, 0xfe, 0x44, 0x81, 0x09, 0xa1, 0x83, 0x56, 0x03, 0x9a, 0x83, 0x74, - 0xe0, 0xbd, 0x4c, 0x9e, 0x02, 0xa7, 0xb5, 0x94, 0xa8, 0xa8, 0x9a, 0xea, 0x2f, 0x40, 0xbe, 0xcd, - 0x8e, 0x13, 0xfd, 0x9b, 0x54, 0xee, 0x30, 0x3e, 0xd0, 0x07, 0x43, 0xbf, 0xfe, 0xfd, 0x85, 0x3b, - 0xe5, 0x9f, 0xa4, 0xa1, 0xd0, 0x6e, 0x14, 0xea, 0x14, 0x8c, 0xf8, 0xc4, 0x38, 0xc6, 0x9e, 0x64, - 0x40, 0x96, 0xd4, 0x05, 0xc8, 0x88, 0x14, 0x5f, 0x67, 0x6e, 0x53, 0x8c, 0xad, 0x81, 0xa8, 0x5a, - 0x41, 0x14, 0xab, 0xaf, 0x41, 0x56, 0x76, 0x78, 0xd9, 0x74, 0x83, 0x64, 0x57, 0x93, 0x44, 0xdf, - 0x64, 0x55, 0xea, 0x7a, 0x88, 0xe1, 0x9f, 0x35, 0x44, 0xae, 0x9a, 0x7f, 0xf7, 0xf5, 0x98, 0x73, - 0x94, 0x9b, 0x88, 0xc0, 0x35, 0xee, 0xf0, 0xe2, 0xde, 0x59, 0x03, 0x07, 0x23, 0xb1, 0xdf, 0xea, - 0x12, 0x4c, 0x48, 0x18, 0x6a, 0x20, 0x0b, 0xeb, 0x87, 0xc8, 0xf0, 0x5d, 0x8f, 0x67, 0xa4, 0x39, - 0x6d, 0x5c, 0x34, 0xd5, 0x58, 0xcb, 0x06, 0x6f, 0x60, 0xac, 0x73, 0x96, 0x74, 0x13, 0x3b, 0xae, - 0x2d, 0x52, 0x49, 0x0d, 0x78, 0xd5, 0x1a, 0xab, 0x69, 0x95, 0xfb, 0x68, 0x9b, 0xdc, 0xf7, 0x61, - 0xb2, 0x6b, 0x9e, 0x38, 0x40, 0xf6, 0xa6, 0x92, 0xce, 0x04, 0xf1, 0x3b, 0x50, 0xbc, 0x34, 0x31, - 0x4c, 0x0f, 0xe2, 0x2b, 0xba, 0x67, 0x84, 0x55, 0xc8, 0xb7, 0x25, 0xec, 0xd0, 0x3f, 0x68, 0xd6, - 0x8e, 0x27, 0xcc, 0x55, 0xc8, 0xb7, 0x25, 0xe3, 0x03, 0xe4, 0x7b, 0x59, 0x3f, 0x0e, 0x75, 0x79, - 0x0a, 0x99, 0xbd, 0x61, 0x0a, 0x59, 0x82, 0x0c, 0xa1, 0xbb, 0xd8, 0x6b, 0x60, 0xbf, 0x89, 0x2c, - 0x9e, 0xc6, 0xa5, 0xb4, 0x78, 0x95, 0xfa, 0x04, 0x46, 0xa8, 0x8f, 0xfc, 0x26, 0xe5, 0xa9, 0x57, - 0xfe, 0xdd, 0xc5, 0x5e, 0x41, 0x59, 0x2c, 0x86, 0x1a, 0xef, 0xaf, 0x49, 0x3a, 0x55, 0x83, 0x09, - 0x9b, 0x38, 0xa1, 0x43, 0x33, 0x8e, 0x75, 0x4a, 0x3e, 0xc6, 0x32, 0xf7, 0xea, 0x8b, 0xf5, 0x82, - 0x4d, 0x1c, 0xe9, 0xd8, 0x8c, 0xe3, 0x1a, 0xf9, 0x98, 0x4b, 0x84, 0x61, 0xbe, 0x6c, 0x22, 0xc7, - 0x27, 0xfe, 0x59, 0x0c, 0xb6, 0x30, 0x80, 0x44, 0x6c, 0xe2, 0x7c, 0x53, 0x22, 0x84, 0xc8, 0x1b, - 0x90, 0x65, 0xc8, 0x8e, 0xcb, 0xdc, 0x17, 0xb2, 0x06, 0xc9, 0xb7, 0x32, 0x36, 0x71, 0xb6, 0x25, - 0x9d, 0x3a, 0x09, 0xc3, 0xdc, 0xc1, 0xf2, 0xec, 0x29, 0xad, 0x89, 0x82, 0xfa, 0x16, 0x8c, 0xf3, - 0x1f, 0x7a, 0x03, 0x7b, 0x36, 0xa1, 0x94, 0x85, 0x47, 0x9e, 0xed, 0xe4, 0xb4, 0x02, 0x6f, 0xd8, - 0x8d, 0xea, 0xd5, 0x87, 0x90, 0x0f, 0x16, 0xa0, 0xc1, 0x02, 0x1b, 0xe5, 0xe9, 0x48, 0x4e, 0xcb, - 0xc9, 0x35, 0x28, 0x2a, 0xd5, 0x1a, 0x4c, 0x78, 0xd8, 0x6c, 0xb6, 0xaf, 0x86, 0x01, 0x32, 0x87, - 0x71, 0x41, 0x1f, 0x5b, 0x08, 0xd2, 0xd5, 0xfd, 0x34, 0x05, 0x13, 0x2b, 0x9d, 0x59, 0xdd, 0xa5, - 0xde, 0xee, 0x01, 0xe4, 0x02, 0x17, 0x73, 0x66, 0x1f, 0xb8, 0x96, 0xf4, 0x77, 0xd2, 0xc3, 0xd5, - 0x78, 0x1d, 0x8b, 0x41, 0xb2, 0x53, 0xc3, 0x73, 0x4f, 0x88, 0x89, 0x3d, 0xe9, 0xf4, 0xf2, 0xa2, - 0x7a, 0x57, 0xd6, 0xfe, 0x4f, 0xf9, 0xbd, 0xc7, 0x30, 0x89, 0x4f, 0x1b, 0x44, 0xe4, 0xe3, 0x51, - 0x04, 0xe6, 0x0e, 0x30, 0xa9, 0x4d, 0x44, 0x6d, 0x61, 0x98, 0x65, 0x24, 0x14, 0xfb, 0xbe, 0x25, - 0xf7, 0x17, 0x21, 0xc9, 0xa8, 0x20, 0x89, 0xda, 0x22, 0x92, 0xd0, 0x3e, 0x52, 0x71, 0xfb, 0x68, - 0xf3, 0xb9, 0xe9, 0xde, 0x3e, 0x17, 0xda, 0x7c, 0x6e, 0xa7, 0xf7, 0xca, 0xdc, 0x9e, 0xf7, 0xca, - 0xde, 0xbe, 0xf7, 0xca, 0xdd, 0xd0, 0x7b, 0xfd, 0x7f, 0xf3, 0x4d, 0xdb, 0x50, 0x88, 0x99, 0x19, - 0x67, 0x3a, 0xe6, 0x9f, 0x94, 0xab, 0x30, 0xc7, 0x22, 0x62, 0xce, 0x71, 0x87, 0xaf, 0x53, 0xaf, - 0xe9, 0xeb, 0xbe, 0x00, 0xaf, 0x26, 0x1d, 0xd0, 0xbf, 0x25, 0x60, 0x7a, 0x9d, 0x2d, 0xb8, 0xb3, - 0x8d, 0xa6, 0xdf, 0xf4, 0x70, 0xb8, 0xad, 0x3c, 0x74, 0x7b, 0xa7, 0x7d, 0x97, 0x2d, 0xe2, 0xc4, - 0xe5, 0x8b, 0xf8, 0xcb, 0x30, 0xe9, 0xbf, 0x42, 0x0d, 0x9d, 0xfa, 0xc8, 0x8b, 0x2f, 0xe2, 0x24, - 0x27, 0x51, 0x59, 0x5b, 0x8d, 0x35, 0x45, 0x14, 0xaf, 0xe0, 0x4b, 0xf1, 0x41, 0x22, 0x62, 0x61, - 0x4f, 0x46, 0xd3, 0x6e, 0x5a, 0x3c, 0x49, 0x1c, 0xe4, 0x7c, 0xb1, 0x1c, 0xe3, 0x2d, 0x18, 0x92, - 0xab, 0x6b, 0x35, 0x84, 0xeb, 0x6a, 0x08, 0x03, 0x9c, 0x2c, 0xb6, 0x1b, 0x42, 0xf9, 0xef, 0x12, - 0x30, 0x11, 0x86, 0xfc, 0x7e, 0x45, 0xfc, 0x2d, 0x98, 0xbe, 0xec, 0xd8, 0x69, 0x80, 0x14, 0x7b, - 0xb2, 0xde, 0xed, 0xbc, 0x69, 0x1f, 0x26, 0xbb, 0x9e, 0x33, 0x0d, 0x70, 0x14, 0xac, 0xd6, 0x3b, - 0x0f, 0x98, 0x7e, 0x1e, 0xa6, 0x1c, 0x7c, 0x1a, 0x9d, 0xf6, 0x45, 0x4a, 0x1e, 0xe2, 0x4a, 0x9e, - 0x64, 0xad, 0x92, 0x95, 0x48, 0xcd, 0xb1, 0xc3, 0xbe, 0xf0, 0x78, 0x70, 0xb8, 0xe5, 0xb0, 0x2f, - 0x38, 0x17, 0x2c, 0x7f, 0xae, 0xc0, 0x54, 0x9b, 0x20, 0x25, 0x9c, 0xaa, 0x81, 0x1a, 0x19, 0x44, - 0xc0, 0x81, 0x10, 0x6a, 0x9f, 0x51, 0x3a, 0x22, 0x0f, 0x30, 0xb7, 0xa1, 0x10, 0xc3, 0x14, 0x76, - 0x30, 0x80, 0xec, 0xc7, 0x22, 0x62, 0xe1, 0x10, 0x1e, 0x42, 0xde, 0x42, 0xb4, 0xd3, 0xf8, 0x73, - 0xac, 0x36, 0x14, 0x48, 0xf9, 0xb7, 0x14, 0x98, 0x6f, 0xdf, 0x01, 0xd5, 0x42, 0x93, 0xba, 0xda, - 0x72, 0xba, 0x99, 0x6f, 0xe2, 0x06, 0xe6, 0xfb, 0x75, 0x98, 0xdc, 0xee, 0xa6, 0xb8, 0x87, 0x90, - 0xe7, 0xea, 0x8e, 0xa6, 0xa3, 0x88, 0xe9, 0xb0, 0xda, 0x68, 0x3a, 0xff, 0xa1, 0x40, 0x7e, 0x8b, - 0x98, 0x1c, 0xab, 0xe2, 0x98, 0x7b, 0x3b, 0x2b, 0xea, 0x13, 0x48, 0xdb, 0xc4, 0x94, 0xac, 0x29, - 0xfd, 0xbb, 0xd8, 0x94, 0x2d, 0x71, 0x58, 0x00, 0x3d, 0x60, 0x66, 0x7b, 0xd0, 0x3c, 0xeb, 0x98, - 0xe1, 0x95, 0x30, 0x59, 0x46, 0xba, 0xd2, 0x3c, 0x13, 0x50, 0x1f, 0xc2, 0x18, 0x87, 0xa2, 0xd8, - 0xb2, 0x24, 0x56, 0xb2, 0x7f, 0xac, 0x1c, 0xa3, 0xad, 0x61, 0xcb, 0x12, 0xb2, 0xfa, 0x8b, 0x11, - 0x80, 0x5a, 0x78, 0xfd, 0x73, 0x69, 0x26, 0x77, 0x1f, 0x80, 0x6d, 0x58, 0x65, 0x1e, 0x22, 0xd2, - 0xb8, 0x34, 0xab, 0x11, 0x69, 0x48, 0x5b, 0x9e, 0x92, 0xec, 0xc8, 0x53, 0x3a, 0x53, 0x91, 0xa1, - 0xdb, 0x4b, 0x45, 0x86, 0x6f, 0x3f, 0x15, 0x19, 0xb9, 0x61, 0x2a, 0xd2, 0x73, 0x2f, 0x1c, 0xe5, - 0x29, 0xa9, 0xdb, 0xcd, 0x53, 0xd2, 0x5f, 0x4c, 0x9e, 0x02, 0xb7, 0xbc, 0x87, 0xca, 0xdc, 0x74, - 0x0f, 0x95, 0xbd, 0x72, 0x0f, 0x95, 0xbb, 0x24, 0xdb, 0x78, 0x00, 0x39, 0x69, 0xc7, 0x32, 0xd9, - 0x10, 0x17, 0x08, 0x59, 0x61, 0xca, 0x72, 0x07, 0xd5, 0x99, 0x92, 0x8c, 0x75, 0x49, 0x49, 0xca, - 0x7f, 0xa4, 0xc0, 0xe8, 0x1a, 0x6e, 0xb8, 0x94, 0xf8, 0xea, 0x2e, 0x8c, 0xa3, 0x13, 0x44, 0x2c, - 0x74, 0xc0, 0x8f, 0x76, 0x2c, 0xe4, 0xb4, 0x38, 0x8a, 0xab, 0xd5, 0x11, 0x52, 0xaf, 0x08, 0x62, - 0xf5, 0x19, 0xe4, 0x7c, 0xd7, 0x47, 0x56, 0x88, 0x96, 0x18, 0xc4, 0xca, 0x19, 0xa5, 0x44, 0x2a, - 0xbf, 0x0d, 0x93, 0xb5, 0xe6, 0x01, 0x32, 0xf8, 0x8d, 0xc9, 0x9e, 0x87, 0x4c, 0xbc, 0xed, 0xb2, - 0x11, 0x26, 0x61, 0xd8, 0x71, 0x03, 0x3e, 0x73, 0x9a, 0x28, 0xb0, 0x90, 0x95, 0xe6, 0xa7, 0xb2, - 0xdc, 0x6f, 0x3f, 0x80, 0x1c, 0x0d, 0x69, 0x23, 0xdf, 0x9d, 0x8d, 0x2a, 0xab, 0x26, 0xeb, 0xc4, - 0xd7, 0x22, 0x36, 0x48, 0x83, 0x60, 0xc7, 0x0f, 0xb6, 0x79, 0x87, 0x18, 0x6b, 0x41, 0x9d, 0xfa, - 0x55, 0x18, 0x6e, 0xf7, 0x55, 0x57, 0xce, 0x43, 0x50, 0xa8, 0xdf, 0x80, 0x54, 0x60, 0x95, 0x83, - 0xb8, 0x8d, 0x90, 0x48, 0x2d, 0x40, 0xd2, 0x20, 0xa6, 0xf0, 0x13, 0x1a, 0xfb, 0x59, 0xfe, 0x24, - 0x01, 0x69, 0xe6, 0xf6, 0xf8, 0x4c, 0xaf, 0x3a, 0x31, 0x04, 0x71, 0xfe, 0x4d, 0x9c, 0x43, 0x57, - 0xde, 0x72, 0x3f, 0xec, 0xb5, 0x62, 0x43, 0xe9, 0xc9, 0x8b, 0x90, 0xb4, 0x1b, 0x8a, 0x73, 0x2d, - 0xc0, 0xe2, 0x3b, 0xd8, 0x24, 0x5f, 0xfd, 0x57, 0x63, 0xf1, 0x2d, 0xac, 0x40, 0xe1, 0x3b, 0x58, - 0x66, 0x1a, 0x1e, 0x39, 0x3a, 0xc2, 0x9e, 0x74, 0xff, 0x43, 0x03, 0x84, 0x12, 0x49, 0x29, 0xbc, - 0xff, 0x0f, 0x13, 0x90, 0x67, 0x62, 0xd8, 0x24, 0x36, 0x91, 0xb2, 0x68, 0x9d, 0xae, 0x72, 0x8b, - 0xd3, 0x4d, 0x5c, 0x73, 0xba, 0xdf, 0x80, 0xd4, 0x21, 0xb1, 0xf8, 0xe2, 0x18, 0xc4, 0x78, 0x42, - 0xa2, 0xdb, 0x93, 0x17, 0x0b, 0x83, 0x62, 0x42, 0x75, 0x44, 0xeb, 0xdc, 0x9e, 0xb2, 0x92, 0xd3, - 0x67, 0x88, 0xd6, 0xcb, 0xff, 0x98, 0x80, 0xb1, 0x28, 0x98, 0xde, 0xbe, 0x3c, 0x37, 0x20, 0x2b, - 0xbd, 0x81, 0xce, 0xaf, 0x12, 0x06, 0x70, 0x09, 0x19, 0x49, 0xf8, 0xcc, 0xb5, 0xcc, 0xb6, 0x69, - 0x24, 0xdb, 0xa6, 0xd1, 0xa6, 0xb6, 0xa1, 0xdb, 0xb2, 0xd2, 0xe1, 0xeb, 0x5a, 0xe9, 0xdf, 0x27, - 0x60, 0xac, 0xed, 0x7a, 0xf7, 0x7f, 0xdb, 0x92, 0xfd, 0x1a, 0x8c, 0x88, 0xd3, 0xb8, 0x41, 0x1c, - 0x98, 0x24, 0xb9, 0x45, 0x49, 0xfe, 0x67, 0x12, 0xe6, 0xa2, 0x58, 0xc0, 0x39, 0x3d, 0x70, 0xdd, - 0xe3, 0x2d, 0xec, 0x23, 0x13, 0xf9, 0x48, 0xfd, 0x2a, 0xcc, 0x9c, 0x20, 0x87, 0xad, 0x1b, 0xdd, - 0x62, 0x2e, 0x41, 0xde, 0xfc, 0x89, 0xbb, 0x76, 0x11, 0x26, 0xa6, 0x64, 0x87, 0xc8, 0x65, 0x88, - 0x6b, 0xf6, 0x27, 0x70, 0x5f, 0x1e, 0x3b, 0xf2, 0xbb, 0xaf, 0x4e, 0xf2, 0x04, 0x27, 0x9f, 0x11, - 0x9d, 0x76, 0x1c, 0xeb, 0xac, 0x1d, 0xa1, 0x0e, 0xf3, 0xe8, 0xe8, 0xc8, 0xc3, 0x47, 0x6c, 0xdb, - 0x18, 0xc7, 0x0a, 0x9d, 0xff, 0x00, 0xab, 0x7f, 0x2e, 0x84, 0xd2, 0xc2, 0x01, 0x83, 0xc4, 0x44, - 0x45, 0x30, 0x1b, 0x8d, 0x14, 0x4c, 0xf8, 0x3a, 0x21, 0xa6, 0x18, 0xc2, 0x7c, 0x24, 0x50, 0xc2, - 0x21, 0xd6, 0x61, 0x21, 0x00, 0x36, 0x5c, 0xc7, 0x24, 0x22, 0x85, 0x69, 0x11, 0x88, 0x38, 0x71, - 0xbc, 0x27, 0xbb, 0xad, 0x46, 0xbd, 0x62, 0x32, 0xd9, 0x84, 0x07, 0x71, 0x49, 0x5c, 0x06, 0x35, - 0xc2, 0xa1, 0x16, 0x22, 0xd9, 0x76, 0x45, 0x2b, 0xff, 0x8d, 0x02, 0x63, 0x6d, 0xea, 0x8f, 0xe2, - 0xb2, 0x72, 0xa3, 0xb8, 0x9c, 0xb8, 0x4e, 0x5c, 0x2e, 0x43, 0x96, 0xd0, 0x48, 0x3f, 0x5c, 0xbf, - 0x29, 0xad, 0xa5, 0x2e, 0x88, 0xdd, 0x43, 0x51, 0xec, 0x7e, 0x05, 0x13, 0x6d, 0x93, 0x58, 0x63, - 0xb6, 0x5b, 0x81, 0x61, 0x2e, 0x12, 0xe9, 0x63, 0xdf, 0xea, 0xb5, 0x46, 0xdb, 0xe8, 0x35, 0x41, - 0xd9, 0xe6, 0x17, 0x13, 0xed, 0xee, 0xfd, 0xb7, 0x93, 0x30, 0x19, 0xf9, 0xa1, 0x9f, 0xe9, 0x98, - 0x19, 0xf9, 0x9b, 0xe4, 0xe0, 0xfe, 0x26, 0x1e, 0x70, 0x87, 0x6e, 0x25, 0xe0, 0x0e, 0xdf, 0x4e, - 0xc0, 0x1d, 0x69, 0xd7, 0xc8, 0xef, 0x26, 0xe1, 0x6e, 0xfb, 0xc9, 0xc3, 0xff, 0x49, 0x95, 0xac, - 0x41, 0x46, 0xde, 0xe6, 0xf0, 0xc0, 0x3f, 0x80, 0x56, 0x40, 0xd0, 0xf1, 0xb8, 0xff, 0xdf, 0xa6, - 0x97, 0xbf, 0x4d, 0x40, 0x6a, 0x97, 0x6d, 0x8c, 0x88, 0xeb, 0xa8, 0x53, 0x30, 0x42, 0xe8, 0xa6, - 0x2b, 0x4f, 0xb7, 0x52, 0x9a, 0x2c, 0xdd, 0xdc, 0x7d, 0xac, 0x41, 0x06, 0x3b, 0xbe, 0x77, 0xa6, - 0x0f, 0xbc, 0xb1, 0x00, 0x4e, 0x27, 0xa6, 0x72, 0xa3, 0xd0, 0xfc, 0x1d, 0x28, 0x76, 0x9e, 0xe2, - 0xe9, 0x1c, 0x7d, 0x90, 0x63, 0x89, 0xa9, 0x8e, 0xb3, 0xbc, 0x75, 0x06, 0x51, 0xae, 0xc2, 0x64, - 0xcc, 0xa8, 0xab, 0x8e, 0x49, 0x0c, 0xe4, 0xbb, 0x57, 0x64, 0x3f, 0x93, 0x30, 0x4c, 0xe8, 0x4a, - 0x53, 0x08, 0x35, 0xa5, 0x89, 0x42, 0xf9, 0x1f, 0x12, 0x90, 0xe2, 0x9b, 0xbf, 0x4d, 0xb7, 0x55, - 0xf4, 0xca, 0x75, 0x44, 0x1f, 0x46, 0x8d, 0xc4, 0xc0, 0x51, 0xa3, 0x63, 0x4b, 0x29, 0xf2, 0xcf, - 0xd6, 0x2d, 0xe5, 0x7b, 0x90, 0x3c, 0xc4, 0x03, 0x79, 0x1f, 0xd6, 0xff, 0x8a, 0xfc, 0x5c, 0x7d, - 0x1f, 0xee, 0xb6, 0x6c, 0x54, 0x75, 0x64, 0x9a, 0x1e, 0xa6, 0x54, 0x18, 0x30, 0x5f, 0xf8, 0x8a, - 0x36, 0x11, 0xdf, 0xb6, 0x56, 0x44, 0x87, 0x20, 0x0a, 0x8d, 0x46, 0x51, 0xe8, 0xf7, 0x13, 0x90, - 0x0b, 0x4c, 0x7c, 0x0d, 0x5b, 0x3e, 0x52, 0xa7, 0x61, 0x94, 0x50, 0xdd, 0xea, 0x34, 0x74, 0x0d, - 0x54, 0x7c, 0x8a, 0x8d, 0x26, 0xbf, 0x16, 0xb8, 0x8e, 0xc9, 0x8f, 0x87, 0xe4, 0x61, 0x7e, 0xb1, - 0x0d, 0x85, 0x08, 0x73, 0x70, 0xbf, 0x32, 0x16, 0x12, 0x8b, 0x5b, 0x5e, 0x75, 0x13, 0xa2, 0xaa, - 0x8e, 0x5d, 0xd2, 0x95, 0x70, 0xf9, 0x90, 0x56, 0xe4, 0x99, 0x7f, 0x98, 0x04, 0x35, 0xf6, 0x70, - 0x38, 0x30, 0xbb, 0xae, 0xa7, 0x09, 0xed, 0xaa, 0xdf, 0x85, 0x7c, 0x43, 0xca, 0x55, 0x37, 0x99, - 0x60, 0x65, 0x02, 0xff, 0x66, 0x2f, 0x8f, 0xdb, 0xa2, 0x09, 0x2d, 0xd7, 0x68, 0x51, 0xcc, 0xd7, - 0x60, 0xa4, 0x81, 0xce, 0xdc, 0xa6, 0x3f, 0x90, 0xe7, 0x15, 0x24, 0x3f, 0xfb, 0x96, 0xc8, 0x38, - 0x6c, 0x38, 0xd6, 0x20, 0x2f, 0x69, 0x58, 0xff, 0xf2, 0x2f, 0x83, 0x1a, 0xa5, 0x41, 0xa1, 0xb3, - 0x7e, 0x02, 0xa9, 0x40, 0x78, 0x32, 0x6a, 0xbe, 0xde, 0x8f, 0xdc, 0xb5, 0x90, 0xaa, 0x53, 0xc9, - 0x89, 0x4e, 0x25, 0x97, 0x5f, 0xc1, 0x78, 0x34, 0x78, 0x70, 0x88, 0xd6, 0x97, 0x79, 0x7c, 0x1d, - 0x46, 0x4d, 0xd1, 0x5f, 0xda, 0xc5, 0x83, 0x5e, 0xfc, 0x49, 0x68, 0x2d, 0xa0, 0x29, 0x37, 0x20, - 0x27, 0xeb, 0xf6, 0x1b, 0x26, 0xf2, 0xf9, 0x29, 0x98, 0x38, 0xb4, 0x16, 0x6e, 0x54, 0x14, 0xd4, - 0x2a, 0xa4, 0x24, 0x05, 0x2d, 0x26, 0x4a, 0xc9, 0xc5, 0xcc, 0xbb, 0xef, 0xf4, 0x97, 0x4f, 0x06, - 0x03, 0x86, 0xe4, 0xe5, 0x1f, 0x2a, 0x50, 0xd8, 0x75, 0x89, 0xe3, 0xd3, 0xd8, 0x1b, 0xb5, 0x6f, - 0xc3, 0xb4, 0x38, 0x0f, 0x6f, 0xf0, 0x96, 0xf8, 0x7b, 0xb4, 0x01, 0xfc, 0xf1, 0x5d, 0x8e, 0xd1, - 0x0d, 0xdc, 0xbf, 0x04, 0x7c, 0x00, 0xa7, 0x73, 0xd7, 0xef, 0x06, 0x5e, 0xfe, 0x69, 0x02, 0xe6, - 0xf7, 0xe2, 0x4f, 0x96, 0x57, 0x91, 0xdd, 0x40, 0xe4, 0xc8, 0x59, 0x71, 0x5d, 0x2a, 0x2e, 0x7b, - 0xde, 0x83, 0xe9, 0x03, 0x56, 0xc0, 0xa6, 0xde, 0xf2, 0x85, 0x8a, 0x49, 0x8b, 0x0a, 0x7f, 0x5d, - 0x38, 0x29, 0x9b, 0xa3, 0xb3, 0x92, 0xaa, 0x49, 0xd5, 0x17, 0x30, 0x1d, 0xef, 0x1e, 0x71, 0x1d, - 0xa8, 0xe0, 0xed, 0xde, 0x96, 0xd8, 0xca, 0xa8, 0x4c, 0xe3, 0xee, 0x46, 0xdf, 0xb6, 0x44, 0x6d, - 0x54, 0xad, 0xc0, 0xfd, 0x80, 0xc5, 0x2e, 0x5f, 0xb7, 0x98, 0xb4, 0x98, 0xe4, 0x8c, 0xce, 0xca, - 0x4e, 0xed, 0x39, 0x26, 0x63, 0xf7, 0x04, 0xee, 0x77, 0x92, 0xc6, 0x99, 0x1e, 0xba, 0x36, 0xd3, - 0x73, 0xed, 0xdf, 0xc8, 0xc4, 0x58, 0x2f, 0xff, 0x95, 0x02, 0x6a, 0x20, 0x73, 0xa1, 0x81, 0x5d, - 0x57, 0x3c, 0xa3, 0x69, 0xbf, 0xa9, 0x16, 0xb7, 0x5b, 0x79, 0xda, 0x7a, 0x4b, 0xfd, 0x2b, 0x30, - 0x29, 0x9e, 0x6f, 0x0a, 0x88, 0xe0, 0x7d, 0xba, 0x94, 0x71, 0x8f, 0x67, 0xdd, 0x5f, 0x66, 0xbc, - 0xfd, 0xe9, 0xbf, 0x2c, 0x2c, 0x1e, 0x11, 0xbf, 0xde, 0x3c, 0x58, 0x32, 0x5c, 0x7b, 0x59, 0x7e, - 0xe8, 0x24, 0xfe, 0x7b, 0x87, 0x9a, 0xc7, 0xcb, 0x2c, 0x47, 0xa6, 0x9c, 0x80, 0x6a, 0xaa, 0x8d, - 0x4e, 0x5b, 0x59, 0xa5, 0xe5, 0x3f, 0x49, 0xc0, 0x4c, 0x57, 0xfb, 0xe1, 0xa6, 0xf3, 0x01, 0xcc, - 0x84, 0x8c, 0x05, 0x0f, 0xe5, 0xc3, 0x17, 0xae, 0x62, 0x3e, 0xd3, 0x41, 0x87, 0xe0, 0x8d, 0x7c, - 0xf0, 0x98, 0xf5, 0x35, 0xc8, 0xc6, 0x2e, 0xa1, 0xc4, 0x84, 0xd2, 0x5a, 0x26, 0xba, 0x85, 0xa2, - 0x6a, 0x13, 0x66, 0x5a, 0x9f, 0xe5, 0xeb, 0x5c, 0xc1, 0x62, 0x93, 0x90, 0xe4, 0xee, 0xe4, 0x83, - 0x5e, 0xfa, 0xea, 0x6d, 0xf8, 0xda, 0x54, 0xcb, 0x5b, 0xfe, 0x68, 0x41, 0x7c, 0x05, 0xa6, 0x4d, - 0x42, 0x5f, 0x36, 0x91, 0x45, 0x0e, 0x09, 0x36, 0xe3, 0x76, 0x36, 0xc4, 0x99, 0xbc, 0x1b, 0x6f, - 0x0e, 0x4d, 0xac, 0xfc, 0xd7, 0x09, 0x98, 0xd8, 0xc0, 0x78, 0x8d, 0x50, 0x71, 0x76, 0x4f, 0xe4, - 0x86, 0xa4, 0x06, 0x13, 0xc2, 0x7b, 0x98, 0xb2, 0x45, 0x5c, 0x5a, 0x0d, 0x72, 0x79, 0xcc, 0xe9, - 0x03, 0x60, 0x7e, 0x65, 0x55, 0x83, 0x09, 0xbf, 0x0b, 0xe8, 0x20, 0x69, 0x8a, 0xdf, 0x01, 0xba, - 0x02, 0x39, 0xf9, 0xc5, 0x05, 0xb2, 0xf9, 0x49, 0x45, 0xb2, 0x9f, 0x17, 0xc3, 0x59, 0x41, 0x53, - 0xe1, 0x24, 0x2c, 0x7c, 0x9f, 0xb8, 0x56, 0xd3, 0x1e, 0x28, 0x08, 0x4b, 0x92, 0xf2, 0x6f, 0xb6, - 0x8a, 0xb0, 0x66, 0xd4, 0xb1, 0xd9, 0xb4, 0xf8, 0x3b, 0xdb, 0x83, 0xa6, 0xc1, 0xb4, 0x10, 0x1d, - 0x6e, 0x0d, 0x69, 0x19, 0x51, 0x27, 0xce, 0x5e, 0xde, 0x80, 0x31, 0xd9, 0x25, 0xfc, 0x64, 0x43, - 0x3c, 0x17, 0xc9, 0x8b, 0xea, 0xf0, 0x1b, 0x8d, 0x76, 0xc3, 0x4b, 0x76, 0x1a, 0xde, 0x36, 0x80, - 0x4f, 0xe4, 0x6e, 0x34, 0xf0, 0x0c, 0xcb, 0xbd, 0x2c, 0xad, 0x8b, 0xda, 0xb5, 0xb4, 0x2f, 0x7f, - 0xd1, 0x5e, 0x16, 0x35, 0xdc, 0xcb, 0xa2, 0xb6, 0x40, 0x6d, 0x43, 0xde, 0xdb, 0xdb, 0x54, 0x55, - 0x18, 0xf2, 0x83, 0xd0, 0x33, 0xa4, 0xf1, 0xdf, 0x2c, 0x18, 0xfb, 0xbe, 0xd5, 0xf1, 0x54, 0x26, - 0xeb, 0xfb, 0x56, 0x74, 0x55, 0xfe, 0x07, 0x0a, 0x64, 0x3f, 0xe2, 0x82, 0xd6, 0xb0, 0xe1, 0x7a, - 0x26, 0xbf, 0xea, 0xe3, 0x46, 0x24, 0x35, 0xa6, 0x0c, 0x72, 0xd5, 0xc7, 0x08, 0x05, 0x1a, 0xc3, - 0xf1, 0xe3, 0x38, 0x83, 0x9c, 0x74, 0xfb, 0x11, 0x4e, 0xf9, 0x77, 0x14, 0xc8, 0x57, 0x44, 0x64, - 0x96, 0x0e, 0x48, 0x2d, 0xc2, 0xa8, 0x8c, 0xd5, 0x32, 0xe4, 0x07, 0x45, 0x15, 0xc3, 0xe8, 0x17, - 0xe8, 0x0c, 0x03, 0xec, 0xf2, 0xaf, 0x29, 0x90, 0xe5, 0x29, 0xb1, 0x90, 0x19, 0xed, 0xbd, 0x9b, - 0x7b, 0x0e, 0x93, 0x16, 0xf2, 0x31, 0xf5, 0x75, 0xe6, 0x5c, 0x78, 0xca, 0xe8, 0x46, 0x1c, 0xbe, - 0x71, 0x95, 0xb7, 0x92, 0x83, 0x68, 0xaa, 0x00, 0x89, 0x8f, 0x5b, 0xfe, 0x0a, 0xe4, 0xa2, 0xc4, - 0xa5, 0xba, 0xc6, 0x2f, 0x3e, 0x5b, 0x12, 0x30, 0x11, 0xaf, 0xb3, 0x5a, 0x2e, 0x9e, 0x81, 0xd1, - 0xf2, 0x1f, 0x2b, 0x90, 0x89, 0x01, 0xa9, 0xf7, 0x20, 0xdd, 0x1e, 0x74, 0xa2, 0x8a, 0x9b, 0x6c, - 0x15, 0xe3, 0xdb, 0xd4, 0xe4, 0x35, 0xb6, 0xa9, 0x65, 0x1b, 0x86, 0xc5, 0x37, 0x3e, 0x8f, 0x41, - 0x69, 0x0c, 0x62, 0x8c, 0x4a, 0x83, 0x91, 0xbc, 0x1c, 0x84, 0x67, 0xe5, 0x65, 0xf9, 0xf7, 0x14, - 0x58, 0xa8, 0x04, 0x27, 0xc2, 0x91, 0x68, 0x5b, 0x56, 0x48, 0x5f, 0x37, 0xaa, 0x3b, 0x90, 0x97, - 0x16, 0x21, 0xec, 0x3f, 0x50, 0x77, 0x1f, 0x2f, 0x05, 0xe4, 0x60, 0x39, 0x3b, 0x56, 0xa2, 0xe5, - 0x4f, 0x15, 0xb8, 0x17, 0x72, 0x56, 0xe9, 0xc2, 0xd6, 0xe5, 0xab, 0xe2, 0xd6, 0x79, 0xa1, 0x90, - 0x8d, 0x37, 0xf7, 0x36, 0xff, 0x8d, 0xd0, 0xf9, 0x8b, 0x6c, 0xbf, 0xe7, 0xa8, 0xf1, 0x19, 0xc9, - 0x54, 0x2a, 0x88, 0x03, 0x15, 0x96, 0xf7, 0x3b, 0xae, 0x1d, 0x5e, 0xf2, 0x77, 0xcf, 0xfb, 0x67, - 0x59, 0xde, 0x2f, 0x2f, 0xfd, 0x13, 0xdc, 0x1b, 0x86, 0xe5, 0x32, 0x06, 0xf5, 0xa9, 0x87, 0x1c, - 0xbf, 0xd2, 0xf4, 0xeb, 0xae, 0x47, 0x3e, 0x16, 0xce, 0xbf, 0x08, 0xa3, 0x47, 0xac, 0x56, 0x7e, - 0x6e, 0x9d, 0xd6, 0x82, 0xa2, 0xfa, 0x1e, 0x8c, 0xc8, 0xa0, 0x97, 0xe8, 0x27, 0xe8, 0xc9, 0xce, - 0xe5, 0xef, 0x42, 0xa6, 0xc2, 0xe7, 0xc7, 0x07, 0x8b, 0xf0, 0xbd, 0x56, 0x7c, 0xef, 0xba, 0xf8, - 0xdf, 0x53, 0x20, 0xbf, 0x7e, 0x78, 0x88, 0xfb, 0x1a, 0xa3, 0x0a, 0xe3, 0x0e, 0xf6, 0x75, 0x51, - 0x94, 0x5f, 0x4f, 0xf6, 0x37, 0xdc, 0x98, 0x83, 0xfd, 0xa7, 0x82, 0x8c, 0x7f, 0x27, 0xa9, 0xce, - 0x40, 0x8a, 0x50, 0xfd, 0x04, 0x59, 0xf2, 0xc8, 0x27, 0xa5, 0x8d, 0x12, 0xfa, 0x11, 0x2b, 0x96, - 0x1b, 0x50, 0xe0, 0xca, 0xd9, 0x6a, 0x7d, 0xec, 0xd1, 0x45, 0x3f, 0xed, 0x4f, 0x49, 0x12, 0xd7, - 0x7b, 0x4a, 0xf2, 0xc8, 0x87, 0x7b, 0xbd, 0xbe, 0x18, 0x54, 0x01, 0x46, 0xb6, 0xdd, 0x03, 0xd7, - 0x3c, 0x2b, 0xdc, 0x51, 0xcb, 0x30, 0xbf, 0x82, 0x8f, 0x88, 0xb3, 0x62, 0xb9, 0xc6, 0x31, 0xf6, - 0x6a, 0x36, 0xf2, 0xfc, 0x55, 0xd7, 0xf1, 0x3d, 0x64, 0xf8, 0x74, 0xc7, 0xb1, 0xce, 0x0a, 0x8a, - 0x3a, 0x05, 0x6a, 0x97, 0xfa, 0x84, 0x9a, 0x85, 0xd4, 0xfa, 0x09, 0xf6, 0xce, 0x5c, 0x07, 0x17, - 0x92, 0x8f, 0xf6, 0x02, 0xcb, 0x17, 0xcf, 0x79, 0xd4, 0x31, 0xc8, 0xec, 0x3b, 0xb4, 0x81, 0x0d, - 0x1e, 0xa5, 0x0b, 0x77, 0xd8, 0xb0, 0x42, 0xf7, 0x05, 0x85, 0xfd, 0xde, 0x45, 0x4d, 0x8a, 0xcd, - 0x42, 0x42, 0xcd, 0x03, 0xac, 0x61, 0xdb, 0xb5, 0x08, 0xad, 0x63, 0xb3, 0x90, 0x54, 0x33, 0x30, - 0xca, 0x9f, 0xc1, 0x62, 0xb3, 0x30, 0xf4, 0xe8, 0x2f, 0x13, 0xf2, 0xc5, 0x06, 0x3f, 0x66, 0x2e, - 0x41, 0x66, 0x7f, 0xbb, 0xb6, 0xbb, 0xbe, 0x5a, 0xdd, 0xa8, 0xae, 0xaf, 0x15, 0xee, 0xcc, 0x8e, - 0x9d, 0x5f, 0x94, 0xe2, 0x55, 0x6a, 0x01, 0x92, 0x2b, 0xfb, 0xcf, 0x0b, 0xca, 0xec, 0xe8, 0xf9, - 0x45, 0x89, 0xfd, 0x64, 0xf1, 0xbf, 0xb6, 0xbe, 0xb9, 0x59, 0x48, 0xcc, 0xa6, 0xce, 0x2f, 0x4a, - 0xfc, 0x37, 0x5b, 0x09, 0xb5, 0xbd, 0x9d, 0x5d, 0x9d, 0x75, 0x4d, 0xce, 0x66, 0xcf, 0x2f, 0x4a, - 0x61, 0x99, 0x39, 0x7c, 0xfe, 0x9b, 0x13, 0x0d, 0xcd, 0xe6, 0xce, 0x2f, 0x4a, 0x51, 0x05, 0xa3, - 0xdc, 0xab, 0x7c, 0xb8, 0xce, 0x29, 0x87, 0x05, 0x65, 0x50, 0x66, 0x94, 0xfc, 0x37, 0xa7, 0x1c, - 0x11, 0x94, 0x61, 0x85, 0x3a, 0x05, 0x23, 0x2b, 0xfb, 0xcf, 0xf5, 0xdd, 0x9d, 0xc2, 0xe8, 0x2c, - 0x9c, 0x5f, 0x94, 0x64, 0x89, 0xd9, 0x27, 0x6b, 0x67, 0x0d, 0xa9, 0xd9, 0xcc, 0xf9, 0x45, 0x29, - 0x28, 0xaa, 0xf3, 0x00, 0xac, 0x4f, 0x65, 0x6f, 0x67, 0xab, 0xba, 0x5a, 0x48, 0xcf, 0xe6, 0xcf, - 0x2f, 0x4a, 0xb1, 0x1a, 0x26, 0x0d, 0xde, 0x55, 0x76, 0x00, 0x21, 0x8d, 0x58, 0xd5, 0xa3, 0x3f, - 0x53, 0x20, 0xb7, 0x1e, 0x9c, 0x5e, 0x71, 0x09, 0xde, 0x83, 0x62, 0x4c, 0x2b, 0x2d, 0x6d, 0x42, - 0x45, 0x42, 0x87, 0x05, 0x45, 0xcd, 0x41, 0x9a, 0xdf, 0x02, 0x6d, 0x10, 0xcb, 0x2a, 0x24, 0xd4, - 0x59, 0x98, 0xe2, 0xc5, 0x2d, 0xe4, 0x1b, 0x75, 0x4d, 0x7c, 0xc8, 0xcb, 0x15, 0x53, 0x48, 0x32, - 0x03, 0x89, 0xda, 0xb6, 0xf1, 0x2b, 0x51, 0x3f, 0xa4, 0xde, 0x85, 0x71, 0xf9, 0x1d, 0xa1, 0xfc, - 0x38, 0x97, 0xb8, 0x4e, 0x61, 0x98, 0x41, 0x89, 0x77, 0xce, 0xed, 0xaf, 0x29, 0x0b, 0x23, 0x8f, - 0x3e, 0x0d, 0xf4, 0xbd, 0x85, 0xe8, 0x31, 0x93, 0xd9, 0xfe, 0xf6, 0x7e, 0x8d, 0xab, 0x9a, 0xcb, - 0x4c, 0x94, 0x98, 0x96, 0x2b, 0xdb, 0xa1, 0x96, 0x2b, 0xdb, 0xcf, 0x99, 0x14, 0xb5, 0xf5, 0xa7, - 0xfb, 0x9b, 0x15, 0xad, 0x90, 0x10, 0x52, 0x94, 0x45, 0x26, 0xa5, 0xd5, 0x9d, 0xed, 0xb5, 0xea, - 0x5e, 0x75, 0x67, 0xbb, 0xc2, 0x34, 0xca, 0xa5, 0x14, 0xab, 0x52, 0x97, 0x60, 0x7a, 0xad, 0xaa, - 0xad, 0xaf, 0xb2, 0x22, 0x53, 0xa4, 0xbe, 0xa3, 0xe9, 0xcf, 0xaa, 0x4f, 0x9f, 0xad, 0x6b, 0x85, - 0xd4, 0xec, 0xf8, 0xf9, 0x45, 0x29, 0xd7, 0x52, 0xd9, 0xda, 0x9f, 0x8b, 0x7b, 0x47, 0xd3, 0x37, - 0x77, 0x7e, 0x71, 0x5d, 0x2b, 0x14, 0x44, 0xff, 0x96, 0x4a, 0x75, 0x0e, 0x32, 0x7b, 0xcf, 0x77, - 0xd7, 0xf5, 0xad, 0x8a, 0xf6, 0xe1, 0xfa, 0x5e, 0xa1, 0x24, 0xa6, 0x22, 0x4a, 0xea, 0x0c, 0x00, - 0x6f, 0xdc, 0xac, 0x6e, 0x55, 0xf7, 0x0a, 0x4f, 0x66, 0xd3, 0xe7, 0x17, 0xa5, 0x61, 0x5e, 0x58, - 0xa9, 0xff, 0xe0, 0xb3, 0x79, 0xe5, 0x47, 0x9f, 0xcd, 0x2b, 0xff, 0xfa, 0xd9, 0xbc, 0xf2, 0xbd, - 0xcf, 0xe7, 0xef, 0xfc, 0xe8, 0xf3, 0xf9, 0x3b, 0xff, 0xf4, 0xf9, 0xfc, 0x9d, 0x6f, 0x6d, 0xc7, - 0x12, 0xb3, 0x6a, 0x10, 0x32, 0x36, 0xd1, 0x01, 0x5d, 0x0e, 0x03, 0xc8, 0x3b, 0x86, 0xeb, 0xe1, - 0x78, 0xb1, 0x8e, 0x88, 0xb3, 0x6c, 0xbb, 0x6c, 0x83, 0x40, 0xa3, 0x3f, 0x0b, 0xc2, 0x93, 0xb8, - 0x83, 0x11, 0xfe, 0x31, 0xea, 0xcf, 0xfd, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x33, 0x66, 0xcd, - 0x71, 0x39, 0x44, 0x00, 0x00, + // 4634 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xdd, 0x6f, 0x24, 0x57, + 0x56, 0x9f, 0xea, 0xf6, 0x47, 0xfb, 0xb8, 0xbb, 0xdd, 0xbe, 0xf6, 0xd8, 0x6d, 0x7b, 0xc6, 0xee, + 0xf4, 0xec, 0x6c, 0x26, 0x93, 0xc4, 0xde, 0xc9, 0x92, 0x55, 0x92, 0xd5, 0x6a, 0xd3, 0xfe, 0x9a, + 0x69, 0xe2, 0xaf, 0x54, 0xdb, 0x81, 0xec, 0x6a, 0xb7, 0x74, 0x5d, 0x75, 0xed, 0xbe, 0x71, 0x75, + 0x55, 0x4f, 0xdd, 0x6a, 0x8f, 0x1d, 0x84, 0xc4, 0x43, 0x84, 0x88, 0x01, 0xb1, 0x3c, 0x20, 0x24, + 0xa4, 0x41, 0xcb, 0x03, 0x42, 0xf0, 0x02, 0x8f, 0x2b, 0xc1, 0x03, 0x12, 0x82, 0xdd, 0x87, 0x45, + 0xda, 0x07, 0x1e, 0x10, 0x0f, 0x0b, 0x4a, 0x90, 0x40, 0xfc, 0x0d, 0x68, 0x85, 0xee, 0x47, 0x7d, + 0xf4, 0x87, 0xdb, 0x5d, 0x1e, 0x07, 0x16, 0x78, 0x99, 0xe9, 0xfb, 0x71, 0x7e, 0xe7, 0xde, 0x73, + 0xce, 0x3d, 0xe7, 0xdc, 0x8f, 0x32, 0xbc, 0x42, 0x9d, 0x8f, 0x88, 0xe9, 0xd3, 0x53, 0xb2, 0x42, + 0xce, 0xcc, 0x3a, 0x76, 0x8e, 0xc9, 0xca, 0xe9, 0xa3, 0x43, 0xe2, 0xe3, 0x47, 0x61, 0xc5, 0x72, + 0xd3, 0x73, 0x7d, 0x17, 0xcd, 0x87, 0x5d, 0x97, 0xc3, 0x16, 0xd5, 0x75, 0x7e, 0xfa, 0xd8, 0x3d, + 0x76, 0x45, 0xb7, 0x15, 0xfe, 0x4b, 0x52, 0xcc, 0x2f, 0x9a, 0x2e, 0x6b, 0xb8, 0x6c, 0xe5, 0x10, + 0xb3, 0x08, 0xd5, 0x74, 0xa9, 0xa3, 0xda, 0xef, 0x47, 0xcc, 0x5d, 0x0f, 0x9b, 0x76, 0xd4, 0x49, + 0x16, 0x55, 0xb7, 0x49, 0xdc, 0xa0, 0x8e, 0xbb, 0x22, 0xfe, 0x95, 0x55, 0xe5, 0x1f, 0x68, 0x30, + 0xb1, 0xdb, 0x24, 0xce, 0x8e, 0xeb, 0x53, 0xd7, 0xc1, 0xf6, 0x1a, 0x6e, 0xa2, 0xf7, 0x21, 0xd3, + 0x72, 0x4c, 0xdc, 0x6c, 0x12, 0xab, 0xa8, 0x95, 0xb4, 0x07, 0xe3, 0x6f, 0x7c, 0x75, 0xf9, 0xf2, + 0x21, 0x2f, 0x77, 0x90, 0x1f, 0x28, 0xd2, 0x27, 0xb7, 0xf4, 0x10, 0x06, 0xbd, 0x07, 0x23, 0x0a, + 0x30, 0x25, 0x00, 0x1f, 0x25, 0x00, 0x5c, 0x0b, 0xe0, 0x14, 0xc4, 0xea, 0x30, 0xa4, 0x4d, 0xdc, + 0x2c, 0xcf, 0xc1, 0xec, 0x25, 0xac, 0xcb, 0x3a, 0xdc, 0xee, 0x09, 0x82, 0xde, 0x86, 0xe1, 0x53, + 0x6c, 0xb7, 0x88, 0x98, 0xd7, 0xd8, 0xea, 0xbd, 0x1f, 0xfd, 0x74, 0xe9, 0xd6, 0x3f, 0xfd, 0x74, + 0x69, 0x41, 0xca, 0x97, 0x59, 0x27, 0xcb, 0xd4, 0x5d, 0x69, 0x60, 0xbf, 0xbe, 0xbc, 0x45, 0x8e, + 0xb1, 0x79, 0xbe, 0x4e, 0x4c, 0x5d, 0x52, 0x94, 0x3f, 0x9d, 0x81, 0x91, 0x3d, 0xec, 0xe1, 0x06, + 0x43, 0x04, 0x96, 0x58, 0xd3, 0xf5, 0x8d, 0x06, 0xf6, 0x4e, 0x88, 0x6f, 0x50, 0x87, 0xf9, 0xd8, + 0xf1, 0x0d, 0x9b, 0x32, 0x9f, 0x3a, 0xc7, 0xc6, 0x11, 0x21, 0x4a, 0x6e, 0x73, 0xcb, 0x12, 0x78, + 0x99, 0x2b, 0x2e, 0x9c, 0xdf, 0x9a, 0x4b, 0x9d, 0xd5, 0x21, 0xce, 0x5a, 0x5f, 0xe0, 0x38, 0xdb, + 0x02, 0xa6, 0x2a, 0x51, 0xb6, 0x24, 0xc8, 0x26, 0x21, 0xe8, 0x29, 0xdc, 0xb7, 0x88, 0x47, 0x4f, + 0x31, 0x17, 0x53, 0x3f, 0x66, 0xa9, 0xc1, 0x98, 0xbd, 0x14, 0xa1, 0x5d, 0xc6, 0x12, 0xc3, 0x82, + 0x45, 0x8e, 0x70, 0xcb, 0xf6, 0x0d, 0x35, 0xc3, 0x13, 0xe2, 0x71, 0x1e, 0x86, 0x87, 0x7d, 0x52, + 0x4c, 0x0f, 0x2e, 0xb5, 0x59, 0x85, 0x53, 0x13, 0x13, 0x3c, 0x21, 0xde, 0x26, 0x21, 0x3a, 0xf6, + 0xbb, 0x59, 0xf8, 0xed, 0x2c, 0x86, 0xae, 0xc7, 0x62, 0x3f, 0xce, 0xa2, 0x01, 0x2f, 0x05, 0x2c, + 0xda, 0x04, 0xd8, 0xc6, 0x68, 0x78, 0x70, 0x46, 0x77, 0x15, 0xda, 0x7a, 0x4c, 0x7e, 0x57, 0xb2, + 0xeb, 0x98, 0xd7, 0xc8, 0x8b, 0xb0, 0x6b, 0x9b, 0x9d, 0x05, 0x77, 0x02, 0x76, 0xd4, 0xa1, 0x3e, + 0xc5, 0x36, 0xb7, 0x8d, 0x63, 0xea, 0x70, 0x46, 0xd4, 0x2d, 0x8e, 0x0e, 0xce, 0x69, 0x4e, 0x01, + 0x55, 0x25, 0xce, 0xb6, 0x80, 0xd1, 0x39, 0x0a, 0xb2, 0xa1, 0x14, 0x70, 0x69, 0x60, 0xea, 0xf8, + 0xc4, 0xc1, 0x8e, 0x49, 0xda, 0x39, 0x65, 0x92, 0xcf, 0x69, 0x3b, 0xc2, 0x8a, 0x73, 0x7b, 0x0b, + 0x8a, 0x01, 0xb7, 0xa3, 0x96, 0x63, 0x71, 0xc3, 0xe6, 0xfd, 0xbc, 0x53, 0x6c, 0x17, 0xc7, 0x4a, + 0xda, 0x83, 0xb4, 0x3e, 0xa3, 0xda, 0x37, 0x65, 0x73, 0x55, 0xb5, 0xa2, 0x57, 0xa0, 0x10, 0x50, + 0x34, 0x5a, 0xb6, 0x4f, 0x9b, 0x36, 0x29, 0x82, 0xa0, 0x98, 0x50, 0xf5, 0xdb, 0xaa, 0x1a, 0xfd, + 0x32, 0xcc, 0x78, 0xc4, 0xc6, 0xe7, 0x4a, 0x2d, 0xac, 0x8e, 0x3d, 0xa5, 0x9c, 0xf1, 0xc1, 0x27, + 0x32, 0xa5, 0x20, 0x36, 0x09, 0xa9, 0x71, 0x00, 0xa1, 0x12, 0x0a, 0x4b, 0xc1, 0xf0, 0xeb, 0x6e, + 0xcb, 0xb3, 0xcf, 0xc3, 0x59, 0x70, 0x78, 0xc3, 0xc4, 0xcd, 0x62, 0x76, 0x70, 0x16, 0xc1, 0xfa, + 0x78, 0x22, 0xa0, 0xd4, 0x84, 0x39, 0x1f, 0xee, 0x9c, 0x63, 0xda, 0x57, 0xac, 0x84, 0xa0, 0x08, + 0xf3, 0xe5, 0x54, 0x72, 0xc9, 0xb5, 0x2f, 0xf9, 0x54, 0x15, 0x8c, 0x98, 0xd0, 0x3a, 0x2c, 0x35, + 0xf0, 0x59, 0xdc, 0x9c, 0x5d, 0xcf, 0x22, 0x9e, 0xc1, 0xa8, 0x45, 0x0c, 0xd3, 0x6d, 0x39, 0x7e, + 0x31, 0x5f, 0xd2, 0x1e, 0xe4, 0xf4, 0x85, 0x06, 0x3e, 0x8b, 0xec, 0x74, 0x97, 0x77, 0xaa, 0x51, + 0x8b, 0xac, 0xf1, 0x2e, 0x88, 0xc1, 0xcb, 0xd4, 0xf9, 0xc8, 0xf0, 0xc8, 0x33, 0xec, 0x59, 0x06, + 0xe3, 0x2b, 0xc2, 0x32, 0x3c, 0xf2, 0xb4, 0x45, 0x3d, 0xd2, 0x20, 0x8e, 0x6f, 0xf8, 0x75, 0x8f, + 0xb0, 0xba, 0x6b, 0x5b, 0xc5, 0x09, 0x31, 0xec, 0xbb, 0x6a, 0xd8, 0xb7, 0xbb, 0x87, 0x5d, 0x75, + 0x7c, 0xfd, 0x1e, 0x75, 0x3e, 0xd2, 0x05, 0x58, 0x4d, 0x60, 0xe9, 0x11, 0xd4, 0x7e, 0x80, 0x84, + 0x1e, 0x43, 0xc9, 0xf7, 0xb0, 0x14, 0xbe, 0xe8, 0xcb, 0x8c, 0x53, 0x22, 0x7d, 0xa5, 0xd5, 0x12, + 0x76, 0xeb, 0x14, 0x0b, 0xc2, 0x40, 0xee, 0xaa, 0x7e, 0x12, 0x92, 0x7d, 0x20, 0x7b, 0xad, 0xab, + 0x4e, 0x5c, 0xd2, 0x36, 0x7d, 0xda, 0xa2, 0x16, 0xf6, 0x5d, 0x2f, 0x9c, 0x44, 0x64, 0x34, 0x93, + 0x09, 0x24, 0x1d, 0x01, 0xa9, 0xf1, 0x87, 0xa6, 0x73, 0x06, 0xaf, 0x1c, 0x52, 0x07, 0x7b, 0xe7, + 0x86, 0xdb, 0xe4, 0x6c, 0x59, 0x3f, 0x47, 0x8f, 0x06, 0x73, 0xf4, 0x5f, 0x92, 0x88, 0xbb, 0x12, + 0xf0, 0x32, 0x5f, 0xff, 0x6b, 0x1a, 0x94, 0xb0, 0xef, 0x36, 0xa8, 0x19, 0xb0, 0x94, 0x3a, 0xc6, + 0xa6, 0x49, 0x18, 0x33, 0x6c, 0x72, 0x4a, 0xec, 0xe2, 0x54, 0x49, 0x7b, 0x90, 0x7f, 0xe3, 0xad, + 0x7e, 0xe1, 0xba, 0x22, 0x30, 0x24, 0x17, 0x61, 0x00, 0x15, 0x01, 0xb0, 0xc5, 0xe9, 0xf5, 0x3b, + 0xb8, 0x4f, 0x2b, 0x3a, 0x83, 0x97, 0x45, 0x0c, 0xe8, 0x35, 0x0c, 0xbe, 0x44, 0xd5, 0x8a, 0xa6, + 0xc4, 0x2b, 0x4e, 0x0f, 0x2e, 0xed, 0x32, 0xc7, 0xec, 0x1a, 0xd5, 0x26, 0x21, 0xdb, 0x21, 0x1c, + 0xfa, 0x44, 0x83, 0xd7, 0x63, 0xd6, 0x3d, 0xc0, 0x00, 0x6e, 0x0f, 0x3e, 0x80, 0x07, 0x11, 0xf2, + 0x15, 0xc3, 0xf8, 0x4d, 0x0d, 0x1e, 0x75, 0xa8, 0x7f, 0x80, 0xa1, 0xcc, 0x0c, 0x3e, 0x94, 0x57, + 0xdb, 0x4c, 0xe1, 0x8a, 0xd1, 0x7c, 0x17, 0xe6, 0x1a, 0xd4, 0xa1, 0x0d, 0x6c, 0x1b, 0x22, 0x3b, + 0x34, 0x5d, 0x3b, 0x0a, 0x60, 0xb3, 0x83, 0x33, 0x9d, 0x51, 0x28, 0x7b, 0x0a, 0x24, 0x88, 0x5c, + 0xdf, 0x86, 0x57, 0x29, 0x0b, 0x0d, 0xbb, 0x3b, 0xb7, 0xb1, 0x71, 0xcb, 0x31, 0xeb, 0x06, 0x71, + 0xf0, 0xa1, 0x4d, 0xac, 0x62, 0xb1, 0xa4, 0x3d, 0xc8, 0xe8, 0x5f, 0xa6, 0x4c, 0xd9, 0xee, 0x7a, + 0x47, 0xfa, 0xb2, 0x25, 0xba, 0x6f, 0xc8, 0xde, 0xdc, 0x65, 0x35, 0x5d, 0xe6, 0x1b, 0xae, 0x63, + 0x9f, 0x1b, 0x0d, 0xd7, 0x22, 0x46, 0x9d, 0xd0, 0xe3, 0x7a, 0xdc, 0xc9, 0xcc, 0x89, 0x65, 0xbf, + 0xc0, 0xbb, 0xed, 0x3a, 0xf6, 0xf9, 0xb6, 0x6b, 0x91, 0x27, 0xa2, 0x4f, 0xe4, 0x3d, 0x8e, 0xe1, + 0x91, 0x0a, 0x71, 0x16, 0x31, 0x3d, 0x82, 0x19, 0x31, 0x9a, 0x1e, 0x35, 0x89, 0xe1, 0xd3, 0x06, + 0x61, 0x3e, 0x6e, 0x34, 0x23, 0x3c, 0x83, 0x11, 0xd3, 0x75, 0x2c, 0x56, 0x9c, 0x17, 0xb8, 0xaf, + 0x49, 0xc2, 0x75, 0x45, 0xb7, 0xc7, 0xc9, 0xf6, 0x03, 0xaa, 0x90, 0x43, 0x4d, 0xd2, 0xa0, 0x97, + 0x61, 0x22, 0x58, 0x49, 0x06, 0xb6, 0x1a, 0xd4, 0x61, 0xc5, 0x85, 0x52, 0xfa, 0xc1, 0x98, 0x9e, + 0x0f, 0xaa, 0x2b, 0xa2, 0x16, 0x6d, 0xc1, 0x14, 0x77, 0xa2, 0xb8, 0x65, 0x72, 0x15, 0x1a, 0xdc, + 0x2d, 0xf3, 0x78, 0x72, 0x67, 0x10, 0x87, 0x59, 0xa0, 0xce, 0x47, 0x15, 0x49, 0xb8, 0x8d, 0xcf, + 0x78, 0xf8, 0x78, 0x08, 0x93, 0x47, 0xf4, 0x8c, 0x58, 0xc6, 0x31, 0x66, 0xa1, 0xa0, 0xef, 0x0a, + 0x41, 0x4f, 0x88, 0x86, 0xc7, 0x98, 0x29, 0x89, 0xbe, 0x53, 0xfc, 0xf7, 0xef, 0x2f, 0x69, 0x17, + 0xff, 0xf6, 0x17, 0x0f, 0xc3, 0x91, 0xae, 0xc8, 0x04, 0xb8, 0xfc, 0x89, 0x06, 0x53, 0x52, 0x07, + 0xed, 0x06, 0xb4, 0x00, 0x63, 0x81, 0xf7, 0x92, 0x5b, 0x87, 0x31, 0x3d, 0x23, 0x2b, 0xaa, 0x16, + 0xfa, 0x45, 0xc8, 0x77, 0xd8, 0x71, 0x6a, 0x70, 0x93, 0xca, 0x1d, 0xc5, 0x19, 0xbd, 0x33, 0xf4, + 0x1b, 0xdf, 0x5f, 0xba, 0x55, 0xfe, 0x21, 0x40, 0xa1, 0xd3, 0x28, 0xd0, 0x0c, 0x8c, 0xf8, 0xd4, + 0x3c, 0x21, 0x9e, 0x1a, 0x80, 0x2a, 0xa1, 0x25, 0x18, 0x97, 0x9b, 0x21, 0x83, 0xbb, 0x4d, 0xc9, + 0x5b, 0x07, 0x59, 0xb5, 0x8a, 0x19, 0x41, 0x2f, 0x41, 0x56, 0x75, 0x78, 0xda, 0x72, 0x83, 0x64, + 0x57, 0x57, 0x44, 0xef, 0xf3, 0x2a, 0xb4, 0x11, 0x62, 0xf8, 0xe7, 0x4d, 0x99, 0xab, 0xe6, 0xdf, + 0xf8, 0x52, 0xcc, 0x39, 0xaa, 0xed, 0x56, 0xb8, 0x93, 0x11, 0xc5, 0xfd, 0xf3, 0x26, 0x09, 0x38, + 0xf1, 0xdf, 0x68, 0x19, 0xa6, 0x14, 0x0c, 0x33, 0xb1, 0x4d, 0x8c, 0x23, 0x6c, 0xfa, 0xae, 0x27, + 0x32, 0xd2, 0x9c, 0x3e, 0x29, 0x9b, 0x6a, 0xbc, 0x65, 0x53, 0x34, 0xf0, 0xa1, 0x8b, 0x21, 0x19, + 0x16, 0x71, 0xdc, 0x86, 0x4c, 0x25, 0x75, 0x10, 0x55, 0xeb, 0xbc, 0xa6, 0x5d, 0xee, 0xa3, 0x1d, + 0x72, 0x3f, 0x80, 0xe9, 0x9e, 0x79, 0x62, 0x82, 0xec, 0x0d, 0xd1, 0xee, 0x04, 0xf1, 0x3b, 0x50, + 0xbc, 0x34, 0x31, 0x1c, 0x4b, 0xe2, 0x2b, 0x7a, 0x67, 0x84, 0x55, 0xc8, 0x77, 0x24, 0xec, 0x30, + 0x38, 0x68, 0xb6, 0x11, 0x4f, 0x98, 0xab, 0x90, 0xef, 0x48, 0xc6, 0x13, 0xe4, 0x7b, 0x59, 0x3f, + 0x0e, 0x75, 0x79, 0x0a, 0x99, 0x7d, 0xc1, 0x14, 0xb2, 0x04, 0xe3, 0x94, 0xed, 0x11, 0xaf, 0x49, + 0xfc, 0x16, 0xb6, 0x45, 0x1a, 0x97, 0xd1, 0xe3, 0x55, 0xe8, 0x5d, 0x18, 0x61, 0x3e, 0xf6, 0x5b, + 0x4c, 0xa4, 0x5e, 0xf9, 0x37, 0x1e, 0xf4, 0x0b, 0xca, 0x72, 0x31, 0xd4, 0x44, 0x7f, 0x5d, 0xd1, + 0x21, 0x1d, 0xa6, 0x1a, 0xd4, 0x09, 0x1d, 0x9a, 0x79, 0x62, 0x30, 0xfa, 0x31, 0x51, 0xb9, 0xd7, + 0x40, 0x43, 0x2f, 0x34, 0xa8, 0xa3, 0x1c, 0x9b, 0x79, 0x52, 0xa3, 0x1f, 0x0b, 0x89, 0x70, 0xcc, + 0xa7, 0x2d, 0xec, 0xf8, 0xd4, 0x3f, 0x8f, 0xc1, 0x16, 0x12, 0x48, 0xa4, 0x41, 0x9d, 0xf7, 0x15, + 0x42, 0x88, 0xbc, 0x09, 0x59, 0x8e, 0xec, 0xa8, 0x4d, 0x7c, 0x92, 0x7c, 0x6b, 0xbc, 0x41, 0xc3, + 0xcd, 0x3f, 0x9a, 0x86, 0x61, 0xe1, 0x60, 0x45, 0xf6, 0x34, 0xa6, 0xcb, 0x02, 0x7a, 0x15, 0x26, + 0xc5, 0x0f, 0xa3, 0x49, 0xbc, 0x06, 0x65, 0x8c, 0x87, 0x47, 0x91, 0xed, 0xe4, 0xf4, 0x82, 0x68, + 0xd8, 0x8b, 0xea, 0xd1, 0x7d, 0xc8, 0x07, 0x0b, 0xd0, 0xe4, 0x81, 0x8d, 0x89, 0x74, 0x24, 0xa7, + 0xe7, 0xd4, 0x1a, 0x94, 0x95, 0xa8, 0x06, 0x53, 0x1e, 0xb1, 0x5a, 0x9d, 0xab, 0x21, 0x41, 0xe6, + 0x30, 0x29, 0xe9, 0xdb, 0xd7, 0xd9, 0xa4, 0xdb, 0x24, 0x91, 0x1c, 0x84, 0xf7, 0x9f, 0x11, 0x89, + 0xe0, 0xab, 0x09, 0x4e, 0x51, 0x54, 0x6a, 0x38, 0xe1, 0xb6, 0x57, 0x2b, 0x4f, 0xfa, 0xb3, 0x0c, + 0x4c, 0xad, 0x76, 0x27, 0x8d, 0x97, 0x3a, 0xd3, 0x7b, 0x90, 0x0b, 0x3c, 0xd8, 0x79, 0xe3, 0xd0, + 0xb5, 0x95, 0x3b, 0x55, 0x0e, 0xb4, 0x26, 0xea, 0x78, 0x88, 0x53, 0x9d, 0x9a, 0x9e, 0x7b, 0x4a, + 0x2d, 0xe2, 0x29, 0x9f, 0x9a, 0x97, 0xd5, 0x7b, 0xaa, 0xf6, 0x7f, 0xca, 0xad, 0x3e, 0x82, 0x69, + 0x72, 0xd6, 0xa4, 0x32, 0xdd, 0x8f, 0x02, 0xbc, 0xf0, 0xaf, 0x69, 0x7d, 0x2a, 0x6a, 0x0b, 0xa3, + 0x38, 0x27, 0x61, 0xc4, 0xf7, 0x6d, 0xb5, 0x7d, 0x09, 0x49, 0x46, 0x25, 0x49, 0xd4, 0x16, 0x91, + 0x84, 0xe6, 0x97, 0x89, 0x9b, 0x5f, 0x87, 0x4b, 0x1f, 0xeb, 0xef, 0xd2, 0xa1, 0xc3, 0xa5, 0x77, + 0x3b, 0xc7, 0xf1, 0x9b, 0x73, 0x8e, 0xd9, 0x9b, 0x77, 0x8e, 0xb9, 0x17, 0x74, 0x8e, 0xff, 0xdf, + 0x5c, 0xdf, 0x0e, 0x14, 0x62, 0x66, 0x26, 0x06, 0x1d, 0x73, 0x7f, 0xda, 0x55, 0x98, 0x13, 0x11, + 0xb1, 0x18, 0x71, 0x97, 0x2b, 0x45, 0xd7, 0x74, 0xa5, 0x5f, 0x80, 0xd3, 0x54, 0x0e, 0xe8, 0x5f, + 0x53, 0x30, 0xbb, 0xc1, 0x17, 0xdc, 0xf9, 0x66, 0xcb, 0x6f, 0x79, 0x24, 0xdc, 0xb5, 0x1e, 0xb9, + 0xfd, 0xb3, 0xca, 0xcb, 0x16, 0x71, 0xea, 0xf2, 0x45, 0xfc, 0x15, 0x98, 0xf6, 0x9f, 0xe1, 0xa6, + 0xc1, 0x7c, 0xec, 0xc5, 0x17, 0x71, 0x5a, 0x90, 0x20, 0xde, 0x56, 0xe3, 0x4d, 0x11, 0xc5, 0x33, + 0xf8, 0x72, 0x9c, 0x49, 0x44, 0x2c, 0xed, 0xc9, 0x6c, 0x35, 0x5a, 0xb6, 0xc8, 0x41, 0x93, 0x1c, + 0x5f, 0x96, 0x63, 0x63, 0x0b, 0x58, 0x0a, 0x75, 0xad, 0x85, 0x70, 0x3d, 0x0d, 0x21, 0xc1, 0xc1, + 0x65, 0xa7, 0x21, 0x94, 0xff, 0x2e, 0x05, 0x53, 0x61, 0x46, 0x31, 0xa8, 0x88, 0xbf, 0x05, 0xb3, + 0x97, 0x9d, 0x6a, 0x25, 0xc8, 0xe0, 0xa7, 0xeb, 0xbd, 0x8e, 0xb3, 0x0e, 0x60, 0xba, 0xe7, 0x31, + 0x56, 0x82, 0x93, 0x66, 0x54, 0xef, 0x3e, 0xbf, 0xfa, 0x05, 0x98, 0x71, 0xc8, 0x59, 0x74, 0x98, + 0x18, 0x29, 0x79, 0x48, 0x28, 0x79, 0x9a, 0xb7, 0xaa, 0xa1, 0x44, 0x6a, 0x8e, 0x9d, 0x25, 0x86, + 0xa7, 0x8f, 0xc3, 0x6d, 0x67, 0x89, 0xc1, 0xb1, 0x63, 0xf9, 0x73, 0x0d, 0x66, 0x3a, 0x04, 0xa9, + 0xe0, 0x90, 0x0e, 0x28, 0x32, 0x88, 0x60, 0x04, 0x49, 0x2e, 0x1c, 0x26, 0x23, 0xf2, 0x00, 0x73, + 0x07, 0x0a, 0x31, 0x4c, 0x69, 0x07, 0x09, 0x64, 0x3f, 0x11, 0x11, 0x4b, 0x87, 0x70, 0x1f, 0xf2, + 0x36, 0x66, 0xdd, 0xc6, 0x9f, 0xe3, 0xb5, 0xa1, 0x40, 0xca, 0xbf, 0xad, 0xc1, 0x62, 0xe7, 0x06, + 0xab, 0x16, 0x9a, 0xd4, 0xd5, 0x96, 0xd3, 0xcb, 0x7c, 0x53, 0x2f, 0x60, 0xbe, 0xdf, 0x80, 0xe9, + 0x9d, 0x5e, 0x8a, 0xbb, 0x0f, 0x79, 0xa1, 0xee, 0x68, 0x3a, 0x9a, 0x9c, 0x0e, 0xaf, 0x8d, 0xa6, + 0xf3, 0x1f, 0x1a, 0xe4, 0xb7, 0xa9, 0x25, 0xb0, 0x2a, 0x8e, 0xb5, 0xbf, 0xbb, 0x8a, 0xde, 0x85, + 0xb1, 0x06, 0xb5, 0xd4, 0xd0, 0xb4, 0xc1, 0x5d, 0x6c, 0xa6, 0xa1, 0x70, 0x78, 0x00, 0x3d, 0xe4, + 0x66, 0x7b, 0xd8, 0x3a, 0xef, 0x9a, 0xe1, 0x95, 0x30, 0x59, 0x4e, 0xba, 0xda, 0x3a, 0x97, 0x50, + 0xef, 0xc1, 0x84, 0x80, 0x62, 0xc4, 0xb6, 0x15, 0x56, 0x7a, 0x70, 0xac, 0x1c, 0xa7, 0xad, 0x11, + 0xdb, 0x96, 0xb2, 0xfa, 0xc1, 0x08, 0x40, 0x2d, 0xbc, 0x5d, 0xba, 0x34, 0x93, 0xbb, 0x0b, 0xc0, + 0xf7, 0xc3, 0x2a, 0x0f, 0x91, 0x69, 0xdc, 0x18, 0xaf, 0x91, 0x69, 0x48, 0x47, 0x9e, 0x92, 0xee, + 0xca, 0x53, 0xba, 0x53, 0x91, 0xa1, 0x9b, 0x4b, 0x45, 0x86, 0x6f, 0x3e, 0x15, 0x19, 0x79, 0xc1, + 0x54, 0xa4, 0xef, 0x56, 0x3b, 0xca, 0x53, 0x32, 0x37, 0x9b, 0xa7, 0x8c, 0x7d, 0x31, 0x79, 0x0a, + 0xdc, 0xf0, 0x16, 0x6d, 0xfc, 0x45, 0xb7, 0x68, 0xd9, 0x2b, 0xb7, 0x68, 0xb9, 0x4b, 0xb2, 0x8d, + 0x7b, 0x90, 0x53, 0x76, 0xac, 0x92, 0x0d, 0x79, 0x3f, 0x91, 0x95, 0xa6, 0xac, 0x36, 0x68, 0xdd, + 0x29, 0xc9, 0x44, 0x8f, 0x94, 0xa4, 0xfc, 0xc7, 0x1a, 0x8c, 0xae, 0x93, 0xa6, 0xcb, 0xa8, 0x8f, + 0xf6, 0x60, 0x12, 0x9f, 0x62, 0x6a, 0xe3, 0x43, 0x71, 0x72, 0x64, 0x63, 0xc7, 0x4c, 0x74, 0x7b, + 0x5c, 0x08, 0xa9, 0x57, 0x25, 0x31, 0x7a, 0x02, 0x39, 0xdf, 0xf5, 0xb1, 0x1d, 0xa2, 0xa5, 0x92, + 0x58, 0x39, 0xa7, 0x54, 0x48, 0xe5, 0xd7, 0x60, 0xba, 0xd6, 0x3a, 0xc4, 0xa6, 0xb8, 0x90, 0xd9, + 0xf7, 0xb0, 0x45, 0x76, 0x5c, 0xce, 0x61, 0x1a, 0x86, 0x1d, 0x37, 0x18, 0x67, 0x4e, 0x97, 0x05, + 0x1e, 0xb2, 0xc6, 0xc4, 0xa1, 0xaf, 0xf0, 0xdb, 0xf7, 0x20, 0xc7, 0x42, 0xda, 0xc8, 0x77, 0x67, + 0xa3, 0xca, 0xaa, 0xc5, 0x3b, 0x89, 0xb5, 0x48, 0x4c, 0xda, 0xa4, 0xc4, 0xf1, 0x83, 0x6d, 0xde, + 0x11, 0x21, 0x7a, 0x50, 0x87, 0xde, 0x86, 0xe1, 0x4e, 0x5f, 0x75, 0xf5, 0x9d, 0xba, 0xa0, 0x40, + 0xdf, 0x84, 0x4c, 0x60, 0x95, 0x49, 0xdc, 0x46, 0x48, 0x84, 0x0a, 0x90, 0x36, 0xa9, 0x25, 0xfd, + 0x84, 0xce, 0x7f, 0x96, 0x3f, 0x49, 0xc1, 0x18, 0x77, 0x7b, 0x62, 0xa6, 0x57, 0x1d, 0x48, 0x82, + 0x3c, 0x5e, 0xa7, 0xce, 0x91, 0xab, 0x2e, 0xd1, 0xef, 0xf7, 0xdd, 0x52, 0x07, 0xd2, 0x53, 0x9b, + 0xe9, 0x31, 0x37, 0x14, 0xe7, 0x7a, 0x80, 0x25, 0x76, 0xb0, 0x69, 0xb1, 0xfa, 0xaf, 0xc6, 0x12, + 0x5b, 0x58, 0x89, 0x22, 0x76, 0xb0, 0xdc, 0x34, 0x3c, 0x7a, 0x7c, 0x4c, 0x3c, 0xe5, 0xfe, 0x87, + 0x12, 0x84, 0x12, 0x45, 0x29, 0xbd, 0xff, 0x8f, 0x53, 0x90, 0xe7, 0x62, 0xd8, 0xa2, 0x0d, 0xaa, + 0x64, 0xd1, 0x3e, 0x5d, 0xed, 0x06, 0xa7, 0x9b, 0xba, 0xe6, 0x74, 0xbf, 0x09, 0x99, 0x23, 0x6a, + 0x8b, 0xc5, 0x91, 0xc4, 0x78, 0x42, 0xa2, 0x9b, 0x93, 0x17, 0x0f, 0x83, 0x72, 0x42, 0x75, 0xcc, + 0xea, 0xc2, 0x9e, 0xb2, 0x6a, 0xa4, 0x4f, 0x30, 0xab, 0x97, 0xff, 0x21, 0x05, 0x13, 0x51, 0x30, + 0xbd, 0x79, 0x79, 0x6e, 0x42, 0x56, 0x79, 0x03, 0x43, 0xdc, 0x54, 0x24, 0x70, 0x09, 0xe3, 0x8a, + 0xf0, 0x89, 0x6b, 0x5b, 0x1d, 0xd3, 0x48, 0x77, 0x4c, 0xa3, 0x43, 0x6d, 0x43, 0x37, 0x65, 0xa5, + 0xc3, 0xd7, 0xb5, 0xd2, 0x1f, 0xa6, 0x60, 0xa2, 0xe3, 0xf6, 0xf8, 0x7f, 0xdb, 0x92, 0xfd, 0x3a, + 0x8c, 0xc8, 0xc3, 0xbe, 0x24, 0x0e, 0x4c, 0x91, 0xdc, 0xa0, 0x24, 0xff, 0x33, 0x0d, 0x0b, 0x51, + 0x2c, 0x10, 0x23, 0x3d, 0x74, 0xdd, 0x93, 0x6d, 0xe2, 0x63, 0x0b, 0xfb, 0x18, 0xbd, 0x0d, 0x73, + 0xa7, 0xd8, 0xe1, 0xeb, 0xc6, 0xb0, 0xb9, 0x4b, 0x50, 0x17, 0x8b, 0xf2, 0x2a, 0x5f, 0x86, 0x89, + 0x19, 0xd5, 0x21, 0x72, 0x19, 0xf2, 0x16, 0xff, 0x5d, 0xb8, 0xab, 0x4e, 0x35, 0xc5, 0xd5, 0x5a, + 0x37, 0x79, 0x4a, 0x90, 0xcf, 0xc9, 0x4e, 0xbb, 0x8e, 0x7d, 0xde, 0x89, 0x50, 0x87, 0x45, 0x7c, + 0x7c, 0xec, 0x91, 0x63, 0xbe, 0x6d, 0x8c, 0x63, 0x85, 0xce, 0x3f, 0xc1, 0xea, 0x5f, 0x08, 0xa1, + 0xf4, 0x90, 0x61, 0x90, 0x98, 0x20, 0x0c, 0xf3, 0x11, 0xa7, 0x60, 0xc2, 0xd7, 0x09, 0x31, 0xc5, + 0x10, 0xe6, 0x03, 0x89, 0x12, 0xb2, 0xd8, 0x80, 0xa5, 0x00, 0xd8, 0x74, 0x1d, 0x8b, 0xaa, 0x53, + 0xd9, 0xb8, 0x40, 0xe4, 0x89, 0xe3, 0x1d, 0xd5, 0x6d, 0x2d, 0xea, 0x15, 0x93, 0xc9, 0x16, 0xdc, + 0x8b, 0x4b, 0xe2, 0x32, 0xa8, 0x11, 0x01, 0xb5, 0x14, 0xc9, 0xb6, 0x27, 0x5a, 0xf9, 0x6f, 0x34, + 0x98, 0xe8, 0x50, 0x7f, 0x14, 0x97, 0xb5, 0x17, 0x8a, 0xcb, 0xa9, 0xeb, 0xc4, 0xe5, 0x32, 0x64, + 0x29, 0x8b, 0xf4, 0x23, 0xf4, 0x9b, 0xd1, 0xdb, 0xea, 0x82, 0xd8, 0x3d, 0x14, 0xc5, 0xee, 0x67, + 0x30, 0xd5, 0x31, 0x89, 0x75, 0x6e, 0xbb, 0x15, 0x18, 0x16, 0x22, 0x51, 0x3e, 0xb6, 0xef, 0xa9, + 0x77, 0x07, 0xbd, 0x2e, 0x29, 0x3b, 0xfc, 0x62, 0xaa, 0xd3, 0xbd, 0xff, 0x4e, 0x1a, 0xa6, 0x23, + 0x3f, 0xf4, 0x73, 0x1d, 0x33, 0x23, 0x7f, 0x93, 0x4e, 0xee, 0x6f, 0xe2, 0x01, 0x77, 0xe8, 0x46, + 0x02, 0xee, 0xf0, 0xcd, 0x04, 0xdc, 0x91, 0x4e, 0x8d, 0xfc, 0x5e, 0x1a, 0x6e, 0x77, 0x9e, 0x3c, + 0xfc, 0x9f, 0x54, 0xc9, 0x3a, 0x8c, 0xab, 0xcb, 0x22, 0x11, 0xf8, 0x13, 0x68, 0x05, 0x24, 0x9d, + 0x88, 0xfb, 0xff, 0x6d, 0x7a, 0xf9, 0xdb, 0x14, 0x64, 0xf6, 0xf8, 0xc6, 0x88, 0xba, 0x0e, 0x9a, + 0x81, 0x11, 0xca, 0xb6, 0x5c, 0x75, 0xba, 0x95, 0xd1, 0x55, 0xe9, 0xc5, 0xdd, 0xc7, 0x3a, 0x8c, + 0x13, 0xc7, 0xf7, 0xce, 0x8d, 0xc4, 0x1b, 0x0b, 0x10, 0x74, 0x72, 0x2a, 0x2f, 0x14, 0x9a, 0xbf, + 0x03, 0xc5, 0xee, 0x53, 0x3c, 0x43, 0xa0, 0x27, 0x39, 0x96, 0x98, 0xe9, 0x3a, 0xcb, 0xdb, 0xe0, + 0x10, 0xe5, 0x2a, 0x4c, 0xc7, 0x8c, 0xba, 0xea, 0x58, 0xd4, 0xc4, 0xbe, 0x7b, 0x45, 0xf6, 0x33, + 0x0d, 0xc3, 0x94, 0xad, 0xb6, 0xa4, 0x50, 0x33, 0xba, 0x2c, 0x94, 0xff, 0x3e, 0x05, 0x19, 0xb1, + 0xf9, 0xdb, 0x72, 0xdb, 0x45, 0xaf, 0x5d, 0x47, 0xf4, 0x61, 0xd4, 0x48, 0x25, 0x8e, 0x1a, 0x5d, + 0x5b, 0x4a, 0x99, 0x7f, 0xb6, 0x6f, 0x29, 0xdf, 0x84, 0xf4, 0x11, 0x49, 0xe4, 0x7d, 0x78, 0xff, + 0x2b, 0xf2, 0x73, 0xf4, 0x16, 0xdc, 0x6e, 0xdb, 0xa8, 0x1a, 0xd8, 0xb2, 0x3c, 0xc2, 0x98, 0x34, + 0x60, 0xb1, 0xf0, 0x35, 0x7d, 0x2a, 0xbe, 0x6d, 0xad, 0xc8, 0x0e, 0x41, 0x14, 0x1a, 0x8d, 0xa2, + 0xd0, 0x1f, 0xa4, 0x20, 0x17, 0x98, 0xf8, 0x3a, 0xb1, 0x7d, 0x8c, 0x66, 0x61, 0x94, 0x32, 0xc3, + 0xee, 0x36, 0x74, 0x1d, 0x10, 0x39, 0x23, 0x66, 0x4b, 0x5c, 0x0b, 0x5c, 0xc7, 0xe4, 0x27, 0x43, + 0xf2, 0x30, 0xbf, 0xd8, 0x81, 0x42, 0x84, 0x99, 0xdc, 0xaf, 0x4c, 0x84, 0xc4, 0xf2, 0x12, 0x19, + 0x6d, 0x41, 0x54, 0xd5, 0xb5, 0x4b, 0xba, 0x12, 0x2e, 0x1f, 0xd2, 0xca, 0x3c, 0xf3, 0x8f, 0xd2, + 0x80, 0x62, 0xef, 0x92, 0x03, 0xb3, 0xeb, 0x79, 0x9a, 0xd0, 0xa9, 0xfa, 0x3d, 0xc8, 0x37, 0x95, + 0x5c, 0x0d, 0x8b, 0x0b, 0x56, 0x25, 0xf0, 0xaf, 0xf4, 0xf3, 0xb8, 0x6d, 0x9a, 0xd0, 0x73, 0xcd, + 0x36, 0xc5, 0x7c, 0x1d, 0x46, 0x9a, 0xf8, 0xdc, 0x6d, 0xf9, 0x89, 0x3c, 0xaf, 0x24, 0xf9, 0xf9, + 0xb7, 0x44, 0x3e, 0xc2, 0xa6, 0x63, 0x27, 0x79, 0xa8, 0xc3, 0xfb, 0x97, 0x7f, 0x05, 0x50, 0x94, + 0x06, 0x85, 0xce, 0xfa, 0x5d, 0xc8, 0x04, 0xc2, 0x53, 0x51, 0xf3, 0x4b, 0x83, 0xc8, 0x5d, 0x0f, + 0xa9, 0xba, 0x95, 0x9c, 0xea, 0x56, 0x72, 0xf9, 0x19, 0x4c, 0x46, 0xcc, 0x83, 0x43, 0xb4, 0x81, + 0xcc, 0xe3, 0x1b, 0x30, 0x6a, 0xc9, 0xfe, 0xca, 0x2e, 0xee, 0xf5, 0x1b, 0x9f, 0x82, 0xd6, 0x03, + 0x9a, 0x72, 0x13, 0x72, 0xaa, 0xee, 0xa0, 0x69, 0x61, 0x5f, 0x9c, 0x82, 0xc9, 0x43, 0x6b, 0xe9, + 0x46, 0x65, 0x01, 0x55, 0x21, 0xa3, 0x28, 0x58, 0x31, 0x55, 0x4a, 0x3f, 0x18, 0x7f, 0xe3, 0xf5, + 0xc1, 0xf2, 0xc9, 0x80, 0x61, 0x48, 0x5e, 0xfe, 0xb1, 0x06, 0x85, 0x3d, 0x97, 0x3a, 0x3e, 0x8b, + 0x3d, 0x81, 0xfb, 0x36, 0xcc, 0xca, 0xf3, 0xf0, 0xa6, 0x68, 0x89, 0x3f, 0x77, 0x4b, 0xe0, 0x8f, + 0x6f, 0x0b, 0x8c, 0x5e, 0xe0, 0xfe, 0x25, 0xe0, 0x09, 0x9c, 0xce, 0x6d, 0xbf, 0x17, 0x78, 0xf9, + 0x67, 0x29, 0x58, 0xdc, 0x8f, 0xbf, 0x88, 0x5e, 0xc3, 0x8d, 0x26, 0xa6, 0xc7, 0xce, 0xaa, 0xeb, + 0x32, 0x79, 0xd9, 0xf3, 0x26, 0xcc, 0x1e, 0xf2, 0x02, 0xb1, 0x8c, 0xb6, 0x0f, 0x60, 0x2c, 0x56, + 0xd4, 0xc4, 0xe3, 0xc5, 0x69, 0xd5, 0x1c, 0x9d, 0x95, 0x54, 0x2d, 0x86, 0x3e, 0x82, 0xd9, 0x78, + 0xf7, 0x68, 0xd4, 0x81, 0x0a, 0x5e, 0xeb, 0x6f, 0x89, 0xed, 0x03, 0x55, 0x69, 0xdc, 0xed, 0xe8, + 0xd3, 0x99, 0xa8, 0x8d, 0xa1, 0x0a, 0xdc, 0x0d, 0x86, 0xd8, 0xe3, 0xe3, 0x19, 0x8b, 0x15, 0xd3, + 0x62, 0xa0, 0xf3, 0xaa, 0x53, 0x67, 0x8e, 0xc9, 0x87, 0x7b, 0x0a, 0x77, 0xbb, 0x49, 0xe3, 0x83, + 0x1e, 0xba, 0xf6, 0xa0, 0x17, 0x3a, 0x3f, 0xc1, 0x89, 0x0d, 0xbd, 0xfc, 0x57, 0x1a, 0xa0, 0x40, + 0xe6, 0x52, 0x03, 0x7b, 0xae, 0x7c, 0x46, 0xd3, 0x79, 0x53, 0x2d, 0x6f, 0xb7, 0xf2, 0xac, 0xfd, + 0x96, 0xfa, 0x57, 0x61, 0x5a, 0xbe, 0x0e, 0x95, 0x10, 0xc1, 0xf3, 0x77, 0x25, 0xe3, 0x3e, 0xaf, + 0xc6, 0xbf, 0xc2, 0xc7, 0xf6, 0x67, 0xff, 0xbc, 0xf4, 0xe0, 0x98, 0xfa, 0xf5, 0xd6, 0xe1, 0xb2, + 0xe9, 0x36, 0x56, 0xd4, 0x17, 0x67, 0xf2, 0xbf, 0xd7, 0x99, 0x75, 0xb2, 0xc2, 0x73, 0x64, 0x26, + 0x08, 0x98, 0x8e, 0x1a, 0xf8, 0xac, 0x7d, 0xa8, 0xac, 0xfc, 0xa7, 0x29, 0x98, 0xeb, 0x69, 0x3f, + 0xc2, 0x74, 0xde, 0x81, 0xb9, 0x70, 0x60, 0xc1, 0x3b, 0xfc, 0xf0, 0x01, 0xad, 0x9c, 0xcf, 0x6c, + 0xd0, 0x21, 0x78, 0x82, 0x1f, 0xbc, 0x95, 0x7d, 0x09, 0xb2, 0xb1, 0x4b, 0x28, 0x39, 0xa1, 0x31, + 0x7d, 0x3c, 0xba, 0x85, 0x62, 0xa8, 0x05, 0x73, 0xed, 0xaf, 0xfe, 0x0d, 0xa1, 0x60, 0xb9, 0x49, + 0x48, 0x0b, 0x77, 0xf2, 0x4e, 0x3f, 0x7d, 0xf5, 0x37, 0x7c, 0x7d, 0xa6, 0xed, 0x53, 0x81, 0x68, + 0x41, 0x7c, 0x0d, 0x66, 0x2d, 0xca, 0x9e, 0xb6, 0xb0, 0x4d, 0x8f, 0x28, 0xb1, 0xe2, 0x76, 0x36, + 0x24, 0x06, 0x79, 0x3b, 0xde, 0x1c, 0x9a, 0x58, 0xf9, 0xaf, 0x53, 0x30, 0xb5, 0x49, 0xc8, 0x3a, + 0x65, 0xf2, 0xec, 0x9e, 0xaa, 0x0d, 0x49, 0x0d, 0xa6, 0xa4, 0xf7, 0xb0, 0x54, 0x8b, 0xbc, 0xb4, + 0x4a, 0x72, 0x79, 0x2c, 0xe8, 0x03, 0x60, 0x71, 0x65, 0x55, 0x83, 0x29, 0xbf, 0x07, 0x68, 0x92, + 0x34, 0xc5, 0xef, 0x02, 0x5d, 0x85, 0x9c, 0xfa, 0xa0, 0x03, 0x37, 0xc4, 0x49, 0x45, 0x7a, 0x90, + 0x07, 0xc9, 0x59, 0x49, 0x53, 0x11, 0x24, 0x3c, 0x7c, 0x9f, 0xba, 0x76, 0xab, 0x91, 0x28, 0x08, + 0x2b, 0x92, 0xf2, 0x6f, 0xb5, 0x8b, 0xb0, 0x66, 0xd6, 0x89, 0xd5, 0xb2, 0xc5, 0x33, 0xde, 0xc3, + 0x96, 0xc9, 0xb5, 0x10, 0x1d, 0x6e, 0x0d, 0xe9, 0xe3, 0xb2, 0x4e, 0x9e, 0xbd, 0xbc, 0x0c, 0x13, + 0xaa, 0x4b, 0xf8, 0x45, 0x88, 0x7c, 0x2e, 0x92, 0x97, 0xd5, 0xe1, 0x27, 0x20, 0x9d, 0x86, 0x97, + 0xee, 0x36, 0xbc, 0x1d, 0x00, 0x9f, 0xaa, 0xdd, 0x68, 0xe0, 0x19, 0x56, 0xfa, 0x59, 0x5a, 0x0f, + 0xb5, 0xeb, 0x63, 0xbe, 0xfa, 0xc5, 0xfa, 0x59, 0xd4, 0x70, 0x3f, 0x8b, 0xda, 0x06, 0xd4, 0x81, + 0xbc, 0xbf, 0xbf, 0x85, 0x10, 0x0c, 0xf9, 0x41, 0xe8, 0x19, 0xd2, 0xc5, 0x6f, 0x1e, 0x8c, 0x7d, + 0xdf, 0xee, 0x7a, 0x2a, 0x93, 0xf5, 0x7d, 0x3b, 0xba, 0x2a, 0xff, 0x43, 0x0d, 0xb2, 0x1f, 0x08, + 0x41, 0xeb, 0xc4, 0x74, 0x3d, 0x4b, 0x5c, 0xf5, 0x09, 0x23, 0x52, 0x1a, 0xd3, 0x92, 0x5c, 0xf5, + 0x71, 0x42, 0x89, 0xc6, 0x71, 0xfc, 0x38, 0x4e, 0x92, 0x93, 0x6e, 0x3f, 0xc2, 0x29, 0xff, 0xae, + 0x06, 0xf9, 0x8a, 0x8c, 0xcc, 0xca, 0x01, 0xa1, 0x22, 0x8c, 0xaa, 0x58, 0xad, 0x42, 0x7e, 0x50, + 0x44, 0x04, 0x46, 0xbf, 0x40, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x5d, 0x83, 0xac, 0x48, 0x89, 0xa5, + 0xcc, 0x58, 0xff, 0xdd, 0xdc, 0x87, 0x30, 0x6d, 0x63, 0x9f, 0x30, 0xdf, 0xe0, 0xce, 0x45, 0xa4, + 0x8c, 0x6e, 0x34, 0xc2, 0x97, 0xaf, 0xf2, 0x56, 0x8a, 0x89, 0x8e, 0x24, 0x48, 0x9c, 0x6f, 0xf9, + 0x6b, 0x90, 0x8b, 0x12, 0x97, 0xea, 0xba, 0xb8, 0xf8, 0x6c, 0x4b, 0xc0, 0x64, 0xbc, 0xce, 0xea, + 0xb9, 0x78, 0x06, 0xc6, 0xca, 0x7f, 0xa2, 0xc1, 0x78, 0x0c, 0x08, 0xdd, 0x81, 0xb1, 0xce, 0xa0, + 0x13, 0x55, 0xbc, 0xc8, 0x56, 0x31, 0xbe, 0x4d, 0x4d, 0x5f, 0x63, 0x9b, 0x5a, 0x6e, 0xc0, 0xb0, + 0xfc, 0x84, 0xe8, 0x11, 0x68, 0xcd, 0x24, 0xc6, 0xa8, 0x35, 0x39, 0xc9, 0xd3, 0x24, 0x63, 0xd6, + 0x9e, 0x96, 0x7f, 0x5f, 0x83, 0xa5, 0x4a, 0x70, 0x22, 0x1c, 0x89, 0xb6, 0x6d, 0x85, 0x0c, 0x74, + 0xa3, 0xba, 0x0b, 0x79, 0x65, 0x11, 0xd2, 0xfe, 0x03, 0x75, 0x0f, 0xf0, 0x52, 0x40, 0x31, 0xcb, + 0x35, 0x62, 0x25, 0x56, 0xfe, 0x54, 0x83, 0x3b, 0xe1, 0xc8, 0x2a, 0x3d, 0x86, 0x75, 0xf9, 0xaa, + 0xb8, 0xf1, 0xb1, 0x30, 0xc8, 0xc6, 0x9b, 0xfb, 0x9b, 0xff, 0x66, 0xe8, 0xfc, 0x65, 0xb6, 0xdf, + 0x97, 0x6b, 0x7c, 0x46, 0x2a, 0x95, 0x0a, 0xe2, 0x40, 0x85, 0xe7, 0xfd, 0x8e, 0xdb, 0x08, 0x2f, + 0xf9, 0x7b, 0xe7, 0xfd, 0xf3, 0x3c, 0xef, 0x57, 0x97, 0xfe, 0x29, 0xe1, 0x0d, 0xc3, 0x72, 0x99, + 0x00, 0x7a, 0xec, 0x61, 0xc7, 0xaf, 0xb4, 0xfc, 0xba, 0xeb, 0xd1, 0x8f, 0xa5, 0xf3, 0x2f, 0xc2, + 0xe8, 0x31, 0xaf, 0x55, 0x5f, 0x73, 0x8f, 0xe9, 0x41, 0x11, 0xbd, 0x09, 0x23, 0x2a, 0xe8, 0xa5, + 0x06, 0x09, 0x7a, 0xaa, 0x73, 0xf9, 0xbb, 0x30, 0x5e, 0x11, 0xf3, 0x13, 0xcc, 0x22, 0x7c, 0xaf, + 0x1d, 0xdf, 0xbb, 0x2e, 0xfe, 0xf7, 0x34, 0xc8, 0x6f, 0x1c, 0x1d, 0x91, 0x81, 0x78, 0x54, 0x61, + 0xd2, 0x21, 0xbe, 0x21, 0x8b, 0xea, 0xe3, 0xcc, 0xc1, 0xd8, 0x4d, 0x38, 0xc4, 0x7f, 0x2c, 0xc9, + 0xc4, 0x67, 0x98, 0x68, 0x0e, 0x32, 0x94, 0x19, 0xa7, 0xd8, 0x56, 0x47, 0x3e, 0x19, 0x7d, 0x94, + 0xb2, 0x0f, 0x78, 0xb1, 0xdc, 0x84, 0x82, 0x50, 0xce, 0x76, 0xfb, 0x63, 0x8f, 0x1e, 0xfa, 0xe9, + 0x7c, 0x4a, 0x92, 0xba, 0xde, 0x53, 0x92, 0x87, 0x3e, 0xdc, 0xe9, 0xf7, 0x41, 0x22, 0x02, 0x18, + 0xd9, 0x71, 0x0f, 0x5d, 0xeb, 0xbc, 0x70, 0x0b, 0x95, 0x61, 0x71, 0x95, 0x1c, 0x53, 0x67, 0xd5, + 0x76, 0xcd, 0x13, 0xe2, 0xd5, 0x1a, 0xd8, 0xf3, 0xd7, 0x5c, 0xc7, 0xf7, 0xb0, 0xe9, 0xb3, 0x5d, + 0xc7, 0x3e, 0x2f, 0x68, 0x68, 0x06, 0x50, 0x8f, 0xfa, 0x14, 0xca, 0x42, 0x66, 0xe3, 0x94, 0x78, + 0xe7, 0xae, 0x43, 0x0a, 0xe9, 0x87, 0xfb, 0x81, 0xe5, 0xcb, 0xe7, 0x3c, 0x68, 0x02, 0xc6, 0x0f, + 0x1c, 0xd6, 0x24, 0xa6, 0x88, 0xd2, 0x85, 0x5b, 0x9c, 0xad, 0xd4, 0x7d, 0x41, 0xe3, 0xbf, 0xf7, + 0x70, 0x8b, 0x11, 0xab, 0x90, 0x42, 0x79, 0x80, 0x75, 0xd2, 0x70, 0x6d, 0xca, 0xea, 0xc4, 0x2a, + 0xa4, 0xd1, 0x38, 0x8c, 0x8a, 0x67, 0xb0, 0xc4, 0x2a, 0x0c, 0x3d, 0xfc, 0xcb, 0x94, 0x7a, 0xb1, + 0x21, 0x8e, 0x99, 0x4b, 0x30, 0x7e, 0xb0, 0x53, 0xdb, 0xdb, 0x58, 0xab, 0x6e, 0x56, 0x37, 0xd6, + 0x0b, 0xb7, 0xe6, 0x27, 0x2e, 0x9e, 0x97, 0xe2, 0x55, 0xa8, 0x00, 0xe9, 0xd5, 0x83, 0x0f, 0x0b, + 0xda, 0xfc, 0xe8, 0xc5, 0xf3, 0x12, 0xff, 0xc9, 0xe3, 0x7f, 0x6d, 0x63, 0x6b, 0xab, 0x90, 0x9a, + 0xcf, 0x5c, 0x3c, 0x2f, 0x89, 0xdf, 0x7c, 0x25, 0xd4, 0xf6, 0x77, 0xf7, 0x0c, 0xde, 0x35, 0x3d, + 0x9f, 0xbd, 0x78, 0x5e, 0x0a, 0xcb, 0xdc, 0xe1, 0x8b, 0xdf, 0x82, 0x68, 0x68, 0x3e, 0x77, 0xf1, + 0xbc, 0x14, 0x55, 0x70, 0xca, 0xfd, 0xca, 0x7b, 0x1b, 0x82, 0x72, 0x58, 0x52, 0x06, 0x65, 0x4e, + 0x29, 0x7e, 0x0b, 0xca, 0x11, 0x49, 0x19, 0x56, 0xa0, 0x19, 0x18, 0x59, 0x3d, 0xf8, 0xd0, 0xd8, + 0xdb, 0x2d, 0x8c, 0xce, 0xc3, 0xc5, 0xf3, 0x92, 0x2a, 0x71, 0xfb, 0xe4, 0xed, 0xbc, 0x21, 0x33, + 0x3f, 0x7e, 0xf1, 0xbc, 0x14, 0x14, 0xd1, 0x22, 0x00, 0xef, 0x53, 0xd9, 0xdf, 0xdd, 0xae, 0xae, + 0x15, 0xc6, 0xe6, 0xf3, 0x17, 0xcf, 0x4b, 0xb1, 0x1a, 0x2e, 0x0d, 0xd1, 0x55, 0x75, 0x00, 0x29, + 0x8d, 0x58, 0xd5, 0xc3, 0x3f, 0xd7, 0x20, 0xb7, 0x11, 0x9c, 0x5e, 0x09, 0x09, 0xde, 0x81, 0x62, + 0x4c, 0x2b, 0x6d, 0x6d, 0x52, 0x45, 0x52, 0x87, 0x05, 0x0d, 0xe5, 0x60, 0x4c, 0xdc, 0x02, 0x6d, + 0x52, 0xdb, 0x2e, 0xa4, 0xd0, 0x3c, 0xcc, 0x88, 0xe2, 0x36, 0xf6, 0xcd, 0xba, 0x2e, 0xbf, 0x13, + 0x16, 0x8a, 0x29, 0xa4, 0xb9, 0x81, 0x44, 0x6d, 0x3b, 0xe4, 0x99, 0xac, 0x1f, 0x42, 0xb7, 0x61, + 0x52, 0x7d, 0xa6, 0xa8, 0xbe, 0xfd, 0xa5, 0xae, 0x53, 0x18, 0xe6, 0x50, 0xf2, 0x9d, 0x73, 0xe7, + 0x6b, 0xca, 0xc2, 0xc8, 0xc3, 0x4f, 0x03, 0x7d, 0x6f, 0x63, 0x76, 0xc2, 0x65, 0x76, 0xb0, 0x73, + 0x50, 0x13, 0xaa, 0x16, 0x32, 0x93, 0x25, 0xae, 0xe5, 0xca, 0x4e, 0xa8, 0xe5, 0xca, 0xce, 0x87, + 0x5c, 0x8a, 0xfa, 0xc6, 0xe3, 0x83, 0xad, 0x8a, 0x5e, 0x48, 0x49, 0x29, 0xaa, 0x22, 0x97, 0xd2, + 0xda, 0xee, 0xce, 0x7a, 0x75, 0xbf, 0xba, 0xbb, 0x53, 0xe1, 0x1a, 0x15, 0x52, 0x8a, 0x55, 0xa1, + 0x65, 0x98, 0x5d, 0xaf, 0xea, 0x1b, 0x6b, 0xbc, 0xc8, 0x15, 0x69, 0xec, 0xea, 0xc6, 0x93, 0xea, + 0xe3, 0x27, 0x1b, 0x7a, 0x21, 0x33, 0x3f, 0x79, 0xf1, 0xbc, 0x94, 0x6b, 0xab, 0x6c, 0xef, 0x2f, + 0xc4, 0xbd, 0xab, 0x1b, 0x5b, 0xbb, 0xbf, 0xb4, 0xa1, 0x17, 0x0a, 0xb2, 0x7f, 0x5b, 0x25, 0x5a, + 0x80, 0xf1, 0xfd, 0x0f, 0xf7, 0x36, 0x8c, 0xed, 0x8a, 0xfe, 0xde, 0xc6, 0x7e, 0xa1, 0x24, 0xa7, + 0x22, 0x4b, 0x68, 0x0e, 0x40, 0x34, 0x6e, 0x55, 0xb7, 0xab, 0xfb, 0x85, 0x77, 0xe7, 0xc7, 0x2e, + 0x9e, 0x97, 0x86, 0x45, 0x61, 0xb5, 0xfe, 0xa3, 0xcf, 0x16, 0xb5, 0x9f, 0x7c, 0xb6, 0xa8, 0xfd, + 0xcb, 0x67, 0x8b, 0xda, 0xf7, 0x3e, 0x5f, 0xbc, 0xf5, 0x93, 0xcf, 0x17, 0x6f, 0xfd, 0xe3, 0xe7, + 0x8b, 0xb7, 0xbe, 0xb5, 0x13, 0x4b, 0xcc, 0xaa, 0x41, 0xc8, 0xd8, 0xc2, 0x87, 0x6c, 0x25, 0x0c, + 0x20, 0xaf, 0x9b, 0xae, 0x47, 0xe2, 0xc5, 0x3a, 0xa6, 0xce, 0x4a, 0xc3, 0xe5, 0x1b, 0x04, 0x16, + 0xfd, 0x7d, 0x16, 0x91, 0xc4, 0x1d, 0x8e, 0x88, 0x6f, 0x5d, 0xbf, 0xfa, 0x5f, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xcf, 0x06, 0xe9, 0x3c, 0xc2, 0x45, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -3846,7 +4015,7 @@ func (this *Params) Equal(that interface{}) bool { } return true } -func (m *Params) Marshal() (dAtA []byte, err error) { +func (m *OpenNotionalCap) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -3856,49 +4025,179 @@ func (m *Params) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Params) MarshalTo(dAtA []byte) (int, error) { +func (m *OpenNotionalCap) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *OpenNotionalCap) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.FixedGasEnabled { - i-- - if m.FixedGasEnabled { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if m.Cap != nil { + { + size := m.Cap.Size() + i -= size + if _, err := m.Cap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xe8 } - { - size := m.InjAuctionMaxCap.Size() - i -= size - if _, err := m.InjAuctionMaxCap.MarshalTo(dAtA[i:]); err != nil { - return 0, err + return len(dAtA) - i, nil +} + +func (m *OpenNotionalCap_Uncapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCap_Uncapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uncapped != nil { + { + size, err := m.Uncapped.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintExchange(dAtA, i, uint64(size)) } - i = encodeVarintExchange(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xe2 - if len(m.ExchangeAdmins) > 0 { - for iNdEx := len(m.ExchangeAdmins) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.ExchangeAdmins[iNdEx]) - copy(dAtA[i:], m.ExchangeAdmins[iNdEx]) - i = encodeVarintExchange(dAtA, i, uint64(len(m.ExchangeAdmins[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xda + return len(dAtA) - i, nil +} +func (m *OpenNotionalCap_Capped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCap_Capped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Capped != nil { + { + size, err := m.Capped.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *OpenNotionalCapUncapped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenNotionalCapUncapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCapUncapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *OpenNotionalCapCapped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenNotionalCapCapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCapCapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Value.Size() + i -= size + if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Params) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Params) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.FixedGasEnabled { + i-- + if m.FixedGasEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe8 + } + { + size := m.InjAuctionMaxCap.Size() + i -= size + if _, err := m.InjAuctionMaxCap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe2 + if len(m.ExchangeAdmins) > 0 { + for iNdEx := len(m.ExchangeAdmins) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ExchangeAdmins[iNdEx]) + copy(dAtA[i:], m.ExchangeAdmins[iNdEx]) + i = encodeVarintExchange(dAtA, i, uint64(len(m.ExchangeAdmins[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xda } } if m.MarginDecreasePriceTimestampThresholdSeconds != 0 { @@ -4211,6 +4510,18 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 { size := m.ReduceMarginRatio.Size() i -= size @@ -7169,6 +7480,62 @@ func encodeVarintExchange(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *OpenNotionalCap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Cap != nil { + n += m.Cap.Size() + } + return n +} + +func (m *OpenNotionalCap_Uncapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Uncapped != nil { + l = m.Uncapped.Size() + n += 1 + l + sovExchange(uint64(l)) + } + return n +} +func (m *OpenNotionalCap_Capped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Capped != nil { + l = m.Capped.Size() + n += 1 + l + sovExchange(uint64(l)) + } + return n +} +func (m *OpenNotionalCapUncapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *OpenNotionalCapCapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Value.Size() + n += 1 + l + sovExchange(uint64(l)) + return n +} + func (m *Params) Size() (n int) { if m == nil { return 0 @@ -7330,6 +7697,8 @@ func (m *DerivativeMarket) Size() (n int) { } l = m.ReduceMarginRatio.Size() n += 2 + l + sovExchange(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovExchange(uint64(l)) return n } @@ -8387,6 +8756,260 @@ func sovExchange(x uint64) (n int) { func sozExchange(x uint64) (n int) { return sovExchange(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *OpenNotionalCap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uncapped", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OpenNotionalCapUncapped{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Cap = &OpenNotionalCap_Uncapped{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Capped", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OpenNotionalCapCapped{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Cap = &OpenNotionalCap_Capped{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OpenNotionalCapUncapped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCapUncapped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCapUncapped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OpenNotionalCapCapped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCapCapped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCapCapped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Params) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -10043,6 +10666,39 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthExchange + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthExchange + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) diff --git a/chain/exchange/types/expected_keepers.go b/chain/exchange/types/expected_keepers.go index 4b3101aa..827180b1 100644 --- a/chain/exchange/types/expected_keepers.go +++ b/chain/exchange/types/expected_keepers.go @@ -68,7 +68,6 @@ type DistributionKeeper interface { type StakingKeeper interface { GetDelegatorDelegations(ctx context.Context, delegator sdk.AccAddress, maxRetrieve uint16) (delegations []stakingtypes.Delegation, err error) Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) // get a particular validator by operator address - SetDelegationTransferReceiver(ctx context.Context, receiver sdk.AccAddress) } type WasmViewKeeper interface { diff --git a/chain/exchange/types/key.go b/chain/exchange/types/key.go index 7e3d3493..f6307cec 100644 --- a/chain/exchange/types/key.go +++ b/chain/exchange/types/key.go @@ -68,6 +68,7 @@ var ( PerpetualMarketInfoPrefix = []byte{0x32} // prefix for each key to a perpetual market's market info ExpiryFuturesMarketInfoPrefix = []byte{0x33} // prefix for each key to a expiry futures market's market info ExpiryFuturesMarketInfoByTimestampPrefix = []byte{0x34} // prefix for each index key to a expiry futures market's market info + DerivativeMarketOpenInterestPrefix = []byte{0x35} // prefix for each key to a derivative market's open interest IsFirstFeeCycleFinishedKey = []byte{0x3c} // key to the fee discount is first cycle finished diff --git a/chain/exchange/types/market.go b/chain/exchange/types/market.go index e5f88ace..04e93858 100644 --- a/chain/exchange/types/market.go +++ b/chain/exchange/types/market.go @@ -11,9 +11,14 @@ import ( peggytypes "github.com/InjectiveLabs/sdk-go/chain/peggy/types" ) -var BinaryOptionsMarketRefundFlagPrice = math.LegacyNewDec(-1) +const ( + SPOT_MARKET_ID_PREFIX = "-SPOT-MARKET-" + PERPETUAL_MARKET_ID_PREFIX = "-PERPETUAL-MARKET-" + EXPIRY_FUTURES_MARKET_ID_PREFIX = "-EXPIRY-FUTURES-MARKET-" + BINARY_OPTIONS_MARKET_ID_PREFIX = "-BINARY-OPTIONS-MARKET-" +) -const BO_MARKET_STRING_DELIMITER = "-BO-MARKET-" +var BinaryOptionsMarketRefundFlagPrice = math.LegacyNewDec(-1) type DerivativeMarketInfo struct { Market *DerivativeMarket @@ -32,7 +37,7 @@ func NewSpotMarketID(baseDenom, quoteDenom string) common.Hash { quoteDenom = quotePeggyDenom.String() } - return crypto.Keccak256Hash([]byte((baseDenom + quoteDenom))) + return crypto.Keccak256Hash([]byte((SPOT_MARKET_ID_PREFIX + baseDenom + quoteDenom))) } func NewPerpetualMarketID(ticker, quoteDenom, oracleBase, oracleQuote string, oracleType oracletypes.OracleType) common.Hash { @@ -41,7 +46,7 @@ func NewPerpetualMarketID(ticker, quoteDenom, oracleBase, oracleQuote string, or quoteDenom = quotePeggyDenom.String() } - return crypto.Keccak256Hash([]byte((oracleType.String() + ticker + quoteDenom + oracleBase + oracleQuote))) + return crypto.Keccak256Hash([]byte((PERPETUAL_MARKET_ID_PREFIX + oracleType.String() + ticker + quoteDenom + oracleBase + oracleQuote))) } func NewBinaryOptionsMarketID(ticker, quoteDenom, oracleSymbol, oracleProvider string, oracleType oracletypes.OracleType) common.Hash { @@ -50,9 +55,12 @@ func NewBinaryOptionsMarketID(ticker, quoteDenom, oracleSymbol, oracleProvider s quoteDenom = quotePeggyDenom.String() } - return crypto.Keccak256Hash([]byte( - BO_MARKET_STRING_DELIMITER + oracleType.String() + ticker + quoteDenom + oracleSymbol + oracleProvider), - ) + return crypto.Keccak256Hash([]byte((BINARY_OPTIONS_MARKET_ID_PREFIX + + oracleType.String() + + ticker + + quoteDenom + + oracleSymbol + + oracleProvider))) } func NewExpiryFuturesMarketID(ticker, quoteDenom, oracleBase, oracleQuote string, oracleType oracletypes.OracleType, expiry int64) common.Hash { @@ -60,7 +68,13 @@ func NewExpiryFuturesMarketID(ticker, quoteDenom, oracleBase, oracleQuote string if err == nil { quoteDenom = quotePeggyDenom.String() } - return crypto.Keccak256Hash([]byte((oracleType.String() + ticker + quoteDenom + oracleBase + oracleQuote + strconv.Itoa(int(expiry))))) + return crypto.Keccak256Hash([]byte((EXPIRY_FUTURES_MARKET_ID_PREFIX + + oracleType.String() + + ticker + + quoteDenom + + oracleBase + + oracleQuote + + strconv.Itoa(int(expiry))))) } func NewDerivativesMarketID(ticker, quoteDenom, oracleBase, oracleQuote string, oracleType oracletypes.OracleType, expiry int64) common.Hash { diff --git a/chain/exchange/types/market_admin.go b/chain/exchange/types/market_admin.go index dfe2091f..fb7f3f08 100644 --- a/chain/exchange/types/market_admin.go +++ b/chain/exchange/types/market_admin.go @@ -1,16 +1,17 @@ package types const ( - TickerPerm = 1 << iota - MinPriceTickSizePerm = 1 << iota - MinQuantityTickSizePerm = 1 << iota - MinNotionalPerm = 1 << iota - InitialMarginRatioPerm = 1 << iota - MaintenanceMarginRatioPerm = 1 << iota - ReduceMarginRatioPerm = 1 << iota + TickerPerm = 1 << iota + MinPriceTickSizePerm + MinQuantityTickSizePerm + MinNotionalPerm + InitialMarginRatioPerm + MaintenanceMarginRatioPerm + ReduceMarginRatioPerm + OpenNotionalCapPerm MaxPerm = TickerPerm | MinPriceTickSizePerm | MinQuantityTickSizePerm | MinNotionalPerm | - InitialMarginRatioPerm | MaintenanceMarginRatioPerm | ReduceMarginRatioPerm + InitialMarginRatioPerm | MaintenanceMarginRatioPerm | ReduceMarginRatioPerm | OpenNotionalCapPerm ) type MarketAdminPermissions int diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index 5bee378c..9f0bccd4 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -37,6 +37,8 @@ var ( _ sdk.Msg = &MsgLiquidatePosition{} _ sdk.Msg = &MsgEmergencySettleMarket{} _ sdk.Msg = &MsgInstantSpotMarketLaunch{} + _ sdk.Msg = &MsgInstantPerpetualMarketLaunch{} + _ sdk.Msg = &MsgInstantExpiryFuturesMarketLaunch{} _ sdk.Msg = &MsgBatchUpdateOrders{} _ sdk.Msg = &MsgPrivilegedExecuteContract{} _ sdk.Msg = &MsgRewardsOptOut{} @@ -335,10 +337,6 @@ func (o *OrderInfo) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPriceBand, } } - if isDerivative && !hasBinaryPriceBand && o.Price.LT(MinDerivativeOrderPrice) { - return errors.Wrap(ErrInvalidPrice, o.Price.String()) - } - return nil } @@ -376,8 +374,9 @@ func (m *DerivativeOrder) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPric return ErrInvalidTriggerPrice } - if m.OrderType.IsConditional() && (m.TriggerPrice == nil || m.TriggerPrice.LT(MinDerivativeOrderPrice)) { /*|| - !o.OrderType.IsConditional() && o.TriggerPrice != nil */ // commented out this check since FE is sending to us 0.0 trigger price for all orders + if m.OrderType.IsConditional() && (m.TriggerPrice == nil || m.TriggerPrice.LTE(math.LegacyZeroDec())) { + /* || !o.OrderType.IsConditional() && o.TriggerPrice != nil */ + // commented out this check since FE is sending to us 0.0 trigger price for all orders return errors.Wrapf( ErrInvalidTriggerPrice, "Mismatch between triggerPrice: %v and orderType: %v, or triggerPrice is incorrect", @@ -590,6 +589,75 @@ func (msg MsgInstantSpotMarketLaunch) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } +// Route implements the sdk.Msg interface. It should return the name of the module +func (MsgInstantPerpetualMarketLaunch) Route() string { return RouterKey } + +// Type implements the sdk.Msg interface. It should return the action. +func (MsgInstantPerpetualMarketLaunch) Type() string { return TypeMsgInstantPerpetualMarketLaunch } + +// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message +// +//revive:disable:cyclomatic // The function mostly calls other ValidateBasic functions +func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) + } + if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) + } + if msg.QuoteDenom == "" { + return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") + } + oracleParams := NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) + if err := oracleParams.ValidateBasic(); err != nil { + return err + } + if err := ValidateMakerFee(msg.MakerFeeRate); err != nil { + return err + } + if err := ValidateFee(msg.TakerFeeRate); err != nil { + return err + } + if err := ValidateMarginRatio(msg.InitialMarginRatio); err != nil { + return err + } + if err := ValidateMarginRatio(msg.MaintenanceMarginRatio); err != nil { + return err + } + if msg.MakerFeeRate.GT(msg.TakerFeeRate) { + return ErrFeeRatesRelation + } + if msg.InitialMarginRatio.LTE(msg.MaintenanceMarginRatio) { + return ErrMarginsRelation + } + if err := ValidateTickSize(msg.MinPriceTickSize); err != nil { + return errors.Wrap(ErrInvalidPriceTickSize, err.Error()) + } + if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { + return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) + } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + + return nil +} + +// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing +func (msg *MsgInstantPerpetualMarketLaunch) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners implements the sdk.Msg interface. It defines whose signature is required +func (msg MsgInstantPerpetualMarketLaunch) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + // Route implements the sdk.Msg interface. It should return the name of the module func (msg MsgInstantBinaryOptionsMarketLaunch) Route() string { return RouterKey } @@ -667,6 +735,81 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } +// Route implements the sdk.Msg interface. It should return the name of the module +func (MsgInstantExpiryFuturesMarketLaunch) Route() string { return RouterKey } + +// Type implements the sdk.Msg interface. It should return the action. +func (MsgInstantExpiryFuturesMarketLaunch) Type() string { + return TypeMsgInstantExpiryFuturesMarketLaunch +} + +// ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message +// +//nolint:revive // The function mostly calls other ValidateBasic functions +func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) + } + if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) + } + if msg.QuoteDenom == "" { + return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") + } + + oracleParams := NewOracleParams(msg.OracleBase, msg.OracleQuote, msg.OracleScaleFactor, msg.OracleType) + if err := oracleParams.ValidateBasic(); err != nil { + return err + } + if msg.Expiry <= 0 { + return errors.Wrap(ErrInvalidExpiry, "expiry should not be empty") + } + if err := ValidateMakerFee(msg.MakerFeeRate); err != nil { + return err + } + if err := ValidateFee(msg.TakerFeeRate); err != nil { + return err + } + if err := ValidateMarginRatio(msg.InitialMarginRatio); err != nil { + return err + } + if err := ValidateMarginRatio(msg.MaintenanceMarginRatio); err != nil { + return err + } + if msg.MakerFeeRate.GT(msg.TakerFeeRate) { + return ErrFeeRatesRelation + } + if msg.InitialMarginRatio.LTE(msg.MaintenanceMarginRatio) { + return ErrMarginsRelation + } + if err := ValidateTickSize(msg.MinPriceTickSize); err != nil { + return errors.Wrap(ErrInvalidPriceTickSize, err.Error()) + } + if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { + return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) + } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + + return nil +} + +// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing +func (msg *MsgInstantExpiryFuturesMarketLaunch) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners implements the sdk.Msg interface. It defines whose signature is required +func (msg MsgInstantExpiryFuturesMarketLaunch) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + // Route implements the sdk.Msg interface. It should return the name of the module func (msg MsgCreateSpotLimitOrder) Route() string { return RouterKey } diff --git a/chain/exchange/types/params.go b/chain/exchange/types/params.go index 06acc96c..c18b1f26 100644 --- a/chain/exchange/types/params.go +++ b/chain/exchange/types/params.go @@ -1,6 +1,7 @@ package types import ( + "errors" "fmt" "cosmossdk.io/math" @@ -44,15 +45,16 @@ const ( // MaxGranterDelegations is the maximum number of delegations that are checked for stake granter MaxGranterDelegations = 25 + + // MaxTickSizeDecimalPlaces defines the maximum number of decimal places allowed for tick size + // The real max for LegacyDec is 18, but we allow 15 to ensure that we are absolutely safe of any rounding issues + MaxTickSizeDecimalPlaces = 15 ) var DefaultInjAuctionMaxCap = math.NewIntWithDecimal(10_000, 18) var MaxBinaryOptionsOrderPrice = math.LegacyOneDec() -// would be $0.000001 for USDT -var MinDerivativeOrderPrice = math.LegacyOneDec() - // MaxOrderPrice equals 10^32 var MaxOrderPrice = math.LegacyMustNewDecFromStr("100000000000000000000000000000000") @@ -386,20 +388,38 @@ func ValidateTickSize(i interface{}) error { return fmt.Errorf("unsupported tick size amount") } - // 1e18 scaleFactor - scaleFactor := math.LegacyNewDec(1000000000000000000) - // v can be a decimal (e.g. 1e-18) so we scale by 1e18 + // Use 10^MaxTickSizeDecimalPlaces as scaleFactor to naturally enforce decimal places limit + // Any tick size with more than MaxTickSizeDecimalPlaces decimal places will result in + // a scaled value < 1, which cannot be a power of 10 + scaleFactor := math.LegacyNewDec(10).Power(MaxTickSizeDecimalPlaces) + // v can be a decimal (e.g. 1e-15) so we scale by 10^15 scaledValue := v.Mul(scaleFactor) - power := math.LegacyNewDec(1) + // Check if scaledValue is a power of 10 using repeated division + if scaledValue.LTE(math.LegacyZeroDec()) { + return errors.New("unsupported tick size") + } + + // Handle the special case of 1 (which is 10^0) + if scaledValue.Equal(math.LegacyOneDec()) { + return nil + } + + temp := scaledValue ten := math.LegacyNewDec(10) - // determine whether scaledValue is a power of 10 - for power.LT(scaledValue) { - power = power.Mul(ten) + // Keep dividing by 10 while the result is >= 10 + for temp.GTE(ten) { + quotient := temp.Quo(ten) + // Check if the division was exact (no remainder) + if !quotient.Mul(ten).Equal(temp) { + return errors.New("unsupported tick size") + } + temp = quotient } - if !power.Equal(scaledValue) { + // After all divisions, we should have exactly 1 + if !temp.Equal(math.LegacyOneDec()) { return fmt.Errorf("unsupported tick size") } diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go index 9b2bc4da..932433b5 100644 --- a/chain/exchange/types/query.pb.go +++ b/chain/exchange/types/query.pb.go @@ -7997,7 +7997,7 @@ type QueryClient interface { // MarketVolatility computes the volatility for spot and derivative markets // trading history. MarketVolatility(ctx context.Context, in *QueryMarketVolatilityRequest, opts ...grpc.CallOption) (*QueryMarketVolatilityResponse, error) - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets BinaryOptionsMarkets(ctx context.Context, in *QueryBinaryMarketsRequest, opts ...grpc.CallOption) (*QueryBinaryMarketsResponse, error) // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(ctx context.Context, in *QueryTraderDerivativeConditionalOrdersRequest, opts ...grpc.CallOption) (*QueryTraderDerivativeConditionalOrdersResponse, error) @@ -8737,7 +8737,7 @@ type QueryServer interface { // MarketVolatility computes the volatility for spot and derivative markets // trading history. MarketVolatility(context.Context, *QueryMarketVolatilityRequest) (*QueryMarketVolatilityResponse, error) - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets BinaryOptionsMarkets(context.Context, *QueryBinaryMarketsRequest) (*QueryBinaryMarketsResponse, error) // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(context.Context, *QueryTraderDerivativeConditionalOrdersRequest) (*QueryTraderDerivativeConditionalOrdersResponse, error) diff --git a/chain/exchange/types/tx.pb.go b/chain/exchange/types/tx.pb.go index a3f42454..56fd5af0 100644 --- a/chain/exchange/types/tx.pb.go +++ b/chain/exchange/types/tx.pb.go @@ -750,6 +750,118 @@ func (m *MsgInstantSpotMarketLaunchResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgInstantSpotMarketLaunchResponse proto.InternalMessageInfo +// MsgInstantPerpetualMarketLaunch defines a SDK message for creating a new +// perpetual futures market by paying listing fee without governance +type MsgInstantPerpetualMarketLaunch struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // Ticker for the derivative market. + Ticker string `protobuf:"bytes,2,opt,name=ticker,proto3" json:"ticker,omitempty"` + // type of coin to use as the base currency + QuoteDenom string `protobuf:"bytes,3,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` + // Oracle base currency + OracleBase string `protobuf:"bytes,4,opt,name=oracle_base,json=oracleBase,proto3" json:"oracle_base,omitempty"` + // Oracle quote currency + OracleQuote string `protobuf:"bytes,5,opt,name=oracle_quote,json=oracleQuote,proto3" json:"oracle_quote,omitempty"` + // Scale factor for oracle prices. + OracleScaleFactor uint32 `protobuf:"varint,6,opt,name=oracle_scale_factor,json=oracleScaleFactor,proto3" json:"oracle_scale_factor,omitempty"` + // Oracle type + OracleType types1.OracleType `protobuf:"varint,7,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` + // maker_fee_rate defines the trade fee rate for makers on the perpetual + // market + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` + // taker_fee_rate defines the trade fee rate for takers on the perpetual + // market + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` + // initial_margin_ratio defines the initial margin ratio for the perpetual + // market + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` + // maintenance_margin_ratio defines the maintenance margin ratio for the + // perpetual market + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` + // min_price_tick_size defines the minimum tick size of the order's price and + // margin + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` + // min_quantity_tick_size defines the minimum tick size of the order's + // quantity + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` +} + +func (m *MsgInstantPerpetualMarketLaunch) Reset() { *m = MsgInstantPerpetualMarketLaunch{} } +func (m *MsgInstantPerpetualMarketLaunch) String() string { return proto.CompactTextString(m) } +func (*MsgInstantPerpetualMarketLaunch) ProtoMessage() {} +func (*MsgInstantPerpetualMarketLaunch) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{16} +} +func (m *MsgInstantPerpetualMarketLaunch) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgInstantPerpetualMarketLaunch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgInstantPerpetualMarketLaunch.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgInstantPerpetualMarketLaunch) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgInstantPerpetualMarketLaunch.Merge(m, src) +} +func (m *MsgInstantPerpetualMarketLaunch) XXX_Size() int { + return m.Size() +} +func (m *MsgInstantPerpetualMarketLaunch) XXX_DiscardUnknown() { + xxx_messageInfo_MsgInstantPerpetualMarketLaunch.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgInstantPerpetualMarketLaunch proto.InternalMessageInfo + +// MsgInstantPerpetualMarketLaunchResponse defines the +// Msg/InstantPerpetualMarketLaunchResponse response type. +type MsgInstantPerpetualMarketLaunchResponse struct { +} + +func (m *MsgInstantPerpetualMarketLaunchResponse) Reset() { + *m = MsgInstantPerpetualMarketLaunchResponse{} +} +func (m *MsgInstantPerpetualMarketLaunchResponse) String() string { return proto.CompactTextString(m) } +func (*MsgInstantPerpetualMarketLaunchResponse) ProtoMessage() {} +func (*MsgInstantPerpetualMarketLaunchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{17} +} +func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgInstantPerpetualMarketLaunchResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgInstantPerpetualMarketLaunchResponse.Merge(m, src) +} +func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgInstantPerpetualMarketLaunchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgInstantPerpetualMarketLaunchResponse proto.InternalMessageInfo + // MsgInstantBinaryOptionsMarketLaunch defines a SDK message for creating a new // perpetual futures market by paying listing fee without governance type MsgInstantBinaryOptionsMarketLaunch struct { @@ -794,7 +906,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Reset() { *m = MsgInstantB func (m *MsgInstantBinaryOptionsMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgInstantBinaryOptionsMarketLaunch) ProtoMessage() {} func (*MsgInstantBinaryOptionsMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{16} + return fileDescriptor_bd45b74cb6d81462, []int{18} } func (m *MsgInstantBinaryOptionsMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -836,7 +948,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) String() string { } func (*MsgInstantBinaryOptionsMarketLaunchResponse) ProtoMessage() {} func (*MsgInstantBinaryOptionsMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{17} + return fileDescriptor_bd45b74cb6d81462, []int{19} } func (m *MsgInstantBinaryOptionsMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -865,6 +977,122 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgInstantBinaryOptionsMarketLaunchResponse proto.InternalMessageInfo +// MsgInstantExpiryFuturesMarketLaunch defines a SDK message for creating a new +// expiry futures market by paying listing fee without governance +type MsgInstantExpiryFuturesMarketLaunch struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // Ticker for the derivative market. + Ticker string `protobuf:"bytes,2,opt,name=ticker,proto3" json:"ticker,omitempty"` + // type of coin to use as the quote currency + QuoteDenom string `protobuf:"bytes,3,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` + // Oracle base currency + OracleBase string `protobuf:"bytes,4,opt,name=oracle_base,json=oracleBase,proto3" json:"oracle_base,omitempty"` + // Oracle quote currency + OracleQuote string `protobuf:"bytes,5,opt,name=oracle_quote,json=oracleQuote,proto3" json:"oracle_quote,omitempty"` + // Oracle type + OracleType types1.OracleType `protobuf:"varint,6,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` + // Scale factor for oracle prices. + OracleScaleFactor uint32 `protobuf:"varint,7,opt,name=oracle_scale_factor,json=oracleScaleFactor,proto3" json:"oracle_scale_factor,omitempty"` + // Expiration time of the market + Expiry int64 `protobuf:"varint,8,opt,name=expiry,proto3" json:"expiry,omitempty"` + // maker_fee_rate defines the trade fee rate for makers on the expiry futures + // market + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` + // taker_fee_rate defines the trade fee rate for takers on the expiry futures + // market + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` + // initial_margin_ratio defines the initial margin ratio for the derivative + // market + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` + // maintenance_margin_ratio defines the maintenance margin ratio for the + // derivative market + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` + // min_price_tick_size defines the minimum tick size of the order's price and + // margin + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` + // min_quantity_tick_size defines the minimum tick size of the order's + // quantity + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` +} + +func (m *MsgInstantExpiryFuturesMarketLaunch) Reset() { *m = MsgInstantExpiryFuturesMarketLaunch{} } +func (m *MsgInstantExpiryFuturesMarketLaunch) String() string { return proto.CompactTextString(m) } +func (*MsgInstantExpiryFuturesMarketLaunch) ProtoMessage() {} +func (*MsgInstantExpiryFuturesMarketLaunch) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{20} +} +func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunch.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunch.Merge(m, src) +} +func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_Size() int { + return m.Size() +} +func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_DiscardUnknown() { + xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunch.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunch proto.InternalMessageInfo + +// MsgInstantExpiryFuturesMarketLaunchResponse defines the +// Msg/InstantExpiryFuturesMarketLaunch response type. +type MsgInstantExpiryFuturesMarketLaunchResponse struct { +} + +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Reset() { + *m = MsgInstantExpiryFuturesMarketLaunchResponse{} +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) String() string { + return proto.CompactTextString(m) +} +func (*MsgInstantExpiryFuturesMarketLaunchResponse) ProtoMessage() {} +func (*MsgInstantExpiryFuturesMarketLaunchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{21} +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunchResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunchResponse.Merge(m, src) +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgInstantExpiryFuturesMarketLaunchResponse proto.InternalMessageInfo + // MsgCreateSpotMarketOrder defines a SDK message for creating a new spot market // order. type MsgCreateSpotMarketOrder struct { @@ -876,7 +1104,7 @@ func (m *MsgCreateSpotMarketOrder) Reset() { *m = MsgCreateSpotMarketOrd func (m *MsgCreateSpotMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotMarketOrder) ProtoMessage() {} func (*MsgCreateSpotMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{18} + return fileDescriptor_bd45b74cb6d81462, []int{22} } func (m *MsgCreateSpotMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -917,7 +1145,7 @@ func (m *MsgCreateSpotMarketOrderResponse) Reset() { *m = MsgCreateSpotM func (m *MsgCreateSpotMarketOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotMarketOrderResponse) ProtoMessage() {} func (*MsgCreateSpotMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{19} + return fileDescriptor_bd45b74cb6d81462, []int{23} } func (m *MsgCreateSpotMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -956,7 +1184,7 @@ func (m *SpotMarketOrderResults) Reset() { *m = SpotMarketOrderResults{} func (m *SpotMarketOrderResults) String() string { return proto.CompactTextString(m) } func (*SpotMarketOrderResults) ProtoMessage() {} func (*SpotMarketOrderResults) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{20} + return fileDescriptor_bd45b74cb6d81462, []int{24} } func (m *SpotMarketOrderResults) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -995,7 +1223,7 @@ func (m *MsgCreateDerivativeLimitOrder) Reset() { *m = MsgCreateDerivati func (m *MsgCreateDerivativeLimitOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeLimitOrder) ProtoMessage() {} func (*MsgCreateDerivativeLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{21} + return fileDescriptor_bd45b74cb6d81462, []int{25} } func (m *MsgCreateDerivativeLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1035,7 +1263,7 @@ func (m *MsgCreateDerivativeLimitOrderResponse) Reset() { *m = MsgCreate func (m *MsgCreateDerivativeLimitOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeLimitOrderResponse) ProtoMessage() {} func (*MsgCreateDerivativeLimitOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{22} + return fileDescriptor_bd45b74cb6d81462, []int{26} } func (m *MsgCreateDerivativeLimitOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1074,7 +1302,7 @@ func (m *MsgCreateBinaryOptionsLimitOrder) Reset() { *m = MsgCreateBinar func (m *MsgCreateBinaryOptionsLimitOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsLimitOrder) ProtoMessage() {} func (*MsgCreateBinaryOptionsLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{23} + return fileDescriptor_bd45b74cb6d81462, []int{27} } func (m *MsgCreateBinaryOptionsLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1116,7 +1344,7 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) Reset() { func (m *MsgCreateBinaryOptionsLimitOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsLimitOrderResponse) ProtoMessage() {} func (*MsgCreateBinaryOptionsLimitOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{24} + return fileDescriptor_bd45b74cb6d81462, []int{28} } func (m *MsgCreateBinaryOptionsLimitOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1155,7 +1383,7 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Reset() { *m = MsgBatchCre func (m *MsgBatchCreateDerivativeLimitOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCreateDerivativeLimitOrders) ProtoMessage() {} func (*MsgBatchCreateDerivativeLimitOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{25} + return fileDescriptor_bd45b74cb6d81462, []int{29} } func (m *MsgBatchCreateDerivativeLimitOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1200,7 +1428,7 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) String() string { } func (*MsgBatchCreateDerivativeLimitOrdersResponse) ProtoMessage() {} func (*MsgBatchCreateDerivativeLimitOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{26} + return fileDescriptor_bd45b74cb6d81462, []int{30} } func (m *MsgBatchCreateDerivativeLimitOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1242,7 +1470,7 @@ func (m *MsgCancelSpotOrder) Reset() { *m = MsgCancelSpotOrder{} } func (m *MsgCancelSpotOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelSpotOrder) ProtoMessage() {} func (*MsgCancelSpotOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{27} + return fileDescriptor_bd45b74cb6d81462, []int{31} } func (m *MsgCancelSpotOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1279,7 +1507,7 @@ func (m *MsgCancelSpotOrderResponse) Reset() { *m = MsgCancelSpotOrderRe func (m *MsgCancelSpotOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelSpotOrderResponse) ProtoMessage() {} func (*MsgCancelSpotOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{28} + return fileDescriptor_bd45b74cb6d81462, []int{32} } func (m *MsgCancelSpotOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1318,7 +1546,7 @@ func (m *MsgBatchCancelSpotOrders) Reset() { *m = MsgBatchCancelSpotOrde func (m *MsgBatchCancelSpotOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelSpotOrders) ProtoMessage() {} func (*MsgBatchCancelSpotOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{29} + return fileDescriptor_bd45b74cb6d81462, []int{33} } func (m *MsgBatchCancelSpotOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1357,7 +1585,7 @@ func (m *MsgBatchCancelSpotOrdersResponse) Reset() { *m = MsgBatchCancel func (m *MsgBatchCancelSpotOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelSpotOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelSpotOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{30} + return fileDescriptor_bd45b74cb6d81462, []int{34} } func (m *MsgBatchCancelSpotOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1397,7 +1625,7 @@ func (m *MsgBatchCancelBinaryOptionsOrders) Reset() { *m = MsgBatchCance func (m *MsgBatchCancelBinaryOptionsOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelBinaryOptionsOrders) ProtoMessage() {} func (*MsgBatchCancelBinaryOptionsOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{31} + return fileDescriptor_bd45b74cb6d81462, []int{35} } func (m *MsgBatchCancelBinaryOptionsOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1440,7 +1668,7 @@ func (m *MsgBatchCancelBinaryOptionsOrdersResponse) String() string { } func (*MsgBatchCancelBinaryOptionsOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelBinaryOptionsOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{32} + return fileDescriptor_bd45b74cb6d81462, []int{36} } func (m *MsgBatchCancelBinaryOptionsOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1500,7 +1728,7 @@ func (m *MsgBatchUpdateOrders) Reset() { *m = MsgBatchUpdateOrders{} } func (m *MsgBatchUpdateOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchUpdateOrders) ProtoMessage() {} func (*MsgBatchUpdateOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{33} + return fileDescriptor_bd45b74cb6d81462, []int{37} } func (m *MsgBatchUpdateOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1549,7 +1777,7 @@ func (m *MsgBatchUpdateOrdersResponse) Reset() { *m = MsgBatchUpdateOrde func (m *MsgBatchUpdateOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchUpdateOrdersResponse) ProtoMessage() {} func (*MsgBatchUpdateOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{34} + return fileDescriptor_bd45b74cb6d81462, []int{38} } func (m *MsgBatchUpdateOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1588,7 +1816,7 @@ func (m *MsgCreateDerivativeMarketOrder) Reset() { *m = MsgCreateDerivat func (m *MsgCreateDerivativeMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeMarketOrder) ProtoMessage() {} func (*MsgCreateDerivativeMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{35} + return fileDescriptor_bd45b74cb6d81462, []int{39} } func (m *MsgCreateDerivativeMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1631,7 +1859,7 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Reset() { func (m *MsgCreateDerivativeMarketOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeMarketOrderResponse) ProtoMessage() {} func (*MsgCreateDerivativeMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{36} + return fileDescriptor_bd45b74cb6d81462, []int{40} } func (m *MsgCreateDerivativeMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1672,7 +1900,7 @@ func (m *DerivativeMarketOrderResults) Reset() { *m = DerivativeMarketOr func (m *DerivativeMarketOrderResults) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketOrderResults) ProtoMessage() {} func (*DerivativeMarketOrderResults) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{37} + return fileDescriptor_bd45b74cb6d81462, []int{41} } func (m *DerivativeMarketOrderResults) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1711,7 +1939,7 @@ func (m *MsgCreateBinaryOptionsMarketOrder) Reset() { *m = MsgCreateBina func (m *MsgCreateBinaryOptionsMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsMarketOrder) ProtoMessage() {} func (*MsgCreateBinaryOptionsMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{38} + return fileDescriptor_bd45b74cb6d81462, []int{42} } func (m *MsgCreateBinaryOptionsMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1756,7 +1984,7 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) String() string { } func (*MsgCreateBinaryOptionsMarketOrderResponse) ProtoMessage() {} func (*MsgCreateBinaryOptionsMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{39} + return fileDescriptor_bd45b74cb6d81462, []int{43} } func (m *MsgCreateBinaryOptionsMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1805,7 +2033,7 @@ func (m *MsgCancelDerivativeOrder) Reset() { *m = MsgCancelDerivativeOrd func (m *MsgCancelDerivativeOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelDerivativeOrder) ProtoMessage() {} func (*MsgCancelDerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{40} + return fileDescriptor_bd45b74cb6d81462, []int{44} } func (m *MsgCancelDerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1843,7 +2071,7 @@ func (m *MsgCancelDerivativeOrderResponse) Reset() { *m = MsgCancelDeriv func (m *MsgCancelDerivativeOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelDerivativeOrderResponse) ProtoMessage() {} func (*MsgCancelDerivativeOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{41} + return fileDescriptor_bd45b74cb6d81462, []int{45} } func (m *MsgCancelDerivativeOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1893,7 +2121,7 @@ func (m *MsgCancelBinaryOptionsOrder) Reset() { *m = MsgCancelBinaryOpti func (m *MsgCancelBinaryOptionsOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelBinaryOptionsOrder) ProtoMessage() {} func (*MsgCancelBinaryOptionsOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{42} + return fileDescriptor_bd45b74cb6d81462, []int{46} } func (m *MsgCancelBinaryOptionsOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1931,7 +2159,7 @@ func (m *MsgCancelBinaryOptionsOrderResponse) Reset() { *m = MsgCancelBi func (m *MsgCancelBinaryOptionsOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelBinaryOptionsOrderResponse) ProtoMessage() {} func (*MsgCancelBinaryOptionsOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{43} + return fileDescriptor_bd45b74cb6d81462, []int{47} } func (m *MsgCancelBinaryOptionsOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1977,7 +2205,7 @@ func (m *OrderData) Reset() { *m = OrderData{} } func (m *OrderData) String() string { return proto.CompactTextString(m) } func (*OrderData) ProtoMessage() {} func (*OrderData) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{44} + return fileDescriptor_bd45b74cb6d81462, []int{48} } func (m *OrderData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2054,7 +2282,7 @@ func (m *MsgBatchCancelDerivativeOrders) Reset() { *m = MsgBatchCancelDe func (m *MsgBatchCancelDerivativeOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelDerivativeOrders) ProtoMessage() {} func (*MsgBatchCancelDerivativeOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{45} + return fileDescriptor_bd45b74cb6d81462, []int{49} } func (m *MsgBatchCancelDerivativeOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2095,7 +2323,7 @@ func (m *MsgBatchCancelDerivativeOrdersResponse) Reset() { func (m *MsgBatchCancelDerivativeOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelDerivativeOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelDerivativeOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{46} + return fileDescriptor_bd45b74cb6d81462, []int{50} } func (m *MsgBatchCancelDerivativeOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2140,7 +2368,7 @@ func (m *MsgSubaccountTransfer) Reset() { *m = MsgSubaccountTransfer{} } func (m *MsgSubaccountTransfer) String() string { return proto.CompactTextString(m) } func (*MsgSubaccountTransfer) ProtoMessage() {} func (*MsgSubaccountTransfer) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{47} + return fileDescriptor_bd45b74cb6d81462, []int{51} } func (m *MsgSubaccountTransfer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2206,7 +2434,7 @@ func (m *MsgSubaccountTransferResponse) Reset() { *m = MsgSubaccountTran func (m *MsgSubaccountTransferResponse) String() string { return proto.CompactTextString(m) } func (*MsgSubaccountTransferResponse) ProtoMessage() {} func (*MsgSubaccountTransferResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{48} + return fileDescriptor_bd45b74cb6d81462, []int{52} } func (m *MsgSubaccountTransferResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2247,7 +2475,7 @@ func (m *MsgExternalTransfer) Reset() { *m = MsgExternalTransfer{} } func (m *MsgExternalTransfer) String() string { return proto.CompactTextString(m) } func (*MsgExternalTransfer) ProtoMessage() {} func (*MsgExternalTransfer) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{49} + return fileDescriptor_bd45b74cb6d81462, []int{53} } func (m *MsgExternalTransfer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2312,7 +2540,7 @@ func (m *MsgExternalTransferResponse) Reset() { *m = MsgExternalTransfer func (m *MsgExternalTransferResponse) String() string { return proto.CompactTextString(m) } func (*MsgExternalTransferResponse) ProtoMessage() {} func (*MsgExternalTransferResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{50} + return fileDescriptor_bd45b74cb6d81462, []int{54} } func (m *MsgExternalTransferResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2357,7 +2585,7 @@ func (m *MsgLiquidatePosition) Reset() { *m = MsgLiquidatePosition{} } func (m *MsgLiquidatePosition) String() string { return proto.CompactTextString(m) } func (*MsgLiquidatePosition) ProtoMessage() {} func (*MsgLiquidatePosition) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{51} + return fileDescriptor_bd45b74cb6d81462, []int{55} } func (m *MsgLiquidatePosition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2422,7 +2650,7 @@ func (m *MsgLiquidatePositionResponse) Reset() { *m = MsgLiquidatePositi func (m *MsgLiquidatePositionResponse) String() string { return proto.CompactTextString(m) } func (*MsgLiquidatePositionResponse) ProtoMessage() {} func (*MsgLiquidatePositionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{52} + return fileDescriptor_bd45b74cb6d81462, []int{56} } func (m *MsgLiquidatePositionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2465,7 +2693,7 @@ func (m *MsgEmergencySettleMarket) Reset() { *m = MsgEmergencySettleMark func (m *MsgEmergencySettleMarket) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarket) ProtoMessage() {} func (*MsgEmergencySettleMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{53} + return fileDescriptor_bd45b74cb6d81462, []int{57} } func (m *MsgEmergencySettleMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2524,7 +2752,7 @@ func (m *MsgEmergencySettleMarketResponse) Reset() { *m = MsgEmergencySe func (m *MsgEmergencySettleMarketResponse) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarketResponse) ProtoMessage() {} func (*MsgEmergencySettleMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{54} + return fileDescriptor_bd45b74cb6d81462, []int{58} } func (m *MsgEmergencySettleMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2572,7 +2800,7 @@ func (m *MsgIncreasePositionMargin) Reset() { *m = MsgIncreasePositionMa func (m *MsgIncreasePositionMargin) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMargin) ProtoMessage() {} func (*MsgIncreasePositionMargin) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{55} + return fileDescriptor_bd45b74cb6d81462, []int{59} } func (m *MsgIncreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2638,7 +2866,7 @@ func (m *MsgIncreasePositionMarginResponse) Reset() { *m = MsgIncreasePo func (m *MsgIncreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMarginResponse) ProtoMessage() {} func (*MsgIncreasePositionMarginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{56} + return fileDescriptor_bd45b74cb6d81462, []int{60} } func (m *MsgIncreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2686,7 +2914,7 @@ func (m *MsgDecreasePositionMargin) Reset() { *m = MsgDecreasePositionMa func (m *MsgDecreasePositionMargin) String() string { return proto.CompactTextString(m) } func (*MsgDecreasePositionMargin) ProtoMessage() {} func (*MsgDecreasePositionMargin) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{57} + return fileDescriptor_bd45b74cb6d81462, []int{61} } func (m *MsgDecreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2752,7 +2980,7 @@ func (m *MsgDecreasePositionMarginResponse) Reset() { *m = MsgDecreasePo func (m *MsgDecreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } func (*MsgDecreasePositionMarginResponse) ProtoMessage() {} func (*MsgDecreasePositionMarginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{58} + return fileDescriptor_bd45b74cb6d81462, []int{62} } func (m *MsgDecreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2797,7 +3025,7 @@ func (m *MsgPrivilegedExecuteContract) Reset() { *m = MsgPrivilegedExecu func (m *MsgPrivilegedExecuteContract) String() string { return proto.CompactTextString(m) } func (*MsgPrivilegedExecuteContract) ProtoMessage() {} func (*MsgPrivilegedExecuteContract) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{59} + return fileDescriptor_bd45b74cb6d81462, []int{63} } func (m *MsgPrivilegedExecuteContract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2835,7 +3063,7 @@ func (m *MsgPrivilegedExecuteContractResponse) Reset() { *m = MsgPrivile func (m *MsgPrivilegedExecuteContractResponse) String() string { return proto.CompactTextString(m) } func (*MsgPrivilegedExecuteContractResponse) ProtoMessage() {} func (*MsgPrivilegedExecuteContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{60} + return fileDescriptor_bd45b74cb6d81462, []int{64} } func (m *MsgPrivilegedExecuteContractResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2873,7 +3101,7 @@ func (m *MsgRewardsOptOut) Reset() { *m = MsgRewardsOptOut{} } func (m *MsgRewardsOptOut) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOut) ProtoMessage() {} func (*MsgRewardsOptOut) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{61} + return fileDescriptor_bd45b74cb6d81462, []int{65} } func (m *MsgRewardsOptOut) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2910,7 +3138,7 @@ func (m *MsgRewardsOptOutResponse) Reset() { *m = MsgRewardsOptOutRespon func (m *MsgRewardsOptOutResponse) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOutResponse) ProtoMessage() {} func (*MsgRewardsOptOutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{62} + return fileDescriptor_bd45b74cb6d81462, []int{66} } func (m *MsgRewardsOptOutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2950,7 +3178,7 @@ func (m *MsgReclaimLockedFunds) Reset() { *m = MsgReclaimLockedFunds{} } func (m *MsgReclaimLockedFunds) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFunds) ProtoMessage() {} func (*MsgReclaimLockedFunds) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{63} + return fileDescriptor_bd45b74cb6d81462, []int{67} } func (m *MsgReclaimLockedFunds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3009,7 +3237,7 @@ func (m *MsgReclaimLockedFundsResponse) Reset() { *m = MsgReclaimLockedF func (m *MsgReclaimLockedFundsResponse) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFundsResponse) ProtoMessage() {} func (*MsgReclaimLockedFundsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{64} + return fileDescriptor_bd45b74cb6d81462, []int{68} } func (m *MsgReclaimLockedFundsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3051,7 +3279,7 @@ func (m *MsgSignData) Reset() { *m = MsgSignData{} } func (m *MsgSignData) String() string { return proto.CompactTextString(m) } func (*MsgSignData) ProtoMessage() {} func (*MsgSignData) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{65} + return fileDescriptor_bd45b74cb6d81462, []int{69} } func (m *MsgSignData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3104,7 +3332,7 @@ func (m *MsgSignDoc) Reset() { *m = MsgSignDoc{} } func (m *MsgSignDoc) String() string { return proto.CompactTextString(m) } func (*MsgSignDoc) ProtoMessage() {} func (*MsgSignDoc) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{66} + return fileDescriptor_bd45b74cb6d81462, []int{70} } func (m *MsgSignDoc) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3166,7 +3394,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Reset() { *m = MsgAdminUpdat func (m *MsgAdminUpdateBinaryOptionsMarket) String() string { return proto.CompactTextString(m) } func (*MsgAdminUpdateBinaryOptionsMarket) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{67} + return fileDescriptor_bd45b74cb6d81462, []int{71} } func (m *MsgAdminUpdateBinaryOptionsMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3243,7 +3471,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) String() string { } func (*MsgAdminUpdateBinaryOptionsMarketResponse) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{68} + return fileDescriptor_bd45b74cb6d81462, []int{72} } func (m *MsgAdminUpdateBinaryOptionsMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3282,7 +3510,7 @@ func (m *MsgAuthorizeStakeGrants) Reset() { *m = MsgAuthorizeStakeGrants func (m *MsgAuthorizeStakeGrants) String() string { return proto.CompactTextString(m) } func (*MsgAuthorizeStakeGrants) ProtoMessage() {} func (*MsgAuthorizeStakeGrants) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{69} + return fileDescriptor_bd45b74cb6d81462, []int{73} } func (m *MsgAuthorizeStakeGrants) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3332,7 +3560,7 @@ func (m *MsgAuthorizeStakeGrantsResponse) Reset() { *m = MsgAuthorizeSta func (m *MsgAuthorizeStakeGrantsResponse) String() string { return proto.CompactTextString(m) } func (*MsgAuthorizeStakeGrantsResponse) ProtoMessage() {} func (*MsgAuthorizeStakeGrantsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{70} + return fileDescriptor_bd45b74cb6d81462, []int{74} } func (m *MsgAuthorizeStakeGrantsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3371,7 +3599,7 @@ func (m *MsgActivateStakeGrant) Reset() { *m = MsgActivateStakeGrant{} } func (m *MsgActivateStakeGrant) String() string { return proto.CompactTextString(m) } func (*MsgActivateStakeGrant) ProtoMessage() {} func (*MsgActivateStakeGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{71} + return fileDescriptor_bd45b74cb6d81462, []int{75} } func (m *MsgActivateStakeGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3421,7 +3649,7 @@ func (m *MsgActivateStakeGrantResponse) Reset() { *m = MsgActivateStakeG func (m *MsgActivateStakeGrantResponse) String() string { return proto.CompactTextString(m) } func (*MsgActivateStakeGrantResponse) ProtoMessage() {} func (*MsgActivateStakeGrantResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{72} + return fileDescriptor_bd45b74cb6d81462, []int{76} } func (m *MsgActivateStakeGrantResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3460,7 +3688,7 @@ func (m *MsgBatchExchangeModification) Reset() { *m = MsgBatchExchangeMo func (m *MsgBatchExchangeModification) String() string { return proto.CompactTextString(m) } func (*MsgBatchExchangeModification) ProtoMessage() {} func (*MsgBatchExchangeModification) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{73} + return fileDescriptor_bd45b74cb6d81462, []int{77} } func (m *MsgBatchExchangeModification) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3496,7 +3724,7 @@ func (m *MsgBatchExchangeModificationResponse) Reset() { *m = MsgBatchEx func (m *MsgBatchExchangeModificationResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchExchangeModificationResponse) ProtoMessage() {} func (*MsgBatchExchangeModificationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{74} + return fileDescriptor_bd45b74cb6d81462, []int{78} } func (m *MsgBatchExchangeModificationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3542,8 +3770,12 @@ func init() { proto.RegisterType((*MsgBatchCreateSpotLimitOrdersResponse)(nil), "injective.exchange.v1beta1.MsgBatchCreateSpotLimitOrdersResponse") proto.RegisterType((*MsgInstantSpotMarketLaunch)(nil), "injective.exchange.v1beta1.MsgInstantSpotMarketLaunch") proto.RegisterType((*MsgInstantSpotMarketLaunchResponse)(nil), "injective.exchange.v1beta1.MsgInstantSpotMarketLaunchResponse") + proto.RegisterType((*MsgInstantPerpetualMarketLaunch)(nil), "injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunch") + proto.RegisterType((*MsgInstantPerpetualMarketLaunchResponse)(nil), "injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunchResponse") proto.RegisterType((*MsgInstantBinaryOptionsMarketLaunch)(nil), "injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch") proto.RegisterType((*MsgInstantBinaryOptionsMarketLaunchResponse)(nil), "injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunchResponse") + proto.RegisterType((*MsgInstantExpiryFuturesMarketLaunch)(nil), "injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunch") + proto.RegisterType((*MsgInstantExpiryFuturesMarketLaunchResponse)(nil), "injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunchResponse") proto.RegisterType((*MsgCreateSpotMarketOrder)(nil), "injective.exchange.v1beta1.MsgCreateSpotMarketOrder") proto.RegisterType((*MsgCreateSpotMarketOrderResponse)(nil), "injective.exchange.v1beta1.MsgCreateSpotMarketOrderResponse") proto.RegisterType((*SpotMarketOrderResults)(nil), "injective.exchange.v1beta1.SpotMarketOrderResults") @@ -3608,246 +3840,258 @@ func init() { } var fileDescriptor_bd45b74cb6d81462 = []byte{ - // 3818 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x59, 0x6c, 0x1c, 0xc7, - 0x95, 0x6a, 0x1e, 0x43, 0xf2, 0xf1, 0x10, 0xd5, 0xa4, 0xc4, 0xe1, 0x50, 0x24, 0xa5, 0xa6, 0xee, - 0x83, 0x94, 0x68, 0x9d, 0xa3, 0x95, 0x25, 0x1e, 0x92, 0xcd, 0xb5, 0x68, 0x69, 0x87, 0xda, 0x5d, - 0x7b, 0xe1, 0xdd, 0x41, 0xb1, 0xbb, 0x38, 0x6c, 0x73, 0xa6, 0x7b, 0xd4, 0xdd, 0x23, 0x89, 0xc6, - 0x02, 0xeb, 0xf5, 0x47, 0xa0, 0xc4, 0x41, 0x90, 0x00, 0x01, 0x12, 0x04, 0x30, 0x60, 0xc0, 0x40, - 0x02, 0x38, 0x41, 0xa2, 0x04, 0x41, 0xe0, 0x8f, 0x24, 0x08, 0x82, 0x7c, 0x18, 0xfe, 0x12, 0x02, - 0x04, 0x08, 0xf2, 0xa1, 0x04, 0xf6, 0x87, 0x0d, 0x7f, 0x05, 0xf9, 0x09, 0x90, 0xfc, 0x04, 0x5d, - 0x55, 0x5d, 0xd3, 0x47, 0xf5, 0x31, 0x94, 0xe4, 0x23, 0xf0, 0x8f, 0xc4, 0xa9, 0x77, 0xd4, 0x7b, - 0xaf, 0xde, 0x55, 0xc7, 0x0c, 0x4c, 0xe9, 0xc6, 0xcb, 0x58, 0x75, 0xf4, 0xdb, 0x78, 0x06, 0xdf, - 0x55, 0xd7, 0x91, 0x51, 0xc1, 0x33, 0xb7, 0x4f, 0xae, 0x62, 0x07, 0x9d, 0x9c, 0x71, 0xee, 0x4e, - 0xd7, 0x2d, 0xd3, 0x31, 0xe5, 0x02, 0x47, 0x9a, 0xf6, 0x90, 0xa6, 0x19, 0x52, 0x61, 0x42, 0x35, - 0xed, 0x9a, 0x69, 0xcf, 0xac, 0x22, 0xbb, 0x49, 0xa9, 0x9a, 0xba, 0x41, 0x69, 0x0b, 0xd3, 0x0c, - 0xae, 0xe9, 0xb6, 0x63, 0xe9, 0xab, 0x0d, 0x47, 0x37, 0x0d, 0x8e, 0xe7, 0x1f, 0x64, 0xf8, 0x23, - 0x0c, 0xbf, 0x66, 0x57, 0x66, 0x6e, 0x9f, 0x74, 0xff, 0x63, 0x80, 0x51, 0x0a, 0x28, 0x93, 0x4f, - 0x33, 0xf4, 0x03, 0x03, 0x0d, 0x57, 0xcc, 0x8a, 0x49, 0xc7, 0xdd, 0xbf, 0xd8, 0xe8, 0xe1, 0x04, - 0xd5, 0xb8, 0x1a, 0xe9, 0xa8, 0x75, 0xcb, 0xac, 0x9b, 0x36, 0xaa, 0x32, 0xd4, 0xfd, 0x4d, 0x54, - 0xd3, 0x42, 0x6a, 0xb5, 0x89, 0x48, 0x3f, 0x32, 0xb4, 0x1d, 0xa8, 0xa6, 0x1b, 0xe6, 0x0c, 0xf9, - 0x97, 0x0e, 0x29, 0x6f, 0xb5, 0xc3, 0xd0, 0xb2, 0x5d, 0xf9, 0xf7, 0xba, 0x86, 0x1c, 0xbc, 0x52, - 0x37, 0x9d, 0x65, 0x64, 0x6d, 0x60, 0x47, 0x1e, 0x86, 0x4e, 0xa4, 0xd5, 0x74, 0x23, 0x2f, 0xed, - 0x91, 0x0e, 0xf5, 0x94, 0xe8, 0x07, 0x79, 0x0c, 0x7a, 0x6a, 0x04, 0x5e, 0xd6, 0xb5, 0x7c, 0x1b, - 0x81, 0x74, 0xd3, 0x81, 0x25, 0x4d, 0x1e, 0x07, 0x30, 0xf0, 0x9d, 0xb2, 0xa3, 0xab, 0x1b, 0xd8, - 0xca, 0xb7, 0x13, 0x68, 0x8f, 0x81, 0xef, 0xdc, 0x24, 0x03, 0xf2, 0x8b, 0x30, 0xe2, 0x82, 0x6b, - 0xba, 0x51, 0xae, 0x5b, 0xba, 0x8a, 0x09, 0x62, 0xd9, 0xd6, 0x5f, 0xc1, 0xf9, 0x0e, 0x17, 0x77, - 0x7e, 0xea, 0xdd, 0x87, 0x93, 0xdb, 0xfe, 0xf0, 0x70, 0x72, 0x8c, 0x9a, 0xd1, 0xd6, 0x36, 0xa6, - 0x75, 0x73, 0xa6, 0x86, 0x9c, 0xf5, 0xe9, 0x6b, 0xb8, 0x82, 0xd4, 0xcd, 0x45, 0xac, 0x96, 0x86, - 0x0c, 0x7c, 0x67, 0x59, 0x37, 0x6e, 0xb8, 0x1c, 0x5c, 0xc6, 0x2b, 0xfa, 0x2b, 0x58, 0x2e, 0x43, - 0xc1, 0x63, 0x7d, 0xab, 0x81, 0x0c, 0x47, 0x77, 0x36, 0x7d, 0xdc, 0x3b, 0xb3, 0x73, 0xdf, 0x45, - 0xb9, 0xff, 0x1b, 0x63, 0xc2, 0x27, 0x58, 0x86, 0x41, 0x6f, 0x02, 0xc3, 0x74, 0xfd, 0x02, 0x55, - 0xf3, 0xb9, 0xec, 0x6c, 0x07, 0x28, 0xdb, 0xe7, 0x19, 0x69, 0x71, 0xe6, 0xa3, 0x37, 0x27, 0xb7, - 0xbd, 0xf6, 0xe1, 0xfd, 0x23, 0xd4, 0xac, 0x5f, 0xf9, 0xf0, 0xfe, 0x91, 0xdd, 0x7c, 0x89, 0x05, - 0xab, 0xa1, 0x8c, 0xc3, 0x98, 0x60, 0xb8, 0x84, 0xed, 0xba, 0x69, 0xd8, 0x58, 0xf9, 0x6b, 0x07, - 0x8c, 0x72, 0xf8, 0x22, 0xb6, 0xf4, 0xdb, 0xc8, 0xf5, 0x85, 0x2f, 0x96, 0xf2, 0x89, 0x2f, 0xa5, - 0xfc, 0x12, 0xe4, 0x5d, 0x76, 0xba, 0xa1, 0x3b, 0x3a, 0xaa, 0x96, 0x6b, 0xc8, 0xaa, 0xe8, 0x46, - 0xd9, 0x42, 0x8e, 0x6e, 0xe6, 0xbb, 0xb2, 0xb3, 0xdd, 0x69, 0xe0, 0x3b, 0x4b, 0x94, 0xc7, 0x32, - 0x61, 0x51, 0x72, 0x39, 0xc8, 0x1a, 0xec, 0x26, 0xc2, 0x22, 0xdd, 0x70, 0xb0, 0x81, 0x0c, 0x15, - 0x07, 0x67, 0xe8, 0xce, 0x3e, 0xc3, 0xa8, 0x2b, 0x78, 0x93, 0x8f, 0x6f, 0x96, 0xe2, 0xf9, 0x7b, - 0x6f, 0x4e, 0x6e, 0x8b, 0xba, 0xa4, 0x12, 0x75, 0xc9, 0xb0, 0x6f, 0x29, 0x53, 0xb0, 0x37, 0x16, - 0xc8, 0xdd, 0xf3, 0x1d, 0x09, 0xb6, 0x73, 0xac, 0x1b, 0xc8, 0x42, 0x35, 0x5b, 0x3e, 0x03, 0x3d, - 0xa8, 0xe1, 0xac, 0x9b, 0x96, 0xee, 0x6c, 0x52, 0xc7, 0x9c, 0xcf, 0xff, 0xf6, 0xa7, 0xc7, 0x87, - 0x59, 0x0a, 0x9d, 0xd3, 0x34, 0x0b, 0xdb, 0xf6, 0x8a, 0x63, 0xe9, 0x46, 0xa5, 0xd4, 0x44, 0x95, - 0x2f, 0x43, 0xae, 0x4e, 0x38, 0x10, 0x9f, 0xed, 0x9d, 0x55, 0xa6, 0xe3, 0xcb, 0xc0, 0x34, 0x9d, - 0x6b, 0xbe, 0xc3, 0xb5, 0x4f, 0x89, 0xd1, 0x15, 0x8f, 0xba, 0x5a, 0x36, 0x39, 0xba, 0x9a, 0xe6, - 0xa3, 0x9a, 0x52, 0x52, 0x65, 0x14, 0x46, 0x42, 0x43, 0x5c, 0xab, 0x1f, 0x49, 0x00, 0xcb, 0x76, - 0x65, 0x11, 0xd7, 0x4d, 0x5b, 0x77, 0xe4, 0x5d, 0x90, 0xb3, 0xb1, 0xa1, 0x61, 0x8b, 0x85, 0x19, - 0xfb, 0x24, 0x4f, 0x41, 0xbf, 0xdd, 0x58, 0x45, 0xaa, 0x6a, 0x36, 0x0c, 0x5f, 0xac, 0xf5, 0x35, - 0x07, 0x97, 0x34, 0xf9, 0x2c, 0xe4, 0x50, 0xcd, 0xfd, 0x9b, 0xc4, 0x5a, 0xef, 0xec, 0x28, 0x2b, - 0x50, 0xd3, 0x6e, 0x01, 0xe3, 0xea, 0x2c, 0x98, 0xba, 0xe1, 0x29, 0x43, 0xd1, 0x8b, 0x47, 0xfd, - 0x4b, 0xc7, 0xa6, 0x74, 0x35, 0x1a, 0xf2, 0x6b, 0xc4, 0x44, 0x54, 0x86, 0x41, 0x6e, 0x7e, 0xe2, - 0x7a, 0xfc, 0x58, 0x82, 0xde, 0x65, 0xbb, 0xf2, 0x9f, 0xba, 0xb3, 0xae, 0x59, 0xe8, 0xce, 0xa7, - 0xa4, 0xc8, 0xb1, 0x18, 0x45, 0x86, 0xfd, 0x8a, 0x78, 0x32, 0x2a, 0x3b, 0x49, 0xd1, 0xf2, 0x3e, - 0x72, 0x55, 0x7e, 0x28, 0x91, 0xe5, 0x5a, 0xb0, 0x30, 0xcb, 0x93, 0xd7, 0xf4, 0x9a, 0xee, 0x5c, - 0xb7, 0x5c, 0xf1, 0xe3, 0xd4, 0x9a, 0x83, 0x4e, 0xd3, 0x45, 0x60, 0xfe, 0xb4, 0x3f, 0xc9, 0x9f, - 0x5c, 0x96, 0x84, 0x1b, 0x13, 0x9e, 0x52, 0x16, 0xcf, 0xc5, 0xc8, 0xbe, 0xc7, 0x2f, 0xbb, 0x48, - 0x28, 0xe5, 0x25, 0x98, 0x8c, 0x01, 0x79, 0x3a, 0xb9, 0xa9, 0x98, 0xcc, 0x52, 0x5e, 0x47, 0xf6, - 0x3a, 0x93, 0xbd, 0x87, 0x8c, 0x3c, 0x8b, 0xec, 0x75, 0x79, 0x10, 0xda, 0x55, 0xbe, 0x16, 0xee, - 0x9f, 0xc5, 0x6e, 0x4f, 0x1a, 0xe5, 0xe7, 0x12, 0x8c, 0x2f, 0xdb, 0x95, 0x79, 0xe4, 0xa8, 0xeb, - 0xa2, 0x39, 0xec, 0x58, 0xa3, 0x2c, 0x40, 0x8e, 0x4c, 0xe1, 0x46, 0x59, 0x7b, 0xab, 0x56, 0x61, - 0xa4, 0xc5, 0xa7, 0x63, 0xcc, 0x72, 0xc0, 0x6f, 0x96, 0x78, 0xe1, 0x94, 0x9f, 0x48, 0xb0, 0x3f, - 0x11, 0x83, 0xdb, 0x68, 0x2f, 0xf4, 0x35, 0x6d, 0x84, 0xed, 0xbc, 0xb4, 0xa7, 0xfd, 0x50, 0x4f, - 0xa9, 0x97, 0x5b, 0x09, 0xdb, 0xf2, 0x34, 0x0c, 0xa9, 0x84, 0x87, 0x56, 0xa6, 0xe2, 0x95, 0x55, - 0x5d, 0xa3, 0xea, 0xf5, 0x94, 0x76, 0x30, 0x10, 0x65, 0xbb, 0xa0, 0x6b, 0xb6, 0x7c, 0x0c, 0xe4, - 0x35, 0xa4, 0x57, 0x43, 0xe8, 0xed, 0x04, 0x7d, 0x90, 0x42, 0x9a, 0xd8, 0x3e, 0x9b, 0xbf, 0xde, - 0x01, 0x85, 0x65, 0xbb, 0xb2, 0x64, 0xd8, 0x0e, 0x32, 0x9c, 0x66, 0xad, 0xbe, 0x86, 0x1a, 0x86, - 0xba, 0x1e, 0x6b, 0xf0, 0x5d, 0x90, 0x63, 0xc5, 0x96, 0xae, 0x24, 0xfb, 0xe4, 0xae, 0xbe, 0x1b, - 0x39, 0x65, 0x0d, 0x1b, 0x66, 0xcd, 0x2b, 0xc4, 0xee, 0xc8, 0xa2, 0x3b, 0x20, 0x4f, 0x42, 0xef, - 0xad, 0x86, 0xe9, 0x78, 0x70, 0x52, 0x7c, 0x4b, 0x40, 0x86, 0x28, 0x42, 0x09, 0x86, 0x44, 0x55, - 0xba, 0x85, 0x3a, 0x3a, 0x58, 0x0b, 0x97, 0xe8, 0x17, 0x60, 0x57, 0x4c, 0x79, 0x6e, 0xa1, 0x8e, - 0xba, 0x62, 0x45, 0x6a, 0xf3, 0x55, 0xe8, 0x0b, 0xd4, 0xe5, 0x16, 0x0a, 0x68, 0x6f, 0xcd, 0x57, - 0x94, 0xa7, 0xa0, 0x9f, 0x59, 0x4d, 0xd5, 0x6b, 0xa8, 0x6a, 0x93, 0x3a, 0xd9, 0x5f, 0xea, 0xa3, - 0x86, 0xa3, 0x63, 0xf2, 0x7e, 0x18, 0xf0, 0x6c, 0xc7, 0xb0, 0x7a, 0x08, 0x56, 0x3f, 0x33, 0x1f, - 0x1d, 0x2c, 0x5e, 0x88, 0xf1, 0xe2, 0x29, 0xbf, 0x17, 0xc7, 0x2c, 0xb7, 0xb2, 0x0f, 0x94, 0x78, - 0x28, 0x4f, 0x5b, 0x5f, 0xee, 0x82, 0xa9, 0x26, 0xda, 0xbc, 0x6e, 0x20, 0x6b, 0xf3, 0x7a, 0xdd, - 0xd5, 0xc5, 0x7e, 0x24, 0xe7, 0x99, 0x82, 0x7e, 0xda, 0xfe, 0x97, 0xed, 0xcd, 0xda, 0xaa, 0x59, - 0x65, 0xfe, 0xd3, 0x47, 0x07, 0x57, 0xc8, 0x98, 0x7c, 0x10, 0xb6, 0x33, 0xa4, 0xba, 0x65, 0xde, - 0xd6, 0x5d, 0xee, 0xd4, 0x8d, 0x06, 0xe8, 0xf0, 0x0d, 0x36, 0x2a, 0x5f, 0x81, 0x5e, 0x86, 0xe8, - 0x6c, 0xd6, 0xa9, 0x0b, 0x0d, 0xcc, 0xee, 0xf3, 0x25, 0x06, 0xb6, 0xd5, 0xf0, 0xd2, 0xc2, 0x75, - 0xf2, 0xf1, 0xe6, 0x66, 0x1d, 0x97, 0xc0, 0xe4, 0x7f, 0xbb, 0x81, 0xe8, 0x09, 0xa5, 0xa2, 0x2a, - 0x2e, 0xaf, 0x21, 0xd5, 0x31, 0x2d, 0xe2, 0x3a, 0xfd, 0xa5, 0x1d, 0x4c, 0x34, 0x17, 0x72, 0x95, - 0x00, 0xe4, 0x25, 0x18, 0xa8, 0xa1, 0x0d, 0x6c, 0x95, 0xd7, 0x30, 0x76, 0xbb, 0x1e, 0xdc, 0x8a, - 0x57, 0xf4, 0x11, 0xd2, 0xab, 0x18, 0x97, 0x90, 0x83, 0x5d, 0x56, 0x4e, 0x90, 0x55, 0x0b, 0xfd, - 0x53, 0x9f, 0xe3, 0x67, 0x75, 0x12, 0x86, 0xf1, 0xdd, 0xba, 0x4e, 0xba, 0x30, 0xa3, 0xec, 0xe8, - 0x35, 0x6c, 0x3b, 0xa8, 0x56, 0x27, 0x2e, 0xd4, 0x5e, 0x1a, 0x6a, 0xc2, 0x6e, 0x7a, 0x20, 0x97, - 0xc4, 0xc6, 0x8e, 0x53, 0xc5, 0x35, 0x6c, 0x38, 0x3e, 0x12, 0xa0, 0x24, 0x4d, 0x58, 0x93, 0x84, - 0x77, 0xee, 0xbd, 0xfe, 0xce, 0x3d, 0x14, 0xf4, 0x7d, 0x59, 0x83, 0xbe, 0xff, 0xc9, 0x04, 0xfd, - 0xc0, 0x63, 0x0e, 0xfa, 0xed, 0x5b, 0x0b, 0xfa, 0xe2, 0x62, 0x4c, 0xa0, 0x1e, 0x13, 0x04, 0x6a, - 0x6c, 0x8c, 0x29, 0xc7, 0xe1, 0x68, 0x06, 0x34, 0x1e, 0xba, 0xf7, 0x25, 0xc8, 0x07, 0x2a, 0x38, - 0xc5, 0x7a, 0xe2, 0x2d, 0xc7, 0xf9, 0x18, 0x65, 0xf7, 0x8a, 0x5b, 0x0e, 0x9f, 0x54, 0x6e, 0xbf, - 0xb7, 0x27, 0x0e, 0x98, 0xb5, 0xeb, 0x28, 0x41, 0x97, 0x85, 0xed, 0x46, 0xd5, 0xf1, 0xda, 0xf0, - 0xd9, 0x34, 0x1d, 0x82, 0x93, 0xb8, 0x94, 0x44, 0x21, 0xa9, 0xe4, 0x31, 0xf2, 0x3a, 0x99, 0x76, - 0x51, 0x27, 0xf3, 0x3b, 0x09, 0x76, 0x89, 0xb9, 0xc8, 0x97, 0xa0, 0xdb, 0x73, 0x4a, 0xb6, 0x8f, - 0xc8, 0xe4, 0x3a, 0x9c, 0x48, 0x3e, 0x0f, 0x9d, 0x24, 0x52, 0x68, 0xf2, 0xcc, 0x46, 0x4d, 0x29, - 0xe4, 0xd3, 0xd0, 0xbe, 0x86, 0x31, 0x15, 0x39, 0x1b, 0xa1, 0x8b, 0x1f, 0xed, 0xd0, 0xe8, 0x5a, - 0x34, 0xf7, 0x4f, 0x19, 0xda, 0xd6, 0x67, 0x82, 0x3e, 0x74, 0x34, 0xc9, 0xfe, 0x4d, 0xc6, 0x02, - 0x4f, 0x2a, 0xde, 0x4b, 0xe9, 0xd0, 0xe2, 0x85, 0x53, 0x56, 0x49, 0x83, 0x16, 0x8f, 0xf0, 0x38, - 0x9a, 0xd8, 0x5f, 0xfb, 0xdd, 0x35, 0x10, 0x90, 0x9f, 0xa4, 0x95, 0x2e, 0x0a, 0xac, 0x74, 0x38, - 0x6a, 0xa5, 0x18, 0xf9, 0x14, 0x0c, 0x87, 0xd2, 0x70, 0x1e, 0x87, 0xad, 0xde, 0x93, 0x48, 0x23, - 0xe1, 0xeb, 0x98, 0x45, 0xab, 0x12, 0xdf, 0xf6, 0x2f, 0x85, 0xda, 0xfe, 0x2d, 0xd8, 0xcb, 0x6b, - 0xfe, 0x2f, 0xdf, 0x4b, 0xc9, 0xc4, 0x69, 0x42, 0x2a, 0xef, 0x48, 0x24, 0x15, 0xa7, 0xe1, 0x7d, - 0x16, 0x37, 0x01, 0x0f, 0x24, 0xb2, 0xd3, 0x5e, 0x40, 0x86, 0x8a, 0xab, 0x3c, 0x83, 0xc7, 0x9a, - 0x3d, 0xf1, 0x28, 0x2e, 0xb2, 0xed, 0x6e, 0x17, 0x6c, 0xbb, 0x83, 0x3e, 0xd3, 0x11, 0xe3, 0x33, - 0x9d, 0x4d, 0x9f, 0x99, 0x11, 0x2c, 0xcf, 0x58, 0xc0, 0x9f, 0x83, 0xb2, 0x2b, 0xbb, 0xc9, 0xb6, - 0x26, 0x34, 0xca, 0xcb, 0xe0, 0xdb, 0xb4, 0x0c, 0xd2, 0xb5, 0x0a, 0xe2, 0xc4, 0x7b, 0xdb, 0x25, - 0xe8, 0xd0, 0x90, 0x83, 0xb2, 0x6c, 0x31, 0x09, 0xa7, 0x45, 0xe4, 0x20, 0xe6, 0x65, 0x84, 0xb0, - 0x78, 0xfa, 0x5e, 0x4a, 0x01, 0x14, 0xca, 0xa3, 0x5c, 0x25, 0x09, 0x45, 0x08, 0xe3, 0xce, 0x94, - 0x87, 0x2e, 0xbb, 0xa1, 0xaa, 0xd8, 0xa6, 0x7e, 0xd4, 0x5d, 0xf2, 0x3e, 0x06, 0x93, 0xf7, 0xde, - 0x20, 0xa3, 0x40, 0x68, 0x3f, 0x69, 0xed, 0x9f, 0x16, 0x68, 0x7f, 0x24, 0x46, 0x7b, 0x81, 0x60, - 0xca, 0x75, 0x38, 0x9c, 0x8a, 0xd4, 0x92, 0x3d, 0xfe, 0xd2, 0x05, 0xc3, 0x1e, 0x47, 0x7a, 0x62, - 0x96, 0x62, 0x82, 0x4c, 0x27, 0x4a, 0x97, 0x60, 0xdc, 0xae, 0x9b, 0x4e, 0x99, 0x47, 0x88, 0x5d, - 0x76, 0xcc, 0xb2, 0x4a, 0x24, 0x2e, 0xa3, 0x6a, 0x95, 0x85, 0x63, 0xde, 0xe6, 0xed, 0xc1, 0x92, - 0x66, 0xdf, 0x34, 0xa9, 0x4a, 0x73, 0xd5, 0xaa, 0xfc, 0x1c, 0x4c, 0x69, 0x3c, 0x71, 0xc4, 0xb3, - 0xe9, 0x20, 0x6c, 0x26, 0xb4, 0xd0, 0x21, 0x66, 0x88, 0xd9, 0xff, 0xc0, 0x4e, 0x22, 0x0d, 0xcb, - 0x07, 0x9c, 0x45, 0xbe, 0xb3, 0xd5, 0x65, 0x94, 0x4a, 0xb2, 0xcd, 0xfd, 0xce, 0x9b, 0x42, 0x7e, - 0x19, 0xc6, 0x7c, 0xc2, 0x46, 0x66, 0xc9, 0xb5, 0x3e, 0x4b, 0x5e, 0x0b, 0xe6, 0xe9, 0xe6, 0x5c, - 0x02, 0x5d, 0x48, 0x06, 0xcc, 0x77, 0xb5, 0x7a, 0xe6, 0x13, 0xd6, 0x85, 0xb0, 0x91, 0xeb, 0x71, - 0xba, 0xd0, 0x59, 0xba, 0xb7, 0x56, 0x62, 0xc4, 0x1a, 0xd1, 0x19, 0x6f, 0xc1, 0xe4, 0x2a, 0x71, - 0xe2, 0xb2, 0x49, 0xbd, 0x38, 0x6a, 0xc1, 0x9e, 0xd6, 0x2d, 0x38, 0xb6, 0x1a, 0x0d, 0x0c, 0x6e, - 0xc4, 0x12, 0x1c, 0x0c, 0x4d, 0x19, 0xeb, 0x61, 0x40, 0x3c, 0x6c, 0xef, 0x6a, 0x74, 0x53, 0x11, - 0x72, 0xb2, 0x3b, 0x49, 0x6a, 0x50, 0xe3, 0xf5, 0x6e, 0xd5, 0x78, 0x31, 0xca, 0x10, 0xae, 0xc5, - 0x93, 0x82, 0x94, 0x32, 0x1e, 0x49, 0x29, 0xfe, 0xd8, 0x56, 0xee, 0xe5, 0x60, 0xb7, 0x08, 0xc0, - 0x33, 0xc7, 0x34, 0x0c, 0x11, 0x2f, 0x63, 0x86, 0x08, 0x66, 0x91, 0x1d, 0x2e, 0x88, 0x25, 0x61, - 0x0a, 0x90, 0x8b, 0x30, 0xea, 0xf3, 0x9a, 0x10, 0x55, 0x1b, 0xa1, 0x1a, 0x69, 0x22, 0x04, 0x69, - 0x8f, 0xc0, 0x8e, 0xa6, 0x47, 0x7b, 0x7d, 0x00, 0xcd, 0x0f, 0xdb, 0xb9, 0x83, 0xb2, 0x5e, 0xe0, - 0x0c, 0x8c, 0x84, 0xbd, 0xd3, 0xa3, 0xa0, 0xa9, 0x60, 0x67, 0xc8, 0xcd, 0x18, 0xdd, 0x1c, 0x8c, - 0x87, 0x16, 0x27, 0x24, 0x63, 0x27, 0x91, 0xb1, 0x10, 0xb0, 0x73, 0x50, 0xcc, 0x8b, 0x30, 0x26, - 0x5a, 0x5f, 0x6f, 0xfa, 0x1c, 0x4d, 0x68, 0xd1, 0x85, 0x62, 0x12, 0x9c, 0x85, 0xbc, 0xd7, 0xc5, - 0xf8, 0xe3, 0x97, 0xf4, 0x26, 0x5d, 0x54, 0x74, 0x06, 0x6f, 0x16, 0x36, 0xd2, 0xce, 0x9c, 0x86, - 0x11, 0xd6, 0xce, 0x44, 0xe8, 0xba, 0x09, 0xdd, 0x30, 0x05, 0x87, 0xc8, 0x16, 0x60, 0xc2, 0x9b, - 0x2f, 0x1a, 0xcf, 0x84, 0xba, 0x87, 0x50, 0x8f, 0x31, 0xac, 0x90, 0xe3, 0x51, 0x26, 0x73, 0x30, - 0xce, 0xe6, 0x8e, 0xe1, 0x41, 0xa3, 0xa3, 0x40, 0x91, 0x84, 0x2c, 0xfe, 0x15, 0x14, 0x4f, 0x0e, - 0x71, 0x78, 0x10, 0x3e, 0xbd, 0x34, 0x8f, 0x33, 0x4c, 0x41, 0x4d, 0x23, 0xbc, 0x9e, 0x85, 0xbd, - 0x4c, 0x9c, 0x04, 0x56, 0x7d, 0x84, 0x15, 0x93, 0x3b, 0x86, 0x93, 0xaf, 0xfe, 0xfd, 0x52, 0x82, - 0x09, 0xc1, 0x76, 0x28, 0xcb, 0x89, 0xc0, 0x63, 0xdb, 0xa7, 0x5c, 0x10, 0x44, 0xf0, 0xc1, 0xa4, - 0xdd, 0x9c, 0xff, 0x64, 0xe0, 0x17, 0x12, 0x1c, 0x48, 0x46, 0xc9, 0xba, 0x49, 0x79, 0x21, 0x7c, - 0x3e, 0x70, 0x2e, 0x9b, 0x46, 0x8f, 0x76, 0x4a, 0xf0, 0xe7, 0x36, 0xd8, 0x9d, 0xc4, 0xeb, 0x73, - 0x78, 0x56, 0x20, 0xff, 0x07, 0x0c, 0x90, 0xeb, 0x3a, 0xdd, 0x34, 0xca, 0x1a, 0xae, 0x3a, 0x88, - 0x74, 0xf7, 0xbd, 0xb3, 0x87, 0x13, 0xef, 0x3d, 0x19, 0xc5, 0xa2, 0x4b, 0xc0, 0x1c, 0xa4, 0xbf, - 0xee, 0x1f, 0x94, 0x2f, 0x40, 0xae, 0x8e, 0x36, 0xcd, 0x86, 0xd3, 0xca, 0x5d, 0x00, 0x23, 0xf1, - 0x99, 0xfc, 0x37, 0xb4, 0x07, 0x16, 0xec, 0x6c, 0x3f, 0x51, 0xb7, 0x4f, 0xed, 0x85, 0x93, 0x05, - 0x54, 0x7e, 0x25, 0x91, 0x66, 0x38, 0x19, 0xeb, 0xb3, 0xed, 0xfc, 0x7f, 0x67, 0x27, 0x91, 0xa4, - 0xd2, 0x84, 0x8c, 0xf5, 0xe9, 0xed, 0x3c, 0x39, 0xb8, 0x86, 0xec, 0x0d, 0xe2, 0x6a, 0x9d, 0x0c, - 0xbc, 0x8c, 0xec, 0x0d, 0x4f, 0xa1, 0x5c, 0x53, 0xa1, 0xd4, 0x3d, 0x9d, 0x50, 0x41, 0x45, 0xa1, - 0x87, 0x44, 0x22, 0x18, 0xdf, 0xa4, 0xfe, 0x7f, 0x1b, 0x79, 0x45, 0x13, 0xb7, 0xd9, 0xf9, 0x1c, - 0x19, 0xe9, 0x9c, 0xc0, 0x48, 0xfb, 0xa2, 0x46, 0x8a, 0xea, 0xa8, 0xec, 0x27, 0x07, 0x44, 0x71, - 0x60, 0x6e, 0xaa, 0x37, 0x24, 0xe8, 0xe1, 0x6d, 0x70, 0xd0, 0x00, 0x52, 0x9a, 0x01, 0xda, 0x52, - 0x0d, 0xd0, 0x9e, 0x6c, 0x80, 0x8e, 0x18, 0x03, 0x34, 0x8f, 0x2f, 0x94, 0x9f, 0xd1, 0x52, 0xeb, - 0xdb, 0xbc, 0x86, 0x3b, 0x86, 0x27, 0xb7, 0xef, 0x4e, 0x2d, 0xb1, 0x09, 0x52, 0x29, 0xd7, 0x48, - 0x85, 0x4d, 0xc0, 0x68, 0x69, 0xc7, 0xfd, 0xa5, 0x36, 0xd8, 0xb9, 0x6c, 0x57, 0x56, 0xb8, 0xa9, - 0x6f, 0x5a, 0xc8, 0xb0, 0xd7, 0x12, 0x7c, 0xf9, 0x04, 0x0c, 0xdb, 0x66, 0xc3, 0x52, 0x71, 0x59, - 0xb4, 0x68, 0x32, 0x85, 0xad, 0xf8, 0x97, 0x8e, 0xf4, 0xe3, 0xb6, 0xa3, 0x1b, 0xf4, 0xaa, 0x4b, - 0xe4, 0xec, 0x23, 0x3e, 0x84, 0x15, 0xf1, 0x6b, 0x90, 0x8e, 0xd6, 0x5e, 0x83, 0x4c, 0x87, 0xec, - 0x3b, 0xe1, 0xb7, 0x6f, 0x54, 0x5d, 0x65, 0x92, 0x1c, 0xa3, 0x47, 0x01, 0xdc, 0xa1, 0x5f, 0x6b, - 0x23, 0x2f, 0x46, 0xae, 0xdc, 0x75, 0xb0, 0x65, 0xa0, 0xea, 0x3f, 0x8b, 0x9d, 0x8e, 0x85, 0xec, - 0x14, 0x78, 0x45, 0x18, 0x56, 0x96, 0xbd, 0x22, 0x0c, 0x0f, 0x73, 0x1b, 0x7d, 0x24, 0x91, 0xf3, - 0x9b, 0x6b, 0xfa, 0xad, 0x86, 0x4e, 0xde, 0x3b, 0xb1, 0x86, 0xe1, 0xd1, 0xce, 0x6f, 0x02, 0xc9, - 0xa3, 0x3d, 0x94, 0x3c, 0x78, 0x03, 0xd0, 0xb1, 0xb5, 0x06, 0x40, 0xf2, 0x1a, 0x80, 0xe3, 0x49, - 0xbb, 0xd6, 0x88, 0x46, 0xca, 0x04, 0xd9, 0xb4, 0x46, 0xc6, 0xb9, 0x29, 0xbe, 0x47, 0x8b, 0xe9, - 0x95, 0x1a, 0xb6, 0x2a, 0xd8, 0x50, 0x37, 0x57, 0xc8, 0xe5, 0x2c, 0x7b, 0x4f, 0xf9, 0xc4, 0xcc, - 0x51, 0x3c, 0x99, 0x54, 0xf8, 0x84, 0xc2, 0xb0, 0xc2, 0x27, 0x84, 0x35, 0x5f, 0xaa, 0xb5, 0x91, - 0xe7, 0xa1, 0x4b, 0x86, 0xbb, 0x29, 0xb2, 0xb9, 0xb6, 0xf4, 0x09, 0xe0, 0x67, 0x24, 0x04, 0x02, - 0x76, 0xe9, 0x08, 0xb9, 0xc9, 0x05, 0x1e, 0x1f, 0xad, 0x34, 0xab, 0x2c, 0x46, 0x66, 0x43, 0x46, - 0x55, 0x82, 0xf7, 0xc1, 0x22, 0x9b, 0xb0, 0x67, 0x8d, 0x62, 0x60, 0xd8, 0xac, 0x8b, 0xf8, 0x0b, - 0xb3, 0x86, 0xcd, 0x2a, 0xb6, 0x09, 0x33, 0xab, 0x18, 0xc8, 0xcd, 0xfa, 0x9e, 0x44, 0x82, 0xf3, - 0x86, 0xa5, 0xdf, 0xd6, 0xab, 0xb8, 0x82, 0xb5, 0x2b, 0x77, 0xb1, 0xda, 0x70, 0xf0, 0x82, 0x69, - 0x38, 0x16, 0x52, 0xe3, 0xe3, 0x6f, 0x18, 0x3a, 0xd7, 0x1a, 0x86, 0x66, 0x33, 0x53, 0xd2, 0x0f, - 0xf2, 0x61, 0x18, 0x54, 0x19, 0x65, 0x19, 0xd1, 0x57, 0xa5, 0xcc, 0x68, 0xdb, 0xbd, 0x71, 0xf6, - 0xd8, 0x54, 0x96, 0x59, 0x6b, 0x40, 0xed, 0x44, 0xab, 0xfd, 0xc5, 0x98, 0x8b, 0xf6, 0xfd, 0x7e, - 0x75, 0x63, 0x65, 0x75, 0x13, 0xc9, 0xbe, 0x24, 0x04, 0x5e, 0xee, 0x5f, 0x06, 0x20, 0xf2, 0x96, - 0x35, 0x7d, 0x6d, 0x8d, 0x54, 0xfc, 0xc4, 0x32, 0x70, 0xc2, 0x5d, 0xaa, 0xb7, 0xff, 0x38, 0x79, - 0xa8, 0xa2, 0x3b, 0xeb, 0x8d, 0xd5, 0x69, 0xd5, 0xac, 0xb1, 0x6f, 0x1f, 0xb0, 0xff, 0x8e, 0xdb, - 0xda, 0xc6, 0x8c, 0xb3, 0x59, 0xc7, 0x36, 0x21, 0xb0, 0x4b, 0x3d, 0x84, 0xfd, 0xa2, 0xbe, 0xb6, - 0x56, 0x1c, 0x12, 0xe8, 0xa4, 0xfc, 0x37, 0x0c, 0x2e, 0xdb, 0x95, 0x12, 0xbe, 0x83, 0x2c, 0xcd, - 0xbe, 0x5e, 0x77, 0xae, 0x37, 0x62, 0x2d, 0x4d, 0xcf, 0x09, 0x05, 0x46, 0x19, 0xf5, 0x1b, 0x25, - 0xc0, 0x4a, 0x29, 0x90, 0x84, 0x1a, 0x18, 0xf3, 0xbf, 0xa4, 0xdd, 0x49, 0x80, 0x6a, 0x15, 0xe9, - 0xb5, 0x6b, 0xa6, 0xba, 0x81, 0xb5, 0xab, 0x64, 0xf1, 0xe2, 0x83, 0x68, 0xa8, 0x4a, 0xd0, 0xe6, - 0xa8, 0xa7, 0xdf, 0x68, 0xac, 0x3e, 0x87, 0x37, 0xc9, 0xc2, 0xf7, 0x95, 0x44, 0x20, 0x79, 0x37, - 0xf4, 0xd8, 0x7a, 0xc5, 0x40, 0x4e, 0xc3, 0xa2, 0x9b, 0xf0, 0xbe, 0x52, 0x73, 0x20, 0xb9, 0xdf, - 0x88, 0xca, 0xc5, 0xfa, 0x8d, 0x28, 0x80, 0xab, 0xf4, 0x2a, 0x7d, 0x54, 0xbb, 0xa2, 0x57, 0x0c, - 0xd2, 0x42, 0xaf, 0x40, 0xce, 0xfd, 0x9b, 0x29, 0xd2, 0x37, 0x7f, 0xe1, 0xe3, 0x87, 0x93, 0x39, - 0x9b, 0x8c, 0xfc, 0xed, 0xe1, 0xe4, 0xf1, 0x0c, 0xab, 0x38, 0xa7, 0xaa, 0xcc, 0x4f, 0x4b, 0x8c, - 0x95, 0xbc, 0x1b, 0x3a, 0x16, 0x69, 0x2b, 0xeb, 0xb2, 0xec, 0xfe, 0xf8, 0xe1, 0x24, 0xf1, 0xd9, - 0x12, 0x19, 0x55, 0xee, 0x92, 0xe7, 0xc9, 0x44, 0x02, 0x53, 0x95, 0xf7, 0x53, 0xfd, 0xe9, 0xdb, - 0x2d, 0x7a, 0xf6, 0x41, 0x08, 0xdc, 0xcf, 0xa5, 0x6e, 0x17, 0x44, 0x5e, 0x67, 0x2d, 0x40, 0xe7, - 0x6d, 0x54, 0x6d, 0x60, 0xb6, 0x73, 0x3d, 0x98, 0x54, 0x90, 0x7d, 0xfa, 0x79, 0xbb, 0x71, 0x42, - 0xab, 0x7c, 0xb5, 0x9d, 0xc4, 0xf9, 0x9c, 0x56, 0xd3, 0x0d, 0x7a, 0x26, 0x2c, 0xd8, 0x52, 0x6f, - 0x6d, 0xbb, 0xf5, 0x3c, 0x0c, 0xfa, 0x1e, 0x51, 0xd1, 0xb3, 0x98, 0xe6, 0x91, 0x8a, 0x94, 0x96, - 0xbc, 0xb6, 0x37, 0x89, 0xc9, 0xf3, 0xa6, 0xd8, 0x77, 0x5c, 0x1d, 0xad, 0xbf, 0xe3, 0xea, 0x8c, - 0x7f, 0xc7, 0x75, 0x19, 0x72, 0xb6, 0x83, 0x9c, 0x86, 0x4d, 0x36, 0x71, 0x03, 0xb3, 0x87, 0x12, - 0xcd, 0x4a, 0x74, 0x5d, 0x21, 0xf8, 0x25, 0x46, 0x57, 0x2c, 0x26, 0x1d, 0x6e, 0x24, 0x1b, 0x5a, - 0x39, 0x4a, 0xce, 0x36, 0x92, 0x91, 0xb8, 0xe3, 0x7e, 0x9f, 0x3e, 0xa1, 0x9e, 0xa3, 0xcf, 0xe3, - 0x5f, 0xc1, 0x2b, 0x0e, 0xda, 0xc0, 0xcf, 0x58, 0xc8, 0x70, 0xe2, 0xa3, 0xf1, 0x2a, 0xe4, 0x2a, - 0x04, 0x83, 0x6d, 0xaa, 0xa6, 0x93, 0xd4, 0x23, 0xbc, 0x3c, 0xf6, 0xc4, 0xb4, 0x25, 0x46, 0x5d, - 0x3c, 0x91, 0xf4, 0x7e, 0x5a, 0x24, 0x91, 0xb2, 0x97, 0xbc, 0x9f, 0x16, 0x81, 0xb8, 0x42, 0x9b, - 0x24, 0xb7, 0xcc, 0xb9, 0xd2, 0x20, 0xc7, 0x87, 0x11, 0xab, 0x4d, 0x1e, 0xba, 0x88, 0x3c, 0xfc, - 0x39, 0xa5, 0xf7, 0x31, 0x39, 0x4b, 0x44, 0x67, 0x60, 0x59, 0x22, 0x0a, 0xe0, 0xb2, 0x3d, 0x90, - 0x9a, 0x97, 0x27, 0x57, 0x18, 0xaf, 0x65, 0x53, 0xd3, 0xd7, 0x74, 0x15, 0x25, 0x76, 0xde, 0x2f, - 0x42, 0xb7, 0xf7, 0x0d, 0x30, 0x16, 0xa9, 0x17, 0x93, 0x6c, 0x1e, 0x3b, 0xc1, 0x0d, 0xc6, 0xa4, - 0xc4, 0xd9, 0x65, 0x2b, 0x78, 0xb1, 0x0c, 0x95, 0x03, 0xa4, 0xde, 0xc5, 0xc2, 0x3d, 0xd5, 0x67, - 0xbf, 0x7d, 0x00, 0xda, 0x97, 0xed, 0x8a, 0x8c, 0xa0, 0xcb, 0xfb, 0x06, 0xc5, 0x81, 0x94, 0x64, - 0xc3, 0xf0, 0x0a, 0xd3, 0xd9, 0xf0, 0x78, 0x69, 0xd5, 0xa0, 0x9b, 0x7f, 0xb9, 0x21, 0x2d, 0xa1, - 0x79, 0x88, 0x85, 0x99, 0x8c, 0x88, 0x7c, 0x96, 0x6f, 0x48, 0x30, 0x12, 0xf7, 0xea, 0xfb, 0x4c, - 0x0a, 0xb3, 0x18, 0xba, 0xc2, 0xd3, 0x5b, 0xa3, 0xe3, 0x32, 0xdd, 0x93, 0x60, 0x58, 0xf8, 0x65, - 0x88, 0xa7, 0x52, 0x18, 0x8b, 0x88, 0x0a, 0x17, 0xb6, 0x40, 0xc4, 0x45, 0xf9, 0x8e, 0x04, 0x85, - 0x84, 0x2f, 0x22, 0x9c, 0x4f, 0xe1, 0x1d, 0x4f, 0x5a, 0x98, 0xdb, 0x32, 0x29, 0x17, 0xee, 0x75, - 0x09, 0x76, 0x8a, 0x9f, 0x70, 0x9e, 0xca, 0xac, 0xb3, 0x8f, 0xaa, 0xf0, 0x2f, 0x5b, 0xa1, 0xe2, - 0xd2, 0x6c, 0xc2, 0xf6, 0xf0, 0xcb, 0xa1, 0x34, 0x97, 0x0f, 0xe1, 0x17, 0xce, 0xb4, 0x86, 0x1f, - 0x30, 0x84, 0xf8, 0x11, 0xcf, 0xa9, 0x4c, 0x56, 0x0e, 0x51, 0xa5, 0x1a, 0x22, 0xf9, 0x11, 0xce, - 0xff, 0xc1, 0x8e, 0xe8, 0x63, 0x92, 0x13, 0x59, 0x58, 0xfa, 0x29, 0x0a, 0xe7, 0x5a, 0xa5, 0xe0, - 0x02, 0x7c, 0x4b, 0x82, 0xd1, 0xf8, 0x7d, 0x48, 0x1a, 0xdf, 0x58, 0xca, 0xc2, 0xe5, 0xad, 0x52, - 0x06, 0xc2, 0x29, 0xe1, 0xd5, 0xe8, 0xf9, 0x4c, 0x0e, 0x28, 0x22, 0x4d, 0x0d, 0xa7, 0x0c, 0xaf, - 0x3d, 0x7f, 0x20, 0xc1, 0x9e, 0xd4, 0x37, 0x88, 0x97, 0xb2, 0x87, 0xad, 0x90, 0x41, 0xe1, 0x99, - 0x47, 0x64, 0xc0, 0xc5, 0x7d, 0x43, 0x82, 0xb1, 0xa4, 0x4b, 0xdb, 0x62, 0x8b, 0x16, 0xf1, 0x67, - 0x82, 0xf9, 0xad, 0xd3, 0x06, 0xb3, 0x93, 0xf0, 0x5a, 0xe7, 0x54, 0xa6, 0x30, 0x0f, 0x51, 0xa5, - 0x67, 0xa7, 0xa4, 0x5b, 0x14, 0x62, 0xad, 0xa4, 0x73, 0xf7, 0x62, 0xf6, 0x90, 0x0f, 0xd3, 0xa6, - 0x5a, 0x2b, 0xcb, 0xb9, 0xb9, 0xeb, 0x7c, 0xa9, 0xdf, 0xa4, 0xb9, 0x94, 0xad, 0xb0, 0xc6, 0x32, - 0x48, 0x75, 0xbe, 0xac, 0x5f, 0x20, 0x90, 0xdf, 0x92, 0x60, 0x3c, 0xf9, 0x6d, 0x73, 0xb6, 0x62, - 0x12, 0x43, 0x5d, 0x58, 0x7c, 0x14, 0x6a, 0x2e, 0xe5, 0x77, 0x25, 0x98, 0x48, 0xb9, 0xe3, 0xbd, - 0xd8, 0xfa, 0x44, 0xfe, 0x40, 0xb9, 0xf2, 0x48, 0xe4, 0x5c, 0xd0, 0x6f, 0x4a, 0x90, 0x8f, 0xbd, - 0xe0, 0x3b, 0x9b, 0xc9, 0xf1, 0xa3, 0x84, 0x85, 0x4b, 0x5b, 0x24, 0x0c, 0xd8, 0x2f, 0xe5, 0x9d, - 0xe8, 0xc5, 0xec, 0xbe, 0x2f, 0x20, 0x4f, 0xb5, 0x5f, 0xc6, 0x77, 0x9e, 0xaf, 0x49, 0x20, 0x0b, - 0xae, 0x93, 0x4e, 0xa6, 0x9d, 0x03, 0x44, 0x48, 0x0a, 0xe7, 0x5b, 0x26, 0xe1, 0x42, 0xfc, 0x2f, - 0x0c, 0x46, 0x2e, 0x6a, 0xd2, 0xfa, 0xf1, 0x30, 0x41, 0xe1, 0x6c, 0x8b, 0x04, 0xfe, 0xae, 0x23, - 0x7a, 0x05, 0x92, 0xd6, 0x75, 0x44, 0x28, 0x52, 0xbb, 0x8e, 0xd8, 0xcb, 0x07, 0x92, 0xef, 0xc5, - 0x37, 0x0f, 0x69, 0xf9, 0x5e, 0x48, 0x95, 0x9a, 0xef, 0x13, 0x2f, 0x0f, 0xe4, 0xaf, 0x49, 0xb0, - 0x2b, 0xe6, 0xe6, 0xe0, 0x74, 0x6a, 0x12, 0x14, 0x91, 0x15, 0x2e, 0x6e, 0x89, 0x2c, 0x20, 0x50, - 0xcc, 0x99, 0xfb, 0xe9, 0xd4, 0x9d, 0xe1, 0x96, 0x04, 0x4a, 0x3e, 0xb0, 0x96, 0x6d, 0xe8, 0x0f, - 0x1e, 0x9b, 0x1e, 0x4b, 0xe1, 0x17, 0xc0, 0x2e, 0x9c, 0x6a, 0x05, 0x3b, 0x90, 0x51, 0x52, 0x0e, - 0xd8, 0xd2, 0xd4, 0x4a, 0x26, 0x4f, 0xcd, 0x28, 0xd9, 0x0e, 0x94, 0xe4, 0x3a, 0xf4, 0x05, 0x7e, - 0xf8, 0xe1, 0x68, 0x0a, 0x5b, 0x3f, 0x72, 0xe1, 0xa9, 0x16, 0x90, 0xfd, 0xe9, 0x23, 0xf2, 0x73, - 0x36, 0x33, 0x99, 0x18, 0x35, 0x09, 0x52, 0xd3, 0x47, 0xdc, 0x6f, 0xb1, 0x10, 0xf7, 0x8c, 0xf9, - 0x21, 0x96, 0xd3, 0x99, 0x78, 0x86, 0xc9, 0x52, 0xdd, 0x33, 0xf9, 0xd7, 0x37, 0xc8, 0x21, 0x80, - 0xf0, 0x38, 0x2f, 0xcd, 0xb8, 0x22, 0xa2, 0xd4, 0x43, 0x80, 0xa4, 0xb3, 0x38, 0x52, 0x5d, 0x04, - 0x27, 0x71, 0x69, 0xd5, 0x25, 0x4a, 0x92, 0x5a, 0x5d, 0xe2, 0x0f, 0xdd, 0xc8, 0xa6, 0x2e, 0xfe, - 0xc4, 0x2d, 0xd3, 0x66, 0x51, 0x44, 0x99, 0xba, 0xa9, 0x4b, 0x3d, 0x13, 0x2b, 0x74, 0xbe, 0xfa, - 0xe1, 0xfd, 0x23, 0xd2, 0xfc, 0xfa, 0xbb, 0xef, 0x4f, 0x48, 0x0f, 0xde, 0x9f, 0x90, 0xfe, 0xf4, - 0xfe, 0x84, 0xf4, 0xf5, 0x0f, 0x26, 0xb6, 0x3d, 0xf8, 0x60, 0x62, 0xdb, 0xef, 0x3f, 0x98, 0xd8, - 0xf6, 0x5f, 0xcf, 0xfb, 0xee, 0x09, 0x96, 0xbc, 0xc9, 0xae, 0xa1, 0x55, 0x7b, 0x86, 0x4f, 0x7d, - 0x5c, 0x35, 0x2d, 0xec, 0xff, 0xb8, 0x8e, 0x74, 0x63, 0xa6, 0x66, 0x6a, 0x8d, 0x2a, 0xb6, 0x9b, - 0xbf, 0x23, 0x45, 0xee, 0x14, 0x56, 0x73, 0xe4, 0x37, 0xa0, 0x9e, 0xfa, 0x47, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x4d, 0x70, 0x78, 0x6c, 0x70, 0x4b, 0x00, 0x00, + // 4002 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0xc9, + 0x75, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x3f, 0xa2, 0x9a, 0x94, 0x38, 0x1c, 0x8a, 0xa4, 0xd4, 0x5c, + 0xae, 0xfe, 0xe4, 0x4a, 0x5e, 0xed, 0xae, 0x46, 0xd1, 0x4a, 0xfc, 0x48, 0x6b, 0xc6, 0xe2, 0x4a, + 0x1e, 0xca, 0x89, 0x1d, 0xd8, 0x19, 0x14, 0xbb, 0x8b, 0xc3, 0x5e, 0xce, 0x74, 0xcf, 0x76, 0xf7, + 0x48, 0xe2, 0x22, 0x40, 0x9c, 0x3d, 0x04, 0x4a, 0x1c, 0x04, 0x09, 0x10, 0x20, 0x40, 0x00, 0x03, + 0x06, 0x0c, 0x38, 0x80, 0x13, 0x24, 0xeb, 0x20, 0x08, 0x7c, 0x48, 0x82, 0x20, 0xc8, 0xc1, 0xf0, + 0x69, 0x13, 0x20, 0x40, 0x90, 0x83, 0x12, 0xec, 0x1e, 0xd6, 0xf0, 0x29, 0xc8, 0x25, 0x40, 0x72, + 0x09, 0xba, 0xaa, 0xba, 0xa6, 0x3f, 0x55, 0xdd, 0x3d, 0x23, 0xd2, 0xde, 0x35, 0xf6, 0x22, 0xb1, + 0xab, 0xde, 0x7b, 0xf5, 0xde, 0xab, 0xf7, 0xa9, 0x7a, 0x55, 0x35, 0xb0, 0x68, 0x5a, 0xef, 0x60, + 0xdd, 0x33, 0x1f, 0xe3, 0x15, 0xfc, 0x54, 0xdf, 0x43, 0x56, 0x1d, 0xaf, 0x3c, 0xbe, 0xba, 0x83, + 0x3d, 0x74, 0x75, 0xc5, 0x7b, 0xba, 0xdc, 0x72, 0x6c, 0xcf, 0x56, 0xcb, 0x1c, 0x68, 0x39, 0x00, + 0x5a, 0x66, 0x40, 0xe5, 0x79, 0xdd, 0x76, 0x9b, 0xb6, 0xbb, 0xb2, 0x83, 0xdc, 0x0e, 0xa6, 0x6e, + 0x9b, 0x16, 0xc5, 0x2d, 0x2f, 0xb3, 0x7e, 0xc3, 0x74, 0x3d, 0xc7, 0xdc, 0x69, 0x7b, 0xa6, 0x6d, + 0x71, 0xb8, 0x70, 0x23, 0x83, 0x9f, 0x66, 0xf0, 0x4d, 0xb7, 0xbe, 0xf2, 0xf8, 0xaa, 0xff, 0x1f, + 0xeb, 0x98, 0xa1, 0x1d, 0x35, 0xf2, 0xb5, 0x42, 0x3f, 0x58, 0xd7, 0x54, 0xdd, 0xae, 0xdb, 0xb4, + 0xdd, 0xff, 0x8b, 0xb5, 0x5e, 0x48, 0x11, 0x8d, 0x8b, 0x91, 0x0d, 0xda, 0x72, 0xec, 0x96, 0xed, + 0xa2, 0x06, 0x03, 0x5d, 0xea, 0x80, 0xda, 0x0e, 0xd2, 0x1b, 0x1d, 0x40, 0xfa, 0xc9, 0xc0, 0x4e, + 0xa0, 0xa6, 0x69, 0xd9, 0x2b, 0xe4, 0x5f, 0xda, 0xa4, 0x7d, 0xb7, 0x00, 0x93, 0x5b, 0x6e, 0xfd, + 0x2b, 0x2d, 0x03, 0x79, 0x78, 0xbb, 0x65, 0x7b, 0x5b, 0xc8, 0xd9, 0xc7, 0x9e, 0x3a, 0x05, 0x03, + 0xc8, 0x68, 0x9a, 0x56, 0x49, 0x39, 0xa3, 0x9c, 0x1f, 0xae, 0xd2, 0x0f, 0x75, 0x16, 0x86, 0x9b, + 0xa4, 0xbf, 0x66, 0x1a, 0xa5, 0x3e, 0xd2, 0x33, 0x44, 0x1b, 0x36, 0x0d, 0x75, 0x0e, 0xc0, 0xc2, + 0x4f, 0x6a, 0x9e, 0xa9, 0xef, 0x63, 0xa7, 0x54, 0x20, 0xbd, 0xc3, 0x16, 0x7e, 0xf2, 0x88, 0x34, + 0xa8, 0x5f, 0x83, 0x69, 0xbf, 0xbb, 0x69, 0x5a, 0xb5, 0x96, 0x63, 0xea, 0x98, 0x00, 0xd6, 0x5c, + 0xf3, 0x3d, 0x5c, 0xea, 0xf7, 0x61, 0xd7, 0x16, 0x7f, 0xf4, 0x7c, 0xe1, 0xd8, 0xbf, 0x3f, 0x5f, + 0x98, 0xa5, 0x6a, 0x74, 0x8d, 0xfd, 0x65, 0xd3, 0x5e, 0x69, 0x22, 0x6f, 0x6f, 0xf9, 0x3e, 0xae, + 0x23, 0xfd, 0x60, 0x03, 0xeb, 0xd5, 0x49, 0x0b, 0x3f, 0xd9, 0x32, 0xad, 0x87, 0x3e, 0x05, 0x9f, + 0xf0, 0xb6, 0xf9, 0x1e, 0x56, 0x6b, 0x50, 0x0e, 0x48, 0xbf, 0xdb, 0x46, 0x96, 0x67, 0x7a, 0x07, + 0x21, 0xea, 0x03, 0xf9, 0xa9, 0x9f, 0xa2, 0xd4, 0xbf, 0xcc, 0x88, 0xf0, 0x01, 0xb6, 0x60, 0x22, + 0x18, 0xc0, 0xb2, 0x7d, 0xbb, 0x40, 0x8d, 0x52, 0x31, 0x3f, 0xd9, 0x71, 0x4a, 0xf6, 0x6d, 0x86, + 0x5a, 0x59, 0xf9, 0xc9, 0x77, 0x16, 0x8e, 0xbd, 0xff, 0xc9, 0x07, 0x17, 0xa9, 0x5a, 0x7f, 0xf7, + 0x93, 0x0f, 0x2e, 0x9e, 0xe6, 0x53, 0x2c, 0x98, 0x0d, 0x6d, 0x0e, 0x66, 0x05, 0xcd, 0x55, 0xec, + 0xb6, 0x6c, 0xcb, 0xc5, 0xda, 0xff, 0xf4, 0xc3, 0x0c, 0xef, 0xdf, 0xc0, 0x8e, 0xf9, 0x18, 0xf9, + 0xb6, 0xf0, 0xf9, 0x54, 0x1e, 0xf9, 0x54, 0xaa, 0x5f, 0x87, 0x92, 0x4f, 0xce, 0xb4, 0x4c, 0xcf, + 0x44, 0x8d, 0x5a, 0x13, 0x39, 0x75, 0xd3, 0xaa, 0x39, 0xc8, 0x33, 0xed, 0xd2, 0x60, 0x7e, 0xb2, + 0x27, 0x2d, 0xfc, 0x64, 0x93, 0xd2, 0xd8, 0x22, 0x24, 0xaa, 0x3e, 0x05, 0xd5, 0x80, 0xd3, 0x84, + 0x59, 0x64, 0x5a, 0x1e, 0xb6, 0x90, 0xa5, 0xe3, 0xe8, 0x08, 0x43, 0xf9, 0x47, 0x98, 0xf1, 0x19, + 0xef, 0xd0, 0x09, 0x8d, 0x52, 0xb9, 0xf1, 0xec, 0x3b, 0x0b, 0xc7, 0x92, 0x26, 0xa9, 0x25, 0x4d, + 0x32, 0x6e, 0x5b, 0xda, 0x22, 0x9c, 0x95, 0x76, 0x72, 0xf3, 0xfc, 0xa1, 0x02, 0xc7, 0x39, 0xd4, + 0x43, 0xe4, 0xa0, 0xa6, 0xab, 0xbe, 0x06, 0xc3, 0xa8, 0xed, 0xed, 0xd9, 0x8e, 0xe9, 0x1d, 0x50, + 0xc3, 0x5c, 0x2b, 0xfd, 0xcb, 0x5f, 0x5f, 0x99, 0x62, 0x21, 0x74, 0xd5, 0x30, 0x1c, 0xec, 0xba, + 0xdb, 0x9e, 0x63, 0x5a, 0xf5, 0x6a, 0x07, 0x54, 0xbd, 0x03, 0xc5, 0x16, 0xa1, 0x40, 0x6c, 0x76, + 0xe4, 0x9a, 0xb6, 0x2c, 0x4f, 0x03, 0xcb, 0x74, 0xac, 0xb5, 0x7e, 0x5f, 0x3f, 0x55, 0x86, 0x57, + 0xb9, 0xe4, 0x4b, 0xd9, 0xa1, 0xe8, 0x4b, 0x5a, 0x4a, 0x4a, 0x4a, 0x51, 0xb5, 0x19, 0x98, 0x8e, + 0x35, 0x71, 0xa9, 0xfe, 0x52, 0x01, 0xd8, 0x72, 0xeb, 0x1b, 0xb8, 0x65, 0xbb, 0xa6, 0xa7, 0x9e, + 0x82, 0xa2, 0x8b, 0x2d, 0x03, 0x3b, 0xcc, 0xcd, 0xd8, 0x97, 0xba, 0x08, 0x63, 0x6e, 0x7b, 0x07, + 0xe9, 0xba, 0xdd, 0xb6, 0x42, 0xbe, 0x36, 0xda, 0x69, 0xdc, 0x34, 0xd4, 0xd7, 0xa1, 0x88, 0x9a, + 0xfe, 0xdf, 0xc4, 0xd7, 0x46, 0xae, 0xcd, 0xb0, 0x04, 0xb5, 0xec, 0x27, 0x30, 0x2e, 0xce, 0xba, + 0x6d, 0x5a, 0x81, 0x30, 0x14, 0xbc, 0x72, 0x29, 0x3c, 0x75, 0x6c, 0x48, 0x5f, 0xa2, 0xc9, 0xb0, + 0x44, 0x8c, 0x45, 0x6d, 0x0a, 0xd4, 0xce, 0x17, 0x97, 0xe3, 0x07, 0x0a, 0x8c, 0x6c, 0xb9, 0xf5, + 0x5f, 0x35, 0xbd, 0x3d, 0xc3, 0x41, 0x4f, 0x7e, 0x4e, 0x82, 0x5c, 0x96, 0x08, 0x32, 0x15, 0x16, + 0x24, 0xe0, 0x51, 0x3b, 0x49, 0x92, 0x56, 0xf0, 0xc9, 0x45, 0xf9, 0x0b, 0x85, 0x4c, 0xd7, 0xba, + 0x83, 0x59, 0x9c, 0xbc, 0x6f, 0x36, 0x4d, 0xef, 0x81, 0xe3, 0xb3, 0x2f, 0x13, 0x6b, 0x15, 0x06, + 0x6c, 0x1f, 0x80, 0xd9, 0xd3, 0x52, 0x9a, 0x3d, 0xf9, 0x24, 0x09, 0x35, 0xc6, 0x3c, 0xc5, 0xac, + 0xbc, 0x21, 0xe1, 0xfd, 0x4c, 0x98, 0x77, 0x11, 0x53, 0xda, 0xd7, 0x61, 0x41, 0xd2, 0x15, 0xc8, + 0xe4, 0x87, 0x62, 0x32, 0x4a, 0x6d, 0x0f, 0xb9, 0x7b, 0x8c, 0xf7, 0x61, 0xd2, 0xf2, 0x45, 0xe4, + 0xee, 0xa9, 0x13, 0x50, 0xd0, 0xf9, 0x5c, 0xf8, 0x7f, 0x56, 0x86, 0x02, 0x6e, 0xb4, 0xbf, 0x55, + 0x60, 0x6e, 0xcb, 0xad, 0xaf, 0x21, 0x4f, 0xdf, 0x13, 0x8d, 0xe1, 0x4a, 0x95, 0xb2, 0x0e, 0x45, + 0x32, 0x84, 0xef, 0x65, 0x85, 0x6e, 0xb5, 0xc2, 0x50, 0x2b, 0x6f, 0x4a, 0xd4, 0xf2, 0x72, 0x58, + 0x2d, 0x72, 0xe6, 0xb4, 0xbf, 0x52, 0x60, 0x29, 0x15, 0x82, 0xeb, 0xe8, 0x2c, 0x8c, 0x76, 0x74, + 0x84, 0xdd, 0x92, 0x72, 0xa6, 0x70, 0x7e, 0xb8, 0x3a, 0xc2, 0xb5, 0x84, 0x5d, 0x75, 0x19, 0x26, + 0x75, 0x42, 0xc3, 0xa8, 0x51, 0xf6, 0x6a, 0xba, 0x69, 0x50, 0xf1, 0x86, 0xab, 0x27, 0x58, 0x17, + 0x25, 0xbb, 0x6e, 0x1a, 0xae, 0x7a, 0x19, 0xd4, 0x5d, 0x64, 0x36, 0x62, 0xe0, 0x05, 0x02, 0x3e, + 0x41, 0x7b, 0x3a, 0xd0, 0x21, 0x9d, 0x7f, 0xab, 0x1f, 0xca, 0x5b, 0x6e, 0x7d, 0xd3, 0x72, 0x3d, + 0x64, 0x79, 0x9d, 0x5c, 0x7d, 0x1f, 0xb5, 0x2d, 0x7d, 0x4f, 0xaa, 0xf0, 0x53, 0x50, 0x64, 0xc9, + 0x96, 0xce, 0x24, 0xfb, 0xf2, 0x67, 0xdf, 0xf7, 0x9c, 0x9a, 0x81, 0x2d, 0xbb, 0x19, 0x24, 0x62, + 0xbf, 0x65, 0xc3, 0x6f, 0x50, 0x17, 0x60, 0xe4, 0xdd, 0xb6, 0xed, 0x05, 0xfd, 0x24, 0xf9, 0x56, + 0x81, 0x34, 0x51, 0x80, 0x2a, 0x4c, 0x8a, 0xb2, 0x74, 0x17, 0x79, 0x74, 0xa2, 0x19, 0x4f, 0xd1, + 0x5f, 0x85, 0x53, 0x92, 0xf4, 0xdc, 0x45, 0x1e, 0xf5, 0xd9, 0x4a, 0xe4, 0xe6, 0x7b, 0x30, 0x1a, + 0xc9, 0xcb, 0x5d, 0x24, 0xd0, 0x91, 0x66, 0x28, 0x29, 0x2f, 0xc2, 0x18, 0xd3, 0x9a, 0x6e, 0x36, + 0x51, 0xc3, 0x25, 0x79, 0x72, 0xac, 0x3a, 0x4a, 0x15, 0x47, 0xdb, 0xd4, 0x25, 0x18, 0x0f, 0x74, + 0xc7, 0xa0, 0x86, 0x09, 0xd4, 0x18, 0x53, 0x1f, 0x6d, 0xac, 0xdc, 0x94, 0x58, 0xf1, 0x62, 0xd8, + 0x8a, 0x25, 0xd3, 0xad, 0xbd, 0x04, 0x9a, 0xbc, 0xb7, 0x13, 0x81, 0x07, 0x49, 0x18, 0x60, 0x60, + 0x0f, 0xb1, 0xd3, 0xc2, 0x5e, 0x9b, 0x2c, 0x04, 0x7a, 0x37, 0x9c, 0x98, 0x65, 0x14, 0x12, 0x96, + 0xb1, 0x00, 0x23, 0x74, 0x6f, 0x50, 0xf3, 0xb5, 0x12, 0x98, 0x0e, 0x6d, 0x5a, 0x43, 0x81, 0x53, + 0x11, 0x00, 0x82, 0x45, 0x6d, 0xa6, 0xca, 0x90, 0xbe, 0xec, 0x37, 0xf9, 0x4e, 0xc5, 0x40, 0x5c, + 0x1d, 0x35, 0x70, 0x6d, 0x17, 0xe9, 0x9e, 0xed, 0x10, 0x33, 0x18, 0xab, 0x9e, 0xa0, 0x5d, 0xdb, + 0x7e, 0xcf, 0x3d, 0xd2, 0xa1, 0xde, 0xe5, 0x63, 0x7a, 0x07, 0x2d, 0x4c, 0xa6, 0x77, 0xfc, 0xda, + 0x4b, 0xa1, 0xd8, 0xc2, 0x76, 0x2b, 0x41, 0x64, 0x79, 0x40, 0x3e, 0x1f, 0x1d, 0xb4, 0x70, 0xc0, + 0x99, 0xff, 0xb7, 0xba, 0x09, 0xe3, 0x4d, 0xb4, 0x8f, 0x9d, 0xda, 0x2e, 0xc6, 0xfe, 0x42, 0x08, + 0x77, 0xb3, 0x0e, 0x1a, 0x25, 0xa8, 0xf7, 0x30, 0xae, 0x22, 0x8f, 0x90, 0xf2, 0xa2, 0xa4, 0x86, + 0xbb, 0x20, 0xe5, 0x85, 0x49, 0x7d, 0x05, 0xa6, 0x84, 0xab, 0x40, 0xc8, 0x4f, 0x50, 0x35, 0x93, + 0x4b, 0xc0, 0x6f, 0x40, 0x49, 0xba, 0xfc, 0x1b, 0xe9, 0x62, 0x39, 0xdc, 0x14, 0xae, 0xfd, 0x64, + 0x01, 0x62, 0xf4, 0x68, 0x02, 0xc4, 0xd8, 0x21, 0x07, 0x88, 0xf1, 0xde, 0x02, 0x44, 0xe5, 0x8e, + 0xc4, 0xa9, 0xcf, 0x0b, 0x9c, 0x5a, 0xe8, 0x8f, 0xda, 0x05, 0x38, 0x97, 0x01, 0xc2, 0xdd, 0xfb, + 0x77, 0x06, 0x61, 0xb1, 0x03, 0xbb, 0x66, 0x5a, 0xc8, 0x39, 0x78, 0xd0, 0xf2, 0x39, 0x71, 0x5f, + 0xc8, 0xc5, 0x17, 0x61, 0x2c, 0xf0, 0xbe, 0x83, 0xe6, 0x8e, 0xdd, 0x60, 0x4e, 0xce, 0xbc, 0x76, + 0x9b, 0xb4, 0xa9, 0xe7, 0xe0, 0x38, 0x03, 0x6a, 0x39, 0xf6, 0x63, 0xd3, 0xa7, 0x4e, 0x5d, 0x7d, + 0x9c, 0x36, 0x3f, 0x64, 0xad, 0x71, 0xdf, 0x1c, 0xe8, 0xd1, 0x37, 0xbb, 0x0d, 0x09, 0x49, 0x5f, + 0x1e, 0x3c, 0x3c, 0x5f, 0x1e, 0xea, 0xd5, 0x97, 0xaf, 0xc2, 0x14, 0x7e, 0xda, 0x32, 0x89, 0x97, + 0x59, 0x35, 0xcf, 0x6c, 0x62, 0xd7, 0x43, 0xcd, 0x16, 0x09, 0x0e, 0x85, 0xea, 0x64, 0xa7, 0xef, + 0x51, 0xd0, 0xe5, 0xa3, 0xb8, 0xd8, 0xf3, 0x1a, 0xb8, 0x89, 0x2d, 0x2f, 0x84, 0x02, 0x14, 0xa5, + 0xd3, 0xd7, 0x41, 0xe1, 0x1b, 0xf3, 0x91, 0xf0, 0xc6, 0x3c, 0x16, 0xb9, 0x47, 0xf3, 0xe6, 0xf4, + 0xb1, 0xa3, 0x71, 0xd9, 0xf1, 0x43, 0x76, 0xd9, 0xe3, 0x3d, 0xba, 0xec, 0x86, 0xc4, 0x65, 0x2f, + 0x0b, 0x5c, 0x56, 0xea, 0x63, 0xda, 0x15, 0xb8, 0x94, 0x03, 0x8c, 0xbb, 0xee, 0x3f, 0x47, 0x5c, + 0xf7, 0xae, 0x3f, 0xed, 0x07, 0xf7, 0xda, 0x5e, 0xdb, 0xc1, 0xee, 0xa7, 0x3f, 0x3b, 0xc7, 0x3c, + 0xba, 0x78, 0xb8, 0x1e, 0x3d, 0x28, 0xf3, 0xe8, 0x53, 0x50, 0x24, 0xfe, 0x71, 0x40, 0xdc, 0xaf, + 0x50, 0x65, 0x5f, 0x02, 0x4f, 0x1f, 0x3e, 0x3c, 0x4f, 0x87, 0xc3, 0xce, 0xda, 0x23, 0x47, 0x97, + 0xb5, 0x47, 0x8f, 0x2c, 0x6b, 0x7f, 0x1e, 0x02, 0xb2, 0x7d, 0x35, 0x1a, 0x02, 0xa4, 0x60, 0x3c, + 0x04, 0x7c, 0xa0, 0x40, 0x29, 0xb2, 0x47, 0xa7, 0x50, 0x47, 0x5e, 0x54, 0xb8, 0x21, 0x11, 0xf6, + 0xac, 0xb8, 0xa8, 0x10, 0xe2, 0x4a, 0xfb, 0x81, 0x02, 0x67, 0x64, 0x9d, 0x79, 0xeb, 0x0a, 0x55, + 0x18, 0x74, 0xb0, 0xdb, 0x6e, 0x78, 0x41, 0xa1, 0xed, 0x5a, 0x96, 0x0c, 0xd1, 0x41, 0x7c, 0x4c, + 0x22, 0x90, 0x52, 0x0d, 0x08, 0x05, 0xb5, 0x8a, 0x82, 0xa8, 0x56, 0xf1, 0xaf, 0x0a, 0x9c, 0x12, + 0x53, 0x51, 0x6f, 0xc3, 0x50, 0x60, 0x94, 0xac, 0x52, 0x98, 0xcb, 0x74, 0x38, 0x92, 0x7a, 0x03, + 0x06, 0x88, 0xa7, 0xd0, 0x20, 0x9c, 0x0f, 0x9b, 0x62, 0xa8, 0xd7, 0xa1, 0xb0, 0x8b, 0x31, 0x65, + 0x39, 0x1f, 0xa2, 0x0f, 0x9f, 0xac, 0xc1, 0xd0, 0xb9, 0xe8, 0x54, 0x48, 0x73, 0x14, 0xa6, 0xde, + 0x8a, 0xda, 0xd0, 0xa5, 0x34, 0xfd, 0x77, 0x08, 0x0b, 0x2c, 0xa9, 0xf2, 0x2c, 0xa3, 0x06, 0x23, + 0x67, 0x4e, 0xdb, 0x21, 0x25, 0x18, 0x39, 0xc0, 0x61, 0x94, 0xa9, 0xfe, 0x31, 0x6c, 0xae, 0x91, + 0x9c, 0xfc, 0xb3, 0xd4, 0xd2, 0x2d, 0x81, 0x96, 0x2e, 0x24, 0xb5, 0x24, 0xe1, 0x4f, 0xc3, 0x70, + 0x3e, 0x0b, 0xe6, 0x30, 0x74, 0xf5, 0x63, 0x85, 0x2c, 0x48, 0x42, 0x35, 0x31, 0xd1, 0xac, 0xc8, + 0x0b, 0x7b, 0x9b, 0xb1, 0xc2, 0x5e, 0x0f, 0xfa, 0x0a, 0xca, 0x7b, 0x77, 0x9e, 0x65, 0x44, 0xe2, + 0x2c, 0x26, 0xb5, 0x1f, 0x2a, 0x24, 0x14, 0x67, 0xc1, 0x7d, 0x1a, 0xcb, 0x7c, 0x1f, 0x2a, 0xa4, + 0x96, 0xbe, 0xee, 0x27, 0xe6, 0x06, 0x8f, 0xe0, 0x52, 0xb5, 0xa7, 0x1e, 0xb6, 0x25, 0x0a, 0xeb, + 0x05, 0x41, 0x61, 0x3d, 0x6a, 0x33, 0xfd, 0x12, 0x9b, 0x19, 0xe8, 0xd8, 0xcc, 0x8a, 0x60, 0x7a, + 0x66, 0x23, 0xf6, 0x1c, 0xe5, 0x5d, 0x3b, 0x4d, 0x0a, 0x97, 0xb1, 0x56, 0x9e, 0x06, 0xbf, 0x4f, + 0xd3, 0x20, 0x9d, 0xab, 0x28, 0x8c, 0xdc, 0xda, 0x6e, 0x43, 0xbf, 0x81, 0x3c, 0x94, 0xa7, 0x88, + 0x4c, 0x28, 0x6d, 0x20, 0x0f, 0x31, 0x2b, 0x23, 0x88, 0x95, 0xeb, 0xcf, 0x32, 0x12, 0xa0, 0x90, + 0x1f, 0xed, 0x1e, 0x09, 0x28, 0xc2, 0x3e, 0x6e, 0x4c, 0x25, 0x18, 0x74, 0xdb, 0xba, 0x8e, 0x5d, + 0x6a, 0x47, 0x43, 0xd5, 0xe0, 0x33, 0x1a, 0xbc, 0xcf, 0x46, 0x09, 0x45, 0x5c, 0xfb, 0xa8, 0xa5, + 0x7f, 0x53, 0x20, 0xfd, 0x45, 0x89, 0xf4, 0x02, 0xc6, 0xb4, 0x07, 0x70, 0x21, 0x13, 0xa8, 0x2b, + 0x7d, 0xfc, 0xf7, 0x20, 0x4c, 0x05, 0x14, 0xe9, 0x99, 0x58, 0x86, 0x0a, 0x72, 0x9d, 0x19, 0xdd, + 0x86, 0x39, 0xb7, 0x65, 0x7b, 0x35, 0xee, 0x21, 0x6e, 0xcd, 0xb3, 0x6b, 0x3a, 0xe1, 0xb8, 0x86, + 0x1a, 0x0d, 0xe6, 0x8e, 0x25, 0x97, 0x2f, 0x0f, 0x36, 0x0d, 0xf7, 0x91, 0x4d, 0x45, 0x5a, 0x6d, + 0x34, 0xd4, 0x2f, 0xc1, 0xa2, 0xc1, 0x03, 0x87, 0x9c, 0x4c, 0x3f, 0x21, 0x33, 0x6f, 0xc4, 0x8e, + 0x29, 0x63, 0xc4, 0x7e, 0x1d, 0x4e, 0x12, 0x6e, 0x58, 0x3c, 0xe0, 0x24, 0x4a, 0x03, 0xdd, 0x4e, + 0xa3, 0x52, 0x55, 0x5d, 0x6e, 0x77, 0xc1, 0x10, 0xea, 0x3b, 0x30, 0x1b, 0x62, 0x36, 0x31, 0x4a, + 0xb1, 0xfb, 0x51, 0x4a, 0x46, 0x34, 0x4e, 0x77, 0xc6, 0x12, 0xc8, 0x42, 0x22, 0x60, 0x69, 0xb0, + 0xdb, 0x53, 0x9d, 0xb8, 0x2c, 0x84, 0x8c, 0xda, 0x92, 0xc9, 0x42, 0x47, 0x19, 0xea, 0x2d, 0xc5, + 0x88, 0x25, 0xa2, 0x23, 0xbe, 0x0b, 0x0b, 0x3b, 0xc4, 0x88, 0x6b, 0x36, 0xb5, 0xe2, 0xa4, 0x06, + 0x87, 0xbb, 0xd7, 0xe0, 0xec, 0x4e, 0xd2, 0x31, 0xb8, 0x12, 0xab, 0x70, 0x2e, 0x36, 0xa4, 0xd4, + 0xc2, 0x80, 0x58, 0xd8, 0xd9, 0x9d, 0x64, 0x5d, 0x21, 0x66, 0x64, 0x4f, 0xd2, 0xc4, 0xa0, 0xca, + 0x1b, 0xe9, 0x55, 0x79, 0x12, 0x61, 0x08, 0xd5, 0xca, 0x55, 0x41, 0x48, 0x99, 0x4b, 0x84, 0x94, + 0xb0, 0x6f, 0x6b, 0xcf, 0x8a, 0x70, 0x5a, 0xd4, 0xc1, 0x23, 0xc7, 0x32, 0x4c, 0x12, 0x2b, 0x63, + 0x8a, 0x88, 0x46, 0x91, 0x13, 0x7e, 0x17, 0x0b, 0xc2, 0xb4, 0x43, 0xad, 0xc0, 0x4c, 0xc8, 0x6a, + 0x62, 0x58, 0x7d, 0x04, 0x6b, 0xba, 0x03, 0x10, 0xc5, 0xbd, 0x08, 0x27, 0x3a, 0x16, 0x1d, 0xac, + 0x03, 0x68, 0x7c, 0x38, 0xce, 0x0d, 0x94, 0xad, 0x05, 0x5e, 0x83, 0xe9, 0xb8, 0x75, 0x06, 0x18, + 0x34, 0x14, 0x9c, 0x8c, 0x99, 0x19, 0xc3, 0x5b, 0x85, 0xb9, 0xd8, 0xe4, 0xc4, 0x78, 0x1c, 0x20, + 0x3c, 0x96, 0x23, 0x7a, 0x8e, 0xb2, 0x79, 0x0b, 0x66, 0x45, 0xf3, 0x1b, 0x0c, 0x5f, 0xa4, 0x01, + 0x2d, 0x39, 0x51, 0x8c, 0x83, 0xd7, 0xa1, 0x14, 0xac, 0x62, 0xc2, 0xfe, 0x4b, 0xd6, 0x26, 0x83, + 0x94, 0x75, 0xd6, 0xdf, 0x49, 0x6c, 0x64, 0x39, 0x73, 0x1d, 0xa6, 0xd9, 0x72, 0x26, 0x81, 0x37, + 0x44, 0xf0, 0xa6, 0x68, 0x77, 0x0c, 0x6d, 0x1d, 0xe6, 0x83, 0xf1, 0x92, 0xfe, 0x4c, 0xb0, 0x87, + 0x09, 0xf6, 0x2c, 0x83, 0x8a, 0x19, 0x1e, 0x25, 0xb2, 0x0a, 0x73, 0x6c, 0x6c, 0x09, 0x0d, 0xea, + 0x1d, 0x65, 0x0a, 0x24, 0x24, 0xf1, 0xcb, 0xa0, 0x05, 0x7c, 0x88, 0xdd, 0x83, 0xd0, 0x19, 0xa1, + 0x71, 0x9c, 0x41, 0x0a, 0x72, 0x1a, 0xa1, 0xf5, 0x45, 0x38, 0xcb, 0xd8, 0x49, 0x21, 0x35, 0x4a, + 0x48, 0x31, 0xbe, 0x25, 0x94, 0x42, 0xf9, 0xef, 0xef, 0x15, 0x98, 0x17, 0x6c, 0x87, 0xf2, 0x54, + 0x04, 0x0e, 0x6d, 0x9f, 0x72, 0x53, 0xe0, 0xc1, 0xe7, 0xd2, 0x76, 0x73, 0xe1, 0xca, 0xc0, 0xdf, + 0x29, 0xf0, 0x72, 0x3a, 0x48, 0xde, 0x4d, 0xca, 0x57, 0xe3, 0xf5, 0x81, 0x37, 0xf2, 0x49, 0xf4, + 0x62, 0x55, 0x82, 0xff, 0xea, 0x83, 0xd3, 0x69, 0xb4, 0x3e, 0x83, 0xb5, 0x02, 0xf5, 0x57, 0x60, + 0x9c, 0x5c, 0xc8, 0x31, 0x6d, 0xab, 0x66, 0xe0, 0x86, 0x87, 0xc8, 0xea, 0x7e, 0xe4, 0xda, 0x85, + 0xd4, 0x9b, 0x4d, 0x0c, 0x63, 0xc3, 0x47, 0x60, 0x06, 0x32, 0xd6, 0x0a, 0x37, 0xaa, 0x37, 0xa1, + 0xd8, 0x42, 0x07, 0x76, 0xdb, 0xeb, 0xe6, 0xb4, 0x9f, 0xa1, 0x84, 0x54, 0xfe, 0x4f, 0x74, 0x0d, + 0x2c, 0xd8, 0xd9, 0xfe, 0x4c, 0xcd, 0x3e, 0x73, 0x2d, 0x9c, 0xce, 0xa0, 0xf6, 0x0f, 0x0a, 0x59, + 0x0c, 0xa7, 0x43, 0x7d, 0xba, 0x8d, 0xff, 0xff, 0x58, 0x25, 0x92, 0x64, 0x9a, 0x98, 0xb2, 0x7e, + 0x7e, 0x3b, 0x4f, 0xde, 0xdd, 0x44, 0xee, 0x3e, 0x31, 0xb5, 0x01, 0xd6, 0xbd, 0x85, 0xdc, 0xfd, + 0x40, 0xa0, 0x62, 0x47, 0xa0, 0xcc, 0x3d, 0x9d, 0x50, 0x40, 0x4d, 0xa3, 0x45, 0x22, 0x51, 0x1f, + 0xdf, 0xa4, 0xfe, 0x56, 0x1f, 0xb9, 0x27, 0x2b, 0xdb, 0xec, 0x7c, 0x86, 0x94, 0xf4, 0x86, 0x40, + 0x49, 0x2f, 0x25, 0x95, 0x94, 0x94, 0x51, 0x5b, 0x22, 0x05, 0x22, 0x59, 0x37, 0x57, 0xd5, 0xb7, + 0x15, 0x18, 0xe6, 0xcb, 0xe0, 0xa8, 0x02, 0x94, 0x2c, 0x05, 0xf4, 0x65, 0x2a, 0xa0, 0x90, 0xae, + 0x80, 0x7e, 0x89, 0x02, 0x3a, 0xe5, 0x0b, 0xed, 0x6f, 0x68, 0xaa, 0x0d, 0x6d, 0x5e, 0xe3, 0x2b, + 0x86, 0xa3, 0xdb, 0x77, 0x67, 0xa6, 0xd8, 0x14, 0xae, 0xb4, 0xfb, 0x24, 0xc3, 0xa6, 0x40, 0x74, + 0xb5, 0xe3, 0xfe, 0xed, 0x3e, 0x38, 0xb9, 0xe5, 0xd6, 0xb7, 0xb9, 0xaa, 0x1f, 0x39, 0xc8, 0x72, + 0x77, 0x53, 0x6c, 0xf9, 0x15, 0x98, 0x72, 0xed, 0xb6, 0xa3, 0xe3, 0x9a, 0x68, 0xd2, 0x54, 0xda, + 0xb7, 0x1d, 0x9e, 0x3a, 0xb2, 0x1e, 0x77, 0x3d, 0xd3, 0xa2, 0xa7, 0xdd, 0x22, 0x63, 0x9f, 0x0e, + 0x01, 0x6c, 0x8b, 0xef, 0x7b, 0xf6, 0x77, 0x77, 0xdf, 0x73, 0x39, 0xa6, 0xdf, 0xf9, 0xb0, 0x7e, + 0x93, 0xe2, 0x6a, 0x0b, 0xa4, 0x8c, 0x9e, 0xec, 0xe0, 0x06, 0xfd, 0x7e, 0x1f, 0xb9, 0x13, 0x7a, + 0xf7, 0xa9, 0x87, 0x1d, 0x0b, 0x35, 0x7e, 0x51, 0xf4, 0x74, 0x39, 0xa6, 0xa7, 0xc8, 0x3b, 0x81, + 0xb8, 0xb0, 0xec, 0x9d, 0x40, 0xbc, 0x99, 0xeb, 0xe8, 0x27, 0x0a, 0xa9, 0xdf, 0xdc, 0x37, 0xdf, + 0x6d, 0x9b, 0xe4, 0x46, 0x33, 0x5b, 0x30, 0xbc, 0x58, 0xfd, 0x26, 0x12, 0x3c, 0x0a, 0xb1, 0xe0, + 0xc1, 0x17, 0x00, 0xfd, 0xbd, 0x2d, 0x00, 0x94, 0x60, 0x01, 0x70, 0x25, 0x6d, 0xd7, 0x9a, 0x90, + 0x48, 0x9b, 0x27, 0x9b, 0xd6, 0x44, 0x3b, 0x57, 0xc5, 0x9f, 0xd2, 0x64, 0x7a, 0xb7, 0x89, 0x9d, + 0x3a, 0xb6, 0xf4, 0x83, 0x6d, 0x72, 0x3f, 0x83, 0xbd, 0x98, 0x38, 0x32, 0x75, 0x54, 0xae, 0xa6, + 0x25, 0x3e, 0x21, 0x33, 0x2c, 0xf1, 0x09, 0xfb, 0x3a, 0x77, 0xd1, 0xfb, 0xc8, 0x03, 0x90, 0x4d, + 0xcb, 0xdf, 0x14, 0xb9, 0x5c, 0x5a, 0x7a, 0x64, 0xfc, 0x29, 0x71, 0x81, 0x88, 0x5e, 0xfa, 0x63, + 0x66, 0x72, 0x93, 0xfb, 0x47, 0x37, 0x8b, 0x55, 0xe6, 0x23, 0xd7, 0x62, 0x4a, 0xd5, 0xa2, 0xe7, + 0xc1, 0x22, 0x9d, 0xb0, 0x87, 0x0b, 0xe2, 0xce, 0xb8, 0x5a, 0x37, 0xf0, 0xe7, 0x6a, 0x8d, 0xab, + 0x55, 0xac, 0x13, 0xa6, 0x56, 0x71, 0x27, 0x57, 0xeb, 0x8f, 0x15, 0xe2, 0x9c, 0x0f, 0x1d, 0xf3, + 0xb1, 0xd9, 0xc0, 0x75, 0x6c, 0xdc, 0x7d, 0x8a, 0xf5, 0xb6, 0x87, 0xd7, 0x6d, 0xcb, 0x73, 0x90, + 0x2e, 0xf7, 0xbf, 0x29, 0x18, 0xd8, 0x6d, 0x5b, 0x86, 0xcb, 0x54, 0x49, 0x3f, 0xd4, 0x0b, 0x30, + 0xa1, 0x33, 0xcc, 0x1a, 0xa2, 0xef, 0x46, 0x98, 0xd2, 0x8e, 0x07, 0xed, 0xec, 0x39, 0x89, 0xaa, + 0xb2, 0xa5, 0x01, 0xd5, 0x13, 0xcd, 0xf6, 0xb7, 0x24, 0x07, 0xed, 0x4b, 0x61, 0x71, 0xa5, 0xbc, + 0xfa, 0x81, 0xe4, 0xa5, 0x34, 0x00, 0x9e, 0xee, 0xdf, 0x01, 0x20, 0xfc, 0xd6, 0x0c, 0x73, 0x77, + 0x97, 0x64, 0xfc, 0xd4, 0x34, 0xf0, 0x8a, 0x3f, 0x55, 0xdf, 0xff, 0x8f, 0x85, 0xf3, 0x75, 0xd3, + 0xdb, 0x6b, 0xef, 0x2c, 0xeb, 0x76, 0x93, 0xbd, 0x2f, 0x64, 0xff, 0x5d, 0x71, 0x8d, 0xfd, 0x15, + 0xef, 0xa0, 0x85, 0x5d, 0x82, 0xe0, 0x56, 0x87, 0x09, 0xf9, 0x0d, 0x73, 0x77, 0xb7, 0x32, 0x29, + 0x90, 0x49, 0xfb, 0x06, 0x4c, 0x6c, 0xb9, 0xf5, 0x2a, 0x7e, 0x82, 0x1c, 0xc3, 0x7d, 0xd0, 0xf2, + 0x1e, 0xb4, 0xa5, 0x9a, 0xa6, 0x75, 0x42, 0x81, 0x52, 0x66, 0xc2, 0x4a, 0x89, 0x90, 0xd2, 0xca, + 0x24, 0xa0, 0x46, 0xda, 0xc2, 0x6f, 0x65, 0x4e, 0x92, 0x4e, 0xbd, 0x81, 0xcc, 0xe6, 0x7d, 0x5b, + 0xdf, 0xc7, 0xc6, 0x3d, 0x32, 0x79, 0x72, 0x27, 0x9a, 0x6c, 0x10, 0xb0, 0x55, 0x6a, 0xe9, 0x0f, + 0xdb, 0x3b, 0x5f, 0xc2, 0x07, 0x64, 0xe2, 0x47, 0xab, 0xa2, 0x2e, 0xf5, 0x34, 0x0c, 0xbb, 0x66, + 0xdd, 0x42, 0x5e, 0xdb, 0xa1, 0x9b, 0xf0, 0xd1, 0x6a, 0xa7, 0x21, 0x7d, 0xbd, 0x91, 0xe4, 0x8b, + 0xad, 0x37, 0x92, 0x1d, 0x5c, 0xa4, 0x6f, 0xd2, 0x67, 0x33, 0xdb, 0x66, 0xdd, 0x22, 0x4b, 0xe8, + 0x6d, 0x28, 0xfa, 0x7f, 0x33, 0x41, 0x46, 0xd7, 0x6e, 0xfe, 0xf4, 0xf9, 0x42, 0xd1, 0x25, 0x2d, + 0xff, 0xfb, 0x7c, 0xe1, 0x4a, 0x8e, 0x59, 0x5c, 0xd5, 0x75, 0x66, 0xa7, 0x55, 0x46, 0x4a, 0x3d, + 0x0d, 0xfd, 0x1b, 0x74, 0x29, 0xeb, 0x93, 0x1c, 0xfa, 0xe9, 0xf3, 0x05, 0x62, 0xb3, 0x55, 0xd2, + 0xaa, 0x3d, 0x25, 0x0f, 0x90, 0x08, 0x07, 0xb6, 0xae, 0x2e, 0x51, 0xf9, 0xe9, 0x65, 0x2f, 0x5a, + 0xfb, 0x20, 0x08, 0xfe, 0x77, 0x75, 0xc8, 0xef, 0x22, 0xd7, 0xb9, 0xd6, 0x61, 0xe0, 0x31, 0x6a, + 0xb4, 0x31, 0xdb, 0xb9, 0x9e, 0x4b, 0x4b, 0xc8, 0x21, 0xf9, 0x82, 0xdd, 0x38, 0xc1, 0xd5, 0x7e, + 0xaf, 0x40, 0xfc, 0x7c, 0xd5, 0x68, 0x9a, 0x16, 0xad, 0x09, 0x0b, 0xb6, 0xd4, 0xbd, 0x6d, 0xb7, + 0xde, 0x86, 0x89, 0xd0, 0x3d, 0x4a, 0x5a, 0x8b, 0xe9, 0x94, 0x54, 0x94, 0xac, 0xe0, 0x75, 0xbc, + 0x83, 0x4c, 0xae, 0x37, 0x49, 0xaf, 0x72, 0xf6, 0x77, 0x7f, 0x95, 0x73, 0x40, 0x7e, 0x95, 0xf3, + 0x0e, 0x14, 0x5d, 0x0f, 0x79, 0x6d, 0x97, 0x5d, 0xb3, 0x3b, 0x9f, 0xaa, 0x56, 0x22, 0xeb, 0x36, + 0x81, 0xaf, 0x32, 0xbc, 0x4a, 0x25, 0xad, 0xb8, 0x91, 0xae, 0x68, 0xed, 0x12, 0xa9, 0x6d, 0xa4, + 0x03, 0x71, 0xc3, 0xfd, 0x33, 0xfa, 0x48, 0x6a, 0x95, 0x3e, 0x80, 0x7b, 0x0f, 0x6f, 0x7b, 0x68, + 0x1f, 0xbf, 0xe5, 0x20, 0xcb, 0x93, 0x7b, 0xe3, 0x3d, 0x28, 0xd6, 0x09, 0x04, 0xdb, 0x54, 0x2d, + 0xa7, 0x89, 0x47, 0x68, 0x05, 0xe4, 0x89, 0x6a, 0xab, 0x0c, 0xbb, 0xf2, 0x4a, 0xda, 0x0b, 0x29, + 0x11, 0x47, 0xda, 0x59, 0xf2, 0x34, 0x42, 0xd4, 0xc5, 0x05, 0x3a, 0x20, 0xb1, 0x65, 0xd5, 0xe7, + 0x06, 0x79, 0x21, 0x08, 0xa9, 0x34, 0x25, 0x18, 0x24, 0xfc, 0xf0, 0x6b, 0x99, 0xc1, 0x67, 0x7a, + 0x94, 0x48, 0x8e, 0xc0, 0xa2, 0x44, 0xb2, 0x83, 0xf3, 0xf6, 0xa1, 0xd2, 0x39, 0x3c, 0xb9, 0xcb, + 0x68, 0x6d, 0xd9, 0x86, 0xb9, 0x6b, 0xea, 0x28, 0x75, 0xe5, 0xfd, 0x35, 0x18, 0x0a, 0xde, 0x78, + 0x33, 0x4f, 0xbd, 0x95, 0xa6, 0x73, 0xe9, 0x00, 0x0f, 0x19, 0x91, 0x2a, 0x27, 0x97, 0x2f, 0xe1, + 0x49, 0x09, 0x6a, 0x2f, 0x93, 0x7c, 0x27, 0xed, 0x0f, 0x44, 0xbf, 0xf6, 0xbd, 0x25, 0x28, 0x6c, + 0xb9, 0x75, 0x15, 0xc1, 0x60, 0xf0, 0x46, 0xf2, 0xe5, 0x8c, 0x60, 0xc3, 0xe0, 0xca, 0xcb, 0xf9, + 0xe0, 0x78, 0x6a, 0x35, 0x60, 0x88, 0x3f, 0x5f, 0xcc, 0x0a, 0x68, 0x01, 0x60, 0x79, 0x25, 0x27, + 0x20, 0x1f, 0xe5, 0x0f, 0x15, 0x98, 0x96, 0xbd, 0xeb, 0x7a, 0x2d, 0x83, 0x98, 0x04, 0xaf, 0xfc, + 0x66, 0x6f, 0x78, 0x9c, 0xa7, 0x67, 0x0a, 0x4c, 0x09, 0x9f, 0x3b, 0x7e, 0x21, 0x83, 0xb0, 0x08, + 0xa9, 0x7c, 0xb3, 0x07, 0x24, 0xce, 0xca, 0x9f, 0x28, 0x50, 0x4e, 0x79, 0x6a, 0x78, 0x23, 0x83, + 0xb6, 0x1c, 0xb5, 0xbc, 0xda, 0x33, 0x2a, 0x67, 0xee, 0x5b, 0x0a, 0x9c, 0x14, 0x5f, 0xe1, 0x7c, + 0x35, 0xb7, 0xcc, 0x21, 0xac, 0xf2, 0x2f, 0xf5, 0x82, 0xc5, 0xb9, 0x39, 0x80, 0xe3, 0xf1, 0x9b, + 0x43, 0x59, 0x26, 0x1f, 0x83, 0x2f, 0xbf, 0xd6, 0x1d, 0x7c, 0x44, 0x11, 0xe2, 0x4b, 0x3c, 0xaf, + 0xe6, 0xd2, 0x72, 0x0c, 0x2b, 0x53, 0x11, 0xe9, 0x97, 0x70, 0x7e, 0x13, 0x4e, 0x24, 0x2f, 0x93, + 0xbc, 0x92, 0x87, 0x64, 0x18, 0xa3, 0xfc, 0x46, 0xb7, 0x18, 0x9c, 0x81, 0x3f, 0x56, 0x60, 0x46, + 0xbe, 0x0f, 0xc9, 0xa2, 0x2b, 0xc5, 0x2c, 0xdf, 0xe9, 0x15, 0x33, 0xe2, 0x4e, 0x29, 0xb7, 0x46, + 0x6f, 0xe4, 0x32, 0x40, 0x11, 0x6a, 0xa6, 0x3b, 0xe5, 0xb8, 0xed, 0xf9, 0xe7, 0x0a, 0x9c, 0xc9, + 0xbc, 0x83, 0x78, 0x3b, 0xbf, 0xdb, 0x0a, 0x09, 0x94, 0xdf, 0x7a, 0x41, 0x02, 0x9c, 0xdd, 0x6f, + 0x2b, 0x30, 0x9b, 0x76, 0x68, 0x5b, 0xe9, 0x52, 0x23, 0xe1, 0x48, 0xb0, 0xd6, 0x3b, 0x6e, 0x34, + 0x3a, 0x09, 0x8f, 0x75, 0x5e, 0xcd, 0xe5, 0xe6, 0x31, 0xac, 0xec, 0xe8, 0x94, 0x76, 0x8a, 0x42, + 0xb4, 0x95, 0x56, 0x77, 0xaf, 0xe4, 0x77, 0xf9, 0x38, 0x6e, 0xa6, 0xb6, 0xf2, 0xd4, 0xcd, 0x7d, + 0xe3, 0xcb, 0x7c, 0x4c, 0x77, 0x3b, 0x5f, 0x62, 0x95, 0x12, 0xc8, 0x34, 0xbe, 0xbc, 0x6f, 0x88, + 0xd4, 0xef, 0x2a, 0x30, 0x97, 0x7e, 0xb7, 0x39, 0x5f, 0x32, 0x91, 0x60, 0x97, 0x37, 0x5e, 0x04, + 0x9b, 0x73, 0xf9, 0x3d, 0x05, 0xe6, 0x33, 0xce, 0x78, 0x6f, 0x75, 0x3f, 0x50, 0xd8, 0x51, 0xee, + 0xbe, 0x10, 0x3a, 0x67, 0xf4, 0x8f, 0x14, 0x28, 0x49, 0x0f, 0xf8, 0x5e, 0xcf, 0x65, 0xf8, 0x49, + 0xc4, 0xf2, 0xed, 0x1e, 0x11, 0x23, 0xfa, 0xcb, 0xb8, 0x27, 0x7a, 0x2b, 0xbf, 0xed, 0x0b, 0xd0, + 0x33, 0xf5, 0x97, 0xf3, 0x9e, 0xe7, 0xfb, 0x0a, 0xa8, 0x82, 0xe3, 0xa4, 0xab, 0x59, 0x75, 0x80, + 0x04, 0x4a, 0xf9, 0x46, 0xd7, 0x28, 0x9c, 0x89, 0xdf, 0x80, 0x89, 0xc4, 0x41, 0x4d, 0xd6, 0x7a, + 0x3c, 0x8e, 0x50, 0x7e, 0xbd, 0x4b, 0x84, 0xf0, 0xaa, 0x23, 0x79, 0x04, 0x92, 0xb5, 0xea, 0x48, + 0x60, 0x64, 0xae, 0x3a, 0xa4, 0x87, 0x0f, 0x24, 0xde, 0x8b, 0x4f, 0x1e, 0xb2, 0xe2, 0xbd, 0x10, + 0x2b, 0x33, 0xde, 0xa7, 0x1e, 0x1e, 0xa8, 0xbf, 0xaf, 0xc0, 0x29, 0xc9, 0xc9, 0xc1, 0xf5, 0xcc, + 0x20, 0x28, 0x42, 0x2b, 0xdf, 0xea, 0x09, 0x2d, 0xc2, 0x90, 0xa4, 0xe6, 0x7e, 0x3d, 0x73, 0x67, + 0xd8, 0x13, 0x43, 0xe9, 0x05, 0x6b, 0xd5, 0x85, 0xb1, 0x68, 0xd9, 0xf4, 0x72, 0x06, 0xbd, 0x08, + 0x74, 0xf9, 0xd5, 0x6e, 0xa0, 0x23, 0x11, 0x25, 0xa3, 0xc0, 0x96, 0x25, 0x56, 0x3a, 0x7a, 0x66, + 0x44, 0xc9, 0x57, 0x50, 0xf2, 0x9d, 0x39, 0xf1, 0xf3, 0x71, 0x59, 0xce, 0x1c, 0x47, 0xc8, 0x74, + 0x66, 0xd9, 0x6f, 0x9f, 0x11, 0x63, 0x91, 0xfc, 0xf0, 0xd9, 0xf5, 0x5c, 0x34, 0xe3, 0x68, 0x99, + 0xc6, 0x92, 0xfe, 0x6b, 0x57, 0x64, 0x4b, 0x2e, 0x2c, 0xae, 0x65, 0x6d, 0xc9, 0x45, 0x48, 0x99, + 0x5b, 0xf2, 0xb4, 0xca, 0x18, 0x89, 0xf5, 0x82, 0xba, 0x58, 0x56, 0xac, 0x4f, 0xa2, 0x64, 0xc6, + 0x7a, 0x79, 0x09, 0x8c, 0x6c, 0xb1, 0xe4, 0xf5, 0xaf, 0x5c, 0x5b, 0x37, 0x11, 0x66, 0xe6, 0x16, + 0x2b, 0xb3, 0x42, 0x55, 0x1e, 0xf8, 0xe6, 0x27, 0x1f, 0x5c, 0x54, 0xd6, 0xf6, 0x7e, 0xf4, 0xd1, + 0xbc, 0xf2, 0xe1, 0x47, 0xf3, 0xca, 0x7f, 0x7e, 0x34, 0xaf, 0xfc, 0xc1, 0xc7, 0xf3, 0xc7, 0x3e, + 0xfc, 0x78, 0xfe, 0xd8, 0xbf, 0x7d, 0x3c, 0x7f, 0xec, 0xd7, 0xde, 0x0e, 0x55, 0xed, 0x37, 0x83, + 0xc1, 0xee, 0xa3, 0x1d, 0x77, 0x85, 0x0f, 0x7d, 0x45, 0xb7, 0x1d, 0x1c, 0xfe, 0xdc, 0x43, 0xa6, + 0xb5, 0xd2, 0xb4, 0x8d, 0x76, 0x03, 0xbb, 0x9d, 0xdf, 0x6d, 0x24, 0x15, 0xfe, 0x9d, 0x22, 0xf9, + 0xcd, 0xc5, 0x2f, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xf2, 0xc7, 0xba, 0xe0, 0x52, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3936,7 +4180,6 @@ type MsgClient interface { // AdminUpdateBinaryOptionsMarket defines method for updating a binary options // market by admin AdminUpdateBinaryOptionsMarket(ctx context.Context, in *MsgAdminUpdateBinaryOptionsMarket, opts ...grpc.CallOption) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) - UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) // UpdateSpotMarket modifies certain spot market fields (admin only) UpdateSpotMarket(ctx context.Context, in *MsgUpdateSpotMarket, opts ...grpc.CallOption) (*MsgUpdateSpotMarketResponse, error) // UpdateDerivativeMarket modifies certain derivative market fields (admin @@ -4207,15 +4450,6 @@ func (c *msgClient) AdminUpdateBinaryOptionsMarket(ctx context.Context, in *MsgA return out, nil } -func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { - out := new(MsgUpdateParamsResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateParams", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) UpdateSpotMarket(ctx context.Context, in *MsgUpdateSpotMarket, opts ...grpc.CallOption) (*MsgUpdateSpotMarketResponse, error) { out := new(MsgUpdateSpotMarketResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateSpotMarket", in, out, opts...) @@ -4337,7 +4571,6 @@ type MsgServer interface { // AdminUpdateBinaryOptionsMarket defines method for updating a binary options // market by admin AdminUpdateBinaryOptionsMarket(context.Context, *MsgAdminUpdateBinaryOptionsMarket) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) - UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) // UpdateSpotMarket modifies certain spot market fields (admin only) UpdateSpotMarket(context.Context, *MsgUpdateSpotMarket) (*MsgUpdateSpotMarketResponse, error) // UpdateDerivativeMarket modifies certain derivative market fields (admin @@ -4436,9 +4669,6 @@ func (*UnimplementedMsgServer) RewardsOptOut(ctx context.Context, req *MsgReward func (*UnimplementedMsgServer) AdminUpdateBinaryOptionsMarket(ctx context.Context, req *MsgAdminUpdateBinaryOptionsMarket) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AdminUpdateBinaryOptionsMarket not implemented") } -func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") -} func (*UnimplementedMsgServer) UpdateSpotMarket(ctx context.Context, req *MsgUpdateSpotMarket) (*MsgUpdateSpotMarketResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateSpotMarket not implemented") } @@ -4963,24 +5193,6 @@ func _Msg_AdminUpdateBinaryOptionsMarket_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } -func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateParams) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).UpdateParams(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.exchange.v1beta1.Msg/UpdateParams", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_UpdateSpotMarket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgUpdateSpotMarket) if err := dec(in); err != nil { @@ -5187,10 +5399,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "AdminUpdateBinaryOptionsMarket", Handler: _Msg_AdminUpdateBinaryOptionsMarket_Handler, }, - { - MethodName: "UpdateParams", - Handler: _Msg_UpdateParams_Handler, - }, { MethodName: "UpdateSpotMarket", Handler: _Msg_UpdateSpotMarket_Handler, @@ -5918,6 +6126,167 @@ func (m *MsgInstantSpotMarketLaunchResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } +func (m *MsgInstantPerpetualMarketLaunch) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgInstantPerpetualMarketLaunch) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgInstantPerpetualMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + { + size := m.MinQuantityTickSize.Size() + i -= size + if _, err := m.MinQuantityTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + { + size := m.MinPriceTickSize.Size() + i -= size + if _, err := m.MinPriceTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + { + size := m.MaintenanceMarginRatio.Size() + i -= size + if _, err := m.MaintenanceMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + { + size := m.InitialMarginRatio.Size() + i -= size + if _, err := m.InitialMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + { + size := m.TakerFeeRate.Size() + i -= size + if _, err := m.TakerFeeRate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + { + size := m.MakerFeeRate.Size() + i -= size + if _, err := m.MakerFeeRate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + if m.OracleType != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OracleType)) + i-- + dAtA[i] = 0x38 + } + if m.OracleScaleFactor != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OracleScaleFactor)) + i-- + dAtA[i] = 0x30 + } + if len(m.OracleQuote) > 0 { + i -= len(m.OracleQuote) + copy(dAtA[i:], m.OracleQuote) + i = encodeVarintTx(dAtA, i, uint64(len(m.OracleQuote))) + i-- + dAtA[i] = 0x2a + } + if len(m.OracleBase) > 0 { + i -= len(m.OracleBase) + copy(dAtA[i:], m.OracleBase) + i = encodeVarintTx(dAtA, i, uint64(len(m.OracleBase))) + i-- + dAtA[i] = 0x22 + } + if len(m.QuoteDenom) > 0 { + i -= len(m.QuoteDenom) + copy(dAtA[i:], m.QuoteDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.QuoteDenom))) + i-- + dAtA[i] = 0x1a + } + if len(m.Ticker) > 0 { + i -= len(m.Ticker) + copy(dAtA[i:], m.Ticker) + i = encodeVarintTx(dAtA, i, uint64(len(m.Ticker))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgInstantPerpetualMarketLaunchResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgInstantPerpetualMarketLaunchResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgInstantPerpetualMarketLaunchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgInstantBinaryOptionsMarketLaunch) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6076,7 +6445,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) MarshalToSizedBuffer(dAtA return len(dAtA) - i, nil } -func (m *MsgCreateSpotMarketOrder) Marshal() (dAtA []byte, err error) { +func (m *MsgInstantExpiryFuturesMarketLaunch) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -6086,26 +6455,129 @@ func (m *MsgCreateSpotMarketOrder) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgCreateSpotMarketOrder) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgInstantExpiryFuturesMarketLaunch) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgCreateSpotMarketOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgInstantExpiryFuturesMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l { - size, err := m.Order.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { return 0, err } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + { + size := m.MinQuantityTickSize.Size() i -= size + if _, err := m.MinQuantityTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } i = encodeVarintTx(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x72 + { + size := m.MinPriceTickSize.Size() + i -= size + if _, err := m.MinPriceTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + { + size := m.MaintenanceMarginRatio.Size() + i -= size + if _, err := m.MaintenanceMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + { + size := m.InitialMarginRatio.Size() + i -= size + if _, err := m.InitialMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + { + size := m.TakerFeeRate.Size() + i -= size + if _, err := m.TakerFeeRate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + { + size := m.MakerFeeRate.Size() + i -= size + if _, err := m.MakerFeeRate.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + if m.Expiry != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Expiry)) + i-- + dAtA[i] = 0x40 + } + if m.OracleScaleFactor != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OracleScaleFactor)) + i-- + dAtA[i] = 0x38 + } + if m.OracleType != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.OracleType)) + i-- + dAtA[i] = 0x30 + } + if len(m.OracleQuote) > 0 { + i -= len(m.OracleQuote) + copy(dAtA[i:], m.OracleQuote) + i = encodeVarintTx(dAtA, i, uint64(len(m.OracleQuote))) + i-- + dAtA[i] = 0x2a + } + if len(m.OracleBase) > 0 { + i -= len(m.OracleBase) + copy(dAtA[i:], m.OracleBase) + i = encodeVarintTx(dAtA, i, uint64(len(m.OracleBase))) + i-- + dAtA[i] = 0x22 + } + if len(m.QuoteDenom) > 0 { + i -= len(m.QuoteDenom) + copy(dAtA[i:], m.QuoteDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.QuoteDenom))) + i-- + dAtA[i] = 0x1a + } + if len(m.Ticker) > 0 { + i -= len(m.Ticker) + copy(dAtA[i:], m.Ticker) + i = encodeVarintTx(dAtA, i, uint64(len(m.Ticker))) + i-- + dAtA[i] = 0x12 + } if len(m.Sender) > 0 { i -= len(m.Sender) copy(dAtA[i:], m.Sender) @@ -6116,7 +6588,7 @@ func (m *MsgCreateSpotMarketOrder) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *MsgCreateSpotMarketOrderResponse) Marshal() (dAtA []byte, err error) { +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -6126,28 +6598,91 @@ func (m *MsgCreateSpotMarketOrderResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgCreateSpotMarketOrderResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgCreateSpotMarketOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Cid) > 0 { - i -= len(m.Cid) - copy(dAtA[i:], m.Cid) - i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) - i-- - dAtA[i] = 0x1a + return len(dAtA) - i, nil +} + +func (m *MsgCreateSpotMarketOrder) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - if m.Results != nil { - { - size, err := m.Results.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + return dAtA[:n], nil +} + +func (m *MsgCreateSpotMarketOrder) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateSpotMarketOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Order.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgCreateSpotMarketOrderResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateSpotMarketOrderResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateSpotMarketOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x1a + } + if m.Results != nil { + { + size, err := m.Results.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } i -= size i = encodeVarintTx(dAtA, i, uint64(size)) @@ -8880,6 +9415,64 @@ func (m *MsgInstantSpotMarketLaunchResponse) Size() (n int) { return n } +func (m *MsgInstantPerpetualMarketLaunch) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Ticker) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.QuoteDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OracleBase) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OracleQuote) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.OracleScaleFactor != 0 { + n += 1 + sovTx(uint64(m.OracleScaleFactor)) + } + if m.OracleType != 0 { + n += 1 + sovTx(uint64(m.OracleType)) + } + l = m.MakerFeeRate.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.TakerFeeRate.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.InitialMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MaintenanceMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinPriceTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinQuantityTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgInstantPerpetualMarketLaunchResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgInstantBinaryOptionsMarketLaunch) Size() (n int) { if m == nil { return 0 @@ -8944,6 +9537,67 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Size() (n int) { return n } +func (m *MsgInstantExpiryFuturesMarketLaunch) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Ticker) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.QuoteDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OracleBase) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.OracleQuote) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.OracleType != 0 { + n += 1 + sovTx(uint64(m.OracleType)) + } + if m.OracleScaleFactor != 0 { + n += 1 + sovTx(uint64(m.OracleScaleFactor)) + } + if m.Expiry != 0 { + n += 1 + sovTx(uint64(m.Expiry)) + } + l = m.MakerFeeRate.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.TakerFeeRate.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.InitialMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MaintenanceMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinPriceTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinQuantityTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgCreateSpotMarketOrder) Size() (n int) { if m == nil { return 0 @@ -12111,7 +12765,7 @@ func (m *MsgInstantSpotMarketLaunchResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { +func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12134,10 +12788,10 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -12206,7 +12860,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleSymbol", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12234,11 +12888,11 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleSymbol = string(dAtA[iNdEx:postIndex]) + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleProvider", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OracleBase", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12266,13 +12920,13 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleProvider = string(dAtA[iNdEx:postIndex]) + m.OracleBase = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleQuote", wireType) } - m.OracleType = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12282,11 +12936,24 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.OracleType |= types1.OracleType(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OracleQuote = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 6: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) @@ -12307,6 +12974,25 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } } case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + } + m.OracleType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleType |= types1.OracleType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) } @@ -12340,7 +13026,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) } @@ -12374,11 +13060,11 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", wireType) } - m.ExpirationTimestamp = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12388,16 +13074,31 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ExpirationTimestamp |= int64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx } - m.SettlementTimestamp = 0 + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12407,16 +13108,803 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.SettlementTimestamp |= int64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Admin", wireType) - } - var stringLen uint64 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgInstantPerpetualMarketLaunchResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ticker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleSymbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OracleSymbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleProvider", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OracleProvider = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + } + m.OracleType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleType |= types1.OracleType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) + } + m.OracleScaleFactor = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleScaleFactor |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) + } + m.ExpirationTimestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpirationTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) + } + m.SettlementTimestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SettlementTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Admin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12442,9 +13930,9 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Admin = string(dAtA[iNdEx:postIndex]) + m.Ticker = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 12: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) } @@ -12476,6 +13964,263 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } m.QuoteDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleBase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OracleBase = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleQuote", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OracleQuote = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + } + m.OracleType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleType |= types1.OracleType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) + } + m.OracleScaleFactor = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleScaleFactor |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Expiry", wireType) + } + m.Expiry = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Expiry |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 13: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) @@ -12599,7 +14344,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) error { +func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12622,10 +14367,10 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) err fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunchResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/chain/exchange/types/v2/codec.go b/chain/exchange/types/v2/codec.go index 9f604cb6..f90076d9 100644 --- a/chain/exchange/types/v2/codec.go +++ b/chain/exchange/types/v2/codec.go @@ -55,6 +55,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgExternalTransfer{}, "exchange/v2/MsgExternalTransfer", nil) cdc.RegisterConcrete(&MsgIncreasePositionMargin{}, "exchange/v2/MsgIncreasePositionMargin", nil) cdc.RegisterConcrete(&MsgLiquidatePosition{}, "exchange/v2/MsgLiquidatePosition", nil) + cdc.RegisterConcrete(&MsgOffsetPosition{}, "exchange/v2/MsgOffsetPosition", nil) cdc.RegisterConcrete(&MsgBatchUpdateOrders{}, "exchange/v2/MsgBatchUpdateOrders", nil) cdc.RegisterConcrete(&MsgPrivilegedExecuteContract{}, "exchange/v2/MsgPrivilegedExecuteContract", nil) cdc.RegisterConcrete(&MsgRewardsOptOut{}, "exchange/v2/MsgRewardsOptOut", nil) @@ -75,7 +76,11 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&ExpiryFuturesMarketLaunchProposal{}, "exchange/v2/ExpiryFuturesMarketLaunchProposal", nil) cdc.RegisterConcrete(&DerivativeMarketParamUpdateProposal{}, "exchange/v2/DerivativeMarketParamUpdateProposal", nil) cdc.RegisterConcrete(&MarketForcedSettlementProposal{}, "exchange/v2/MarketForcedSettlementProposal", nil) - cdc.RegisterConcrete(&UpdateDenomDecimalsProposal{}, "exchange/v2/UpdateDenomDecimalsProposal", nil) + cdc.RegisterConcrete( + &UpdateAuctionExchangeTransferDenomDecimalsProposal{}, + "exchange/v2/UpdateAuctionExchangeTransferDenomDecimalsProposal", + nil, + ) cdc.RegisterConcrete(&TradingRewardCampaignLaunchProposal{}, "exchange/v2/TradingRewardCampaignLaunchProposal", nil) cdc.RegisterConcrete(&TradingRewardCampaignUpdateProposal{}, "exchange/v2/TradingRewardCampaignUpdateProposal", nil) cdc.RegisterConcrete(&TradingRewardPendingPointsUpdateProposal{}, "exchange/v2/TradingRewardPendingPointsUpdateProposal", nil) @@ -83,7 +88,11 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&BatchCommunityPoolSpendProposal{}, "exchange/v2/BatchCommunityPoolSpendProposal", nil) cdc.RegisterConcrete(&BinaryOptionsMarketParamUpdateProposal{}, "exchange/v2/BinaryOptionsMarketParamUpdateProposal", nil) cdc.RegisterConcrete(&BinaryOptionsMarketLaunchProposal{}, "exchange/v2/BinaryOptionsMarketLaunchProposal", nil) - cdc.RegisterConcrete(&AtomicMarketOrderFeeMultiplierScheduleProposal{}, "exchange/v2/AtomicMarketOrderFeeMultiplierScheduleProposal", nil) + cdc.RegisterConcrete( + &AtomicMarketOrderFeeMultiplierScheduleProposal{}, + "exchange/v2/AtomicMarketOrderFeeMultiplierScheduleProposal", + nil, + ) cdc.RegisterConcrete(&CreateSpotLimitOrderAuthz{}, "exchange/v2/CreateSpotLimitOrderAuthz", nil) cdc.RegisterConcrete(&CreateSpotMarketOrderAuthz{}, "exchange/v2/CreateSpotMarketOrderAuthz", nil) @@ -123,6 +132,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgExternalTransfer{}, &MsgIncreasePositionMargin{}, &MsgLiquidatePosition{}, + &MsgOffsetPosition{}, &MsgBatchUpdateOrders{}, &MsgPrivilegedExecuteContract{}, &MsgRewardsOptOut{}, @@ -159,7 +169,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &ExpiryFuturesMarketLaunchProposal{}, &DerivativeMarketParamUpdateProposal{}, &MarketForcedSettlementProposal{}, - &UpdateDenomDecimalsProposal{}, + &UpdateAuctionExchangeTransferDenomDecimalsProposal{}, &TradingRewardCampaignLaunchProposal{}, &TradingRewardCampaignUpdateProposal{}, &TradingRewardPendingPointsUpdateProposal{}, diff --git a/chain/exchange/types/v2/events.go b/chain/exchange/types/v2/events.go index ca3d747d..9793bfe1 100644 --- a/chain/exchange/types/v2/events.go +++ b/chain/exchange/types/v2/events.go @@ -1,6 +1,9 @@ package v2 -import "github.com/ethereum/go-ethereum/common" +import ( + "cosmossdk.io/math" + "github.com/ethereum/go-ethereum/common" +) func NewEventOrderCancelFail( marketID, @@ -35,3 +38,11 @@ func (e *EventOrderFail) AddOrderFail(orderHash common.Hash, cid string, flag ui func (e *EventOrderFail) IsEmpty() bool { return len(e.Flags) == 0 && len(e.Hashes) == 0 && len(e.Cids) == 0 } + +func (m *EventTriggerConditionalMarketOrderFailed) GetMarkPrice() math.LegacyDec { + return m.MarkPrice +} + +func (m *EventTriggerConditionalLimitOrderFailed) GetMarkPrice() math.LegacyDec { + return m.MarkPrice +} diff --git a/chain/exchange/types/v2/events.pb.go b/chain/exchange/types/v2/events.pb.go index eb0086bc..523c1f8f 100644 --- a/chain/exchange/types/v2/events.pb.go +++ b/chain/exchange/types/v2/events.pb.go @@ -2396,6 +2396,7 @@ type EventTriggerConditionalMarketOrderFailed struct { MarkPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=mark_price,json=markPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price"` OrderHash []byte `protobuf:"bytes,4,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` TriggerErr string `protobuf:"bytes,5,opt,name=trigger_err,json=triggerErr,proto3" json:"trigger_err,omitempty"` + Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *EventTriggerConditionalMarketOrderFailed) Reset() { @@ -2461,12 +2462,20 @@ func (m *EventTriggerConditionalMarketOrderFailed) GetTriggerErr() string { return "" } +func (m *EventTriggerConditionalMarketOrderFailed) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + type EventTriggerConditionalLimitOrderFailed struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` MarkPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=mark_price,json=markPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price"` OrderHash []byte `protobuf:"bytes,4,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` TriggerErr string `protobuf:"bytes,5,opt,name=trigger_err,json=triggerErr,proto3" json:"trigger_err,omitempty"` + Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *EventTriggerConditionalLimitOrderFailed) Reset() { @@ -2532,6 +2541,13 @@ func (m *EventTriggerConditionalLimitOrderFailed) GetTriggerErr() string { return "" } +func (m *EventTriggerConditionalLimitOrderFailed) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + type SpotOrderV2Changes struct { Cid string `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"` Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"` @@ -2689,157 +2705,158 @@ func init() { } var fileDescriptor_8ac8f3da550fa1c4 = []byte{ - // 2396 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x3b, 0x6c, 0x1c, 0xc7, - 0x19, 0xd6, 0x1e, 0x29, 0x8a, 0xf7, 0x1f, 0x45, 0x8a, 0x2b, 0x51, 0xa6, 0x24, 0x8b, 0xa4, 0xd6, + // 2401 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xbb, 0x6f, 0x1c, 0xc7, + 0x19, 0xd7, 0x1e, 0x29, 0x8a, 0xf7, 0x1d, 0x45, 0x8a, 0x2b, 0x51, 0xa6, 0x24, 0x8b, 0xa4, 0xd6, 0x7a, 0x59, 0xb6, 0xef, 0x2c, 0x1a, 0x81, 0x8b, 0xbc, 0xc0, 0xa7, 0x44, 0x83, 0x94, 0xe9, 0xa5, 0x64, 0x07, 0x09, 0x8c, 0xcd, 0xdc, 0xee, 0xf0, 0x6e, 0xcc, 0xbd, 0x9d, 0xe5, 0xce, 0xec, 0x49, - 0x97, 0x2e, 0x40, 0x0a, 0x77, 0x4e, 0x13, 0xc4, 0x4d, 0xba, 0x74, 0x69, 0x92, 0x2e, 0x40, 0x8a, - 0x20, 0x6e, 0xe2, 0xd2, 0x49, 0x65, 0x18, 0x88, 0x11, 0x48, 0x55, 0xaa, 0xa4, 0x4f, 0x13, 0xcc, - 0x63, 0x1f, 0xf7, 0xbe, 0xa3, 0x14, 0x24, 0x70, 0xb7, 0x3b, 0xfb, 0xbf, 0xe6, 0xfb, 0x1f, 0xf3, - 0xff, 0x73, 0x07, 0x16, 0x09, 0x3e, 0xc2, 0x2e, 0x27, 0x4d, 0x5c, 0xc1, 0x4f, 0xdc, 0x3a, 0x0a, - 0x6a, 0xb8, 0xd2, 0x5c, 0xad, 0xe0, 0x26, 0x0e, 0x38, 0x2b, 0x87, 0x11, 0xe5, 0xd4, 0x5c, 0x48, - 0x69, 0xca, 0x09, 0x4d, 0xb9, 0xb9, 0x7a, 0xf9, 0x42, 0x8d, 0xd6, 0xa8, 0xa4, 0xa8, 0x88, 0x27, - 0x45, 0x7c, 0x79, 0xc9, 0xa5, 0xac, 0x41, 0x59, 0xa5, 0x8a, 0x18, 0xae, 0x34, 0xef, 0x56, 0x31, - 0x47, 0x77, 0x2b, 0x2e, 0x25, 0x81, 0xfe, 0x7e, 0x23, 0x53, 0x48, 0x23, 0xe4, 0xfa, 0x19, 0x91, - 0x7a, 0xd5, 0x64, 0xd7, 0xfb, 0xd8, 0x95, 0xe8, 0x57, 0x54, 0x7d, 0xac, 0x6f, 0xa0, 0xe8, 0x08, - 0x73, 0x4d, 0x73, 0xad, 0x37, 0x0d, 0x8d, 0x3c, 0x1c, 0x29, 0x12, 0xeb, 0xaf, 0x06, 0xbc, 0xb4, - 0x25, 0x76, 0xbc, 0x8e, 0xb8, 0x5b, 0x3f, 0x08, 0x29, 0xdf, 0x7a, 0x82, 0xdd, 0x98, 0x13, 0x1a, - 0x98, 0x57, 0xa0, 0xa8, 0xc4, 0x39, 0xc4, 0x5b, 0x34, 0x56, 0x8c, 0xdb, 0x45, 0x7b, 0x5a, 0x2d, - 0xec, 0x78, 0xe6, 0x02, 0x4c, 0x11, 0xe6, 0x54, 0xe3, 0xd6, 0x62, 0x61, 0xc5, 0xb8, 0x3d, 0x6d, - 0x9f, 0x26, 0x6c, 0x3d, 0x6e, 0x99, 0xef, 0xc0, 0x59, 0x9c, 0x08, 0x78, 0xd8, 0x0a, 0xf1, 0xe2, - 0xc4, 0x8a, 0x71, 0x7b, 0x76, 0xf5, 0x7a, 0xb9, 0x27, 0x90, 0xe5, 0xad, 0x3c, 0xad, 0xdd, 0xce, - 0x6a, 0xbe, 0x0d, 0x53, 0x3c, 0x42, 0x1e, 0x66, 0x8b, 0x93, 0x2b, 0x13, 0xb7, 0x4b, 0xab, 0xcb, - 0x7d, 0x84, 0x3c, 0x14, 0x44, 0xbb, 0xb4, 0x66, 0x6b, 0x72, 0xeb, 0x6f, 0x05, 0xb8, 0x9a, 0x6d, - 0x6a, 0x13, 0x47, 0xa4, 0x89, 0x04, 0xd7, 0xf3, 0x6d, 0xed, 0x06, 0xcc, 0x12, 0xe6, 0xf8, 0xe4, - 0x38, 0x26, 0x1e, 0x12, 0x52, 0xe4, 0xde, 0xa6, 0xed, 0xb3, 0x84, 0xed, 0x66, 0x8b, 0xa6, 0x0d, - 0xa6, 0x1b, 0x37, 0x62, 0x5f, 0x6a, 0x74, 0x0e, 0xe3, 0xc0, 0x23, 0x41, 0x6d, 0x71, 0x52, 0xe8, - 0x58, 0x7f, 0xe5, 0xf3, 0xaf, 0x97, 0x8d, 0xaf, 0xbe, 0x5e, 0xbe, 0xa2, 0x22, 0x85, 0x79, 0x47, - 0x65, 0x42, 0x2b, 0x0d, 0xc4, 0xeb, 0xe5, 0x5d, 0x5c, 0x43, 0x6e, 0x6b, 0x13, 0xbb, 0xf6, 0x7c, - 0xc6, 0xbe, 0xad, 0xb8, 0xbb, 0x51, 0x3d, 0x7d, 0x72, 0x54, 0xd7, 0x52, 0x54, 0xa7, 0x24, 0xaa, - 0xaf, 0xf6, 0x11, 0x92, 0xc1, 0xd6, 0x85, 0xef, 0x67, 0x09, 0xbe, 0xbb, 0x94, 0x71, 0x61, 0x23, - 0xdb, 0x8e, 0x68, 0x23, 0x0f, 0xc2, 0x40, 0x7c, 0x5f, 0x81, 0xb3, 0x2c, 0xae, 0x22, 0xd7, 0xa5, - 0x71, 0x20, 0x09, 0x04, 0xcc, 0x33, 0xf6, 0x4c, 0xb6, 0xb8, 0xe3, 0x99, 0x4f, 0xe0, 0x96, 0x4f, - 0x19, 0x97, 0x00, 0x32, 0xe7, 0x30, 0xa2, 0x0d, 0x07, 0x35, 0x11, 0xf1, 0x51, 0xd5, 0xc7, 0x8e, - 0x17, 0x47, 0x24, 0xa8, 0x39, 0x21, 0x6a, 0xd1, 0x98, 0x4b, 0x37, 0x28, 0x6c, 0x4f, 0x0d, 0xc3, - 0xd6, 0xf2, 0xf3, 0x16, 0xaf, 0x25, 0x02, 0x37, 0xa5, 0xbc, 0x7d, 0x29, 0xce, 0xc4, 0x70, 0xb5, - 0x53, 0xb3, 0xcc, 0x18, 0xc7, 0x45, 0x81, 0x8b, 0x7d, 0x96, 0xf3, 0xe5, 0x50, 0x7d, 0x97, 0xda, - 0xf4, 0xbd, 0x2b, 0xc4, 0x6c, 0x28, 0x29, 0xd6, 0xcf, 0x0c, 0x78, 0xb9, 0x57, 0x90, 0xee, 0x53, - 0x46, 0x86, 0x63, 0x78, 0x0f, 0x8a, 0xa1, 0x26, 0x64, 0x8b, 0x85, 0x81, 0x8e, 0x3c, 0x48, 0x61, - 0x4d, 0x44, 0xdb, 0x19, 0xaf, 0xf5, 0x07, 0x03, 0xae, 0x48, 0x33, 0x32, 0x0b, 0xf6, 0xa4, 0x92, - 0x7d, 0x14, 0x33, 0xec, 0x0d, 0xb6, 0xe2, 0x1a, 0xcc, 0x30, 0xcc, 0xb9, 0x8f, 0x9d, 0x30, 0x22, - 0x2e, 0x96, 0x8e, 0x2c, 0xda, 0x25, 0xb5, 0xb6, 0x2f, 0x96, 0xcc, 0x32, 0x9c, 0xe7, 0x94, 0x23, - 0xdf, 0x69, 0x10, 0xc6, 0x84, 0xd3, 0x24, 0xac, 0xca, 0x67, 0xf6, 0xbc, 0xfc, 0xb4, 0xa7, 0xbe, - 0x48, 0x98, 0xcc, 0xd7, 0xc1, 0x6c, 0xa3, 0x74, 0x22, 0xc4, 0xb1, 0x82, 0xdc, 0x3e, 0xd7, 0xc8, - 0x51, 0xda, 0x88, 0x63, 0x6b, 0x1f, 0x2e, 0x49, 0xe3, 0x0f, 0xa4, 0x46, 0x4f, 0x59, 0xbe, 0x8e, - 0x7c, 0x81, 0xf1, 0x60, 0xd3, 0x2f, 0xc2, 0x14, 0x6a, 0x08, 0x50, 0xb4, 0xd1, 0xfa, 0xcd, 0x3a, - 0xd0, 0x5e, 0x79, 0x40, 0x5f, 0xa0, 0xd0, 0x4f, 0x12, 0x90, 0xb5, 0x2c, 0xdc, 0xa2, 0x81, 0xb7, - 0x8e, 0x82, 0xa3, 0x28, 0x0e, 0xb9, 0xdb, 0x7a, 0x6e, 0x90, 0xdf, 0x84, 0x0b, 0x09, 0x68, 0x5a, - 0x4e, 0x1e, 0xe5, 0x04, 0x50, 0xa5, 0x5c, 0x82, 0x67, 0x7d, 0x6c, 0xc0, 0xa2, 0xb4, 0x68, 0xcd, - 0xf7, 0x93, 0xb0, 0x60, 0xf7, 0x11, 0x89, 0xdc, 0x98, 0x3f, 0xb7, 0x39, 0xbd, 0x7d, 0x38, 0xd1, - 0xc7, 0x87, 0x1f, 0xc1, 0x92, 0xca, 0x03, 0x12, 0xa0, 0xa8, 0xf5, 0x6e, 0x28, 0x4d, 0x51, 0xb6, - 0x3e, 0x0a, 0x3d, 0xc4, 0xb1, 0x79, 0x1f, 0xa6, 0x94, 0x7a, 0x69, 0x4c, 0x69, 0xf5, 0x4e, 0x9f, - 0x48, 0xef, 0x21, 0x61, 0x7d, 0x52, 0xa4, 0xa9, 0xad, 0xf9, 0xad, 0x3f, 0x1a, 0x60, 0x2a, 0xf7, - 0xe2, 0xc7, 0xe2, 0xb0, 0x93, 0x19, 0xc9, 0x06, 0x6f, 0x78, 0x13, 0xa0, 0x1a, 0xb7, 0x54, 0x0d, - 0x48, 0x72, 0xed, 0x46, 0xbf, 0x5c, 0x0b, 0x29, 0xdf, 0x25, 0x0d, 0xa2, 0x04, 0xdb, 0xc5, 0x6a, - 0xdc, 0xd2, 0x2a, 0xb6, 0xa1, 0xc4, 0xb0, 0xef, 0x27, 0x62, 0x26, 0xc6, 0x11, 0x03, 0x82, 0x53, - 0xc9, 0xb1, 0xfe, 0x92, 0x38, 0xee, 0x01, 0x7e, 0x9c, 0xa5, 0xec, 0x28, 0xfb, 0x78, 0xa7, 0xc7, - 0x3e, 0x5e, 0x1b, 0x5a, 0xfc, 0x7b, 0xef, 0x66, 0xb7, 0xd7, 0x6e, 0xc6, 0x12, 0x96, 0xdf, 0x53, - 0x13, 0x2e, 0xc8, 0x2d, 0xa9, 0xd2, 0x98, 0xfa, 0x65, 0xf0, 0x76, 0xd6, 0xe0, 0xb4, 0xd4, 0x2e, - 0x03, 0x70, 0x54, 0x28, 0x75, 0x38, 0x28, 0x4e, 0xeb, 0x07, 0xb0, 0xa0, 0xaa, 0x47, 0x48, 0x79, - 0x5b, 0xc0, 0x7d, 0xbf, 0x23, 0xe0, 0xae, 0x0d, 0x10, 0xde, 0x33, 0xce, 0x3e, 0x2d, 0xc0, 0x65, - 0x29, 0x7a, 0x1f, 0x47, 0x21, 0xe6, 0x31, 0xf2, 0xdb, 0xe4, 0x6f, 0x75, 0xc8, 0xbf, 0x35, 0x14, - 0xb9, 0x5e, 0x5a, 0x4c, 0x0f, 0x16, 0xc2, 0x44, 0x7e, 0x92, 0xf8, 0x24, 0x38, 0xa4, 0x1a, 0x92, - 0x7e, 0x69, 0xd2, 0x61, 0xd3, 0x4e, 0x70, 0x48, 0xa5, 0x60, 0xc3, 0x3e, 0x1f, 0x76, 0x7f, 0x32, - 0xf7, 0xe0, 0x4c, 0xd2, 0xc5, 0x4c, 0x48, 0xb9, 0x6f, 0x8c, 0x26, 0x57, 0x37, 0x2f, 0x5a, 0x74, - 0x22, 0xc3, 0xfa, 0xca, 0xd0, 0xf9, 0xbe, 0xf5, 0x24, 0x24, 0x51, 0x6b, 0x3b, 0xe6, 0x71, 0x84, - 0xd9, 0x7f, 0x03, 0x9e, 0x63, 0xb8, 0x8c, 0xa5, 0x0e, 0xe7, 0x50, 0x29, 0x69, 0xc3, 0x48, 0xed, - 0xa5, 0xdc, 0xb7, 0x85, 0xea, 0x32, 0x2e, 0x87, 0xd3, 0x4b, 0xb8, 0xf7, 0x67, 0xeb, 0xcf, 0x05, - 0xb8, 0xd6, 0xcb, 0xef, 0x1a, 0x0b, 0xbd, 0xbf, 0x81, 0x71, 0x9d, 0x83, 0xbb, 0x70, 0x52, 0xb8, - 0x4f, 0xa5, 0x70, 0x9b, 0x77, 0x60, 0x9e, 0x30, 0xa7, 0x4e, 0xe3, 0xc8, 0x6f, 0x39, 0x79, 0x3f, - 0x4e, 0xdb, 0x73, 0x84, 0xdd, 0x97, 0xeb, 0x49, 0x9b, 0xb9, 0x0d, 0x33, 0x9a, 0x22, 0x77, 0xea, - 0x8e, 0xd6, 0xb4, 0x96, 0x34, 0xa3, 0xa8, 0xe8, 0xe6, 0x3a, 0x80, 0xd8, 0x8e, 0x3e, 0x20, 0x4e, - 0x8f, 0x2e, 0x45, 0xc2, 0x22, 0xcf, 0x10, 0xeb, 0x97, 0x06, 0x5c, 0x54, 0xc9, 0x99, 0xb6, 0x2f, - 0x9b, 0x58, 0xb6, 0x2d, 0xe6, 0x32, 0x94, 0x58, 0xe4, 0x3a, 0xc8, 0xf3, 0x22, 0xcc, 0x98, 0x06, - 0x10, 0x58, 0xe4, 0xae, 0xa9, 0x95, 0xd1, 0x1a, 0xcc, 0xb7, 0xd3, 0xb3, 0x5a, 0x45, 0xc2, 0xa5, - 0xb2, 0xb2, 0xac, 0x2c, 0xc6, 0xb7, 0xb2, 0x9e, 0xcc, 0xca, 0x1b, 0x94, 0x04, 0x49, 0x58, 0xe9, - 0xc3, 0xfc, 0xd3, 0x64, 0x64, 0xca, 0x2c, 0xfb, 0x80, 0xf0, 0xba, 0x17, 0xa1, 0xc7, 0xdd, 0x9a, - 0x8d, 0x1e, 0x9a, 0x97, 0xa1, 0xe4, 0x31, 0x9e, 0xda, 0xaf, 0x0e, 0x50, 0xf0, 0x18, 0x4f, 0xec, - 0x3f, 0xb1, 0x69, 0xbf, 0x4b, 0x72, 0x2b, 0x33, 0x4d, 0xf7, 0x2d, 0x0f, 0x23, 0x14, 0xb0, 0x43, - 0x1c, 0x89, 0x78, 0x10, 0xe0, 0x75, 0x5b, 0x59, 0xb4, 0xe7, 0x58, 0xe4, 0x1e, 0xe4, 0x0d, 0xbd, - 0x03, 0xf3, 0xc2, 0xd0, 0x6e, 0x2c, 0x8b, 0xf6, 0x9c, 0xc7, 0xf8, 0xc1, 0x0b, 0x81, 0xb3, 0x9e, - 0x1f, 0x40, 0xb5, 0x8b, 0x75, 0x9e, 0xec, 0xc1, 0x9c, 0xa7, 0x16, 0x9c, 0x58, 0xae, 0x08, 0x67, - 0x8b, 0x93, 0xe6, 0x7a, 0xdf, 0x82, 0x90, 0x63, 0xb7, 0x67, 0xbd, 0xfc, 0x2b, 0xb3, 0x3e, 0x33, - 0xe0, 0x4a, 0x67, 0xc9, 0xc8, 0xb5, 0xe4, 0xe6, 0x23, 0x98, 0xd1, 0x69, 0xa9, 0x0e, 0x16, 0x55, - 0x7c, 0x5e, 0x1f, 0xb1, 0xf8, 0x64, 0xe7, 0x8b, 0x61, 0x97, 0x1a, 0xd9, 0x92, 0xb9, 0x0b, 0x73, - 0x6a, 0x72, 0x70, 0x8e, 0x63, 0x14, 0x70, 0xc2, 0xd5, 0x5c, 0x39, 0xe2, 0x04, 0x31, 0xab, 0x78, - 0xdf, 0xd3, 0xac, 0xd6, 0xaf, 0x92, 0x93, 0x45, 0x19, 0xdd, 0xd1, 0x02, 0x0c, 0x2e, 0x2d, 0xd7, - 0x41, 0xce, 0xaa, 0x0d, 0xa2, 0x99, 0xf5, 0x7c, 0xdb, 0xbe, 0x68, 0xda, 0x50, 0xf2, 0xc5, 0xab, - 0x46, 0x41, 0xb9, 0x73, 0x9c, 0xb3, 0x5d, 0x83, 0x00, 0x7e, 0xba, 0x62, 0xd6, 0xe1, 0x7c, 0x1e, - 0x5a, 0x3d, 0x4a, 0xc9, 0x02, 0x53, 0x5a, 0x5d, 0x1d, 0x07, 0x61, 0x65, 0xa4, 0x56, 0x31, 0xdf, - 0xe8, 0xfc, 0x60, 0x55, 0x75, 0x7b, 0xb4, 0x8d, 0xf1, 0x26, 0x61, 0x32, 0x3a, 0x0f, 0xdc, 0x3a, - 0xf6, 0x62, 0x1f, 0x9b, 0xdb, 0x30, 0xcd, 0xf4, 0xf3, 0x90, 0x4e, 0xb2, 0x07, 0xb7, 0x9d, 0xf2, - 0x5a, 0x5f, 0x1a, 0xb0, 0x22, 0x95, 0x88, 0xc9, 0x58, 0x14, 0x3d, 0xfc, 0x18, 0x45, 0xde, 0x06, - 0x6a, 0x84, 0x88, 0xd4, 0x02, 0x1d, 0xbc, 0x8f, 0xe0, 0xac, 0xab, 0x57, 0xd4, 0x81, 0xa3, 0x34, - 0xbe, 0x39, 0xe0, 0x12, 0xa3, 0x4b, 0x94, 0x38, 0x53, 0xec, 0x19, 0x37, 0xf7, 0x66, 0x7e, 0x08, - 0x0b, 0xa9, 0xd8, 0x48, 0x12, 0x3b, 0x21, 0xa5, 0xfe, 0xb0, 0x21, 0x30, 0x91, 0xa8, 0xe4, 0xef, - 0x53, 0xea, 0xdb, 0xe7, 0xdd, 0xae, 0x35, 0x66, 0x85, 0xba, 0x80, 0xb4, 0x99, 0xb3, 0x49, 0x18, - 0x8f, 0x48, 0x55, 0x5d, 0x9d, 0x3c, 0x80, 0xb9, 0xa4, 0x1a, 0x28, 0xfd, 0x49, 0x52, 0xf6, 0xeb, - 0xc0, 0xd6, 0x14, 0xb5, 0x12, 0xc5, 0xec, 0x59, 0xd4, 0xf6, 0x6e, 0xfd, 0xd6, 0x00, 0x2b, 0x69, - 0x68, 0x37, 0x68, 0xe0, 0xc9, 0x51, 0x04, 0x8d, 0x17, 0xd8, 0xdf, 0x69, 0xef, 0x05, 0x6f, 0x0e, - 0x0d, 0x28, 0xd5, 0x83, 0x2a, 0x26, 0xd3, 0x84, 0xc9, 0x3a, 0x62, 0x75, 0x19, 0xe9, 0x33, 0xb6, - 0x7c, 0x16, 0xea, 0x48, 0xd2, 0x2f, 0xc8, 0x30, 0x9d, 0xb6, 0xa7, 0x89, 0x3e, 0xe9, 0xad, 0x5f, - 0x14, 0xe0, 0x46, 0x2e, 0x07, 0x4f, 0x6a, 0xf5, 0xff, 0x2e, 0x1d, 0x3b, 0x2b, 0xdd, 0xe4, 0x0b, - 0xa9, 0x74, 0xd6, 0xbf, 0x0d, 0xb8, 0xa9, 0x70, 0xe9, 0x8b, 0xc8, 0xc3, 0x88, 0xd4, 0x6a, 0xbd, - 0x80, 0x99, 0xc9, 0x01, 0x73, 0x13, 0x66, 0x35, 0x06, 0x9a, 0x5c, 0x23, 0xd3, 0xb1, 0x2a, 0xc6, - 0x5e, 0xae, 0x1e, 0xb1, 0xa7, 0x0b, 0x4b, 0xce, 0x91, 0x66, 0xfa, 0x4d, 0x6a, 0xbe, 0x2f, 0xdc, - 0x7a, 0x07, 0xe6, 0x43, 0x1f, 0xb9, 0xed, 0xe4, 0x93, 0x92, 0x7c, 0x4e, 0x7d, 0xc8, 0x68, 0xcb, - 0x70, 0xbe, 0x53, 0xba, 0x4b, 0x3c, 0xd5, 0xce, 0xd8, 0xf3, 0xed, 0xc2, 0x37, 0x88, 0x67, 0xf9, - 0x30, 0x2b, 0x37, 0x2f, 0x17, 0xb6, 0x11, 0xf1, 0xcd, 0x45, 0x38, 0xa3, 0x83, 0x5d, 0x6f, 0x31, - 0x79, 0x35, 0x2f, 0xc2, 0x94, 0x50, 0x8d, 0x55, 0xda, 0xce, 0xd8, 0xfa, 0xcd, 0xbc, 0x00, 0xa7, - 0x0f, 0x7d, 0x54, 0x53, 0x13, 0xd5, 0x59, 0x5b, 0xbd, 0x88, 0x00, 0x75, 0x89, 0xa7, 0xae, 0x41, - 0x8b, 0xb6, 0x7c, 0xb6, 0x3e, 0x31, 0xe0, 0x35, 0x35, 0xc0, 0x73, 0xda, 0x20, 0x6e, 0xce, 0x33, - 0xdb, 0x18, 0xef, 0xc5, 0x3e, 0x27, 0xa1, 0x4f, 0x70, 0xc4, 0x54, 0x35, 0xf2, 0xcc, 0x1f, 0xc3, - 0xc5, 0xe4, 0x6a, 0x00, 0x63, 0xa7, 0x91, 0x11, 0xe8, 0xec, 0xed, 0x57, 0x09, 0x75, 0x73, 0x99, - 0x97, 0x69, 0x5f, 0x68, 0x74, 0x2f, 0x32, 0xeb, 0xf7, 0x86, 0x1e, 0xe3, 0xa4, 0x15, 0x55, 0x4a, - 0x8f, 0x74, 0x25, 0xdc, 0x81, 0x19, 0x16, 0xd2, 0xce, 0x33, 0xbc, 0x5f, 0x92, 0x76, 0x70, 0xdb, - 0x25, 0xc1, 0xab, 0x8f, 0x70, 0xf3, 0x11, 0x98, 0x5e, 0x1a, 0x50, 0xa9, 0xc0, 0xc2, 0x58, 0x02, - 0xe7, 0x33, 0x09, 0x49, 0x67, 0xe0, 0xc2, 0x5c, 0xa7, 0xd1, 0xe7, 0x60, 0x82, 0xe1, 0x63, 0xe9, - 0xb7, 0x49, 0x5b, 0x3c, 0x9a, 0xdf, 0x83, 0x22, 0x4d, 0x88, 0x74, 0xa1, 0x59, 0x19, 0xa6, 0xd2, - 0xce, 0x58, 0xac, 0x5f, 0x1b, 0x50, 0x4c, 0x3f, 0x0c, 0x4e, 0x80, 0x6f, 0xab, 0x51, 0xdd, 0xc7, - 0x4d, 0x9c, 0x56, 0xf6, 0x97, 0xfb, 0xe8, 0xda, 0x15, 0x44, 0x72, 0x36, 0x97, 0x4f, 0xcc, 0xfc, - 0xae, 0x9e, 0xcd, 0x35, 0xf7, 0xc4, 0x08, 0xdc, 0x72, 0x18, 0x57, 0xec, 0xd6, 0x63, 0x7d, 0x80, - 0xde, 0x8b, 0x50, 0xc0, 0xd7, 0x62, 0x5e, 0xa7, 0x11, 0xf9, 0x89, 0xbc, 0xd5, 0x65, 0x22, 0xa0, - 0x6b, 0x62, 0x59, 0x37, 0x47, 0x45, 0x3b, 0x79, 0x35, 0xd7, 0x60, 0x4a, 0x3e, 0x0e, 0x3b, 0x87, - 0xba, 0xa5, 0xda, 0x9a, 0xd1, 0xfa, 0x69, 0x12, 0x3f, 0x8a, 0x46, 0xf0, 0xaa, 0xcb, 0xe4, 0x54, - 0x2b, 0x6e, 0xd7, 0x8a, 0xf3, 0xf6, 0x14, 0xda, 0xed, 0xf9, 0x56, 0x5b, 0x3b, 0x5a, 0x5c, 0xbf, - 0xaa, 0x7b, 0xad, 0x85, 0xee, 0x5e, 0x6b, 0x27, 0xe0, 0x69, 0x33, 0x7a, 0x0f, 0xe6, 0xa5, 0x09, - 0x3b, 0x41, 0x13, 0xf9, 0xc4, 0x93, 0x96, 0x9c, 0x44, 0xbf, 0xf5, 0x9b, 0xb6, 0x64, 0x50, 0xa5, - 0x5c, 0xd6, 0x84, 0xf1, 0x6f, 0xc6, 0x8b, 0x1d, 0xe3, 0xc3, 0x55, 0x80, 0x8e, 0x5a, 0x57, 0xd4, - 0x61, 0x26, 0xcb, 0xd6, 0x39, 0x98, 0x10, 0x65, 0x4a, 0xdd, 0x98, 0x8a, 0x47, 0x73, 0x05, 0x4a, - 0x1e, 0x66, 0x6e, 0x44, 0xe4, 0xc5, 0x98, 0x2e, 0x60, 0xf9, 0x25, 0x51, 0xb8, 0x57, 0x3a, 0x2e, - 0x81, 0xd5, 0xd5, 0xcc, 0xfb, 0xab, 0x7b, 0xa4, 0x16, 0x8d, 0x70, 0xa7, 0xff, 0x23, 0x98, 0x4f, - 0x2f, 0x97, 0x1c, 0xe5, 0xee, 0x24, 0x14, 0x2a, 0xa3, 0x9d, 0xc6, 0xef, 0xaf, 0x6e, 0x28, 0x36, - 0x7b, 0x2e, 0xb9, 0x67, 0xd2, 0x0b, 0xe6, 0x87, 0x60, 0x66, 0xb7, 0x4d, 0xa9, 0xf4, 0x89, 0x93, - 0x49, 0x3f, 0x97, 0x5e, 0x3c, 0xe9, 0x15, 0xeb, 0x4f, 0x05, 0x58, 0xec, 0x47, 0x9e, 0xc0, 0x69, - 0x64, 0x70, 0x26, 0xed, 0x42, 0x21, 0xd7, 0x2e, 0xdc, 0x05, 0x23, 0x1c, 0xe7, 0x77, 0x08, 0x23, - 0x14, 0x2c, 0xc7, 0xe3, 0xfc, 0x94, 0x60, 0x1c, 0x0b, 0x96, 0x46, 0x6e, 0x9c, 0x1e, 0xce, 0xd2, - 0x10, 0x2c, 0x87, 0x8b, 0x53, 0x63, 0xb0, 0x1c, 0x9a, 0x6f, 0x41, 0x81, 0x87, 0x8b, 0x67, 0x46, - 0x9f, 0xda, 0x0b, 0x3c, 0xb4, 0xfe, 0x61, 0xe8, 0xb1, 0x24, 0xbb, 0x55, 0x1d, 0x39, 0x76, 0x1e, - 0xf5, 0x8f, 0x9d, 0x57, 0x07, 0x5c, 0xbc, 0x0d, 0x8b, 0x9a, 0x0f, 0x06, 0x44, 0xcd, 0x18, 0x72, - 0xbb, 0xe3, 0xe5, 0x5f, 0x06, 0xdc, 0xd6, 0x4d, 0xb2, 0xec, 0x01, 0x72, 0xdd, 0x4e, 0xfe, 0x18, - 0x46, 0xc4, 0x1f, 0xf6, 0xfb, 0xc9, 0x48, 0xf9, 0xde, 0x7e, 0x9b, 0x32, 0x46, 0x90, 0x65, 0xb7, - 0x29, 0x1d, 0x35, 0x43, 0x35, 0x3c, 0xb9, 0x9a, 0xb1, 0x0c, 0x25, 0xdd, 0xcf, 0x38, 0x38, 0x8a, - 0x74, 0x85, 0x00, 0xbd, 0xb4, 0x15, 0x45, 0xd6, 0x3f, 0x0d, 0xb8, 0xd5, 0x67, 0xcb, 0x59, 0xa3, - 0xf9, 0x8d, 0xda, 0xf1, 0xc7, 0x05, 0x30, 0xbb, 0xa3, 0xe1, 0xff, 0xad, 0x1c, 0x1c, 0x8e, 0x55, - 0x0e, 0x92, 0xdc, 0x9e, 0x1a, 0x2f, 0xb7, 0x8f, 0xf4, 0x80, 0xd6, 0xfd, 0x1b, 0x65, 0x3e, 0xc5, - 0xb7, 0x60, 0x3a, 0xf9, 0x55, 0x51, 0x8f, 0xba, 0xc3, 0x7f, 0x59, 0x4e, 0x7f, 0x90, 0x4c, 0x59, - 0xd7, 0x8f, 0x3e, 0x7f, 0xba, 0x64, 0x7c, 0xf1, 0x74, 0xc9, 0xf8, 0xfb, 0xd3, 0x25, 0xe3, 0xe7, - 0xcf, 0x96, 0x4e, 0x7d, 0xf1, 0x6c, 0xe9, 0xd4, 0x97, 0xcf, 0x96, 0x4e, 0xfd, 0xf0, 0xbd, 0x1a, - 0xe1, 0xf5, 0xb8, 0x5a, 0x76, 0x69, 0xa3, 0xb2, 0x93, 0x08, 0xde, 0x45, 0x55, 0x56, 0x49, 0xd5, - 0xbc, 0xe1, 0xd2, 0x08, 0xe7, 0x5f, 0xeb, 0x88, 0x04, 0x95, 0x06, 0x15, 0x53, 0x3b, 0xcb, 0xfe, - 0x03, 0xc1, 0x5b, 0x21, 0x66, 0x95, 0xe6, 0x6a, 0x75, 0x4a, 0xfe, 0x09, 0xe2, 0xad, 0xff, 0x04, - 0x00, 0x00, 0xff, 0xff, 0x09, 0x31, 0x03, 0x4c, 0x0b, 0x22, 0x00, 0x00, + 0x97, 0xce, 0x41, 0x0a, 0x77, 0x4e, 0x13, 0xc4, 0x4d, 0xba, 0x74, 0x69, 0x92, 0x2e, 0x40, 0x8a, + 0x20, 0x6e, 0xe2, 0xd2, 0x49, 0x65, 0x18, 0x88, 0x11, 0x48, 0x55, 0xfe, 0x86, 0x34, 0xc1, 0x3c, + 0xf6, 0x71, 0xef, 0x3b, 0x4a, 0x41, 0x02, 0x77, 0xbb, 0xb3, 0xdf, 0x6b, 0x7e, 0xdf, 0x63, 0xbe, + 0x6f, 0xee, 0xc0, 0x22, 0xc1, 0x47, 0xd8, 0xe5, 0xa4, 0x89, 0x2b, 0xf8, 0x89, 0x5b, 0x47, 0x41, + 0x0d, 0x57, 0x9a, 0xab, 0x15, 0xdc, 0xc4, 0x01, 0x67, 0xe5, 0x30, 0xa2, 0x9c, 0x9a, 0x0b, 0x29, + 0x4d, 0x39, 0xa1, 0x29, 0x37, 0x57, 0x2f, 0x5f, 0xa8, 0xd1, 0x1a, 0x95, 0x14, 0x15, 0xf1, 0xa4, + 0x88, 0x2f, 0x2f, 0xb9, 0x94, 0x35, 0x28, 0xab, 0x54, 0x11, 0xc3, 0x95, 0xe6, 0xdd, 0x2a, 0xe6, + 0xe8, 0x6e, 0xc5, 0xa5, 0x24, 0xd0, 0xdf, 0x6f, 0x64, 0x0a, 0x69, 0x84, 0x5c, 0x3f, 0x23, 0x52, + 0xaf, 0x9a, 0xec, 0x7a, 0x1f, 0xbb, 0x12, 0xfd, 0x8a, 0xaa, 0x8f, 0xf5, 0x0d, 0x14, 0x1d, 0x61, + 0xae, 0x69, 0xae, 0xf5, 0xa6, 0xa1, 0x91, 0x87, 0x23, 0x45, 0x62, 0xfd, 0xdd, 0x80, 0x97, 0xb6, + 0xc4, 0x8e, 0xd7, 0x11, 0x77, 0xeb, 0x07, 0x21, 0xe5, 0x5b, 0x4f, 0xb0, 0x1b, 0x73, 0x42, 0x03, + 0xf3, 0x0a, 0x14, 0x95, 0x38, 0x87, 0x78, 0x8b, 0xc6, 0x8a, 0x71, 0xbb, 0x68, 0x4f, 0xab, 0x85, + 0x1d, 0xcf, 0x5c, 0x80, 0x29, 0xc2, 0x9c, 0x6a, 0xdc, 0x5a, 0x2c, 0xac, 0x18, 0xb7, 0xa7, 0xed, + 0xd3, 0x84, 0xad, 0xc7, 0x2d, 0xf3, 0x1d, 0x38, 0x8b, 0x13, 0x01, 0x0f, 0x5b, 0x21, 0x5e, 0x9c, + 0x58, 0x31, 0x6e, 0xcf, 0xae, 0x5e, 0x2f, 0xf7, 0x04, 0xb2, 0xbc, 0x95, 0xa7, 0xb5, 0xdb, 0x59, + 0xcd, 0xb7, 0x61, 0x8a, 0x47, 0xc8, 0xc3, 0x6c, 0x71, 0x72, 0x65, 0xe2, 0x76, 0x69, 0x75, 0xb9, + 0x8f, 0x90, 0x87, 0x82, 0x68, 0x97, 0xd6, 0x6c, 0x4d, 0x6e, 0xfd, 0xa3, 0x00, 0x57, 0xb3, 0x4d, + 0x6d, 0xe2, 0x88, 0x34, 0x91, 0xe0, 0x7a, 0xbe, 0xad, 0xdd, 0x80, 0x59, 0xc2, 0x1c, 0x9f, 0x1c, + 0xc7, 0xc4, 0x43, 0x42, 0x8a, 0xdc, 0xdb, 0xb4, 0x7d, 0x96, 0xb0, 0xdd, 0x6c, 0xd1, 0xb4, 0xc1, + 0x74, 0xe3, 0x46, 0xec, 0x4b, 0x8d, 0xce, 0x61, 0x1c, 0x78, 0x24, 0xa8, 0x2d, 0x4e, 0x0a, 0x1d, + 0xeb, 0xaf, 0x7c, 0xf1, 0xcd, 0xb2, 0xf1, 0xf5, 0x37, 0xcb, 0x57, 0x54, 0xa4, 0x30, 0xef, 0xa8, + 0x4c, 0x68, 0xa5, 0x81, 0x78, 0xbd, 0xbc, 0x8b, 0x6b, 0xc8, 0x6d, 0x6d, 0x62, 0xd7, 0x9e, 0xcf, + 0xd8, 0xb7, 0x15, 0x77, 0x37, 0xaa, 0xa7, 0x4f, 0x8e, 0xea, 0x5a, 0x8a, 0xea, 0x94, 0x44, 0xf5, + 0xd5, 0x3e, 0x42, 0x32, 0xd8, 0xba, 0xf0, 0xfd, 0x3c, 0xc1, 0x77, 0x97, 0x32, 0x2e, 0x6c, 0x64, + 0xdb, 0x11, 0x6d, 0xe4, 0x41, 0x18, 0x88, 0xef, 0x2b, 0x70, 0x96, 0xc5, 0x55, 0xe4, 0xba, 0x34, + 0x0e, 0x24, 0x81, 0x80, 0x79, 0xc6, 0x9e, 0xc9, 0x16, 0x77, 0x3c, 0xf3, 0x09, 0xdc, 0xf2, 0x29, + 0xe3, 0x12, 0x40, 0xe6, 0x1c, 0x46, 0xb4, 0xe1, 0xa0, 0x26, 0x22, 0x3e, 0xaa, 0xfa, 0xd8, 0xf1, + 0xe2, 0x88, 0x04, 0x35, 0x27, 0x44, 0x2d, 0x1a, 0x73, 0xe9, 0x06, 0x85, 0xed, 0xa9, 0x61, 0xd8, + 0x5a, 0x7e, 0xde, 0xe2, 0xb5, 0x44, 0xe0, 0xa6, 0x94, 0xb7, 0x2f, 0xc5, 0x99, 0x18, 0xae, 0x76, + 0x6a, 0x96, 0x19, 0xe3, 0xb8, 0x28, 0x70, 0xb1, 0xcf, 0x72, 0xbe, 0x1c, 0xaa, 0xef, 0x52, 0x9b, + 0xbe, 0x77, 0x85, 0x98, 0x0d, 0x25, 0xc5, 0xfa, 0x85, 0x01, 0x2f, 0xf7, 0x0a, 0xd2, 0x7d, 0xca, + 0xc8, 0x70, 0x0c, 0xef, 0x41, 0x31, 0xd4, 0x84, 0x6c, 0xb1, 0x30, 0xd0, 0x91, 0x07, 0x29, 0xac, + 0x89, 0x68, 0x3b, 0xe3, 0xb5, 0xfe, 0x64, 0xc0, 0x15, 0x69, 0x46, 0x66, 0xc1, 0x9e, 0x54, 0xb2, + 0x8f, 0x62, 0x86, 0xbd, 0xc1, 0x56, 0x5c, 0x83, 0x19, 0x86, 0x39, 0xf7, 0xb1, 0x13, 0x46, 0xc4, + 0xc5, 0xd2, 0x91, 0x45, 0xbb, 0xa4, 0xd6, 0xf6, 0xc5, 0x92, 0x59, 0x86, 0xf3, 0x9c, 0x72, 0xe4, + 0x3b, 0x0d, 0xc2, 0x98, 0x70, 0x9a, 0x84, 0x55, 0xf9, 0xcc, 0x9e, 0x97, 0x9f, 0xf6, 0xd4, 0x17, + 0x09, 0x93, 0xf9, 0x3a, 0x98, 0x6d, 0x94, 0x4e, 0x84, 0x38, 0x56, 0x90, 0xdb, 0xe7, 0x1a, 0x39, + 0x4a, 0x1b, 0x71, 0x6c, 0xed, 0xc3, 0x25, 0x69, 0xfc, 0x81, 0xd4, 0xe8, 0x29, 0xcb, 0xd7, 0x91, + 0x2f, 0x30, 0x1e, 0x6c, 0xfa, 0x45, 0x98, 0x42, 0x0d, 0x01, 0x8a, 0x36, 0x5a, 0xbf, 0x59, 0x07, + 0xda, 0x2b, 0x0f, 0xe8, 0x0b, 0x14, 0xfa, 0x69, 0x02, 0xb2, 0x96, 0x85, 0x5b, 0x34, 0xf0, 0xd6, + 0x51, 0x70, 0x14, 0xc5, 0x21, 0x77, 0x5b, 0xcf, 0x0d, 0xf2, 0x9b, 0x70, 0x21, 0x01, 0x4d, 0xcb, + 0xc9, 0xa3, 0x9c, 0x00, 0xaa, 0x94, 0x4b, 0xf0, 0xac, 0x4f, 0x0c, 0x58, 0x94, 0x16, 0xad, 0xf9, + 0x7e, 0x12, 0x16, 0xec, 0x3e, 0x22, 0x91, 0x1b, 0xf3, 0xe7, 0x36, 0xa7, 0xb7, 0x0f, 0x27, 0xfa, + 0xf8, 0xf0, 0x23, 0x58, 0x52, 0x79, 0x40, 0x02, 0x14, 0xb5, 0xde, 0x0d, 0xa5, 0x29, 0xca, 0xd6, + 0x47, 0xa1, 0x87, 0x38, 0x36, 0xef, 0xc3, 0x94, 0x52, 0x2f, 0x8d, 0x29, 0xad, 0xde, 0xe9, 0x13, + 0xe9, 0x3d, 0x24, 0xac, 0x4f, 0x8a, 0x34, 0xb5, 0x35, 0xbf, 0xf5, 0x67, 0x03, 0x4c, 0xe5, 0x5e, + 0xfc, 0x58, 0x1c, 0x76, 0x32, 0x23, 0xd9, 0xe0, 0x0d, 0x6f, 0x02, 0x54, 0xe3, 0x96, 0xaa, 0x01, + 0x49, 0xae, 0xdd, 0xe8, 0x97, 0x6b, 0x21, 0xe5, 0xbb, 0xa4, 0x41, 0x94, 0x60, 0xbb, 0x58, 0x8d, + 0x5b, 0x5a, 0xc5, 0x36, 0x94, 0x18, 0xf6, 0xfd, 0x44, 0xcc, 0xc4, 0x38, 0x62, 0x40, 0x70, 0x2a, + 0x39, 0xd6, 0xdf, 0x12, 0xc7, 0x3d, 0xc0, 0x8f, 0xb3, 0x94, 0x1d, 0x65, 0x1f, 0xef, 0xf4, 0xd8, + 0xc7, 0x6b, 0x43, 0x8b, 0x7f, 0xef, 0xdd, 0xec, 0xf6, 0xda, 0xcd, 0x58, 0xc2, 0xf2, 0x7b, 0x6a, + 0xc2, 0x05, 0xb9, 0x25, 0x55, 0x1a, 0x53, 0xbf, 0x0c, 0xde, 0xce, 0x1a, 0x9c, 0x96, 0xda, 0x65, + 0x00, 0x8e, 0x0a, 0xa5, 0x0e, 0x07, 0xc5, 0x69, 0xfd, 0x08, 0x16, 0x54, 0xf5, 0x08, 0x29, 0x6f, + 0x0b, 0xb8, 0x1f, 0x76, 0x04, 0xdc, 0xb5, 0x01, 0xc2, 0x7b, 0xc6, 0xd9, 0x67, 0x05, 0xb8, 0x2c, + 0x45, 0xef, 0xe3, 0x28, 0xc4, 0x3c, 0x46, 0x7e, 0x9b, 0xfc, 0xad, 0x0e, 0xf9, 0xb7, 0x86, 0x22, + 0xd7, 0x4b, 0x8b, 0xe9, 0xc1, 0x42, 0x98, 0xc8, 0x4f, 0x12, 0x9f, 0x04, 0x87, 0x54, 0x43, 0xd2, + 0x2f, 0x4d, 0x3a, 0x6c, 0xda, 0x09, 0x0e, 0xa9, 0x14, 0x6c, 0xd8, 0xe7, 0xc3, 0xee, 0x4f, 0xe6, + 0x1e, 0x9c, 0x49, 0xba, 0x98, 0x09, 0x29, 0xf7, 0x8d, 0xd1, 0xe4, 0xea, 0xe6, 0x45, 0x8b, 0x4e, + 0x64, 0x58, 0x5f, 0x1b, 0x3a, 0xdf, 0xb7, 0x9e, 0x84, 0x24, 0x6a, 0x6d, 0xc7, 0x3c, 0x8e, 0x30, + 0xfb, 0x6f, 0xc0, 0x73, 0x0c, 0x97, 0xb1, 0xd4, 0xe1, 0x1c, 0x2a, 0x25, 0x6d, 0x18, 0xa9, 0xbd, + 0x94, 0xfb, 0xb6, 0x50, 0x5d, 0xc6, 0xe5, 0x70, 0x7a, 0x09, 0xf7, 0xfe, 0x6c, 0xfd, 0xb5, 0x00, + 0xd7, 0x7a, 0xf9, 0x5d, 0x63, 0xa1, 0xf7, 0x37, 0x30, 0xae, 0x73, 0x70, 0x17, 0x4e, 0x0a, 0xf7, + 0xa9, 0x14, 0x6e, 0xf3, 0x0e, 0xcc, 0x13, 0xe6, 0xd4, 0x69, 0x1c, 0xf9, 0x2d, 0x27, 0xef, 0xc7, + 0x69, 0x7b, 0x8e, 0xb0, 0xfb, 0x72, 0x3d, 0x69, 0x33, 0xb7, 0x61, 0x46, 0x53, 0xe4, 0x4e, 0xdd, + 0xd1, 0x9a, 0xd6, 0x92, 0x66, 0x14, 0x15, 0xdd, 0x5c, 0x07, 0x10, 0xdb, 0xd1, 0x07, 0xc4, 0xe9, + 0xd1, 0xa5, 0x48, 0x58, 0xe4, 0x19, 0x62, 0xfd, 0xda, 0x80, 0x8b, 0x2a, 0x39, 0xd3, 0xf6, 0x65, + 0x13, 0xcb, 0xb6, 0xc5, 0x5c, 0x86, 0x12, 0x8b, 0x5c, 0x07, 0x79, 0x5e, 0x84, 0x19, 0xd3, 0x00, + 0x02, 0x8b, 0xdc, 0x35, 0xb5, 0x32, 0x5a, 0x83, 0xf9, 0x76, 0x7a, 0x56, 0xab, 0x48, 0xb8, 0x54, + 0x56, 0x96, 0x95, 0xc5, 0xf8, 0x56, 0xd6, 0x93, 0x59, 0x79, 0x83, 0x92, 0x20, 0x09, 0x2b, 0x7d, + 0x98, 0x7f, 0x96, 0x8c, 0x4c, 0x99, 0x65, 0x1f, 0x10, 0x5e, 0xf7, 0x22, 0xf4, 0xb8, 0x5b, 0xb3, + 0xd1, 0x43, 0xf3, 0x32, 0x94, 0x3c, 0xc6, 0x53, 0xfb, 0xd5, 0x01, 0x0a, 0x1e, 0xe3, 0x89, 0xfd, + 0x27, 0x36, 0xed, 0x0f, 0x49, 0x6e, 0x65, 0xa6, 0xe9, 0xbe, 0xe5, 0x61, 0x84, 0x02, 0x76, 0x88, + 0x23, 0x11, 0x0f, 0x02, 0xbc, 0x6e, 0x2b, 0x8b, 0xf6, 0x1c, 0x8b, 0xdc, 0x83, 0xbc, 0xa1, 0x77, + 0x60, 0x5e, 0x18, 0xda, 0x8d, 0x65, 0xd1, 0x9e, 0xf3, 0x18, 0x3f, 0x78, 0x21, 0x70, 0xd6, 0xf3, + 0x03, 0xa8, 0x76, 0xb1, 0xce, 0x93, 0x3d, 0x98, 0xf3, 0xd4, 0x82, 0x13, 0xcb, 0x15, 0xe1, 0x6c, + 0x71, 0xd2, 0x5c, 0xef, 0x5b, 0x10, 0x72, 0xec, 0xf6, 0xac, 0x97, 0x7f, 0x65, 0xd6, 0xe7, 0x06, + 0x5c, 0xe9, 0x2c, 0x19, 0xb9, 0x96, 0xdc, 0x7c, 0x04, 0x33, 0x3a, 0x2d, 0xd5, 0xc1, 0xa2, 0x8a, + 0xcf, 0xeb, 0x23, 0x16, 0x9f, 0xec, 0x7c, 0x31, 0xec, 0x52, 0x23, 0x5b, 0x32, 0x77, 0x61, 0x4e, + 0x4d, 0x0e, 0xce, 0x71, 0x8c, 0x02, 0x4e, 0xb8, 0x9a, 0x2b, 0x47, 0x9c, 0x20, 0x66, 0x15, 0xef, + 0x7b, 0x9a, 0xd5, 0xfa, 0x4d, 0x72, 0xb2, 0x28, 0xa3, 0x3b, 0x5a, 0x80, 0xc1, 0xa5, 0xe5, 0x3a, + 0xc8, 0x59, 0xb5, 0x41, 0x34, 0xb3, 0x9e, 0x6f, 0xdb, 0x17, 0x4d, 0x1b, 0x4a, 0xbe, 0x78, 0xd5, + 0x28, 0x28, 0x77, 0x8e, 0x73, 0xb6, 0x6b, 0x10, 0xc0, 0x4f, 0x57, 0xcc, 0x3a, 0x9c, 0xcf, 0x43, + 0xab, 0x47, 0x29, 0x59, 0x60, 0x4a, 0xab, 0xab, 0xe3, 0x20, 0xac, 0x8c, 0xd4, 0x2a, 0xe6, 0x1b, + 0x9d, 0x1f, 0xac, 0xaa, 0x6e, 0x8f, 0xb6, 0x31, 0xde, 0x24, 0x4c, 0x46, 0xe7, 0x81, 0x5b, 0xc7, + 0x5e, 0xec, 0x63, 0x73, 0x1b, 0xa6, 0x99, 0x7e, 0x1e, 0xd2, 0x49, 0xf6, 0xe0, 0xb6, 0x53, 0x5e, + 0xeb, 0x2b, 0x03, 0x56, 0xa4, 0x12, 0x31, 0x19, 0x8b, 0xa2, 0x87, 0x1f, 0xa3, 0xc8, 0xdb, 0x40, + 0x8d, 0x10, 0x91, 0x5a, 0xa0, 0x83, 0xf7, 0x11, 0x9c, 0x75, 0xf5, 0x8a, 0x3a, 0x70, 0x94, 0xc6, + 0x37, 0x07, 0x5c, 0x62, 0x74, 0x89, 0x12, 0x67, 0x8a, 0x3d, 0xe3, 0xe6, 0xde, 0xcc, 0x0f, 0x61, + 0x21, 0x15, 0x1b, 0x49, 0x62, 0x27, 0xa4, 0xd4, 0x1f, 0x36, 0x04, 0x26, 0x12, 0x95, 0xfc, 0x7d, + 0x4a, 0x7d, 0xfb, 0xbc, 0xdb, 0xb5, 0xc6, 0xac, 0x50, 0x17, 0x90, 0x36, 0x73, 0x36, 0x09, 0xe3, + 0x11, 0xa9, 0xaa, 0xab, 0x93, 0x07, 0x30, 0x97, 0x54, 0x03, 0xa5, 0x3f, 0x49, 0xca, 0x7e, 0x1d, + 0xd8, 0x9a, 0xa2, 0x56, 0xa2, 0x98, 0x3d, 0x8b, 0xda, 0xde, 0xad, 0xdf, 0x1b, 0x60, 0x25, 0x0d, + 0xed, 0x06, 0x0d, 0x3c, 0x39, 0x8a, 0xa0, 0xf1, 0x02, 0xfb, 0x7b, 0xed, 0xbd, 0xe0, 0xcd, 0xa1, + 0x01, 0xa5, 0x7a, 0x50, 0xc5, 0x64, 0x9a, 0x30, 0x59, 0x47, 0xac, 0x2e, 0x23, 0x7d, 0xc6, 0x96, + 0xcf, 0x42, 0x1d, 0x49, 0xfa, 0x05, 0x19, 0xa6, 0xd3, 0xf6, 0x34, 0xd1, 0x27, 0xbd, 0xf5, 0xab, + 0x02, 0xdc, 0xc8, 0xe5, 0xe0, 0x49, 0xad, 0xfe, 0xdf, 0xa5, 0x63, 0x67, 0xa5, 0x9b, 0x7c, 0x21, + 0x95, 0xce, 0xfa, 0xb7, 0x01, 0x37, 0x15, 0x2e, 0x7d, 0x11, 0x79, 0x18, 0x91, 0x5a, 0xad, 0x17, + 0x30, 0x33, 0x39, 0x60, 0x6e, 0xc2, 0xac, 0xc6, 0x40, 0x93, 0x6b, 0x64, 0x3a, 0x56, 0xc5, 0xd8, + 0xcb, 0xd5, 0x23, 0xf6, 0x74, 0x61, 0xc9, 0x39, 0xd2, 0x4c, 0xbf, 0x49, 0xcd, 0xf7, 0x85, 0x5b, + 0xef, 0xc0, 0x7c, 0xe8, 0x23, 0xb7, 0x9d, 0x7c, 0x52, 0x92, 0xcf, 0xa9, 0x0f, 0x19, 0x6d, 0x19, + 0xce, 0x77, 0x4a, 0x77, 0x89, 0xa7, 0xda, 0x19, 0x7b, 0xbe, 0x5d, 0xf8, 0x06, 0xf1, 0x2c, 0x1f, + 0x66, 0xe5, 0xe6, 0xe5, 0xc2, 0x36, 0x22, 0xbe, 0xb9, 0x08, 0x67, 0x74, 0xb0, 0xeb, 0x2d, 0x26, + 0xaf, 0xe6, 0x45, 0x98, 0x12, 0xaa, 0xb1, 0x4a, 0xdb, 0x19, 0x5b, 0xbf, 0x99, 0x17, 0xe0, 0xf4, + 0xa1, 0x8f, 0x6a, 0x6a, 0xa2, 0x3a, 0x6b, 0xab, 0x17, 0x11, 0xa0, 0x2e, 0xf1, 0xd4, 0x35, 0x68, + 0xd1, 0x96, 0xcf, 0xd6, 0xa7, 0x06, 0xbc, 0xa6, 0x06, 0x78, 0x4e, 0x1b, 0xc4, 0xcd, 0x79, 0x66, + 0x1b, 0xe3, 0xbd, 0xd8, 0xe7, 0x24, 0xf4, 0x09, 0x8e, 0x98, 0xaa, 0x46, 0x9e, 0xf9, 0x53, 0xb8, + 0x98, 0x5c, 0x0d, 0x60, 0xec, 0x34, 0x32, 0x02, 0x9d, 0xbd, 0xfd, 0x2a, 0xa1, 0x6e, 0x2e, 0xf3, + 0x32, 0xed, 0x0b, 0x8d, 0xee, 0x45, 0x66, 0xfd, 0xd1, 0xd0, 0x63, 0x9c, 0xb4, 0xa2, 0x4a, 0xe9, + 0x91, 0xae, 0x84, 0x3b, 0x30, 0xc3, 0x42, 0xda, 0x79, 0x86, 0xf7, 0x4b, 0xd2, 0x0e, 0x6e, 0xbb, + 0x24, 0x78, 0xf5, 0x11, 0x6e, 0x3e, 0x02, 0xd3, 0x4b, 0x03, 0x2a, 0x15, 0x58, 0x18, 0x4b, 0xe0, + 0x7c, 0x26, 0x21, 0xe9, 0x0c, 0x5c, 0x98, 0xeb, 0x34, 0xfa, 0x1c, 0x4c, 0x30, 0x7c, 0x2c, 0xfd, + 0x36, 0x69, 0x8b, 0x47, 0xf3, 0x07, 0x50, 0xa4, 0x09, 0x91, 0x2e, 0x34, 0x2b, 0xc3, 0x54, 0xda, + 0x19, 0x8b, 0xf5, 0x5b, 0x03, 0x8a, 0xe9, 0x87, 0xc1, 0x09, 0xf0, 0x5d, 0x35, 0xaa, 0xfb, 0xb8, + 0x89, 0xd3, 0xca, 0xfe, 0x72, 0x1f, 0x5d, 0xbb, 0x82, 0x48, 0xce, 0xe6, 0xf2, 0x89, 0x99, 0xdf, + 0xd7, 0xb3, 0xb9, 0xe6, 0x9e, 0x18, 0x81, 0x5b, 0x0e, 0xe3, 0x8a, 0xdd, 0x7a, 0xac, 0x0f, 0xd0, + 0x7b, 0x11, 0x0a, 0xf8, 0x5a, 0xcc, 0xeb, 0x34, 0x22, 0x3f, 0x93, 0xb7, 0xba, 0x4c, 0x04, 0x74, + 0x4d, 0x2c, 0xeb, 0xe6, 0xa8, 0x68, 0x27, 0xaf, 0xe6, 0x1a, 0x4c, 0xc9, 0xc7, 0x61, 0xe7, 0x50, + 0xb7, 0x54, 0x5b, 0x33, 0x5a, 0x1f, 0x27, 0xf1, 0xa3, 0x68, 0x04, 0xaf, 0xba, 0x4c, 0x4e, 0xb5, + 0xe2, 0x76, 0xad, 0x38, 0x6f, 0x4f, 0xa1, 0xdd, 0x9e, 0xef, 0xb4, 0xb5, 0xa3, 0xc5, 0xf5, 0xab, + 0xba, 0xd7, 0x5a, 0xe8, 0xee, 0xb5, 0x76, 0x02, 0x9e, 0x36, 0xa3, 0xf7, 0x60, 0x5e, 0x9a, 0xb0, + 0x13, 0x34, 0x91, 0x4f, 0x3c, 0x69, 0xc9, 0x49, 0xf4, 0x5b, 0xbf, 0x6b, 0x4b, 0x06, 0x55, 0xca, + 0x65, 0x4d, 0x18, 0xff, 0x66, 0xbc, 0xd8, 0x31, 0x3e, 0x5c, 0x05, 0xe8, 0xa8, 0x75, 0x45, 0x1d, + 0x66, 0xb2, 0x6c, 0x9d, 0x83, 0x09, 0x51, 0xa6, 0xd4, 0x8d, 0xa9, 0x78, 0x34, 0x57, 0xa0, 0xe4, + 0x61, 0xe6, 0x46, 0x44, 0x5e, 0x8c, 0xe9, 0x02, 0x96, 0x5f, 0x12, 0x85, 0x7b, 0xa5, 0xe3, 0x12, + 0x58, 0x5d, 0xcd, 0xbc, 0xbf, 0xba, 0x47, 0x6a, 0xd1, 0x08, 0x77, 0xfa, 0x3f, 0x81, 0xf9, 0xf4, + 0x72, 0xc9, 0x51, 0xee, 0x4e, 0x42, 0xa1, 0x32, 0xda, 0x69, 0xfc, 0xfe, 0xea, 0x86, 0x62, 0xb3, + 0xe7, 0x92, 0x7b, 0x26, 0xbd, 0x60, 0x7e, 0x08, 0x66, 0x76, 0xdb, 0x94, 0x4a, 0x9f, 0x38, 0x99, + 0xf4, 0x73, 0xe9, 0xc5, 0x93, 0x5e, 0xb1, 0xfe, 0x52, 0x80, 0xc5, 0x7e, 0xe4, 0x09, 0x9c, 0x46, + 0x06, 0x67, 0xd2, 0x2e, 0x14, 0x72, 0xed, 0xc2, 0x5d, 0x30, 0xc2, 0x71, 0x7e, 0x87, 0x30, 0x42, + 0xc1, 0x72, 0x3c, 0xce, 0x4f, 0x09, 0xc6, 0xb1, 0x60, 0x69, 0xe4, 0xc6, 0xe9, 0xe1, 0x2c, 0x0d, + 0xc1, 0x72, 0xb8, 0x38, 0x35, 0x06, 0xcb, 0xa1, 0xf9, 0x16, 0x14, 0x78, 0xb8, 0x78, 0x66, 0xf4, + 0xa9, 0xbd, 0xc0, 0x43, 0xeb, 0x5f, 0x86, 0x1e, 0x4b, 0xb2, 0x5b, 0xd5, 0x91, 0x63, 0xe7, 0x51, + 0xff, 0xd8, 0x79, 0x75, 0xc0, 0xc5, 0xdb, 0xb0, 0xa8, 0xf9, 0x60, 0x40, 0xd4, 0x8c, 0x21, 0xb7, + 0x3b, 0x5e, 0x7e, 0x5e, 0x80, 0xdb, 0xba, 0x49, 0x96, 0x3d, 0x40, 0xae, 0xdb, 0xc9, 0x1f, 0xc3, + 0x88, 0xf8, 0xc3, 0x7e, 0x3f, 0x19, 0x29, 0xdf, 0xdb, 0x6f, 0x53, 0xc6, 0x08, 0xb2, 0xec, 0x36, + 0xa5, 0xa3, 0x66, 0xa8, 0x86, 0x27, 0x57, 0x33, 0x96, 0xa1, 0xa4, 0xfb, 0x19, 0x07, 0x47, 0x91, + 0xae, 0x10, 0xa0, 0x97, 0xb6, 0xa2, 0x28, 0xc9, 0x82, 0xa9, 0x34, 0x0b, 0xac, 0x8f, 0x0b, 0x70, + 0xab, 0x0f, 0x08, 0x59, 0xeb, 0xf9, 0x2d, 0xc7, 0xe0, 0x93, 0x02, 0x98, 0xdd, 0x11, 0xf3, 0xff, + 0x56, 0x32, 0x0e, 0xc7, 0x2a, 0x19, 0x49, 0xfe, 0x4f, 0x8d, 0x97, 0xff, 0x47, 0x7a, 0x88, 0xeb, + 0xfe, 0x1d, 0x33, 0x5f, 0x06, 0xb6, 0x60, 0x3a, 0xf9, 0xe5, 0x51, 0x8f, 0xc3, 0xc3, 0x7f, 0x7d, + 0x4e, 0x7f, 0xb4, 0x4c, 0x59, 0xd7, 0x8f, 0xbe, 0x78, 0xba, 0x64, 0x7c, 0xf9, 0x74, 0xc9, 0xf8, + 0xe7, 0xd3, 0x25, 0xe3, 0x97, 0xcf, 0x96, 0x4e, 0x7d, 0xf9, 0x6c, 0xe9, 0xd4, 0x57, 0xcf, 0x96, + 0x4e, 0xfd, 0xf8, 0xbd, 0x1a, 0xe1, 0xf5, 0xb8, 0x5a, 0x76, 0x69, 0xa3, 0xb2, 0x93, 0x08, 0xde, + 0x45, 0x55, 0x56, 0x49, 0xd5, 0xbc, 0xe1, 0xd2, 0x08, 0xe7, 0x5f, 0xeb, 0x88, 0x04, 0x95, 0x06, + 0x15, 0x93, 0x3d, 0xcb, 0xfe, 0x27, 0xc1, 0x5b, 0x21, 0x66, 0x95, 0xe6, 0x6a, 0x75, 0x4a, 0xfe, + 0x51, 0xe2, 0xad, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x8b, 0x83, 0xca, 0x2f, 0x22, 0x00, + 0x00, } func (m *EventBatchSpotExecution) Marshal() (dAtA []byte, err error) { @@ -4949,6 +4966,13 @@ func (m *EventTriggerConditionalMarketOrderFailed) MarshalToSizedBuffer(dAtA []b _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x32 + } if len(m.TriggerErr) > 0 { i -= len(m.TriggerErr) copy(dAtA[i:], m.TriggerErr) @@ -5010,6 +5034,13 @@ func (m *EventTriggerConditionalLimitOrderFailed) MarshalToSizedBuffer(dAtA []by _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x32 + } if len(m.TriggerErr) > 0 { i -= len(m.TriggerErr) copy(dAtA[i:], m.TriggerErr) @@ -6051,6 +6082,10 @@ func (m *EventTriggerConditionalMarketOrderFailed) Size() (n int) { if l > 0 { n += 1 + l + sovEvents(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } @@ -6078,6 +6113,10 @@ func (m *EventTriggerConditionalLimitOrderFailed) Size() (n int) { if l > 0 { n += 1 + l + sovEvents(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } @@ -12268,6 +12307,38 @@ func (m *EventTriggerConditionalMarketOrderFailed) Unmarshal(dAtA []byte) error } m.TriggerErr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -12482,6 +12553,38 @@ func (m *EventTriggerConditionalLimitOrderFailed) Unmarshal(dAtA []byte) error { } m.TriggerErr = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) diff --git a/chain/exchange/types/v2/exchange.pb.go b/chain/exchange/types/v2/exchange.pb.go index 13b2707f..ef79788f 100644 --- a/chain/exchange/types/v2/exchange.pb.go +++ b/chain/exchange/types/v2/exchange.pb.go @@ -38,6 +38,7 @@ const ( ExecutionType_LimitMatchNewOrder ExecutionType = 4 ExecutionType_MarketLiquidation ExecutionType = 5 ExecutionType_ExpiryMarketSettlement ExecutionType = 6 + ExecutionType_OffsettingPosition ExecutionType = 7 ) var ExecutionType_name = map[int32]string{ @@ -48,6 +49,7 @@ var ExecutionType_name = map[int32]string{ 4: "LimitMatchNewOrder", 5: "MarketLiquidation", 6: "ExpiryMarketSettlement", + 7: "OffsettingPosition", } var ExecutionType_value = map[string]int32{ @@ -58,6 +60,7 @@ var ExecutionType_value = map[string]int32{ "LimitMatchNewOrder": 4, "MarketLiquidation": 5, "ExpiryMarketSettlement": 6, + "OffsettingPosition": 7, } func (x ExecutionType) String() string { @@ -156,16 +159,18 @@ type Params struct { // default_reduce_margin_ratio defines the default reduce margin ratio on a // new derivative market DefaultReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,31,opt,name=default_reduce_margin_ratio,json=defaultReduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_reduce_margin_ratio"` - // DO NOT USE THIS FIELD. It was introduced for a temporary bug fix. - HumanReadableUpgradeBlockHeight int64 `protobuf:"varint,32,opt,name=human_readable_upgrade_block_height,json=humanReadableUpgradeBlockHeight,proto3" json:"human_readable_upgrade_block_height,omitempty"` // Deprecated: Do not use. // post_only_mode_blocks_amount defines the amount of blocks the post only - // mode will be enabled + // mode will be enabled after a chain upgrade PostOnlyModeBlocksAmount uint64 `protobuf:"varint,33,opt,name=post_only_mode_blocks_amount,json=postOnlyModeBlocksAmount,proto3" json:"post_only_mode_blocks_amount,omitempty"` // min_post_only_mode_downtime_duration defines the minimum downtime duration // that must pass before the post only mode is automatically enabled. The // accepted values are the Downtime enum values from the downtime_duration // module MinPostOnlyModeDowntimeDuration string `protobuf:"bytes,34,opt,name=min_post_only_mode_downtime_duration,json=minPostOnlyModeDowntimeDuration,proto3" json:"min_post_only_mode_downtime_duration,omitempty"` + // post_only_mode_blocks_amount defines the amount of blocks the post only + // mode will be enabled after the downtime-detector module detects a chain + // downtime + PostOnlyModeBlocksAmountAfterDowntime uint64 `protobuf:"varint,35,opt,name=post_only_mode_blocks_amount_after_downtime,json=postOnlyModeBlocksAmountAfterDowntime,proto3" json:"post_only_mode_blocks_amount_after_downtime,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -299,14 +304,6 @@ func (m *Params) GetEmitLegacyVersionEvents() bool { return false } -// Deprecated: Do not use. -func (m *Params) GetHumanReadableUpgradeBlockHeight() int64 { - if m != nil { - return m.HumanReadableUpgradeBlockHeight - } - return 0 -} - func (m *Params) GetPostOnlyModeBlocksAmount() uint64 { if m != nil { return m.PostOnlyModeBlocksAmount @@ -321,6 +318,13 @@ func (m *Params) GetMinPostOnlyModeDowntimeDuration() string { return "" } +func (m *Params) GetPostOnlyModeBlocksAmountAfterDowntime() uint64 { + if m != nil { + return m.PostOnlyModeBlocksAmountAfterDowntime + } + return 0 +} + type NextFundingTimestamp struct { NextTimestamp int64 `protobuf:"varint,1,opt,name=next_timestamp,json=nextTimestamp,proto3" json:"next_timestamp,omitempty"` } @@ -2194,200 +2198,201 @@ func init() { } var fileDescriptor_0b5851fb01a33564 = []byte{ - // 3087 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x49, 0x6f, 0x1c, 0xc7, - 0xf5, 0x57, 0x0f, 0xf7, 0x47, 0x0e, 0x97, 0xe2, 0x36, 0x14, 0x25, 0x92, 0x6a, 0x49, 0x16, 0x2d, - 0xdb, 0xe4, 0x5f, 0x32, 0x64, 0xf8, 0x2f, 0x65, 0x23, 0x35, 0xa2, 0x34, 0x31, 0x29, 0xd1, 0x4d, - 0x5a, 0x08, 0x62, 0xc4, 0x8d, 0x9a, 0xee, 0xe2, 0x4c, 0x89, 0xbd, 0x0c, 0xbb, 0xaa, 0xc7, 0x64, - 0x82, 0x1c, 0x02, 0x38, 0x48, 0xe0, 0x5c, 0x9c, 0x1c, 0x83, 0x04, 0xf0, 0x21, 0x41, 0x80, 0x5c, - 0x92, 0x0f, 0x90, 0x43, 0x80, 0x20, 0x80, 0x0f, 0x09, 0xe0, 0x63, 0x90, 0x83, 0x13, 0xd8, 0x87, - 0x18, 0x39, 0xe7, 0x03, 0x04, 0xb5, 0xf4, 0x32, 0xc3, 0x6d, 0x46, 0x4e, 0x80, 0x5c, 0xa4, 0xe9, - 0xaa, 0xf7, 0x7e, 0xef, 0x55, 0xbd, 0xb5, 0xaa, 0x08, 0xd7, 0x68, 0xf0, 0x8c, 0x38, 0x9c, 0x36, - 0xc9, 0x2a, 0x39, 0x74, 0xea, 0x38, 0xa8, 0x91, 0xd5, 0xe6, 0xed, 0xf4, 0xf7, 0x4a, 0x23, 0x0a, - 0x79, 0x88, 0xa6, 0x53, 0xaa, 0x95, 0x74, 0xa6, 0x79, 0xfb, 0xe2, 0x54, 0x2d, 0xac, 0x85, 0x92, - 0x62, 0x55, 0xfc, 0x52, 0xc4, 0x17, 0x27, 0xb0, 0x4f, 0x83, 0x70, 0x55, 0xfe, 0xab, 0x87, 0x16, - 0x9c, 0x90, 0xf9, 0x21, 0x5b, 0xad, 0x62, 0x46, 0x56, 0x9b, 0xb7, 0xaa, 0x84, 0xe3, 0x5b, 0xab, - 0x4e, 0x48, 0x03, 0x3d, 0x7f, 0x3d, 0xd3, 0x22, 0x8c, 0xb0, 0xe3, 0x65, 0x44, 0xea, 0x53, 0x93, - 0x99, 0x27, 0x2b, 0xeb, 0xe3, 0x68, 0x9f, 0x70, 0x4d, 0x73, 0xe5, 0x64, 0x9a, 0x30, 0x72, 0x49, - 0xa4, 0x48, 0xcc, 0xef, 0xcf, 0x41, 0xff, 0x36, 0x8e, 0xb0, 0xcf, 0x10, 0x81, 0x45, 0xd6, 0x08, - 0xb9, 0xad, 0x20, 0x6c, 0x1a, 0x30, 0x8e, 0x03, 0x6e, 0x7b, 0x94, 0x71, 0x1a, 0xd4, 0xec, 0x3d, - 0x42, 0x4a, 0xc6, 0x92, 0xb1, 0x3c, 0x7c, 0x7b, 0x6e, 0x45, 0x2d, 0x61, 0x45, 0x2c, 0x61, 0x45, - 0x6b, 0xb7, 0x72, 0x3f, 0xa4, 0xc1, 0x7a, 0xef, 0x47, 0x9f, 0x2c, 0x5e, 0xb0, 0xe6, 0x05, 0xce, - 0x96, 0x84, 0xa9, 0x28, 0x94, 0x4d, 0x05, 0xb2, 0x41, 0x08, 0x3a, 0x80, 0xeb, 0x2e, 0x89, 0x68, - 0x13, 0x0b, 0xbd, 0xce, 0x12, 0x56, 0xe8, 0x4c, 0xd8, 0x95, 0x0c, 0xed, 0x34, 0x91, 0x18, 0xe6, - 0x5d, 0xb2, 0x87, 0x63, 0x8f, 0xdb, 0x7a, 0x85, 0xfb, 0x24, 0x12, 0x32, 0xec, 0x08, 0x73, 0x52, - 0xea, 0x59, 0x32, 0x96, 0x87, 0xd6, 0xaf, 0x0a, 0xb4, 0xbf, 0x7e, 0xb2, 0x38, 0xaf, 0xe4, 0x31, - 0x77, 0x7f, 0x85, 0x86, 0xab, 0x3e, 0xe6, 0xf5, 0x95, 0x4d, 0x52, 0xc3, 0xce, 0x51, 0x99, 0x38, - 0xd6, 0xac, 0xc6, 0xd9, 0x91, 0x0b, 0xdc, 0x27, 0xd1, 0x06, 0x21, 0x16, 0xe6, 0xc7, 0x45, 0xf0, - 0x56, 0x11, 0xbd, 0xcf, 0x27, 0x62, 0x37, 0x2f, 0xc2, 0x87, 0x2b, 0x89, 0x88, 0x96, 0x0d, 0x6c, - 0x11, 0xd4, 0xd7, 0xb9, 0xa0, 0xcb, 0x1a, 0xad, 0x9c, 0xdb, 0xbf, 0x73, 0xc5, 0xb5, 0xad, 0xab, - 0xff, 0x8b, 0x88, 0x6b, 0x59, 0x9d, 0x0b, 0x97, 0x12, 0x71, 0x34, 0xa0, 0x9c, 0x62, 0x4f, 0xf8, - 0x46, 0x8d, 0x06, 0x42, 0x10, 0x0d, 0x4b, 0x03, 0x9d, 0x4b, 0x9a, 0xd3, 0x40, 0x15, 0x85, 0xb3, - 0x25, 0x61, 0x2c, 0x81, 0x82, 0x3c, 0x58, 0x4a, 0xa4, 0xf8, 0x98, 0x06, 0x9c, 0x04, 0x38, 0x70, - 0x48, 0xab, 0xa4, 0xc1, 0xee, 0xd7, 0xb4, 0x95, 0x61, 0xe5, 0xa5, 0xbd, 0x0e, 0xa5, 0x44, 0xda, - 0x5e, 0x1c, 0xb8, 0xc2, 0xb1, 0x05, 0x5d, 0xd4, 0xc4, 0x5e, 0x69, 0x68, 0xc9, 0x58, 0xee, 0xb1, - 0x66, 0xf4, 0xfc, 0x86, 0x9a, 0xae, 0xe8, 0x59, 0xf4, 0x22, 0x8c, 0x27, 0x1c, 0x7e, 0xec, 0x71, - 0xda, 0xf0, 0x48, 0x09, 0x24, 0xc7, 0x98, 0x1e, 0xdf, 0xd2, 0xc3, 0xe8, 0x1b, 0x30, 0x13, 0x11, - 0x0f, 0x1f, 0x69, 0xb3, 0xb0, 0x3a, 0x8e, 0xb4, 0x71, 0x86, 0x3b, 0x5f, 0xc8, 0xa4, 0x86, 0xd8, - 0x20, 0x64, 0x47, 0x00, 0x48, 0x93, 0x50, 0x58, 0x4c, 0xd4, 0xaf, 0x87, 0x71, 0xe4, 0x1d, 0xa5, - 0xab, 0x10, 0xf0, 0xb6, 0x83, 0x1b, 0xa5, 0x91, 0xce, 0x45, 0x24, 0xf1, 0xf1, 0x48, 0x42, 0xe9, - 0x05, 0x0b, 0x39, 0xf7, 0x71, 0x23, 0x6f, 0x7d, 0x2d, 0x4a, 0x6e, 0x14, 0x61, 0x5c, 0x2d, 0xa5, - 0xd8, 0xbd, 0xf5, 0x95, 0x9c, 0x8a, 0x86, 0x91, 0x0b, 0x2a, 0xc3, 0xa2, 0x8f, 0x0f, 0xf3, 0xee, - 0x2c, 0x53, 0xa1, 0xcd, 0xa8, 0x4b, 0x6c, 0x27, 0x8c, 0x03, 0x5e, 0x1a, 0x5d, 0x32, 0x96, 0x8b, - 0xd6, 0xbc, 0x8f, 0x0f, 0x33, 0x3f, 0x7d, 0x22, 0x88, 0x76, 0xa8, 0x4b, 0xee, 0x0b, 0x12, 0xc4, - 0xe0, 0x06, 0x0d, 0x9e, 0xd9, 0x11, 0x79, 0x17, 0x47, 0xae, 0xcd, 0x44, 0x44, 0xb8, 0x76, 0x44, - 0x0e, 0x62, 0x1a, 0x11, 0x9f, 0x04, 0xdc, 0xe6, 0xf5, 0x88, 0xb0, 0x7a, 0xe8, 0xb9, 0xa5, 0x31, - 0xa9, 0xf6, 0x65, 0xad, 0xf6, 0xf4, 0x71, 0xb5, 0x2b, 0x01, 0xb7, 0xae, 0xd2, 0xe0, 0x99, 0x25, - 0xc1, 0x76, 0x24, 0x96, 0x95, 0x41, 0xed, 0x26, 0x48, 0xe8, 0x21, 0x2c, 0xf1, 0x08, 0xab, 0xcd, - 0x97, 0xb4, 0xcc, 0x6e, 0x12, 0x95, 0x2b, 0xdd, 0x58, 0xfa, 0x6d, 0x50, 0x1a, 0x97, 0x0e, 0x72, - 0x59, 0xd3, 0x29, 0x48, 0xf6, 0x54, 0x51, 0x95, 0x35, 0x91, 0xd8, 0x69, 0x8f, 0x1e, 0xc4, 0xd4, - 0xc5, 0x3c, 0x8c, 0xd2, 0x45, 0x64, 0x4e, 0x33, 0xd1, 0xc5, 0x4e, 0x67, 0x40, 0x5a, 0xff, 0xd4, - 0x75, 0x0e, 0xe1, 0xc5, 0x2a, 0x0d, 0x70, 0x74, 0x64, 0x87, 0x0d, 0x21, 0x96, 0x9d, 0x95, 0xe8, - 0x51, 0x67, 0x89, 0xfe, 0x9a, 0x42, 0x7c, 0xa2, 0x00, 0x4f, 0xcb, 0xf5, 0xdf, 0x81, 0x25, 0xcc, - 0x43, 0x9f, 0x3a, 0x89, 0x44, 0x65, 0x62, 0xec, 0x38, 0x84, 0x31, 0xdb, 0x23, 0x4d, 0xe2, 0x95, - 0x26, 0x97, 0x8c, 0xe5, 0xd1, 0xdb, 0xaf, 0xae, 0x9c, 0x58, 0xc9, 0x57, 0xd6, 0x24, 0xbb, 0xc2, - 0x97, 0xa6, 0x5f, 0x93, 0xbc, 0x9b, 0x82, 0xd5, 0xba, 0x84, 0xcf, 0x98, 0x45, 0x87, 0x70, 0x43, - 0x66, 0xff, 0x93, 0x34, 0x10, 0xc1, 0xa9, 0x63, 0x99, 0x92, 0xa8, 0x34, 0xd5, 0xf9, 0x3e, 0x9b, - 0x02, 0xf3, 0x98, 0x56, 0x1b, 0x84, 0x6c, 0xa5, 0x70, 0xe8, 0x3d, 0x03, 0x5e, 0xc9, 0xf9, 0x75, - 0x07, 0x0a, 0x4c, 0x77, 0xae, 0xc0, 0x72, 0x86, 0x7c, 0x8e, 0x1a, 0x3f, 0x32, 0xe0, 0x56, 0x9b, - 0xe1, 0x3b, 0x50, 0x65, 0xa6, 0x73, 0x55, 0x5e, 0x6a, 0x71, 0x82, 0x73, 0xb4, 0x79, 0x07, 0xe6, - 0x7c, 0x1a, 0x50, 0x1f, 0x7b, 0xb6, 0xec, 0x76, 0x9c, 0xd0, 0xcb, 0x4a, 0xd7, 0x6c, 0xe7, 0x42, - 0x67, 0x34, 0xca, 0xb6, 0x06, 0x49, 0x6a, 0xd6, 0xdb, 0xf0, 0x12, 0x65, 0xa9, 0x4b, 0x1f, 0xef, - 0x6a, 0x3c, 0x1c, 0x07, 0x4e, 0xdd, 0x26, 0x01, 0xae, 0x7a, 0xc4, 0x2d, 0x95, 0x96, 0x8c, 0xe5, - 0x41, 0xeb, 0x05, 0xca, 0xb4, 0xd7, 0x96, 0xdb, 0x1a, 0x97, 0x4d, 0x49, 0xfe, 0x40, 0x51, 0x8b, - 0x64, 0xd5, 0x08, 0x19, 0xb7, 0xc3, 0xc0, 0x3b, 0xb2, 0xfd, 0xd0, 0x25, 0x76, 0x9d, 0xd0, 0x5a, - 0x3d, 0x9f, 0x5e, 0xe6, 0x64, 0xc0, 0xcf, 0x0b, 0xb2, 0x27, 0x81, 0x77, 0xb4, 0x15, 0xba, 0xe4, - 0x91, 0xa4, 0xc9, 0xf2, 0x46, 0x0d, 0x6e, 0xe9, 0xe2, 0xe6, 0x12, 0x27, 0x22, 0x98, 0x11, 0xbb, - 0x11, 0x51, 0x87, 0xd8, 0x9c, 0xfa, 0x84, 0x71, 0xec, 0x37, 0x32, 0x3c, 0x9b, 0x11, 0x27, 0x0c, - 0x5c, 0x56, 0xba, 0x28, 0x71, 0x5f, 0x56, 0x8c, 0x65, 0xcd, 0xb7, 0x2d, 0xd8, 0x76, 0x13, 0xae, - 0x54, 0xc2, 0x8e, 0xe2, 0x41, 0x37, 0x60, 0x2c, 0x09, 0x22, 0x1b, 0xbb, 0x3e, 0x0d, 0x58, 0x69, - 0x7e, 0xa9, 0x67, 0x79, 0xc8, 0x1a, 0x4d, 0x86, 0xd7, 0xe4, 0x28, 0xda, 0x84, 0x49, 0x91, 0x3e, - 0x71, 0xec, 0x08, 0x13, 0xda, 0x22, 0x21, 0x8b, 0x4a, 0x72, 0xa9, 0x93, 0x54, 0x39, 0x4e, 0x83, - 0x67, 0x6b, 0x8a, 0x71, 0x0b, 0x1f, 0x8a, 0xc2, 0x71, 0x13, 0x26, 0xf6, 0xe8, 0x21, 0x71, 0xed, - 0x1a, 0x66, 0xe9, 0x46, 0x5f, 0x96, 0x1b, 0x3d, 0x26, 0x27, 0x1e, 0x62, 0x96, 0xec, 0xe8, 0x3d, - 0xb8, 0x48, 0x7c, 0xca, 0x6d, 0x4f, 0x1a, 0xd6, 0x6e, 0x92, 0x88, 0x09, 0x0d, 0x48, 0x93, 0x04, - 0x9c, 0x95, 0x16, 0x24, 0xd3, 0xac, 0xa0, 0x50, 0x96, 0x7f, 0xaa, 0xe6, 0x1f, 0xc8, 0x69, 0x54, - 0xcd, 0x1a, 0xbc, 0x88, 0xb8, 0x71, 0x7b, 0xd3, 0xb0, 0xd8, 0xb9, 0x37, 0x25, 0x3d, 0x81, 0x25, - 0x61, 0xf2, 0xfd, 0xc2, 0x36, 0x5c, 0xad, 0xc7, 0x3e, 0x0e, 0xec, 0x88, 0x60, 0x57, 0xe8, 0x6c, - 0xc7, 0x8d, 0x5a, 0x84, 0x5d, 0x62, 0x57, 0xbd, 0xd0, 0xd9, 0xd7, 0x0e, 0x50, 0x5a, 0x12, 0xe6, - 0x59, 0x2f, 0x94, 0x0c, 0x6b, 0x51, 0x92, 0x5b, 0x9a, 0xfa, 0x2d, 0x45, 0xbc, 0x2e, 0x68, 0x95, - 0x1f, 0xa0, 0xaf, 0xc0, 0xa5, 0x36, 0x27, 0x92, 0x48, 0xcc, 0xc6, 0xbe, 0x2c, 0x77, 0x57, 0x96, - 0x8c, 0xe5, 0x5e, 0xab, 0x94, 0xf7, 0x20, 0xc9, 0xce, 0xd6, 0xe4, 0x3c, 0xda, 0x82, 0x6b, 0x3e, - 0x0d, 0xec, 0x36, 0x0c, 0x37, 0x7c, 0x37, 0x10, 0xfe, 0x93, 0x95, 0x1e, 0x53, 0x2c, 0xdf, 0x5a, - 0xf4, 0x69, 0xb0, 0x9d, 0x83, 0x2a, 0x6b, 0xba, 0xa4, 0xf8, 0xdc, 0x2d, 0x7d, 0xfe, 0xe1, 0xa2, - 0xf1, 0xfe, 0x3f, 0x7e, 0x7b, 0x33, 0xf5, 0x95, 0x55, 0x75, 0xf8, 0x30, 0xbf, 0x0c, 0x53, 0x8f, - 0xc9, 0x61, 0xd2, 0x07, 0xa5, 0x6e, 0x86, 0xae, 0xc3, 0x68, 0x40, 0x0e, 0x79, 0xe6, 0xae, 0xf2, - 0x0c, 0xd2, 0x63, 0x15, 0xc5, 0x68, 0x4a, 0x66, 0xfe, 0xd3, 0x80, 0xd1, 0x2d, 0xea, 0x4a, 0x1f, - 0x5d, 0x0b, 0xdc, 0xdd, 0x27, 0xeb, 0xe8, 0x6b, 0x30, 0xe4, 0x53, 0x57, 0x79, 0xbb, 0x64, 0x52, - 0xe6, 0x31, 0xce, 0x33, 0xcf, 0xa0, 0xaf, 0x71, 0x50, 0x05, 0x46, 0xab, 0xa2, 0x03, 0xa9, 0xc6, - 0x47, 0x1a, 0xa6, 0xd0, 0x39, 0xcc, 0x88, 0x60, 0x5d, 0x8f, 0x8f, 0x14, 0xd4, 0x1b, 0x30, 0x26, - 0xa1, 0x18, 0xf1, 0x3c, 0x8d, 0xd5, 0xd3, 0x39, 0x56, 0x51, 0xf0, 0xee, 0x10, 0xcf, 0x93, 0x60, - 0xe6, 0x2f, 0x0d, 0x18, 0x28, 0x93, 0x46, 0xc8, 0x28, 0x47, 0xdb, 0x30, 0x81, 0x9b, 0x98, 0x7a, - 0xd2, 0x5b, 0xaa, 0xd8, 0x13, 0x2d, 0x68, 0x6e, 0xb5, 0xe7, 0x3a, 0xe3, 0x78, 0xca, 0xbd, 0xae, - 0x98, 0xd1, 0x23, 0x28, 0xf2, 0x90, 0x63, 0x2f, 0x45, 0x2b, 0x74, 0x8e, 0x36, 0x22, 0x39, 0x35, - 0x92, 0xf9, 0x32, 0x4c, 0xed, 0xc4, 0x55, 0xec, 0xc8, 0xce, 0x6a, 0x57, 0xb8, 0xe6, 0xe3, 0x50, - 0x48, 0x98, 0x82, 0xbe, 0x20, 0x4c, 0xf4, 0x2c, 0x5a, 0xea, 0xc3, 0xfc, 0x83, 0x01, 0x63, 0x19, - 0xb9, 0xcc, 0xe6, 0xe8, 0xff, 0xa1, 0xaf, 0xdd, 0x7e, 0xe7, 0xea, 0xa0, 0x38, 0xd0, 0x57, 0x61, - 0xf0, 0x20, 0xc6, 0x01, 0xa7, 0xfc, 0xa8, 0x9b, 0x15, 0xa4, 0x4c, 0xc8, 0x84, 0x11, 0xca, 0x54, - 0x8c, 0x0a, 0x7f, 0x96, 0xf6, 0x1a, 0xb4, 0x5a, 0xc6, 0xd0, 0x38, 0xf4, 0x38, 0xd4, 0x55, 0xa7, - 0x3b, 0x4b, 0xfc, 0x34, 0x23, 0x98, 0x6c, 0x5b, 0x44, 0x19, 0x73, 0x8c, 0xbe, 0x04, 0x7d, 0xb2, - 0xf2, 0xe9, 0x13, 0xf4, 0x0b, 0xa7, 0xb4, 0x1e, 0x6d, 0xac, 0x96, 0x62, 0x42, 0x97, 0x01, 0x54, - 0xdd, 0xac, 0x63, 0x56, 0x97, 0xab, 0x19, 0xb1, 0x86, 0xe4, 0xc8, 0x23, 0xcc, 0xea, 0xe6, 0x1f, - 0x0b, 0x30, 0xb8, 0x2d, 0xbc, 0x41, 0xf4, 0x77, 0x33, 0xd0, 0x4f, 0xd9, 0x66, 0x18, 0xd4, 0xa4, - 0xa8, 0x41, 0x4b, 0x7f, 0x7d, 0xf1, 0xfd, 0x28, 0xc3, 0x30, 0x09, 0x78, 0x74, 0x74, 0xcc, 0x7d, - 0xcf, 0xc5, 0x00, 0xc9, 0xa7, 0x02, 0xe1, 0x1e, 0xf4, 0xab, 0xbc, 0xd9, 0xcd, 0x91, 0x58, 0xb3, - 0xa0, 0x6f, 0x41, 0xc9, 0x89, 0xfd, 0xd8, 0x53, 0x45, 0x36, 0x39, 0x8c, 0x48, 0xf4, 0x6e, 0x0e, - 0xbe, 0x33, 0x19, 0x88, 0xce, 0x37, 0x0f, 0x04, 0x84, 0xf9, 0xbe, 0x01, 0x03, 0x49, 0x14, 0x5c, - 0x85, 0x22, 0x4b, 0x8d, 0x61, 0x53, 0x57, 0x79, 0xa0, 0x35, 0x92, 0x0d, 0x56, 0x5c, 0xe1, 0xc8, - 0x2e, 0x09, 0x42, 0x5f, 0x6d, 0xa8, 0xa5, 0x3e, 0xd0, 0x5d, 0x18, 0x74, 0x55, 0x74, 0x32, 0xb9, - 0x4b, 0xc3, 0xb7, 0x17, 0x4e, 0x31, 0xb7, 0x0e, 0x62, 0x2b, 0xa5, 0xbf, 0x3b, 0xf8, 0xc3, 0x0f, - 0x17, 0x2f, 0x7c, 0xfe, 0xe1, 0xe2, 0x05, 0xf3, 0xe7, 0x06, 0xa0, 0xac, 0x41, 0x48, 0xcd, 0xdb, - 0x91, 0x5e, 0xf3, 0x30, 0x94, 0xb4, 0xdb, 0xae, 0xd6, 0x6d, 0x50, 0x0d, 0x54, 0x44, 0x15, 0x1c, - 0x6c, 0x68, 0x34, 0xad, 0xde, 0xe2, 0x29, 0xea, 0x25, 0x42, 0xad, 0x94, 0x21, 0xa7, 0x5f, 0x05, - 0xa6, 0x72, 0x7d, 0x57, 0x25, 0x70, 0xa9, 0x23, 0x0e, 0x02, 0xad, 0xb2, 0x8d, 0x36, 0xd9, 0x53, - 0xd0, 0x47, 0xd9, 0x7a, 0xac, 0x3c, 0x70, 0xd0, 0x52, 0x1f, 0xe6, 0x9f, 0x0b, 0x30, 0x28, 0xd3, - 0xc3, 0x66, 0xd8, 0xea, 0xa7, 0xc6, 0xf3, 0xf8, 0x69, 0x9a, 0x33, 0x0a, 0x5d, 0xe7, 0x8c, 0x63, - 0x9b, 0xdb, 0x23, 0x43, 0xad, 0x75, 0x73, 0xef, 0x40, 0x8f, 0x38, 0xb4, 0x74, 0xe1, 0xbe, 0x82, - 0xbe, 0x2d, 0x86, 0xfb, 0xda, 0x62, 0x18, 0xbd, 0x0e, 0xd3, 0xb2, 0x33, 0x25, 0x0e, 0x6d, 0x50, - 0x71, 0x88, 0xc4, 0xae, 0x1b, 0x11, 0xc6, 0xe4, 0x0d, 0xcb, 0x88, 0x3c, 0x01, 0x19, 0xd6, 0xe4, - 0x1e, 0x21, 0x56, 0x42, 0xb1, 0xa6, 0x08, 0x92, 0x1c, 0x34, 0x90, 0xe5, 0xa0, 0x9f, 0x16, 0xa0, - 0x98, 0xd8, 0xae, 0x4c, 0x3c, 0x8e, 0xd1, 0x2c, 0x0c, 0x50, 0x66, 0x7b, 0xc7, 0xb3, 0x82, 0x05, - 0x88, 0x1c, 0x12, 0x27, 0x96, 0xad, 0xd8, 0xf3, 0xe4, 0x87, 0x89, 0x94, 0xfd, 0xcd, 0xc4, 0x00, - 0x8f, 0x61, 0x3c, 0xc3, 0xd4, 0xc1, 0xde, 0x45, 0xb6, 0x18, 0x4b, 0x99, 0x55, 0x6b, 0x84, 0x36, - 0x21, 0x1b, 0xd2, 0xc9, 0xa7, 0x8b, 0xcd, 0x1f, 0x4d, 0x79, 0x55, 0xf1, 0xfc, 0x59, 0x4f, 0x3e, - 0xae, 0x52, 0xb7, 0x3b, 0x31, 0xae, 0xda, 0x4d, 0xff, 0x06, 0x8c, 0x26, 0x91, 0x60, 0xbb, 0x62, - 0x63, 0xf5, 0x1d, 0xe5, 0xb5, 0x73, 0x02, 0x48, 0x1a, 0xc1, 0x2a, 0x36, 0x5a, 0x6c, 0x72, 0x0f, - 0xfa, 0x1b, 0xf8, 0x28, 0x8c, 0x79, 0x37, 0x9b, 0xa3, 0x59, 0xfe, 0xf7, 0x9d, 0x50, 0x68, 0xd8, - 0x08, 0xbc, 0x6e, 0x2e, 0xd3, 0x04, 0xbd, 0xd9, 0x04, 0x94, 0x15, 0xc1, 0x34, 0xeb, 0xe5, 0x73, - 0x96, 0xd1, 0x65, 0xce, 0x3a, 0x6e, 0xda, 0xc2, 0x71, 0xd3, 0x9a, 0x11, 0x4c, 0x64, 0x72, 0x93, - 0xe6, 0xaa, 0x23, 0xa7, 0x78, 0x1d, 0x06, 0x74, 0xfa, 0xd6, 0xde, 0x70, 0x5e, 0xb6, 0x4f, 0xc8, - 0xcd, 0x7d, 0x28, 0xea, 0xb1, 0xb7, 0x1a, 0xae, 0x38, 0x4f, 0xa6, 0xf5, 0xc4, 0xc8, 0xd7, 0x93, - 0x72, 0xae, 0x9e, 0x14, 0x96, 0x7a, 0x96, 0x87, 0x6f, 0x2f, 0x9f, 0xdb, 0x3e, 0x1c, 0xab, 0x2c, - 0xe6, 0x9f, 0x0c, 0x18, 0xdf, 0x0e, 0x69, 0xc0, 0x59, 0xee, 0x80, 0xfc, 0x36, 0xcc, 0xaa, 0xfb, - 0xe3, 0x86, 0x9c, 0xc9, 0x9f, 0xc9, 0xbb, 0xc8, 0xbd, 0xd3, 0x12, 0xe3, 0x24, 0x70, 0x7e, 0x0a, - 0x78, 0x17, 0x09, 0x66, 0x9a, 0x9f, 0x04, 0x6e, 0xfe, 0xab, 0x00, 0x0b, 0xbb, 0xf9, 0x8b, 0xae, - 0xfb, 0xd8, 0x6f, 0x60, 0x5a, 0x0b, 0xd6, 0xc3, 0x90, 0xf1, 0x4a, 0xb0, 0x17, 0xa2, 0x3b, 0x30, - 0x5b, 0x15, 0x1f, 0xc4, 0xb5, 0x5b, 0xde, 0x35, 0x5c, 0x56, 0x32, 0xe4, 0xc9, 0x74, 0x4a, 0x4f, - 0xef, 0x64, 0xaf, 0x15, 0x2e, 0x43, 0x04, 0x66, 0xf3, 0xe4, 0x99, 0xd6, 0xc9, 0xee, 0xdf, 0x38, - 0xd5, 0xf5, 0x5a, 0x75, 0xd4, 0xd7, 0x56, 0xd3, 0xd9, 0x63, 0x48, 0x36, 0xc7, 0xd0, 0x1a, 0x5c, - 0x4e, 0xb4, 0x3b, 0xe1, 0x39, 0xc4, 0x15, 0xad, 0x83, 0xd0, 0xf1, 0xa2, 0x26, 0x6a, 0xbf, 0x2b, - 0x10, 0x9a, 0x1e, 0xc0, 0xe5, 0xe3, 0xac, 0x79, 0x7d, 0x7b, 0x9f, 0x47, 0xdf, 0xf9, 0xf6, 0xf7, - 0x94, 0x9c, 0xd6, 0xe6, 0xef, 0x0c, 0x40, 0xc9, 0x4e, 0xab, 0x7d, 0xdf, 0x0e, 0x43, 0x4f, 0x1c, - 0xfe, 0x19, 0xc7, 0xd1, 0xf1, 0x63, 0xda, 0xa8, 0x1c, 0xce, 0x8e, 0x73, 0xdf, 0x85, 0x29, 0x75, - 0xe0, 0x57, 0x10, 0xc9, 0x5d, 0xa6, 0xde, 0xd9, 0x33, 0xae, 0x00, 0xff, 0x4f, 0xe8, 0xf6, 0xeb, - 0xbf, 0x2d, 0x2e, 0xd7, 0x28, 0xaf, 0xc7, 0xd5, 0x15, 0x27, 0xf4, 0x57, 0xf5, 0x43, 0x9a, 0xfa, - 0xef, 0x15, 0xe6, 0xee, 0xaf, 0xf2, 0xa3, 0x06, 0x61, 0x92, 0x81, 0x59, 0xc8, 0xc7, 0x87, 0xad, - 0xaa, 0x32, 0xf3, 0x17, 0x05, 0x98, 0x3b, 0xd1, 0x6b, 0xa4, 0xc3, 0xdc, 0x85, 0xb9, 0x54, 0xb1, - 0xe4, 0x64, 0x9b, 0xde, 0x89, 0xa8, 0xf5, 0xcc, 0x26, 0x04, 0xc9, 0x91, 0x36, 0xb9, 0xfe, 0xb8, - 0x02, 0x23, 0x07, 0x71, 0xc8, 0x89, 0x2d, 0x63, 0x56, 0x2d, 0x68, 0xc8, 0x1a, 0x96, 0x63, 0x65, - 0x39, 0x84, 0x1a, 0x30, 0xd7, 0x7a, 0x85, 0x6b, 0x4b, 0xdb, 0xda, 0x34, 0xd8, 0x0b, 0x75, 0x27, - 0x76, 0xe7, 0x14, 0x53, 0x9d, 0xed, 0xe9, 0xd6, 0x4c, 0xcb, 0x95, 0x6f, 0x16, 0x01, 0xaf, 0xc1, - 0xac, 0x4b, 0xd9, 0x41, 0x8c, 0x3d, 0xba, 0x47, 0x89, 0x9b, 0xf7, 0xae, 0x5e, 0xa9, 0xdf, 0x74, - 0x7e, 0x3a, 0x75, 0x2c, 0xf3, 0xf7, 0x05, 0x98, 0xdc, 0x20, 0xa4, 0x4c, 0x99, 0x3a, 0xba, 0x51, - 0xd1, 0xe0, 0xed, 0x85, 0x68, 0x07, 0x26, 0x55, 0xba, 0x70, 0xf5, 0x8c, 0xba, 0x49, 0xeb, 0x22, - 0x55, 0x4c, 0x48, 0xfe, 0x04, 0x58, 0x5e, 0xa2, 0xed, 0xc0, 0x24, 0x3f, 0x01, 0xb4, 0x9b, 0x1e, - 0x84, 0x1f, 0x03, 0x5d, 0x87, 0xa2, 0xbe, 0x98, 0xd7, 0x17, 0x1d, 0x3d, 0x9d, 0x5c, 0x2f, 0x8d, - 0x28, 0x1e, 0x7d, 0xf7, 0x71, 0x0f, 0xfa, 0x9b, 0xa1, 0x17, 0xfb, 0x5d, 0x95, 0x59, 0xcd, 0x62, - 0xfe, 0xa0, 0x75, 0x0b, 0x77, 0x9c, 0x3a, 0x71, 0x63, 0x8f, 0x08, 0x3f, 0xa9, 0xc6, 0x8e, 0xb0, - 0x82, 0x7a, 0x6f, 0x30, 0xe4, 0x05, 0xcc, 0xb0, 0x1a, 0x53, 0xef, 0x0b, 0x37, 0x60, 0x4c, 0x93, - 0xa4, 0xd7, 0x2b, 0x05, 0x15, 0x4c, 0x6a, 0x38, 0xbd, 0xca, 0x6f, 0xf7, 0xb9, 0x9e, 0xe3, 0x3e, - 0x57, 0x01, 0xe0, 0x94, 0x44, 0xd2, 0xc7, 0x92, 0x7c, 0x70, 0xf3, 0x14, 0x27, 0x3b, 0xc1, 0xe2, - 0xd6, 0x10, 0xd7, 0xbf, 0xd8, 0x59, 0xce, 0xd4, 0x77, 0x96, 0x33, 0x6d, 0x01, 0x6a, 0x43, 0xde, - 0xdd, 0xdd, 0x44, 0x08, 0x7a, 0x79, 0x52, 0x66, 0x7a, 0x2d, 0xf9, 0x5b, 0x94, 0x5b, 0xce, 0xbd, - 0x5c, 0x0e, 0x51, 0xcb, 0x1e, 0xe1, 0xdc, 0xcb, 0x6e, 0x7a, 0x7e, 0x6c, 0xc0, 0xe8, 0x9a, 0x2a, - 0x72, 0x3a, 0xaa, 0x51, 0x09, 0x06, 0x74, 0xd9, 0xd3, 0x85, 0x33, 0xf9, 0x44, 0x04, 0x06, 0xfe, - 0x8b, 0x19, 0x26, 0xc1, 0x36, 0xbf, 0x67, 0xc0, 0x88, 0xec, 0x24, 0x2d, 0xe2, 0x84, 0x42, 0xa3, - 0x33, 0x0f, 0x41, 0xbb, 0x30, 0xe5, 0x61, 0x4e, 0x18, 0xb7, 0xb9, 0xbc, 0xdb, 0x8b, 0x14, 0x93, - 0xd6, 0xd0, 0x3c, 0x23, 0x05, 0x68, 0x7c, 0x0b, 0x29, 0xfe, 0xbc, 0x48, 0xf3, 0x35, 0x28, 0x66, - 0xe5, 0xbf, 0x52, 0x66, 0xe8, 0x3a, 0x8c, 0xb6, 0x34, 0x2f, 0xaa, 0xea, 0x8d, 0x58, 0xc5, 0x7c, - 0xf7, 0xc2, 0xcc, 0x5f, 0x19, 0x30, 0x9c, 0x03, 0x42, 0x97, 0x60, 0xa8, 0x3d, 0x89, 0x67, 0x03, - 0x5f, 0xe4, 0x70, 0x95, 0x3f, 0xd8, 0xf5, 0x3c, 0xc7, 0xc1, 0xce, 0xf4, 0xa1, 0x4f, 0xbd, 0xb2, - 0xdc, 0x02, 0xa3, 0xd1, 0x4d, 0xd2, 0x31, 0x1a, 0x82, 0xe5, 0xa0, 0x1b, 0x9d, 0x8d, 0x03, 0xf3, - 0x27, 0x06, 0x2c, 0xae, 0xd5, 0x6a, 0x11, 0xa9, 0x61, 0x4e, 0xb2, 0xad, 0x7d, 0x2a, 0xe3, 0x5b, - 0x6f, 0x56, 0x47, 0xa7, 0xf1, 0xaf, 0xc3, 0xa8, 0x76, 0x06, 0x95, 0x1b, 0x12, 0x4b, 0x5f, 0x3d, - 0xc5, 0xd2, 0x2a, 0x74, 0xb4, 0x9c, 0xa2, 0x9f, 0xfb, 0x62, 0xe6, 0x7b, 0x06, 0x5c, 0x4a, 0x95, - 0x5a, 0x3b, 0x41, 0xa3, 0xd3, 0x63, 0xe1, 0x3f, 0xa9, 0xc6, 0x9a, 0xe8, 0x5c, 0x83, 0xd0, 0x2f, - 0x13, 0x87, 0xfa, 0xd8, 0x63, 0xa7, 0x74, 0xae, 0x17, 0x45, 0xe7, 0xaa, 0x28, 0xe4, 0xe6, 0xf7, - 0x5a, 0xe9, 0xb7, 0x49, 0x00, 0x3d, 0x8c, 0x70, 0xc0, 0xd7, 0x62, 0x5e, 0x0f, 0x23, 0xfa, 0x6d, - 0x95, 0xd2, 0x4a, 0x30, 0x50, 0x13, 0xa3, 0xfa, 0x6f, 0x4d, 0x86, 0xac, 0xe4, 0x13, 0xdd, 0x81, - 0x7e, 0x9d, 0xca, 0x0b, 0x9d, 0xa4, 0x72, 0x4d, 0x6c, 0xbe, 0x03, 0xc3, 0x6b, 0x72, 0x6d, 0x52, - 0x58, 0x86, 0x1f, 0xb5, 0xe2, 0x47, 0xcf, 0x8b, 0xff, 0x81, 0x01, 0xa3, 0x0f, 0xf6, 0xf6, 0x48, - 0x47, 0x32, 0x2a, 0x30, 0x11, 0x10, 0x6e, 0xab, 0x4f, 0xfd, 0x74, 0xdc, 0x99, 0xb8, 0xb1, 0x80, - 0xf0, 0x87, 0x8a, 0x4d, 0x3e, 0x12, 0xa3, 0x39, 0x18, 0xa4, 0xcc, 0x6e, 0x62, 0x4f, 0xdf, 0x52, - 0x0c, 0x5a, 0x03, 0x94, 0x3d, 0x15, 0x9f, 0x66, 0x03, 0xc6, 0xa5, 0x71, 0xb6, 0x68, 0xf0, 0x38, - 0x14, 0xbb, 0x8a, 0xbd, 0x53, 0xec, 0xb3, 0x01, 0x23, 0x3e, 0x0d, 0xec, 0x40, 0x53, 0x75, 0x13, - 0x20, 0xc3, 0x7e, 0x86, 0x7e, 0xf3, 0x37, 0x06, 0x14, 0x1f, 0x24, 0xc7, 0xec, 0xdd, 0xa3, 0x06, - 0x41, 0x97, 0xa0, 0xf4, 0x56, 0xc0, 0x1a, 0xc4, 0x91, 0xc5, 0xa0, 0x65, 0x6e, 0xfc, 0x02, 0x02, - 0xe8, 0x57, 0xde, 0x35, 0x6e, 0xa0, 0x22, 0x0c, 0x6d, 0x52, 0x9f, 0xf2, 0x0d, 0xea, 0x79, 0xe3, - 0x05, 0x74, 0x11, 0x66, 0xe4, 0xe7, 0x16, 0xe6, 0x4e, 0xdd, 0x52, 0x6f, 0xd7, 0xf2, 0x86, 0x69, - 0xbc, 0x07, 0xcd, 0x00, 0xca, 0xe6, 0x1e, 0x93, 0x77, 0xd5, 0x78, 0x2f, 0x9a, 0x86, 0x09, 0xfd, - 0x80, 0xa6, 0xdf, 0xa3, 0x69, 0x18, 0x8c, 0xf7, 0x09, 0xa8, 0x07, 0x87, 0x0d, 0x1a, 0x1d, 0xa9, - 0xc9, 0x1d, 0xc2, 0xb9, 0x27, 0x5f, 0xd5, 0xc7, 0xfb, 0xd7, 0xf7, 0x3f, 0xfa, 0x74, 0xc1, 0xf8, - 0xf8, 0xd3, 0x05, 0xe3, 0xef, 0x9f, 0x2e, 0x18, 0x1f, 0x7c, 0xb6, 0x70, 0xe1, 0xe3, 0xcf, 0x16, - 0x2e, 0xfc, 0xe5, 0xb3, 0x85, 0x0b, 0xdf, 0x7c, 0x33, 0x97, 0xfe, 0x2b, 0x49, 0x60, 0x6c, 0xe2, - 0x2a, 0x5b, 0x4d, 0xc3, 0xe4, 0x15, 0x27, 0x8c, 0x48, 0xfe, 0xb3, 0x8e, 0x69, 0xb0, 0xea, 0x87, - 0xa2, 0xc0, 0xb3, 0xec, 0x2f, 0xad, 0x64, 0xa9, 0x58, 0x6d, 0xde, 0xae, 0xf6, 0xcb, 0xc7, 0xc7, - 0x57, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xce, 0x20, 0xb4, 0x01, 0x60, 0x26, 0x00, 0x00, + // 3090 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcb, 0x6f, 0x5b, 0xc7, + 0xd5, 0xf7, 0xd5, 0x93, 0x3a, 0x12, 0x25, 0x6a, 0xf4, 0xa2, 0x2c, 0x5b, 0x92, 0xaf, 0xed, 0x58, + 0x71, 0x12, 0xe9, 0xb3, 0x03, 0x07, 0xf9, 0xec, 0xef, 0x51, 0xca, 0xb4, 0x6c, 0x26, 0x92, 0xad, + 0x5c, 0x29, 0x46, 0x91, 0xa0, 0xb9, 0x18, 0xde, 0x3b, 0x22, 0xc7, 0xba, 0x0f, 0xea, 0xce, 0x90, + 0x91, 0x5a, 0x74, 0x51, 0x20, 0x40, 0x8b, 0x74, 0x93, 0x16, 0xe8, 0xa6, 0x68, 0x81, 0x2c, 0x5a, + 0x14, 0xe8, 0xaa, 0x7f, 0x40, 0x17, 0x05, 0x8a, 0xa2, 0x59, 0xb4, 0x40, 0x96, 0x45, 0x17, 0x69, + 0x91, 0x2c, 0x1a, 0x74, 0xdd, 0x3f, 0xa0, 0x98, 0xc7, 0x7d, 0x90, 0x7a, 0x91, 0x4e, 0x0b, 0x74, + 0x63, 0xf3, 0xce, 0x9c, 0xf3, 0x3b, 0x67, 0xe6, 0x3c, 0x67, 0x46, 0x70, 0x8d, 0x06, 0xcf, 0x88, + 0xc3, 0x69, 0x8b, 0xac, 0x91, 0x43, 0xa7, 0x8e, 0x83, 0x1a, 0x59, 0x6b, 0xdd, 0x4e, 0x7e, 0xaf, + 0x36, 0xa2, 0x90, 0x87, 0x68, 0x26, 0xa1, 0x5a, 0x4d, 0x66, 0x5a, 0xb7, 0x2f, 0x4e, 0xd7, 0xc2, + 0x5a, 0x28, 0x29, 0xd6, 0xc4, 0x2f, 0x45, 0x7c, 0x71, 0x12, 0xfb, 0x34, 0x08, 0xd7, 0xe4, 0xbf, + 0x7a, 0x68, 0xd1, 0x09, 0x99, 0x1f, 0xb2, 0xb5, 0x2a, 0x66, 0x64, 0xad, 0x75, 0xab, 0x4a, 0x38, + 0xbe, 0xb5, 0xe6, 0x84, 0x34, 0xd0, 0xf3, 0xd7, 0x53, 0x2d, 0xc2, 0x08, 0x3b, 0x5e, 0x4a, 0xa4, + 0x3e, 0x35, 0x99, 0x79, 0xb2, 0xb2, 0x3e, 0x8e, 0xf6, 0x09, 0xd7, 0x34, 0x57, 0x4e, 0xa6, 0x09, + 0x23, 0x97, 0x44, 0x8a, 0xc4, 0xfc, 0xd1, 0x3c, 0x0c, 0x6d, 0xe3, 0x08, 0xfb, 0x0c, 0x11, 0x58, + 0x62, 0x8d, 0x90, 0xdb, 0x0a, 0xc2, 0xa6, 0x01, 0xe3, 0x38, 0xe0, 0xb6, 0x47, 0x19, 0xa7, 0x41, + 0xcd, 0xde, 0x23, 0xa4, 0x68, 0x2c, 0x1b, 0x2b, 0xa3, 0xb7, 0xe7, 0x57, 0xd5, 0x12, 0x56, 0xc5, + 0x12, 0x56, 0xb5, 0x76, 0xab, 0xf7, 0x43, 0x1a, 0xac, 0x0f, 0x7c, 0xf2, 0xd9, 0xd2, 0x05, 0x6b, + 0x41, 0xe0, 0x6c, 0x49, 0x98, 0x8a, 0x42, 0xd9, 0x54, 0x20, 0x1b, 0x84, 0xa0, 0x03, 0xb8, 0xee, + 0x92, 0x88, 0xb6, 0xb0, 0xd0, 0xeb, 0x2c, 0x61, 0x7d, 0xdd, 0x09, 0xbb, 0x92, 0xa2, 0x9d, 0x26, + 0x12, 0xc3, 0x82, 0x4b, 0xf6, 0x70, 0xd3, 0xe3, 0xb6, 0x5e, 0xe1, 0x3e, 0x89, 0x84, 0x0c, 0x3b, + 0xc2, 0x9c, 0x14, 0xfb, 0x97, 0x8d, 0x95, 0x91, 0xf5, 0xab, 0x02, 0xed, 0xcf, 0x9f, 0x2d, 0x2d, + 0x28, 0x79, 0xcc, 0xdd, 0x5f, 0xa5, 0xe1, 0x9a, 0x8f, 0x79, 0x7d, 0x75, 0x93, 0xd4, 0xb0, 0x73, + 0x54, 0x26, 0x8e, 0x35, 0xa7, 0x71, 0x76, 0xe4, 0x02, 0xf7, 0x49, 0xb4, 0x41, 0x88, 0x85, 0xf9, + 0x71, 0x11, 0xbc, 0x5d, 0xc4, 0xc0, 0xf3, 0x89, 0xd8, 0xcd, 0x8a, 0xf0, 0xe1, 0x4a, 0x2c, 0xa2, + 0x6d, 0x03, 0xdb, 0x04, 0x0d, 0x76, 0x2f, 0xe8, 0xb2, 0x46, 0x2b, 0x67, 0xf6, 0xef, 0x5c, 0x71, + 0x1d, 0xeb, 0x1a, 0xfa, 0x2a, 0xe2, 0xda, 0x56, 0xe7, 0xc2, 0xa5, 0x58, 0x1c, 0x0d, 0x28, 0xa7, + 0xd8, 0x13, 0xbe, 0x51, 0xa3, 0x81, 0x10, 0x44, 0xc3, 0xe2, 0x70, 0xf7, 0x92, 0xe6, 0x35, 0x50, + 0x45, 0xe1, 0x6c, 0x49, 0x18, 0x4b, 0xa0, 0x20, 0x0f, 0x96, 0x63, 0x29, 0x3e, 0xa6, 0x01, 0x27, + 0x01, 0x0e, 0x1c, 0xd2, 0x2e, 0x29, 0xd7, 0xfb, 0x9a, 0xb6, 0x52, 0xac, 0xac, 0xb4, 0xd7, 0xa1, + 0x18, 0x4b, 0xdb, 0x6b, 0x06, 0xae, 0x70, 0x6c, 0x41, 0x17, 0xb5, 0xb0, 0x57, 0x1c, 0x59, 0x36, + 0x56, 0xfa, 0xad, 0x59, 0x3d, 0xbf, 0xa1, 0xa6, 0x2b, 0x7a, 0x16, 0xbd, 0x08, 0x85, 0x98, 0xc3, + 0x6f, 0x7a, 0x9c, 0x36, 0x3c, 0x52, 0x04, 0xc9, 0x31, 0xa1, 0xc7, 0xb7, 0xf4, 0x30, 0xfa, 0x3a, + 0xcc, 0x46, 0xc4, 0xc3, 0x47, 0xda, 0x2c, 0xac, 0x8e, 0x23, 0x6d, 0x9c, 0xd1, 0xee, 0x17, 0x32, + 0xa5, 0x21, 0x36, 0x08, 0xd9, 0x11, 0x00, 0xd2, 0x24, 0x14, 0x96, 0x62, 0xf5, 0xeb, 0x61, 0x33, + 0xf2, 0x8e, 0x92, 0x55, 0x08, 0x78, 0xdb, 0xc1, 0x8d, 0xe2, 0x58, 0xf7, 0x22, 0xe2, 0xf8, 0x78, + 0x24, 0xa1, 0xf4, 0x82, 0x85, 0x9c, 0xfb, 0xb8, 0x91, 0xb5, 0xbe, 0x16, 0x25, 0x37, 0x8a, 0x30, + 0xae, 0x96, 0x92, 0xef, 0xdd, 0xfa, 0x4a, 0x4e, 0x45, 0xc3, 0xc8, 0x05, 0x95, 0x61, 0xc9, 0xc7, + 0x87, 0x59, 0x77, 0x96, 0xa9, 0xd0, 0x66, 0xd4, 0x25, 0xb6, 0x13, 0x36, 0x03, 0x5e, 0x1c, 0x5f, + 0x36, 0x56, 0xf2, 0xd6, 0x82, 0x8f, 0x0f, 0x53, 0x3f, 0x7d, 0x22, 0x88, 0x76, 0xa8, 0x4b, 0xee, + 0x0b, 0x12, 0xc4, 0xe0, 0x06, 0x0d, 0x9e, 0xd9, 0x11, 0x79, 0x1f, 0x47, 0xae, 0xcd, 0x44, 0x44, + 0xb8, 0x76, 0x44, 0x0e, 0x9a, 0x34, 0x22, 0x3e, 0x09, 0xb8, 0xcd, 0xeb, 0x11, 0x61, 0xf5, 0xd0, + 0x73, 0x8b, 0x13, 0x52, 0xed, 0xcb, 0x5a, 0xed, 0x99, 0xe3, 0x6a, 0x57, 0x02, 0x6e, 0x5d, 0xa5, + 0xc1, 0x33, 0x4b, 0x82, 0xed, 0x48, 0x2c, 0x2b, 0x85, 0xda, 0x8d, 0x91, 0xd0, 0x43, 0x58, 0xe6, + 0x11, 0x56, 0x9b, 0x2f, 0x69, 0x99, 0xdd, 0x22, 0x2a, 0x57, 0xba, 0x4d, 0xe9, 0xb7, 0x41, 0xb1, + 0x20, 0x1d, 0xe4, 0xb2, 0xa6, 0x53, 0x90, 0xec, 0xa9, 0xa2, 0x2a, 0x6b, 0x22, 0xb1, 0xd3, 0x1e, + 0x3d, 0x68, 0x52, 0x17, 0xf3, 0x30, 0x4a, 0x16, 0x91, 0x3a, 0xcd, 0x64, 0x0f, 0x3b, 0x9d, 0x02, + 0x69, 0xfd, 0x13, 0xd7, 0x39, 0x84, 0x17, 0xab, 0x34, 0xc0, 0xd1, 0x91, 0x1d, 0x36, 0x84, 0x58, + 0x76, 0x56, 0xa2, 0x47, 0xdd, 0x25, 0xfa, 0x6b, 0x0a, 0xf1, 0x89, 0x02, 0x3c, 0x2d, 0xd7, 0x7f, + 0x0b, 0x96, 0x31, 0x0f, 0x7d, 0xea, 0xc4, 0x12, 0x95, 0x89, 0xb1, 0xe3, 0x10, 0xc6, 0x6c, 0x8f, + 0xb4, 0x88, 0x57, 0x9c, 0x5a, 0x36, 0x56, 0xc6, 0x6f, 0xbf, 0xba, 0x7a, 0x62, 0x25, 0x5f, 0x2d, + 0x49, 0x76, 0x85, 0x2f, 0x4d, 0x5f, 0x92, 0xbc, 0x9b, 0x82, 0xd5, 0xba, 0x84, 0xcf, 0x98, 0x45, + 0x87, 0x70, 0x43, 0x66, 0xff, 0x93, 0x34, 0x10, 0xc1, 0xa9, 0x63, 0x99, 0x92, 0xa8, 0x38, 0xdd, + 0xfd, 0x3e, 0x9b, 0x02, 0xf3, 0x98, 0x56, 0x1b, 0x84, 0x6c, 0x25, 0x70, 0xe8, 0x03, 0x03, 0x5e, + 0xc9, 0xf8, 0x75, 0x17, 0x0a, 0xcc, 0x74, 0xaf, 0xc0, 0x4a, 0x8a, 0x7c, 0x8e, 0x1a, 0xdf, 0x37, + 0xe0, 0x56, 0x87, 0xe1, 0xbb, 0x50, 0x65, 0xb6, 0x7b, 0x55, 0x5e, 0x6a, 0x73, 0x82, 0x73, 0xb4, + 0x79, 0x0f, 0xe6, 0x7d, 0x1a, 0x50, 0x1f, 0x7b, 0xb6, 0xec, 0x76, 0x9c, 0xd0, 0x4b, 0x4b, 0xd7, + 0x5c, 0xf7, 0x42, 0x67, 0x35, 0xca, 0xb6, 0x06, 0x89, 0x6b, 0xd6, 0xbb, 0xf0, 0x12, 0x65, 0x89, + 0x4b, 0x1f, 0xef, 0x6a, 0x3c, 0xdc, 0x0c, 0x9c, 0xba, 0x4d, 0x02, 0x5c, 0xf5, 0x88, 0x5b, 0x2c, + 0x2e, 0x1b, 0x2b, 0x39, 0xeb, 0x05, 0xca, 0xb4, 0xd7, 0x96, 0x3b, 0x1a, 0x97, 0x4d, 0x49, 0xfe, + 0x40, 0x51, 0x8b, 0x64, 0xd5, 0x08, 0x19, 0xb7, 0xc3, 0xc0, 0x3b, 0xb2, 0xfd, 0xd0, 0x25, 0x76, + 0x9d, 0xd0, 0x5a, 0x3d, 0x9b, 0x5e, 0xe6, 0x65, 0xc0, 0x2f, 0x08, 0xb2, 0x27, 0x81, 0x77, 0xb4, + 0x15, 0xba, 0xe4, 0x91, 0xa4, 0x49, 0xf3, 0x46, 0x0d, 0x6e, 0xe9, 0xe2, 0xe6, 0x12, 0x27, 0x22, + 0x98, 0x11, 0xbb, 0x11, 0x51, 0x87, 0xd8, 0x9c, 0xfa, 0x84, 0x71, 0xec, 0x37, 0x52, 0x3c, 0x9b, + 0x11, 0x27, 0x0c, 0x5c, 0x56, 0xbc, 0x28, 0x71, 0x5f, 0x56, 0x8c, 0x65, 0xcd, 0xb7, 0x2d, 0xd8, + 0x76, 0x63, 0xae, 0x44, 0xc2, 0x8e, 0xe2, 0x41, 0x37, 0x60, 0x22, 0x0e, 0x22, 0x1b, 0xbb, 0x3e, + 0x0d, 0x58, 0x71, 0x61, 0xb9, 0x7f, 0x65, 0xc4, 0x1a, 0x8f, 0x87, 0x4b, 0x72, 0x14, 0x6d, 0xc2, + 0x94, 0x48, 0x9f, 0xb8, 0xe9, 0x08, 0x13, 0xda, 0x22, 0x21, 0x8b, 0x4a, 0x72, 0xa9, 0x9b, 0x54, + 0x59, 0xa0, 0xc1, 0xb3, 0x92, 0x62, 0xdc, 0xc2, 0x87, 0xa2, 0x70, 0xdc, 0x84, 0xc9, 0x3d, 0x7a, + 0x48, 0x5c, 0xbb, 0x86, 0x59, 0xb2, 0xd1, 0x97, 0xe5, 0x46, 0x4f, 0xc8, 0x89, 0x87, 0x98, 0xc5, + 0x3b, 0x7a, 0x0f, 0x2e, 0x12, 0x9f, 0x72, 0xdb, 0x93, 0x86, 0xb5, 0x5b, 0x24, 0x62, 0x42, 0x03, + 0xd2, 0x22, 0x01, 0x67, 0xc5, 0x45, 0xc9, 0x34, 0x27, 0x28, 0x94, 0xe5, 0x9f, 0xaa, 0xf9, 0x07, + 0x72, 0x1a, 0x55, 0xd3, 0x06, 0x2f, 0x22, 0x6e, 0xb3, 0xb3, 0x69, 0x58, 0xea, 0xde, 0x9b, 0xe2, + 0x9e, 0xc0, 0x92, 0x30, 0xd9, 0x7e, 0xe1, 0xff, 0xe0, 0x52, 0x87, 0xc9, 0xab, 0x5e, 0xe8, 0xec, + 0x33, 0x1b, 0xfb, 0xb2, 0x38, 0x5d, 0x59, 0x36, 0x56, 0x06, 0xac, 0x62, 0xd6, 0xde, 0xeb, 0x92, + 0xa0, 0x24, 0xe7, 0xd1, 0x16, 0x5c, 0xf3, 0x69, 0x60, 0x77, 0x60, 0xb8, 0xe1, 0xfb, 0x81, 0xb0, + 0x76, 0x5a, 0x28, 0x4c, 0xa1, 0xac, 0xb5, 0xe4, 0xd3, 0x60, 0x3b, 0x03, 0x55, 0xd6, 0x74, 0x49, + 0xa9, 0x78, 0x07, 0x5e, 0x3a, 0x4b, 0x1d, 0x1b, 0xef, 0x71, 0x12, 0x25, 0xf0, 0xc5, 0xab, 0x52, + 0xbb, 0xeb, 0xa7, 0x69, 0x57, 0x12, 0xd4, 0xb1, 0x8c, 0xbb, 0xc5, 0x2f, 0x3f, 0x5e, 0x32, 0x3e, + 0xfc, 0xdb, 0xaf, 0x6e, 0x26, 0x5e, 0xb3, 0xa6, 0x8e, 0x21, 0x6f, 0x0c, 0xe4, 0x96, 0x0b, 0x57, + 0xcc, 0xff, 0x85, 0xe9, 0xc7, 0xe4, 0x30, 0xee, 0x8b, 0x12, 0xb7, 0x43, 0xd7, 0x61, 0x3c, 0x20, + 0x87, 0x3c, 0x75, 0x5f, 0x79, 0x26, 0xe9, 0xb7, 0xf2, 0x62, 0x34, 0x21, 0x33, 0xff, 0x6e, 0xc0, + 0xf8, 0x16, 0x75, 0xa5, 0xcf, 0x96, 0x02, 0x77, 0xf7, 0xc9, 0x3a, 0xfa, 0x1a, 0x8c, 0xf8, 0xd4, + 0x55, 0xde, 0x2f, 0x99, 0x94, 0xb9, 0x8c, 0xf3, 0xcc, 0x95, 0xf3, 0x35, 0x0e, 0xaa, 0xc0, 0x78, + 0x55, 0x74, 0x24, 0xd5, 0xe6, 0x91, 0x86, 0xe9, 0xeb, 0x1e, 0x66, 0x4c, 0xb0, 0xae, 0x37, 0x8f, + 0x14, 0xd4, 0x9b, 0x30, 0x21, 0xa1, 0x18, 0xf1, 0x3c, 0x8d, 0xd5, 0xdf, 0x3d, 0x56, 0x5e, 0xf0, + 0xee, 0x10, 0xcf, 0x93, 0x60, 0xe6, 0xcf, 0x0d, 0x18, 0x2e, 0x93, 0x46, 0xc8, 0x28, 0x47, 0xdb, + 0x30, 0x89, 0x5b, 0x98, 0x7a, 0xc2, 0xe3, 0xed, 0x2a, 0xf6, 0x44, 0x4b, 0x9a, 0x59, 0xed, 0xb9, + 0xce, 0x59, 0x48, 0xb8, 0xd7, 0x15, 0x33, 0x7a, 0x04, 0x79, 0x1e, 0x72, 0xec, 0x25, 0x68, 0x7d, + 0xdd, 0xa3, 0x8d, 0x49, 0x4e, 0x8d, 0x64, 0xbe, 0x0c, 0xd3, 0x3b, 0xcd, 0x2a, 0x76, 0x64, 0xa7, + 0xb5, 0x1b, 0x61, 0x97, 0x3c, 0x0e, 0x85, 0x84, 0x69, 0x18, 0x0c, 0xc2, 0x58, 0xcf, 0xbc, 0xa5, + 0x3e, 0xcc, 0xdf, 0x1a, 0x30, 0x91, 0x92, 0xcb, 0xec, 0x8e, 0xfe, 0x1b, 0x06, 0x3b, 0xed, 0x77, + 0xae, 0x0e, 0x8a, 0x03, 0xfd, 0x3f, 0xe4, 0x0e, 0x9a, 0x38, 0xe0, 0x94, 0x1f, 0xf5, 0xb2, 0x82, + 0x84, 0x09, 0x99, 0x30, 0x46, 0x99, 0x8a, 0x59, 0xe1, 0xde, 0xd2, 0x5e, 0x39, 0xab, 0x6d, 0x0c, + 0x15, 0xa0, 0xdf, 0xa1, 0xae, 0x3a, 0xed, 0x59, 0xe2, 0xa7, 0x19, 0xc1, 0x54, 0xc7, 0x22, 0xca, + 0x98, 0x63, 0xf4, 0x3f, 0x30, 0x28, 0x2b, 0xa1, 0x3e, 0x51, 0xbf, 0x70, 0x4a, 0x2b, 0xd2, 0xc1, + 0x6a, 0x29, 0x26, 0x74, 0x19, 0x40, 0xd5, 0xd1, 0x3a, 0x66, 0x75, 0xb9, 0x9a, 0x31, 0x6b, 0x44, + 0x8e, 0x3c, 0xc2, 0xac, 0x6e, 0xfe, 0xae, 0x0f, 0x72, 0xdb, 0xc2, 0x1b, 0x44, 0x10, 0xcf, 0xc2, + 0x10, 0x65, 0x9b, 0x61, 0x50, 0x93, 0xa2, 0x72, 0x96, 0xfe, 0xfa, 0xea, 0xfb, 0x51, 0x86, 0x51, + 0x12, 0xf0, 0xe8, 0xe8, 0x98, 0xfb, 0x9e, 0x8b, 0x01, 0x92, 0x4f, 0x05, 0xc2, 0x3d, 0x18, 0x52, + 0x79, 0xb4, 0x97, 0x23, 0xb2, 0x66, 0x41, 0xdf, 0x80, 0xa2, 0xd3, 0xf4, 0x9b, 0x9e, 0x2a, 0xba, + 0xf1, 0xe1, 0x44, 0xa2, 0xf7, 0x72, 0x10, 0x9e, 0x4d, 0x41, 0x74, 0xbe, 0x79, 0x20, 0x20, 0xcc, + 0x0f, 0x0d, 0x18, 0x8e, 0xa3, 0xe0, 0x2a, 0xe4, 0x59, 0x62, 0x0c, 0x9b, 0xba, 0xca, 0x03, 0xad, + 0xb1, 0x74, 0xb0, 0xe2, 0x0a, 0x47, 0x76, 0x49, 0x10, 0xfa, 0x6a, 0x43, 0x2d, 0xf5, 0x81, 0xee, + 0x42, 0xce, 0x55, 0xd1, 0xc9, 0xe4, 0x2e, 0x8d, 0xde, 0x5e, 0x3c, 0xc5, 0xdc, 0x3a, 0x88, 0xad, + 0x84, 0xfe, 0x6e, 0xee, 0x7b, 0x1f, 0x2f, 0x5d, 0xf8, 0xf2, 0xe3, 0xa5, 0x0b, 0xe6, 0x4f, 0x0d, + 0x40, 0x69, 0xc3, 0x90, 0x98, 0xb7, 0x2b, 0xbd, 0x16, 0x60, 0x24, 0x6e, 0xbf, 0x5d, 0xad, 0x5b, + 0x4e, 0x0d, 0x54, 0x44, 0x55, 0xcc, 0x35, 0x34, 0x9a, 0x56, 0x6f, 0xe9, 0x14, 0xf5, 0x62, 0xa1, + 0x56, 0xc2, 0x90, 0xd1, 0xaf, 0x02, 0xd3, 0x99, 0x3e, 0xac, 0x12, 0xb8, 0xd4, 0x11, 0x07, 0x83, + 0x76, 0xd9, 0x46, 0x87, 0xec, 0x69, 0x18, 0xa4, 0x6c, 0xbd, 0xa9, 0x3c, 0x30, 0x67, 0xa9, 0x0f, + 0xf3, 0x8f, 0x7d, 0x90, 0x93, 0xe9, 0x61, 0x33, 0x6c, 0xf7, 0x53, 0xe3, 0x79, 0xfc, 0x34, 0xc9, + 0x19, 0x7d, 0x3d, 0xe7, 0x8c, 0x63, 0x9b, 0xdb, 0x2f, 0x43, 0xad, 0x7d, 0x73, 0xef, 0x40, 0xbf, + 0x38, 0xc4, 0xf4, 0xe0, 0xbe, 0x82, 0xbe, 0x23, 0x86, 0x07, 0x3b, 0x62, 0x18, 0xbd, 0x0e, 0x33, + 0xb2, 0x53, 0x25, 0x0e, 0x6d, 0x50, 0x71, 0xa8, 0xc4, 0xae, 0x1b, 0x11, 0xc6, 0xe4, 0x8d, 0xcb, + 0x98, 0x3c, 0x11, 0x19, 0xd6, 0xd4, 0x1e, 0x21, 0x56, 0x4c, 0x51, 0x52, 0x04, 0x71, 0x0e, 0x1a, + 0x4e, 0x73, 0xd0, 0x8f, 0xfb, 0x20, 0x1f, 0xdb, 0xae, 0x4c, 0x3c, 0x8e, 0xd1, 0x1c, 0x0c, 0x53, + 0x66, 0x7b, 0xc7, 0xb3, 0x82, 0x05, 0x88, 0x1c, 0x12, 0xa7, 0x29, 0x5b, 0xb3, 0xe7, 0xc9, 0x0f, + 0x93, 0x09, 0xfb, 0x5b, 0xb1, 0x01, 0x1e, 0x43, 0x21, 0xc5, 0xd4, 0xc1, 0xde, 0x43, 0xb6, 0x98, + 0x48, 0x98, 0x55, 0xab, 0x84, 0x36, 0x21, 0x1d, 0xd2, 0xc9, 0xa7, 0x87, 0xcd, 0x1f, 0x4f, 0x78, + 0x55, 0xf1, 0xfc, 0x49, 0x7f, 0x36, 0xae, 0x12, 0xb7, 0x3b, 0x31, 0xae, 0x3a, 0x4d, 0xff, 0x26, + 0x8c, 0xc7, 0x91, 0x60, 0xbb, 0x62, 0x63, 0xf5, 0x9d, 0xe5, 0xb5, 0x73, 0x02, 0x48, 0x1a, 0xc1, + 0xca, 0x37, 0xda, 0x6c, 0x72, 0x0f, 0x86, 0x1a, 0xf8, 0x28, 0x6c, 0xf2, 0x5e, 0x36, 0x47, 0xb3, + 0xfc, 0xe7, 0x3b, 0xa1, 0xd0, 0xb0, 0x11, 0x78, 0xbd, 0x5c, 0xae, 0x09, 0x7a, 0xb3, 0x05, 0x28, + 0x2d, 0x82, 0x49, 0xd6, 0xcb, 0xe6, 0x2c, 0xa3, 0xc7, 0x9c, 0x75, 0xdc, 0xb4, 0x7d, 0xc7, 0x4d, + 0x6b, 0x46, 0x30, 0x99, 0xca, 0x8d, 0x9b, 0xab, 0xae, 0x9c, 0xe2, 0x75, 0x18, 0xd6, 0xe9, 0x5b, + 0x7b, 0xc3, 0x79, 0xd9, 0x3e, 0x26, 0x37, 0xf7, 0x21, 0xaf, 0xc7, 0xde, 0x6e, 0xb8, 0xe2, 0x7c, + 0x99, 0xd4, 0x13, 0x23, 0x5b, 0x4f, 0xca, 0x99, 0x7a, 0xd2, 0xb7, 0xdc, 0xbf, 0x32, 0x7a, 0x7b, + 0xe5, 0xdc, 0xf6, 0xe1, 0x58, 0x65, 0x31, 0xff, 0x60, 0x40, 0x61, 0x3b, 0xa4, 0x01, 0x67, 0x99, + 0x03, 0xf3, 0xbb, 0x30, 0xa7, 0xee, 0x93, 0x1b, 0x72, 0x26, 0x7b, 0x46, 0xef, 0x21, 0xf7, 0xce, + 0x48, 0x8c, 0x93, 0xc0, 0xf9, 0x29, 0xe0, 0x3d, 0x24, 0x98, 0x19, 0x7e, 0x12, 0xb8, 0xf9, 0x8f, + 0x3e, 0x58, 0xdc, 0xcd, 0x5e, 0x7c, 0xdd, 0xc7, 0x7e, 0x03, 0xd3, 0x5a, 0xb0, 0x1e, 0x86, 0x8c, + 0x57, 0x82, 0xbd, 0x10, 0xdd, 0x81, 0xb9, 0xaa, 0xf8, 0x20, 0xae, 0xdd, 0xf6, 0xce, 0xe1, 0xb2, + 0xa2, 0x21, 0x4f, 0xaa, 0xd3, 0x7a, 0x7a, 0x27, 0x7d, 0xbd, 0x70, 0x19, 0x22, 0x30, 0x97, 0x25, + 0x4f, 0xb5, 0x8e, 0x77, 0xff, 0xc6, 0xa9, 0xae, 0xd7, 0xae, 0xa3, 0xbe, 0xc6, 0x9a, 0x49, 0x1f, + 0x47, 0xd2, 0x39, 0x86, 0x4a, 0x70, 0x39, 0xd6, 0xee, 0x84, 0xe7, 0x11, 0x57, 0xb4, 0x0e, 0x42, + 0xc7, 0x8b, 0x9a, 0xa8, 0xf3, 0xee, 0x40, 0x68, 0x7a, 0x00, 0x97, 0x8f, 0xb3, 0x66, 0xf5, 0x1d, + 0x78, 0x1e, 0x7d, 0x17, 0x3a, 0xdf, 0x57, 0x32, 0x5a, 0x9b, 0xbf, 0x36, 0x00, 0xc5, 0x3b, 0xad, + 0xf6, 0x7d, 0x3b, 0x0c, 0x3d, 0x74, 0x03, 0x26, 0x18, 0xc7, 0xd1, 0xf1, 0x63, 0xda, 0xb8, 0x1c, + 0x4e, 0x8f, 0x73, 0xdf, 0x86, 0x69, 0x75, 0x01, 0xa0, 0x20, 0xe2, 0xbb, 0x4d, 0xbd, 0xb3, 0x67, + 0x5c, 0x09, 0xfe, 0x97, 0xd0, 0xed, 0x97, 0x7f, 0x59, 0x5a, 0xa9, 0x51, 0x5e, 0x6f, 0x56, 0x57, + 0x9d, 0xd0, 0x5f, 0xd3, 0x0f, 0x6b, 0xea, 0xbf, 0x57, 0x98, 0xbb, 0xbf, 0xc6, 0x8f, 0x1a, 0x84, + 0x49, 0x06, 0x66, 0x21, 0x1f, 0x1f, 0xb6, 0xab, 0xca, 0xcc, 0x9f, 0xf5, 0xc1, 0xfc, 0x89, 0x5e, + 0x23, 0x1d, 0xe6, 0x2e, 0xcc, 0x27, 0x8a, 0xc5, 0x67, 0xe7, 0xe4, 0x8e, 0x44, 0xad, 0x67, 0x2e, + 0x26, 0x88, 0x0f, 0xcd, 0xf1, 0x75, 0xc8, 0x15, 0x18, 0x3b, 0x68, 0x86, 0x9c, 0xd8, 0x32, 0x66, + 0xd5, 0x82, 0x46, 0xac, 0x51, 0x39, 0x56, 0x96, 0x43, 0xa8, 0x01, 0xf3, 0xed, 0x57, 0xba, 0xb6, + 0xb4, 0xad, 0x4d, 0x83, 0xbd, 0x50, 0x77, 0x62, 0x77, 0x4e, 0x31, 0xd5, 0xd9, 0x9e, 0x6e, 0xcd, + 0xb6, 0x5d, 0x01, 0xa7, 0x11, 0xf0, 0x1a, 0xcc, 0xb9, 0x94, 0x1d, 0x34, 0xb1, 0x47, 0xf7, 0x28, + 0x71, 0xb3, 0xde, 0x35, 0x20, 0xf5, 0x9b, 0xc9, 0x4e, 0x27, 0x8e, 0x65, 0xfe, 0xa6, 0x0f, 0xa6, + 0x36, 0x08, 0x29, 0x53, 0xa6, 0x8e, 0x6e, 0x54, 0x34, 0x78, 0x7b, 0x21, 0xda, 0x81, 0x29, 0x95, + 0x2e, 0x5c, 0x3d, 0xa3, 0x6e, 0xd6, 0x7a, 0x48, 0x15, 0x93, 0x92, 0x3f, 0x06, 0x96, 0x97, 0x6a, + 0x3b, 0x30, 0xc5, 0x4f, 0x00, 0xed, 0xa5, 0x07, 0xe1, 0xc7, 0x40, 0xd7, 0x21, 0xaf, 0x2f, 0xea, + 0xf5, 0x55, 0x4a, 0x7f, 0x37, 0xd7, 0x4d, 0x63, 0x8a, 0x47, 0xdf, 0xae, 0xdc, 0x83, 0xa1, 0x56, + 0xe8, 0x35, 0xfd, 0x9e, 0xca, 0xac, 0x66, 0x31, 0xbf, 0xdb, 0xbe, 0x85, 0x3b, 0x4e, 0x9d, 0xb8, + 0x4d, 0x8f, 0x08, 0x3f, 0xa9, 0x36, 0x1d, 0x61, 0x05, 0xf5, 0xfe, 0x60, 0xc8, 0x4b, 0x94, 0x51, + 0x35, 0xa6, 0xde, 0x1b, 0x6e, 0xc0, 0x84, 0x26, 0x49, 0x2e, 0x70, 0xfa, 0x54, 0x30, 0xa9, 0xe1, + 0xe4, 0xbe, 0xa6, 0xd3, 0xe7, 0xfa, 0x8f, 0xfb, 0x5c, 0x05, 0x80, 0x53, 0x12, 0x49, 0x1f, 0x8b, + 0xf3, 0xc1, 0xcd, 0x53, 0x9c, 0xec, 0x04, 0x8b, 0x5b, 0x23, 0x5c, 0xff, 0x62, 0x67, 0x39, 0xd3, + 0xe0, 0x59, 0xce, 0xb4, 0x05, 0xa8, 0x03, 0x79, 0x77, 0x77, 0x13, 0x21, 0x18, 0xe0, 0x71, 0x99, + 0x19, 0xb0, 0xe4, 0x6f, 0x51, 0x6e, 0x39, 0xf7, 0x32, 0x39, 0x44, 0x2d, 0x7b, 0x8c, 0x73, 0x2f, + 0xbd, 0xe9, 0xf9, 0x81, 0x01, 0xe3, 0x25, 0x55, 0xe4, 0x74, 0x54, 0xa3, 0x22, 0x0c, 0xeb, 0xb2, + 0xa7, 0x0b, 0x67, 0xfc, 0x89, 0x08, 0x0c, 0xff, 0x1b, 0x33, 0x4c, 0x8c, 0x6d, 0x7e, 0xc7, 0x80, + 0x31, 0xd9, 0x49, 0x5a, 0xc4, 0x09, 0x85, 0x46, 0x67, 0x1e, 0x82, 0x76, 0x61, 0xda, 0xc3, 0x9c, + 0x30, 0x6e, 0x8b, 0xb0, 0x95, 0xed, 0x56, 0x98, 0x6a, 0x68, 0x9e, 0x91, 0x02, 0x34, 0xbe, 0x85, + 0x14, 0x7f, 0x56, 0xa4, 0xf9, 0x1a, 0xe4, 0xd3, 0xf2, 0x5f, 0x29, 0x33, 0x74, 0x1d, 0xc6, 0xdb, + 0x9a, 0x17, 0x55, 0xf5, 0xc6, 0xac, 0x7c, 0xb6, 0x7b, 0x61, 0xe6, 0x2f, 0x0c, 0x18, 0xcd, 0x00, + 0xa1, 0x4b, 0x30, 0xd2, 0x99, 0xc4, 0xd3, 0x81, 0xaf, 0x72, 0xb8, 0xca, 0x1e, 0xec, 0xfa, 0x9f, + 0xe3, 0x60, 0x67, 0xfa, 0x30, 0xa8, 0x5e, 0x5d, 0x6e, 0x81, 0xd1, 0xe8, 0x25, 0xe9, 0x18, 0x0d, + 0xc1, 0x72, 0xd0, 0x8b, 0xce, 0xc6, 0x81, 0xf9, 0x43, 0x03, 0x96, 0x4a, 0xb5, 0x5a, 0x44, 0x6a, + 0x98, 0x93, 0x74, 0x6b, 0x9f, 0xca, 0xf8, 0xd6, 0x9b, 0xd5, 0xd5, 0x69, 0xfc, 0x0d, 0x18, 0xd7, + 0xce, 0xa0, 0x72, 0x43, 0x6c, 0xe9, 0xab, 0xa7, 0x58, 0x5a, 0x85, 0x8e, 0x96, 0x93, 0xf7, 0x33, + 0x5f, 0xcc, 0xfc, 0xc0, 0x80, 0x4b, 0x89, 0x52, 0xa5, 0x13, 0x34, 0x3a, 0x3d, 0x16, 0xfe, 0x95, + 0x6a, 0x94, 0x44, 0xe7, 0x1a, 0x84, 0x7e, 0x99, 0x38, 0xd4, 0xc7, 0x1e, 0x3b, 0xa5, 0x73, 0xbd, + 0x28, 0x3a, 0x57, 0x45, 0x21, 0x37, 0x7f, 0xc0, 0x4a, 0xbe, 0x4d, 0x02, 0xe8, 0x61, 0x84, 0x03, + 0x5e, 0x6a, 0xf2, 0x7a, 0x18, 0xd1, 0x6f, 0xaa, 0x94, 0x56, 0x84, 0xe1, 0x9a, 0x18, 0xd5, 0x7f, + 0x7b, 0x32, 0x62, 0xc5, 0x9f, 0xe8, 0x0e, 0x0c, 0xe9, 0x54, 0xde, 0xd7, 0x4d, 0x2a, 0xd7, 0xc4, + 0xe6, 0x7b, 0x30, 0x5a, 0x92, 0x6b, 0x93, 0xc2, 0x52, 0xfc, 0xa8, 0x1d, 0x3f, 0x7a, 0x5e, 0xfc, + 0x8f, 0x0c, 0x18, 0x7f, 0xb0, 0xb7, 0x47, 0xba, 0x92, 0x51, 0x81, 0xc9, 0x80, 0x70, 0x5b, 0x7d, + 0xea, 0xa7, 0xe4, 0xee, 0xc4, 0x4d, 0x04, 0x84, 0x3f, 0x54, 0x6c, 0xf2, 0xd1, 0x18, 0xcd, 0x43, + 0x8e, 0x32, 0xbb, 0x85, 0x3d, 0x7d, 0x4b, 0x91, 0xb3, 0x86, 0x29, 0x7b, 0x2a, 0x3e, 0xcd, 0x06, + 0x14, 0xa4, 0x71, 0xb6, 0x68, 0xf0, 0x38, 0x14, 0xbb, 0x8a, 0xbd, 0x53, 0xec, 0xb3, 0x01, 0x63, + 0x3e, 0x0d, 0xec, 0x40, 0x53, 0xf5, 0x12, 0x20, 0xa3, 0x7e, 0x8a, 0x7e, 0xf3, 0xf7, 0x06, 0xe4, + 0x1f, 0xc4, 0xc7, 0xec, 0xdd, 0xa3, 0x06, 0x41, 0x97, 0xa0, 0xf8, 0x76, 0xc0, 0x1a, 0xc4, 0x91, + 0xc5, 0xa0, 0x6d, 0xae, 0x70, 0x01, 0x01, 0x0c, 0x29, 0xef, 0x2a, 0x18, 0x28, 0x0f, 0x23, 0x9b, + 0xd4, 0xa7, 0x7c, 0x83, 0x7a, 0x5e, 0xa1, 0x0f, 0x5d, 0x84, 0x59, 0xf9, 0xb9, 0x85, 0xb9, 0x53, + 0xb7, 0xd4, 0x5b, 0xb6, 0xbc, 0x61, 0x2a, 0xf4, 0xa3, 0x59, 0x40, 0xe9, 0xdc, 0x63, 0xf2, 0xbe, + 0x1a, 0x1f, 0x40, 0x33, 0x30, 0xa9, 0x1f, 0xd4, 0xf4, 0xfb, 0x34, 0x0d, 0x83, 0xc2, 0xa0, 0x80, + 0x7a, 0x70, 0xd8, 0xa0, 0xd1, 0x91, 0x9a, 0xdc, 0x21, 0x9c, 0x7b, 0xf2, 0x95, 0xbd, 0x30, 0x24, + 0xa0, 0x9e, 0xec, 0xed, 0x31, 0xc2, 0x05, 0x7e, 0x7c, 0x66, 0x2c, 0x0c, 0xaf, 0xef, 0x7f, 0xf2, + 0xf9, 0xa2, 0xf1, 0xe9, 0xe7, 0x8b, 0xc6, 0x5f, 0x3f, 0x5f, 0x34, 0x3e, 0xfa, 0x62, 0xf1, 0xc2, + 0xa7, 0x5f, 0x2c, 0x5e, 0xf8, 0xd3, 0x17, 0x8b, 0x17, 0xde, 0x79, 0x2b, 0x53, 0x16, 0x2a, 0x71, + 0xc0, 0x6c, 0xe2, 0x2a, 0x5b, 0x4b, 0xc2, 0xe7, 0x15, 0x27, 0x8c, 0x48, 0xf6, 0xb3, 0x8e, 0x69, + 0xb0, 0xe6, 0x87, 0xa2, 0xf0, 0xb3, 0xf4, 0x2f, 0xb2, 0x64, 0x09, 0x59, 0x6b, 0xdd, 0xae, 0x0e, + 0xc9, 0x47, 0xca, 0x57, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x58, 0x3c, 0x91, 0x3c, 0x88, 0x26, + 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -2507,15 +2512,15 @@ func (this *Params) Equal(that interface{}) bool { if !this.DefaultReduceMarginRatio.Equal(that1.DefaultReduceMarginRatio) { return false } - if this.HumanReadableUpgradeBlockHeight != that1.HumanReadableUpgradeBlockHeight { - return false - } if this.PostOnlyModeBlocksAmount != that1.PostOnlyModeBlocksAmount { return false } if this.MinPostOnlyModeDowntimeDuration != that1.MinPostOnlyModeDowntimeDuration { return false } + if this.PostOnlyModeBlocksAmountAfterDowntime != that1.PostOnlyModeBlocksAmountAfterDowntime { + return false + } return true } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -2538,6 +2543,13 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.PostOnlyModeBlocksAmountAfterDowntime != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.PostOnlyModeBlocksAmountAfterDowntime)) + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x98 + } if len(m.MinPostOnlyModeDowntimeDuration) > 0 { i -= len(m.MinPostOnlyModeDowntimeDuration) copy(dAtA[i:], m.MinPostOnlyModeDowntimeDuration) @@ -2554,13 +2566,6 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x88 } - if m.HumanReadableUpgradeBlockHeight != 0 { - i = encodeVarintExchange(dAtA, i, uint64(m.HumanReadableUpgradeBlockHeight)) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0x80 - } { size := m.DefaultReduceMarginRatio.Size() i -= size @@ -4676,9 +4681,6 @@ func (m *Params) Size() (n int) { } l = m.DefaultReduceMarginRatio.Size() n += 2 + l + sovExchange(uint64(l)) - if m.HumanReadableUpgradeBlockHeight != 0 { - n += 2 + sovExchange(uint64(m.HumanReadableUpgradeBlockHeight)) - } if m.PostOnlyModeBlocksAmount != 0 { n += 2 + sovExchange(uint64(m.PostOnlyModeBlocksAmount)) } @@ -4686,6 +4688,9 @@ func (m *Params) Size() (n int) { if l > 0 { n += 2 + l + sovExchange(uint64(l)) } + if m.PostOnlyModeBlocksAmountAfterDowntime != 0 { + n += 2 + sovExchange(uint64(m.PostOnlyModeBlocksAmountAfterDowntime)) + } return n } @@ -6292,25 +6297,6 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 32: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field HumanReadableUpgradeBlockHeight", wireType) - } - m.HumanReadableUpgradeBlockHeight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowExchange - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.HumanReadableUpgradeBlockHeight |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } case 33: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field PostOnlyModeBlocksAmount", wireType) @@ -6362,6 +6348,25 @@ func (m *Params) Unmarshal(dAtA []byte) error { } m.MinPostOnlyModeDowntimeDuration = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 35: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PostOnlyModeBlocksAmountAfterDowntime", wireType) + } + m.PostOnlyModeBlocksAmountAfterDowntime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.PostOnlyModeBlocksAmountAfterDowntime |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) diff --git a/chain/exchange/types/v2/genesis.pb.go b/chain/exchange/types/v2/genesis.pb.go index cd54048d..dead9887 100644 --- a/chain/exchange/types/v2/genesis.pb.go +++ b/chain/exchange/types/v2/genesis.pb.go @@ -90,8 +90,9 @@ type GenesisState struct { // spot_market_ids_scheduled_to_force_close defines the scheduled markets for // forced closings at genesis SpotMarketIdsScheduledToForceClose []string `protobuf:"bytes,28,rep,name=spot_market_ids_scheduled_to_force_close,json=spotMarketIdsScheduledToForceClose,proto3" json:"spot_market_ids_scheduled_to_force_close,omitempty"` - // denom_decimals defines the denom decimals for the exchange. - DenomDecimals []DenomDecimals `protobuf:"bytes,29,rep,name=denom_decimals,json=denomDecimals,proto3" json:"denom_decimals"` + // auction_exchange_transfer_denom_decimals defines the denom decimals for the + // exchange. + AuctionExchangeTransferDenomDecimals []DenomDecimals `protobuf:"bytes,29,rep,name=auction_exchange_transfer_denom_decimals,json=auctionExchangeTransferDenomDecimals,proto3" json:"auction_exchange_transfer_denom_decimals"` // conditional_derivative_orderbook contains conditional orderbooks for all // markets (both lmit and market conditional orders) ConditionalDerivativeOrderbooks []*ConditionalDerivativeOrderBook `protobuf:"bytes,30,rep,name=conditional_derivative_orderbooks,json=conditionalDerivativeOrderbooks,proto3" json:"conditional_derivative_orderbooks,omitempty"` @@ -335,9 +336,9 @@ func (m *GenesisState) GetSpotMarketIdsScheduledToForceClose() []string { return nil } -func (m *GenesisState) GetDenomDecimals() []DenomDecimals { +func (m *GenesisState) GetAuctionExchangeTransferDenomDecimals() []DenomDecimals { if m != nil { - return m.DenomDecimals + return m.AuctionExchangeTransferDenomDecimals } return nil } @@ -871,120 +872,121 @@ func init() { } var fileDescriptor_fff40080d86ae941 = []byte{ - // 1801 bytes of a gzipped FileDescriptorProto + // 1823 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x5b, 0x6f, 0x1c, 0x49, - 0x15, 0x76, 0xc7, 0xc1, 0xb1, 0xcb, 0x76, 0xb2, 0x29, 0x5f, 0xd2, 0xbe, 0xcd, 0x38, 0xe3, 0x24, - 0x4c, 0x80, 0x9d, 0x59, 0x79, 0xb9, 0x68, 0x59, 0x90, 0xd6, 0xb7, 0x59, 0x99, 0x24, 0x1b, 0x6f, - 0x7b, 0xb4, 0x08, 0x24, 0xe8, 0xad, 0xe9, 0xae, 0x99, 0x29, 0xdc, 0xdd, 0xd5, 0xdb, 0xa7, 0xc6, - 0xc4, 0x44, 0x3c, 0x20, 0x21, 0x84, 0x90, 0x90, 0xf6, 0x27, 0xac, 0x04, 0x2f, 0xfc, 0x93, 0x7d, - 0xe0, 0x61, 0x1f, 0x11, 0x0f, 0x2b, 0x94, 0xbc, 0xf0, 0xc0, 0x8f, 0x40, 0x75, 0xe9, 0xee, 0xb9, - 0xf5, 0x8c, 0x03, 0x6f, 0xd3, 0x75, 0xce, 0xf9, 0xbe, 0x53, 0x75, 0x4e, 0x9d, 0x73, 0x6a, 0xd0, - 0x1e, 0x8b, 0x7e, 0x45, 0x3d, 0xc1, 0x2e, 0x69, 0x9d, 0xbe, 0xf0, 0xba, 0x24, 0xea, 0xd0, 0xfa, - 0xe5, 0x7e, 0xbd, 0x43, 0x23, 0x0a, 0x0c, 0x6a, 0x71, 0xc2, 0x05, 0xc7, 0x6b, 0x99, 0x52, 0x2d, - 0x55, 0xaa, 0x5d, 0xee, 0x6f, 0xae, 0x76, 0x78, 0x87, 0x2b, 0x8d, 0xba, 0xfc, 0xa5, 0x95, 0x37, - 0x1f, 0x8c, 0x47, 0xcc, 0x0c, 0xb5, 0x56, 0x65, 0xbc, 0x56, 0x48, 0x92, 0x0b, 0x2a, 0x8c, 0xce, - 0xc3, 0xf1, 0x3a, 0x3c, 0xf1, 0x69, 0xd2, 0xe2, 0xfc, 0xc2, 0xa8, 0x95, 0xc6, 0xab, 0x89, 0x17, - 0x5a, 0x5e, 0xf9, 0xcf, 0x36, 0x5a, 0xfa, 0x50, 0xef, 0xe7, 0x5c, 0x10, 0x41, 0xf1, 0xfb, 0x68, - 0x2e, 0x26, 0x09, 0x09, 0xc1, 0xb6, 0x76, 0xad, 0xea, 0xe2, 0xfe, 0x4e, 0x6d, 0xec, 0xfe, 0x6a, - 0x67, 0x4a, 0xe9, 0xf0, 0xe6, 0x97, 0x5f, 0x97, 0x67, 0x1c, 0x63, 0x82, 0x8f, 0xd1, 0x12, 0xc4, - 0x5c, 0xb8, 0xda, 0x53, 0xb0, 0x6f, 0xec, 0xce, 0x56, 0x17, 0xf7, 0xef, 0x17, 0x40, 0x9c, 0xc7, - 0x5c, 0x3c, 0x53, 0x9a, 0xce, 0x22, 0x64, 0xbf, 0x01, 0x7f, 0x82, 0xb0, 0x4f, 0x13, 0x76, 0x49, - 0xa4, 0x45, 0x86, 0x35, 0xab, 0xb0, 0xbe, 0x59, 0x80, 0x75, 0x9c, 0x19, 0x18, 0xc4, 0xbb, 0xfe, - 0xd0, 0x0a, 0xe0, 0x8f, 0xd1, 0x6d, 0xe5, 0x5d, 0x76, 0x46, 0xf6, 0x4d, 0x85, 0xf9, 0x60, 0x82, - 0x7f, 0xcf, 0xa5, 0xee, 0x21, 0xe7, 0x17, 0x66, 0xa7, 0xcb, 0x90, 0x2e, 0x4a, 0x00, 0xec, 0xa1, - 0xd5, 0x3e, 0x57, 0x73, 0xe0, 0x6f, 0x28, 0xe0, 0x6f, 0x4d, 0x75, 0x76, 0x18, 0x7e, 0xc5, 0x1f, - 0x14, 0x29, 0x92, 0x0f, 0xd0, 0x7c, 0x8b, 0x04, 0x24, 0xf2, 0x28, 0xd8, 0x73, 0x0a, 0xb8, 0x54, - 0x00, 0x7c, 0xa8, 0xd5, 0x0c, 0x58, 0x66, 0x85, 0x9f, 0xa1, 0x85, 0x98, 0x03, 0x13, 0x8c, 0x47, - 0x60, 0xdf, 0x52, 0x10, 0x8f, 0xa7, 0xfa, 0x76, 0x66, 0x2c, 0x0c, 0x5a, 0x8e, 0x80, 0x7d, 0x74, - 0x0f, 0x7a, 0x2d, 0xe2, 0x79, 0xbc, 0x17, 0x09, 0x57, 0x24, 0xc4, 0xa7, 0x6e, 0xc4, 0x95, 0x7f, - 0xf3, 0x0a, 0xfc, 0x51, 0xd1, 0x89, 0x66, 0x56, 0x1f, 0xf1, 0xdc, 0xcf, 0xb5, 0x1c, 0xac, 0x29, - 0xb1, 0x94, 0x0c, 0xf0, 0xef, 0x2c, 0xb4, 0x4b, 0x5f, 0xc4, 0x2c, 0xb9, 0x72, 0xdb, 0x3d, 0xd1, - 0x4b, 0x28, 0x98, 0x5c, 0x70, 0x59, 0xd4, 0xe6, 0x2e, 0xc8, 0x74, 0xb5, 0x17, 0x14, 0xdf, 0xbb, - 0x05, 0x7c, 0x27, 0xca, 0xbc, 0xa1, 0xad, 0x75, 0x1a, 0x9c, 0x46, 0x6d, 0xae, 0x32, 0xdd, 0x90, - 0x6f, 0xd3, 0x09, 0x3a, 0xd8, 0x47, 0x6b, 0x31, 0x4d, 0x62, 0x2a, 0x7a, 0x24, 0xe8, 0x67, 0xb7, - 0xd1, 0xc4, 0x00, 0x9f, 0xa5, 0x36, 0x39, 0x5e, 0x1a, 0xe0, 0x78, 0x54, 0x84, 0x7f, 0x8b, 0x4a, - 0x23, 0x2c, 0xed, 0x5e, 0xe4, 0xb3, 0xa8, 0x63, 0xb6, 0xb9, 0xa8, 0xe8, 0xf6, 0xaf, 0x47, 0xd7, - 0xd0, 0xa6, 0xfd, 0xbb, 0xdc, 0x8a, 0x8b, 0x55, 0xf0, 0xe7, 0x16, 0x7a, 0x34, 0x72, 0xe1, 0x5c, - 0xa0, 0x42, 0x04, 0x34, 0xa4, 0x91, 0x70, 0xc1, 0xeb, 0x52, 0xbf, 0x17, 0x50, 0xdf, 0x5e, 0x52, - 0x7e, 0x7c, 0xef, 0x9a, 0x97, 0xf0, 0x3c, 0x83, 0xe8, 0x3b, 0x81, 0x3d, 0xbf, 0x50, 0xeb, 0x3c, - 0xe5, 0xc1, 0x3f, 0x40, 0x36, 0x03, 0x57, 0xdd, 0xd6, 0x94, 0xc0, 0xa5, 0x11, 0x69, 0x49, 0x1f, - 0x96, 0x77, 0xad, 0xea, 0xbc, 0xb3, 0xc6, 0x40, 0xde, 0xcf, 0x13, 0x23, 0x3d, 0xd1, 0x42, 0x7c, - 0x82, 0xca, 0x0c, 0xdc, 0x9c, 0x02, 0x46, 0xed, 0x6f, 0x2b, 0xfb, 0x6d, 0x06, 0xb9, 0xbb, 0x30, - 0x0c, 0xf3, 0x19, 0xda, 0x96, 0x69, 0x2d, 0x03, 0x90, 0xd0, 0x5f, 0x93, 0xc4, 0x77, 0x3d, 0x12, - 0xc6, 0x84, 0x75, 0x22, 0x1d, 0xfe, 0x3b, 0xaa, 0x36, 0xbe, 0x53, 0x70, 0x0e, 0x4d, 0x6d, 0xea, - 0x28, 0xcb, 0x23, 0x63, 0x28, 0x8f, 0xc0, 0xd9, 0x10, 0x45, 0x22, 0xfc, 0x12, 0x3d, 0x1c, 0xa2, - 0x8c, 0x39, 0x0f, 0x72, 0xde, 0x34, 0x08, 0xf6, 0x5b, 0x13, 0xef, 0x6f, 0x8a, 0xa9, 0x19, 0xce, - 0x38, 0x0f, 0x9c, 0xfb, 0x03, 0xa4, 0x72, 0x29, 0x55, 0x4a, 0x0f, 0x1c, 0xff, 0xd9, 0x42, 0x8f, - 0x8a, 0x36, 0x9c, 0xde, 0xf3, 0x98, 0xb3, 0x48, 0x80, 0x7d, 0x57, 0xd1, 0xbf, 0xf7, 0x26, 0x5b, - 0x3f, 0xd0, 0x08, 0x67, 0x0a, 0xc0, 0xa9, 0x88, 0xa9, 0x3a, 0xf8, 0x97, 0x68, 0xad, 0x4d, 0xa9, - 0xeb, 0x33, 0xd0, 0xdc, 0xd9, 0xe6, 0xb1, 0x3a, 0xf8, 0xa2, 0x7b, 0xd7, 0xa0, 0xf4, 0xd8, 0x98, - 0xa4, 0x5b, 0x73, 0x56, 0xda, 0xa3, 0x8b, 0x38, 0x41, 0x3b, 0x03, 0xf8, 0x59, 0x2d, 0x63, 0x34, - 0x71, 0x85, 0x08, 0xec, 0x15, 0xb5, 0xcb, 0x77, 0xa6, 0xf3, 0x18, 0xbf, 0x9b, 0x8c, 0x26, 0xcd, - 0xe6, 0x53, 0x67, 0xa3, 0x3d, 0x5e, 0x24, 0x02, 0xfc, 0x7b, 0x0b, 0xed, 0x0d, 0x90, 0xb6, 0x7a, - 0x9e, 0xbc, 0x68, 0x97, 0x3c, 0xe8, 0x85, 0x34, 0x75, 0x01, 0xec, 0x55, 0x45, 0xfd, 0xfd, 0xe9, - 0xd4, 0x87, 0xca, 0xfe, 0x13, 0x65, 0x6e, 0xb8, 0xc0, 0x29, 0xb7, 0x27, 0x2b, 0xe0, 0x1f, 0xa1, - 0x2d, 0x06, 0x6e, 0x9b, 0x25, 0x20, 0x5c, 0xe9, 0x8e, 0x77, 0xe5, 0x05, 0xd4, 0x6d, 0xb3, 0x88, - 0x41, 0x97, 0xfa, 0xf6, 0x9a, 0xba, 0x1d, 0xf7, 0x18, 0x34, 0xa4, 0x46, 0x83, 0xd2, 0x23, 0x29, - 0x6f, 0x18, 0x31, 0xfe, 0x93, 0x85, 0xde, 0x8e, 0xa9, 0x2e, 0x4d, 0xd7, 0x4b, 0xd7, 0xf5, 0x37, - 0x4d, 0xd7, 0xaa, 0xc1, 0x6f, 0x4e, 0xcd, 0xda, 0xbf, 0x58, 0xa8, 0x56, 0xe0, 0x4c, 0x51, 0xf6, - 0xde, 0x53, 0xde, 0x7c, 0xf0, 0xbf, 0x64, 0xaf, 0x26, 0x32, 0x49, 0xfc, 0x78, 0x9c, 0x93, 0xe3, - 0x73, 0xf9, 0x3d, 0xb4, 0xa1, 0x9d, 0x02, 0x97, 0xc7, 0xc2, 0xe5, 0x3d, 0xe1, 0x12, 0xdf, 0x4f, - 0x28, 0x00, 0x05, 0xdb, 0xde, 0x9d, 0xad, 0x2e, 0x38, 0xeb, 0x46, 0xe1, 0x79, 0x2c, 0x9e, 0xf7, - 0xc4, 0x41, 0x2a, 0xc5, 0xbf, 0x40, 0x76, 0x97, 0x81, 0xe0, 0x09, 0xf3, 0x48, 0x60, 0x1a, 0x6d, - 0x42, 0x3d, 0x9e, 0xf8, 0x60, 0x6f, 0xa8, 0x9d, 0xec, 0x4d, 0xd8, 0x09, 0x75, 0xb4, 0xaa, 0xb3, - 0x9e, 0x83, 0xf4, 0xaf, 0xe3, 0x4f, 0xd1, 0x7a, 0x8b, 0x45, 0x24, 0xb9, 0x92, 0x8e, 0xc9, 0xce, - 0x9e, 0x0d, 0x5b, 0x9b, 0x13, 0xdb, 0xdb, 0xa1, 0x32, 0x7a, 0xae, 0x6d, 0xcc, 0xbc, 0xb5, 0xda, - 0x1a, 0x5d, 0x04, 0xdc, 0x45, 0xfb, 0x63, 0x19, 0x5c, 0xe6, 0x43, 0xde, 0x56, 0xdc, 0x36, 0x4f, - 0xfa, 0xfa, 0x8d, 0xbd, 0xa5, 0x0e, 0xe5, 0x3b, 0x63, 0x10, 0x4f, 0x7d, 0xc8, 0x9a, 0x44, 0x83, - 0x27, 0x79, 0xeb, 0xc0, 0x4d, 0x54, 0xed, 0x1b, 0x3d, 0x87, 0xf0, 0x05, 0x97, 0x14, 0x1e, 0x75, - 0xbd, 0x80, 0x03, 0xb5, 0xb7, 0x15, 0x7e, 0x25, 0x9f, 0x39, 0xfb, 0x61, 0x9b, 0xbc, 0x21, 0x55, - 0x8f, 0xa4, 0xa6, 0x1c, 0x19, 0x7d, 0x1a, 0xf1, 0xd0, 0xf5, 0xa9, 0xc7, 0x42, 0x12, 0x80, 0xbd, - 0x33, 0x71, 0x64, 0x3c, 0x96, 0xca, 0xc7, 0x46, 0x37, 0x1d, 0x19, 0xfd, 0xfe, 0x45, 0x39, 0xd6, - 0xdc, 0xf7, 0x78, 0xe4, 0xab, 0x59, 0x8a, 0x04, 0xee, 0xb8, 0xf9, 0x11, 0xec, 0xd2, 0xc4, 0x46, - 0x7b, 0x94, 0xdb, 0x8f, 0x99, 0x25, 0x9d, 0xb2, 0x57, 0x28, 0x57, 0xe8, 0x32, 0xf0, 0xe9, 0x98, - 0x41, 0xa9, 0x1b, 0xf6, 0x02, 0xc1, 0xe2, 0x80, 0xd1, 0x04, 0xec, 0xf2, 0xc4, 0xc0, 0x9b, 0xe1, - 0x81, 0xd2, 0x67, 0x99, 0x89, 0xb3, 0x1a, 0x8e, 0x2e, 0x02, 0xfe, 0x19, 0x5a, 0xc9, 0x76, 0xe3, - 0x02, 0xfd, 0xac, 0x47, 0xd5, 0x78, 0xb8, 0xab, 0xe0, 0xab, 0x05, 0xf0, 0x99, 0x87, 0xe7, 0xc6, - 0xc0, 0xc1, 0x7c, 0x78, 0x09, 0x30, 0x45, 0xb8, 0x6f, 0xfa, 0xd4, 0xd5, 0x13, 0xec, 0xfb, 0x13, - 0xab, 0xe6, 0x41, 0xa7, 0x93, 0xd0, 0x0e, 0x11, 0x34, 0x9f, 0x40, 0x75, 0x59, 0xd4, 0x57, 0xc1, - 0xb9, 0x0b, 0x43, 0xeb, 0x80, 0x7f, 0x82, 0x6e, 0x9b, 0x33, 0x4a, 0x29, 0x2a, 0x13, 0x6f, 0x9c, - 0x3e, 0x1b, 0x83, 0xba, 0x1c, 0xf6, 0x7d, 0x01, 0x26, 0x68, 0xb5, 0x93, 0x10, 0xd9, 0x67, 0x7a, - 0xa2, 0xcb, 0x13, 0xf6, 0x1b, 0xa2, 0x47, 0xf1, 0x3d, 0x85, 0x58, 0x2b, 0x2a, 0xf5, 0xbd, 0x20, - 0xf8, 0x50, 0x9a, 0x1d, 0x0c, 0x58, 0x39, 0x2b, 0x9d, 0xd1, 0x45, 0xfc, 0x04, 0x2d, 0x13, 0x05, - 0xe1, 0x2a, 0x29, 0xd8, 0x0f, 0x26, 0x4e, 0xe2, 0x12, 0xfb, 0x40, 0x2d, 0x2b, 0x06, 0x67, 0x89, - 0xe4, 0x1f, 0x80, 0x7f, 0x8a, 0x56, 0x74, 0xda, 0x87, 0x2c, 0x72, 0x23, 0xae, 0x33, 0x09, 0xec, - 0x87, 0x53, 0x9e, 0x60, 0x11, 0x0f, 0x9f, 0xb1, 0xe8, 0x23, 0xa3, 0x2f, 0x9f, 0x60, 0x83, 0x2b, - 0x50, 0x79, 0x8a, 0xee, 0x8e, 0x04, 0x19, 0x6f, 0xa2, 0xf9, 0x34, 0x43, 0xd4, 0xa3, 0xf3, 0xa6, - 0x93, 0x7d, 0xe3, 0x2d, 0xb4, 0x90, 0xdd, 0x68, 0xfb, 0xc6, 0xae, 0x55, 0x5d, 0x70, 0xe6, 0x43, - 0x73, 0x67, 0x2b, 0x2f, 0xd1, 0x46, 0x61, 0x27, 0xc6, 0x36, 0xba, 0x65, 0x22, 0xaa, 0x40, 0x17, - 0x9c, 0xf4, 0x13, 0x1f, 0xa3, 0xf9, 0xac, 0xcf, 0xdf, 0x50, 0xf3, 0xc4, 0xe3, 0xe9, 0xcd, 0x36, - 0x6d, 0xf0, 0xb7, 0x84, 0x6e, 0xe7, 0x95, 0xbf, 0x5a, 0xa8, 0x3c, 0xa5, 0x19, 0xe3, 0xef, 0xa2, - 0x75, 0xd3, 0xe4, 0x41, 0x90, 0x44, 0x8e, 0x17, 0x21, 0x05, 0x41, 0xc2, 0x58, 0xb9, 0x34, 0xeb, - 0xac, 0x6a, 0xe9, 0xb9, 0x14, 0x36, 0x53, 0x19, 0x7e, 0x82, 0x6e, 0x0f, 0x66, 0xb7, 0x79, 0x47, - 0x17, 0x15, 0x9d, 0x83, 0x81, 0x84, 0x5e, 0x1e, 0xc8, 0xe3, 0x4a, 0x1b, 0x2d, 0x0f, 0xc8, 0x27, - 0x9c, 0xcb, 0xfb, 0x68, 0x2e, 0xe3, 0xb3, 0xaa, 0x0b, 0x87, 0x7b, 0xb2, 0x7c, 0xfd, 0xf3, 0xeb, - 0xf2, 0x96, 0xc7, 0x21, 0xe4, 0x00, 0xfe, 0x45, 0x8d, 0xf1, 0x7a, 0x48, 0x44, 0xb7, 0xf6, 0x94, - 0x76, 0x88, 0x77, 0x75, 0x4c, 0x3d, 0xc7, 0x98, 0x54, 0x5e, 0xa2, 0xca, 0x35, 0x7a, 0xe1, 0x44, - 0x72, 0xd3, 0xa2, 0xdf, 0x84, 0x5c, 0x9b, 0x54, 0xfe, 0x6e, 0xa1, 0xc7, 0xd7, 0xee, 0xdd, 0xf8, - 0xc7, 0x68, 0xab, 0x7f, 0x64, 0x19, 0x1f, 0x1a, 0x3b, 0xc9, 0xe6, 0x8e, 0xa1, 0xf0, 0x7c, 0x9a, - 0x87, 0x27, 0xf3, 0xf8, 0xff, 0x1c, 0x89, 0xd3, 0x98, 0xe9, 0xcf, 0xca, 0xdf, 0x2c, 0x74, 0x67, - 0xe8, 0xa9, 0x8c, 0xf7, 0xd0, 0x72, 0x5f, 0xd5, 0x63, 0xbe, 0x39, 0xbf, 0xa5, 0x7c, 0xf1, 0xd4, - 0xc7, 0x1d, 0xb4, 0x3e, 0xfe, 0x61, 0x6e, 0xf2, 0xfc, 0xdb, 0x53, 0xdf, 0xe5, 0xf9, 0x03, 0xdc, - 0x74, 0xaf, 0xd5, 0x71, 0x8f, 0xf3, 0x1f, 0xce, 0xff, 0xf1, 0x8b, 0xf2, 0xcc, 0xbf, 0xbf, 0x28, - 0xcf, 0x54, 0xfe, 0x70, 0x03, 0xdd, 0x2b, 0x28, 0x54, 0x32, 0xda, 0xaa, 0x18, 0xd1, 0x24, 0x8d, - 0xb6, 0xf9, 0xc4, 0x4f, 0x10, 0x16, 0x5c, 0x90, 0xc0, 0x35, 0x65, 0x31, 0x54, 0x29, 0xa1, 0x23, - 0xbf, 0x63, 0x22, 0xbf, 0x36, 0x1a, 0xf9, 0xd3, 0x48, 0x38, 0x6f, 0x29, 0x43, 0x4d, 0xa7, 0xcc, - 0xf0, 0x01, 0xda, 0x09, 0x08, 0x08, 0xd7, 0xa7, 0x81, 0xac, 0xf1, 0x6a, 0xcc, 0xf0, 0xba, 0xd4, - 0xbb, 0x90, 0x9d, 0x9f, 0x85, 0xd4, 0x9e, 0x55, 0x11, 0xdd, 0x94, 0x4a, 0xc7, 0xb9, 0xce, 0x91, - 0x56, 0x91, 0x81, 0xc5, 0x07, 0x68, 0xce, 0x94, 0xcd, 0x9b, 0x13, 0xc7, 0xd5, 0xd1, 0x5d, 0x3a, - 0xc6, 0xb0, 0x92, 0xa0, 0x3b, 0x43, 0x45, 0x35, 0xdf, 0x3f, 0x1d, 0xdc, 0x3f, 0xc5, 0x27, 0x68, - 0xa9, 0xbf, 0x5a, 0x9b, 0xf0, 0x54, 0x0a, 0x2f, 0x78, 0x5e, 0xa8, 0x17, 0xfb, 0x0a, 0xf5, 0xe1, - 0xc5, 0x97, 0xaf, 0x4a, 0xd6, 0x57, 0xaf, 0x4a, 0xd6, 0xbf, 0x5e, 0x95, 0xac, 0xcf, 0x5f, 0x97, - 0x66, 0xbe, 0x7a, 0x5d, 0x9a, 0xf9, 0xc7, 0xeb, 0xd2, 0xcc, 0xcf, 0x3f, 0xee, 0x30, 0xd1, 0xed, - 0xb5, 0x6a, 0x1e, 0x0f, 0xeb, 0xa7, 0x29, 0xe8, 0x53, 0xd2, 0x82, 0x7a, 0x46, 0xf1, 0xb6, 0xc7, - 0x13, 0xda, 0xff, 0xd9, 0x25, 0x2c, 0xaa, 0x87, 0x5c, 0x4e, 0x41, 0x90, 0xff, 0x5b, 0x28, 0xae, - 0x62, 0x0a, 0xf5, 0xcb, 0xfd, 0xd6, 0x9c, 0xfa, 0xc7, 0xf0, 0xdd, 0xff, 0x06, 0x00, 0x00, 0xff, - 0xff, 0x48, 0x72, 0x4c, 0x49, 0x16, 0x15, 0x00, 0x00, + 0x15, 0x76, 0xc7, 0xc1, 0xb1, 0xcb, 0x76, 0xb2, 0x29, 0x5f, 0xd2, 0xb6, 0xe3, 0x19, 0x67, 0x9c, + 0x84, 0x09, 0xb0, 0x33, 0x2b, 0x2f, 0x17, 0x2d, 0x0b, 0xd2, 0xfa, 0x36, 0x2b, 0x93, 0x64, 0xe3, + 0x6d, 0x8f, 0x16, 0x81, 0x04, 0xbd, 0x35, 0xdd, 0x35, 0x33, 0x85, 0xbb, 0xbb, 0x7a, 0xab, 0xaa, + 0x4d, 0x4c, 0xc4, 0x03, 0x08, 0x21, 0x84, 0x84, 0xb4, 0xbf, 0x00, 0xad, 0x04, 0x2f, 0xfc, 0x93, + 0x7d, 0xe0, 0x61, 0x1f, 0x11, 0x0f, 0x11, 0x4a, 0x5e, 0xf8, 0x19, 0xa8, 0x2e, 0xdd, 0x3d, 0xb7, + 0xee, 0x71, 0xd8, 0xb7, 0xe9, 0x3a, 0xe7, 0x7c, 0xdf, 0xa9, 0x3a, 0xa7, 0xce, 0x39, 0x35, 0x60, + 0x97, 0x44, 0xbf, 0xc2, 0x9e, 0x20, 0x17, 0xb8, 0x89, 0x9f, 0x7b, 0x7d, 0x14, 0xf5, 0x70, 0xf3, + 0x62, 0xaf, 0xd9, 0xc3, 0x11, 0xe6, 0x84, 0x37, 0x62, 0x46, 0x05, 0x85, 0x6b, 0x99, 0x52, 0x23, + 0x55, 0x6a, 0x5c, 0xec, 0x6d, 0xae, 0xf6, 0x68, 0x8f, 0x2a, 0x8d, 0xa6, 0xfc, 0xa5, 0x95, 0x37, + 0xef, 0x4f, 0x46, 0xcc, 0x0c, 0xb5, 0x56, 0x6d, 0xb2, 0x56, 0x88, 0xd8, 0x39, 0x16, 0x46, 0xe7, + 0xc1, 0x64, 0x1d, 0xca, 0x7c, 0xcc, 0x3a, 0x94, 0x9e, 0x1b, 0xb5, 0xca, 0x64, 0x35, 0xf1, 0x5c, + 0xcb, 0x6b, 0x7f, 0xdd, 0x06, 0x4b, 0x1f, 0xea, 0xfd, 0x9c, 0x09, 0x24, 0x30, 0x7c, 0x1f, 0xcc, + 0xc5, 0x88, 0xa1, 0x90, 0xdb, 0xd6, 0x8e, 0x55, 0x5f, 0xdc, 0xdb, 0x6e, 0x4c, 0xdc, 0x5f, 0xe3, + 0x54, 0x29, 0x1d, 0x5c, 0xff, 0xf2, 0x65, 0x75, 0xc6, 0x31, 0x26, 0xf0, 0x08, 0x2c, 0xf1, 0x98, + 0x0a, 0x57, 0x7b, 0xca, 0xed, 0x6b, 0x3b, 0xb3, 0xf5, 0xc5, 0xbd, 0x7b, 0x05, 0x10, 0x67, 0x31, + 0x15, 0x4f, 0x95, 0xa6, 0xb3, 0xc8, 0xb3, 0xdf, 0x1c, 0x7e, 0x02, 0xa0, 0x8f, 0x19, 0xb9, 0x40, + 0xd2, 0x22, 0xc3, 0x9a, 0x55, 0x58, 0xdf, 0x2c, 0xc0, 0x3a, 0xca, 0x0c, 0x0c, 0xe2, 0x6d, 0x7f, + 0x64, 0x85, 0xc3, 0x8f, 0xc1, 0x4d, 0xe5, 0x5d, 0x76, 0x46, 0xf6, 0x75, 0x85, 0x79, 0xbf, 0xc4, + 0xbf, 0x67, 0x52, 0xf7, 0x80, 0xd2, 0x73, 0xb3, 0xd3, 0x65, 0x9e, 0x2e, 0x4a, 0x00, 0xe8, 0x81, + 0xd5, 0x01, 0x57, 0x73, 0xe0, 0x6f, 0x28, 0xe0, 0x6f, 0x4d, 0x75, 0x76, 0x14, 0x7e, 0xc5, 0x1f, + 0x16, 0x29, 0x92, 0x0f, 0xc0, 0x7c, 0x07, 0x05, 0x28, 0xf2, 0x30, 0xb7, 0xe7, 0x14, 0x70, 0xa5, + 0x00, 0xf8, 0x40, 0xab, 0x19, 0xb0, 0xcc, 0x0a, 0x3e, 0x05, 0x0b, 0x31, 0xe5, 0x44, 0x10, 0x1a, + 0x71, 0xfb, 0x86, 0x82, 0x78, 0x34, 0xd5, 0xb7, 0x53, 0x63, 0x61, 0xd0, 0x72, 0x04, 0xe8, 0x83, + 0x3b, 0x3c, 0xe9, 0x20, 0xcf, 0xa3, 0x49, 0x24, 0x5c, 0xc1, 0x90, 0x8f, 0xdd, 0x88, 0x2a, 0xff, + 0xe6, 0x15, 0xf8, 0xc3, 0xa2, 0x13, 0xcd, 0xac, 0x3e, 0xa2, 0xb9, 0x9f, 0x6b, 0x39, 0x58, 0x5b, + 0x62, 0x29, 0x19, 0x87, 0xbf, 0xb3, 0xc0, 0x0e, 0x7e, 0x1e, 0x13, 0x76, 0xe9, 0x76, 0x13, 0x91, + 0x30, 0xcc, 0x4d, 0x2e, 0xb8, 0x24, 0xea, 0x52, 0x97, 0xcb, 0x74, 0xb5, 0x17, 0x14, 0xdf, 0xbb, + 0x05, 0x7c, 0xc7, 0xca, 0xbc, 0xa5, 0xad, 0x75, 0x1a, 0x9c, 0x44, 0x5d, 0xaa, 0x32, 0xdd, 0x90, + 0xdf, 0xc5, 0x25, 0x3a, 0xd0, 0x07, 0x6b, 0x31, 0x66, 0x31, 0x16, 0x09, 0x0a, 0x06, 0xd9, 0x6d, + 0x50, 0x1a, 0xe0, 0xd3, 0xd4, 0x26, 0xc7, 0x4b, 0x03, 0x1c, 0x8f, 0x8b, 0xe0, 0x6f, 0x41, 0x65, + 0x8c, 0xa5, 0x9b, 0x44, 0x3e, 0x89, 0x7a, 0x66, 0x9b, 0x8b, 0x8a, 0x6e, 0xef, 0x6a, 0x74, 0x2d, + 0x6d, 0x3a, 0xb8, 0xcb, 0xad, 0xb8, 0x58, 0x05, 0x7e, 0x6e, 0x81, 0x87, 0x63, 0x17, 0xce, 0xe5, + 0x58, 0x88, 0x00, 0x87, 0x38, 0x12, 0x2e, 0xf7, 0xfa, 0xd8, 0x4f, 0x02, 0xec, 0xdb, 0x4b, 0xca, + 0x8f, 0xef, 0x5d, 0xf1, 0x12, 0x9e, 0x65, 0x10, 0x03, 0x27, 0xb0, 0xeb, 0x17, 0x6a, 0x9d, 0xa5, + 0x3c, 0xf0, 0x07, 0xc0, 0x26, 0xdc, 0x55, 0xb7, 0x35, 0x25, 0x70, 0x71, 0x84, 0x3a, 0xd2, 0x87, + 0xe5, 0x1d, 0xab, 0x3e, 0xef, 0xac, 0x11, 0x2e, 0xef, 0xe7, 0xb1, 0x91, 0x1e, 0x6b, 0x21, 0x3c, + 0x06, 0x55, 0xc2, 0xdd, 0x9c, 0x82, 0x8f, 0xdb, 0xdf, 0x54, 0xf6, 0x77, 0x09, 0xcf, 0xdd, 0xe5, + 0xa3, 0x30, 0x9f, 0x81, 0xbb, 0x32, 0xad, 0x65, 0x00, 0x18, 0xfe, 0x35, 0x62, 0xbe, 0xeb, 0xa1, + 0x30, 0x46, 0xa4, 0x17, 0xe9, 0xf0, 0xdf, 0x52, 0xb5, 0xf1, 0x9d, 0x82, 0x73, 0x68, 0x6b, 0x53, + 0x47, 0x59, 0x1e, 0x1a, 0x43, 0x79, 0x04, 0xce, 0x86, 0x28, 0x12, 0xc1, 0x17, 0xe0, 0xc1, 0x08, + 0x65, 0x4c, 0x69, 0x90, 0xf3, 0xa6, 0x41, 0xb0, 0xdf, 0x2a, 0xbd, 0xbf, 0x29, 0xa6, 0x66, 0x38, + 0xa5, 0x34, 0x70, 0xee, 0x0d, 0x91, 0xca, 0xa5, 0x54, 0x29, 0x3d, 0x70, 0xf8, 0x17, 0x0b, 0x3c, + 0x2c, 0xda, 0x70, 0x7a, 0xcf, 0x63, 0x4a, 0x22, 0xc1, 0xed, 0xdb, 0x8a, 0xfe, 0xbd, 0x37, 0xd9, + 0xfa, 0xbe, 0x46, 0x38, 0x55, 0x00, 0x4e, 0x4d, 0x4c, 0xd5, 0x81, 0xbf, 0x04, 0x6b, 0x5d, 0x8c, + 0x5d, 0x9f, 0x70, 0xcd, 0x9d, 0x6d, 0x1e, 0xaa, 0x83, 0x2f, 0xba, 0x77, 0x2d, 0x8c, 0x8f, 0x8c, + 0x49, 0xba, 0x35, 0x67, 0xa5, 0x3b, 0xbe, 0x08, 0x19, 0xd8, 0x1e, 0xc2, 0xcf, 0x6a, 0x19, 0xc1, + 0xcc, 0x15, 0x22, 0xb0, 0x57, 0xd4, 0x2e, 0xdf, 0x99, 0xce, 0x63, 0xfc, 0x6e, 0x13, 0xcc, 0xda, + 0xed, 0x27, 0xce, 0x46, 0x77, 0xb2, 0x48, 0x04, 0xf0, 0x0f, 0x16, 0xd8, 0x1d, 0x22, 0xed, 0x24, + 0x9e, 0xbc, 0x68, 0x17, 0x34, 0x48, 0x42, 0x9c, 0xba, 0xc0, 0xed, 0x55, 0x45, 0xfd, 0xfd, 0xe9, + 0xd4, 0x07, 0xca, 0xfe, 0x13, 0x65, 0x6e, 0xb8, 0xb8, 0x53, 0xed, 0x96, 0x2b, 0xc0, 0x1f, 0x81, + 0x2d, 0xc2, 0xdd, 0x2e, 0x61, 0x5c, 0xb8, 0xd2, 0x1d, 0xef, 0xd2, 0x0b, 0xb0, 0xdb, 0x25, 0x11, + 0xe1, 0x7d, 0xec, 0xdb, 0x6b, 0xea, 0x76, 0xdc, 0x21, 0xbc, 0x25, 0x35, 0x5a, 0x18, 0x1f, 0x4a, + 0x79, 0xcb, 0x88, 0xe1, 0x9f, 0x2d, 0xf0, 0x76, 0x8c, 0x75, 0x69, 0xba, 0x5a, 0xba, 0xae, 0xbf, + 0x69, 0xba, 0xd6, 0x0d, 0x7e, 0x7b, 0x6a, 0xd6, 0xfe, 0xcd, 0x02, 0x8d, 0x02, 0x67, 0x8a, 0xb2, + 0xf7, 0x8e, 0xf2, 0xe6, 0x83, 0xff, 0x27, 0x7b, 0x35, 0x91, 0x49, 0xe2, 0x47, 0x93, 0x9c, 0x9c, + 0x9c, 0xcb, 0xef, 0x81, 0x0d, 0xed, 0x14, 0x77, 0x69, 0x2c, 0x5c, 0x9a, 0x08, 0x17, 0xf9, 0x3e, + 0xc3, 0x9c, 0x63, 0x6e, 0xdb, 0x3b, 0xb3, 0xf5, 0x05, 0x67, 0xdd, 0x28, 0x3c, 0x8b, 0xc5, 0xb3, + 0x44, 0xec, 0xa7, 0x52, 0xf8, 0x0b, 0x60, 0xf7, 0x09, 0x17, 0x94, 0x11, 0x0f, 0x05, 0xa6, 0xd1, + 0x32, 0xec, 0x51, 0xe6, 0x73, 0x7b, 0x43, 0xed, 0x64, 0xb7, 0x64, 0x27, 0xd8, 0xd1, 0xaa, 0xce, + 0x7a, 0x0e, 0x32, 0xb8, 0x0e, 0x3f, 0x05, 0xeb, 0x1d, 0x12, 0x21, 0x76, 0x29, 0x1d, 0x93, 0x9d, + 0x3d, 0x1b, 0xb6, 0x36, 0x4b, 0xdb, 0xdb, 0x81, 0x32, 0x7a, 0xa6, 0x6d, 0xcc, 0xbc, 0xb5, 0xda, + 0x19, 0x5f, 0xe4, 0xb0, 0x0f, 0xf6, 0x26, 0x32, 0xb8, 0xc4, 0xe7, 0x79, 0x5b, 0x71, 0xbb, 0x94, + 0x0d, 0xf4, 0x1b, 0x7b, 0x4b, 0x1d, 0xca, 0x77, 0x26, 0x20, 0x9e, 0xf8, 0x3c, 0x6b, 0x12, 0x2d, + 0xca, 0xf2, 0xd6, 0x01, 0xdb, 0xa0, 0x3e, 0x30, 0x7a, 0x8e, 0xe0, 0x0b, 0x2a, 0x29, 0x3c, 0xec, + 0x7a, 0x01, 0xe5, 0xd8, 0xbe, 0xab, 0xf0, 0x6b, 0xf9, 0xcc, 0x39, 0x08, 0xdb, 0xa6, 0x2d, 0xa9, + 0x7a, 0x28, 0x35, 0xe1, 0xef, 0x2d, 0x50, 0x47, 0x89, 0x27, 0x3d, 0xc8, 0x1b, 0x89, 0x60, 0x28, + 0xe2, 0x5d, 0xcc, 0x5c, 0x1f, 0x47, 0x34, 0x74, 0x7d, 0xec, 0x91, 0x10, 0x05, 0xdc, 0xde, 0x2e, + 0x9d, 0x26, 0x8f, 0xa4, 0xf2, 0x91, 0xd1, 0x35, 0xbd, 0xf0, 0xbe, 0xc1, 0x4e, 0xdb, 0x4f, 0xdb, + 0x20, 0x0f, 0xe9, 0xca, 0x41, 0xe8, 0x9e, 0x47, 0x23, 0x5f, 0x4d, 0x5f, 0x28, 0x70, 0x27, 0x4d, + 0x9c, 0xdc, 0xae, 0x94, 0xb6, 0xe6, 0xc3, 0xdc, 0x7e, 0xc2, 0xf4, 0xe9, 0x54, 0xbd, 0x42, 0xb9, + 0x42, 0x97, 0xa9, 0x92, 0x0e, 0x26, 0x18, 0xbb, 0x61, 0x12, 0x08, 0x12, 0x07, 0x04, 0x33, 0x6e, + 0x57, 0x4b, 0x53, 0xc5, 0x8c, 0x1b, 0x18, 0x3f, 0xcd, 0x4c, 0x9c, 0xd5, 0x70, 0x7c, 0x91, 0xc3, + 0x9f, 0x81, 0x95, 0x6c, 0x37, 0x2e, 0xc7, 0x9f, 0x25, 0x58, 0x0d, 0x94, 0x3b, 0x0a, 0xbe, 0x5e, + 0x00, 0x9f, 0x79, 0x78, 0x66, 0x0c, 0x1c, 0x48, 0x47, 0x97, 0x38, 0xc4, 0x00, 0x0e, 0xcc, 0xab, + 0xba, 0xde, 0x72, 0xfb, 0x5e, 0x69, 0x9d, 0xdd, 0xef, 0xf5, 0x18, 0xee, 0x21, 0x81, 0xf3, 0x99, + 0x55, 0x17, 0x52, 0x7d, 0x79, 0x9c, 0xdb, 0x7c, 0x64, 0x9d, 0xc3, 0x9f, 0x80, 0x9b, 0xe6, 0x8c, + 0x52, 0x8a, 0x5a, 0xe9, 0x1d, 0xd5, 0x67, 0x63, 0x50, 0x97, 0xc3, 0x81, 0x2f, 0x0e, 0x11, 0x58, + 0xed, 0x31, 0x24, 0x3b, 0x53, 0x22, 0xfa, 0x94, 0x91, 0xdf, 0x20, 0x3d, 0xbc, 0xef, 0x2a, 0xc4, + 0x46, 0x51, 0x73, 0x48, 0x82, 0xe0, 0x43, 0x69, 0xb6, 0x3f, 0x64, 0xe5, 0xac, 0xf4, 0xc6, 0x17, + 0xe1, 0x63, 0xb0, 0x8c, 0x14, 0x84, 0xab, 0xa4, 0xdc, 0xbe, 0x5f, 0x3a, 0xbb, 0x4b, 0xec, 0x7d, + 0xb5, 0xac, 0x18, 0x9c, 0x25, 0x94, 0x7f, 0x70, 0xf8, 0x53, 0xb0, 0xa2, 0x6f, 0x43, 0x48, 0x22, + 0x37, 0xa2, 0x3a, 0x93, 0xb8, 0xfd, 0x60, 0xca, 0xa3, 0x2d, 0xa2, 0xe1, 0x53, 0x12, 0x7d, 0x64, + 0xf4, 0xe5, 0xa3, 0x6d, 0x78, 0x85, 0xd7, 0x9e, 0x80, 0xdb, 0x63, 0x41, 0x86, 0x9b, 0x60, 0x3e, + 0xcd, 0x10, 0xf5, 0x4c, 0xbd, 0xee, 0x64, 0xdf, 0x70, 0x0b, 0x2c, 0x64, 0x35, 0xc0, 0xbe, 0xb6, + 0x63, 0xd5, 0x17, 0x9c, 0xf9, 0xd0, 0xdc, 0xf2, 0xda, 0x0b, 0xb0, 0x51, 0xd8, 0xbb, 0xa1, 0x0d, + 0x6e, 0x98, 0x88, 0x2a, 0xd0, 0x05, 0x27, 0xfd, 0x84, 0x47, 0x60, 0x3e, 0x9b, 0x0c, 0xae, 0xa9, + 0x09, 0xe4, 0xd1, 0xf4, 0xf6, 0x9c, 0x8e, 0x04, 0x37, 0x84, 0x1e, 0x00, 0x6a, 0x7f, 0xb7, 0x40, + 0x75, 0x4a, 0xfb, 0x86, 0xdf, 0x05, 0xeb, 0x66, 0x2c, 0xe0, 0x02, 0x31, 0x39, 0x90, 0x84, 0x98, + 0x0b, 0x14, 0xc6, 0xca, 0xa5, 0x59, 0x67, 0x55, 0x4b, 0xcf, 0xa4, 0xb0, 0x9d, 0xca, 0xe0, 0x63, + 0x70, 0x73, 0x38, 0xbb, 0xcd, 0xcb, 0xbb, 0xa8, 0x16, 0xed, 0x0f, 0x25, 0xf4, 0xf2, 0x50, 0x1e, + 0xd7, 0xba, 0x60, 0x79, 0x48, 0x5e, 0x72, 0x2e, 0xef, 0x83, 0xb9, 0x8c, 0xcf, 0xaa, 0x2f, 0x1c, + 0xec, 0xca, 0xaa, 0xf6, 0xef, 0x97, 0xd5, 0x2d, 0x8f, 0xf2, 0x90, 0x72, 0xee, 0x9f, 0x37, 0x08, + 0x6d, 0x86, 0x48, 0xf4, 0x1b, 0x4f, 0x70, 0x0f, 0x79, 0x97, 0x47, 0xd8, 0x73, 0x8c, 0x49, 0xed, + 0x05, 0xa8, 0x5d, 0xa1, 0x7b, 0x96, 0x92, 0x9b, 0xa6, 0xfe, 0x26, 0xe4, 0xda, 0xa4, 0xf6, 0x4f, + 0x0b, 0x3c, 0xba, 0x72, 0xb7, 0x87, 0x3f, 0x06, 0x5b, 0x83, 0x43, 0xce, 0xe4, 0xd0, 0xd8, 0x2c, + 0x9b, 0x54, 0x46, 0xc2, 0xf3, 0x69, 0x1e, 0x9e, 0xcc, 0xe3, 0xaf, 0x39, 0x44, 0xa7, 0x31, 0xd3, + 0x9f, 0xb5, 0x7f, 0x58, 0xe0, 0xd6, 0xc8, 0xe3, 0x1a, 0xee, 0x82, 0xe5, 0x81, 0xaa, 0x47, 0x7c, + 0x73, 0x7e, 0x4b, 0xf9, 0xe2, 0x89, 0x0f, 0x7b, 0x60, 0x7d, 0xf2, 0x53, 0xde, 0xe4, 0xf9, 0xb7, + 0xa7, 0xbe, 0xe4, 0xf3, 0x27, 0xbb, 0x69, 0x6a, 0xab, 0x93, 0x9e, 0xf3, 0x3f, 0x9c, 0xff, 0xd3, + 0x17, 0xd5, 0x99, 0xff, 0x7e, 0x51, 0x9d, 0xa9, 0xfd, 0xf1, 0x1a, 0xb8, 0x53, 0x50, 0xa8, 0x64, + 0xb4, 0x55, 0x31, 0xc2, 0x2c, 0x8d, 0xb6, 0xf9, 0x84, 0x8f, 0x01, 0x14, 0x54, 0xa0, 0xc0, 0x35, + 0x65, 0x31, 0x54, 0x29, 0xa1, 0x23, 0xbf, 0x6d, 0x22, 0xbf, 0x36, 0x1e, 0xf9, 0x93, 0x48, 0x38, + 0x6f, 0x29, 0x43, 0x4d, 0xa7, 0xcc, 0xe0, 0x3e, 0xd8, 0x0e, 0x10, 0x17, 0xae, 0x8f, 0x03, 0x59, + 0xe3, 0xd5, 0x60, 0xe2, 0xf5, 0xb1, 0x77, 0x2e, 0x67, 0x05, 0x12, 0x62, 0x7b, 0x56, 0x45, 0x74, + 0x53, 0x2a, 0x1d, 0xe5, 0x3a, 0x87, 0x5a, 0x45, 0x06, 0x16, 0xee, 0x83, 0x39, 0x53, 0x36, 0xaf, + 0x97, 0x0e, 0xb8, 0xe3, 0xbb, 0x74, 0x8c, 0x61, 0x8d, 0x81, 0x5b, 0x23, 0x45, 0x35, 0xdf, 0x3f, + 0x1e, 0xde, 0x3f, 0x86, 0xc7, 0x60, 0x69, 0xb0, 0x5a, 0x9b, 0xf0, 0xd4, 0x0a, 0x2f, 0x78, 0x5e, + 0xa8, 0x17, 0x07, 0x0a, 0xf5, 0xc1, 0xf9, 0x97, 0xaf, 0x2a, 0xd6, 0x57, 0xaf, 0x2a, 0xd6, 0x7f, + 0x5e, 0x55, 0xac, 0xcf, 0x5f, 0x57, 0x66, 0xbe, 0x7a, 0x5d, 0x99, 0xf9, 0xd7, 0xeb, 0xca, 0xcc, + 0xcf, 0x3f, 0xee, 0x11, 0xd1, 0x4f, 0x3a, 0x0d, 0x8f, 0x86, 0xcd, 0x93, 0x14, 0xf4, 0x09, 0xea, + 0xf0, 0x66, 0x46, 0xf1, 0xb6, 0x47, 0x19, 0x1e, 0xfc, 0xec, 0x23, 0x12, 0x35, 0x43, 0x2a, 0xe7, + 0x26, 0x9e, 0xff, 0xbf, 0x28, 0x2e, 0x63, 0xcc, 0x9b, 0x17, 0x7b, 0x9d, 0x39, 0xf5, 0x1f, 0xe3, + 0xbb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x10, 0x54, 0x69, 0xce, 0x48, 0x15, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -1135,10 +1137,10 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0xf2 } } - if len(m.DenomDecimals) > 0 { - for iNdEx := len(m.DenomDecimals) - 1; iNdEx >= 0; iNdEx-- { + if len(m.AuctionExchangeTransferDenomDecimals) > 0 { + for iNdEx := len(m.AuctionExchangeTransferDenomDecimals) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.DenomDecimals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.AuctionExchangeTransferDenomDecimals[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2087,8 +2089,8 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } - if len(m.DenomDecimals) > 0 { - for _, e := range m.DenomDecimals { + if len(m.AuctionExchangeTransferDenomDecimals) > 0 { + for _, e := range m.AuctionExchangeTransferDenomDecimals { l = e.Size() n += 2 + l + sovGenesis(uint64(l)) } @@ -3243,7 +3245,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 29: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DenomDecimals", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuctionExchangeTransferDenomDecimals", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -3270,8 +3272,8 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DenomDecimals = append(m.DenomDecimals, DenomDecimals{}) - if err := m.DenomDecimals[len(m.DenomDecimals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.AuctionExchangeTransferDenomDecimals = append(m.AuctionExchangeTransferDenomDecimals, DenomDecimals{}) + if err := m.AuctionExchangeTransferDenomDecimals[len(m.AuctionExchangeTransferDenomDecimals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/exchange/types/v2/market.go b/chain/exchange/types/v2/market.go index 519c6563..01678d46 100644 --- a/chain/exchange/types/v2/market.go +++ b/chain/exchange/types/v2/market.go @@ -185,6 +185,10 @@ func (m *DerivativeMarket) GetQuoteDecimals() uint32 { return m.QuoteDecimals } +func (m *DerivativeMarket) GetOpenNotionalCap() OpenNotionalCap { + return m.OpenNotionalCap +} + func (m *DerivativeMarket) PriceFromChainFormat(price math.LegacyDec) math.LegacyDec { return types.PriceFromChainFormat(price, 0, m.QuoteDecimals) } @@ -286,6 +290,10 @@ func (m *BinaryOptionsMarket) GetQuoteDecimals() uint32 { return m.QuoteDecimals } +func (m *BinaryOptionsMarket) GetOpenNotionalCap() OpenNotionalCap { + return m.OpenNotionalCap +} + func (m *BinaryOptionsMarket) PriceFromChainFormat(price math.LegacyDec) math.LegacyDec { return types.PriceFromChainFormat(price, 0, m.QuoteDecimals) } diff --git a/chain/exchange/types/v2/market.pb.go b/chain/exchange/types/v2/market.pb.go index f91997bc..b9beb79f 100644 --- a/chain/exchange/types/v2/market.pb.go +++ b/chain/exchange/types/v2/market.pb.go @@ -59,6 +59,164 @@ func (MarketStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor_c255fc568a8e9667, []int{0} } +type OpenNotionalCap struct { + // Types that are valid to be assigned to Cap: + // *OpenNotionalCap_Uncapped + // *OpenNotionalCap_Capped + Cap isOpenNotionalCap_Cap `protobuf_oneof:"cap"` +} + +func (m *OpenNotionalCap) Reset() { *m = OpenNotionalCap{} } +func (m *OpenNotionalCap) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCap) ProtoMessage() {} +func (*OpenNotionalCap) Descriptor() ([]byte, []int) { + return fileDescriptor_c255fc568a8e9667, []int{0} +} +func (m *OpenNotionalCap) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCap.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCap) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCap.Merge(m, src) +} +func (m *OpenNotionalCap) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCap) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCap.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCap proto.InternalMessageInfo + +type isOpenNotionalCap_Cap interface { + isOpenNotionalCap_Cap() + MarshalTo([]byte) (int, error) + Size() int +} + +type OpenNotionalCap_Uncapped struct { + Uncapped *OpenNotionalCapUncapped `protobuf:"bytes,1,opt,name=uncapped,proto3,oneof" json:"uncapped,omitempty"` +} +type OpenNotionalCap_Capped struct { + Capped *OpenNotionalCapCapped `protobuf:"bytes,2,opt,name=capped,proto3,oneof" json:"capped,omitempty"` +} + +func (*OpenNotionalCap_Uncapped) isOpenNotionalCap_Cap() {} +func (*OpenNotionalCap_Capped) isOpenNotionalCap_Cap() {} + +func (m *OpenNotionalCap) GetCap() isOpenNotionalCap_Cap { + if m != nil { + return m.Cap + } + return nil +} + +func (m *OpenNotionalCap) GetUncapped() *OpenNotionalCapUncapped { + if x, ok := m.GetCap().(*OpenNotionalCap_Uncapped); ok { + return x.Uncapped + } + return nil +} + +func (m *OpenNotionalCap) GetCapped() *OpenNotionalCapCapped { + if x, ok := m.GetCap().(*OpenNotionalCap_Capped); ok { + return x.Capped + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*OpenNotionalCap) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*OpenNotionalCap_Uncapped)(nil), + (*OpenNotionalCap_Capped)(nil), + } +} + +type OpenNotionalCapUncapped struct { +} + +func (m *OpenNotionalCapUncapped) Reset() { *m = OpenNotionalCapUncapped{} } +func (m *OpenNotionalCapUncapped) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCapUncapped) ProtoMessage() {} +func (*OpenNotionalCapUncapped) Descriptor() ([]byte, []int) { + return fileDescriptor_c255fc568a8e9667, []int{1} +} +func (m *OpenNotionalCapUncapped) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCapUncapped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCapUncapped.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCapUncapped) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCapUncapped.Merge(m, src) +} +func (m *OpenNotionalCapUncapped) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCapUncapped) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCapUncapped.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCapUncapped proto.InternalMessageInfo + +type OpenNotionalCapCapped struct { + Value cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=value,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"value"` +} + +func (m *OpenNotionalCapCapped) Reset() { *m = OpenNotionalCapCapped{} } +func (m *OpenNotionalCapCapped) String() string { return proto.CompactTextString(m) } +func (*OpenNotionalCapCapped) ProtoMessage() {} +func (*OpenNotionalCapCapped) Descriptor() ([]byte, []int) { + return fileDescriptor_c255fc568a8e9667, []int{2} +} +func (m *OpenNotionalCapCapped) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenNotionalCapCapped) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenNotionalCapCapped.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenNotionalCapCapped) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenNotionalCapCapped.Merge(m, src) +} +func (m *OpenNotionalCapCapped) XXX_Size() int { + return m.Size() +} +func (m *OpenNotionalCapCapped) XXX_DiscardUnknown() { + xxx_messageInfo_OpenNotionalCapCapped.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenNotionalCapCapped proto.InternalMessageInfo + type MarketFeeMultiplier struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` FeeMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=fee_multiplier,json=feeMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee_multiplier"` @@ -68,7 +226,7 @@ func (m *MarketFeeMultiplier) Reset() { *m = MarketFeeMultiplier{} } func (m *MarketFeeMultiplier) String() string { return proto.CompactTextString(m) } func (*MarketFeeMultiplier) ProtoMessage() {} func (*MarketFeeMultiplier) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{0} + return fileDescriptor_c255fc568a8e9667, []int{3} } func (m *MarketFeeMultiplier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -140,7 +298,7 @@ func (m *SpotMarket) Reset() { *m = SpotMarket{} } func (m *SpotMarket) String() string { return proto.CompactTextString(m) } func (*SpotMarket) ProtoMessage() {} func (*SpotMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{1} + return fileDescriptor_c255fc568a8e9667, []int{4} } func (m *SpotMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -279,13 +437,15 @@ type BinaryOptionsMarket struct { AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` // quote token decimals QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,21,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} } func (m *BinaryOptionsMarket) String() string { return proto.CompactTextString(m) } func (*BinaryOptionsMarket) ProtoMessage() {} func (*BinaryOptionsMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{2} + return fileDescriptor_c255fc568a8e9667, []int{5} } func (m *BinaryOptionsMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -365,13 +525,15 @@ type DerivativeMarket struct { QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,21,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,22,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} } func (m *DerivativeMarket) String() string { return proto.CompactTextString(m) } func (*DerivativeMarket) ProtoMessage() {} func (*DerivativeMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{3} + return fileDescriptor_c255fc568a8e9667, []int{6} } func (m *DerivativeMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -411,7 +573,7 @@ func (m *DerivativeMarketSettlementInfo) Reset() { *m = DerivativeMarket func (m *DerivativeMarketSettlementInfo) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketSettlementInfo) ProtoMessage() {} func (*DerivativeMarketSettlementInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{4} + return fileDescriptor_c255fc568a8e9667, []int{7} } func (m *DerivativeMarketSettlementInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -458,7 +620,7 @@ func (m *MarketVolume) Reset() { *m = MarketVolume{} } func (m *MarketVolume) String() string { return proto.CompactTextString(m) } func (*MarketVolume) ProtoMessage() {} func (*MarketVolume) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{5} + return fileDescriptor_c255fc568a8e9667, []int{8} } func (m *MarketVolume) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -512,7 +674,7 @@ func (m *VolumeRecord) Reset() { *m = VolumeRecord{} } func (m *VolumeRecord) String() string { return proto.CompactTextString(m) } func (*VolumeRecord) ProtoMessage() {} func (*VolumeRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{6} + return fileDescriptor_c255fc568a8e9667, []int{9} } func (m *VolumeRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -550,7 +712,7 @@ func (m *ExpiryFuturesMarketInfoState) Reset() { *m = ExpiryFuturesMarke func (m *ExpiryFuturesMarketInfoState) String() string { return proto.CompactTextString(m) } func (*ExpiryFuturesMarketInfoState) ProtoMessage() {} func (*ExpiryFuturesMarketInfoState) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{7} + return fileDescriptor_c255fc568a8e9667, []int{10} } func (m *ExpiryFuturesMarketInfoState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -602,7 +764,7 @@ func (m *PerpetualMarketFundingState) Reset() { *m = PerpetualMarketFund func (m *PerpetualMarketFundingState) String() string { return proto.CompactTextString(m) } func (*PerpetualMarketFundingState) ProtoMessage() {} func (*PerpetualMarketFundingState) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{8} + return fileDescriptor_c255fc568a8e9667, []int{11} } func (m *PerpetualMarketFundingState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -666,7 +828,7 @@ func (m *ExpiryFuturesMarketInfo) Reset() { *m = ExpiryFuturesMarketInfo func (m *ExpiryFuturesMarketInfo) String() string { return proto.CompactTextString(m) } func (*ExpiryFuturesMarketInfo) ProtoMessage() {} func (*ExpiryFuturesMarketInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{9} + return fileDescriptor_c255fc568a8e9667, []int{12} } func (m *ExpiryFuturesMarketInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -736,7 +898,7 @@ func (m *PerpetualMarketInfo) Reset() { *m = PerpetualMarketInfo{} } func (m *PerpetualMarketInfo) String() string { return proto.CompactTextString(m) } func (*PerpetualMarketInfo) ProtoMessage() {} func (*PerpetualMarketInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{10} + return fileDescriptor_c255fc568a8e9667, []int{13} } func (m *PerpetualMarketInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -801,7 +963,7 @@ func (m *PerpetualMarketFunding) Reset() { *m = PerpetualMarketFunding{} func (m *PerpetualMarketFunding) String() string { return proto.CompactTextString(m) } func (*PerpetualMarketFunding) ProtoMessage() {} func (*PerpetualMarketFunding) Descriptor() ([]byte, []int) { - return fileDescriptor_c255fc568a8e9667, []int{11} + return fileDescriptor_c255fc568a8e9667, []int{14} } func (m *PerpetualMarketFunding) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -839,6 +1001,9 @@ func (m *PerpetualMarketFunding) GetLastTimestamp() int64 { func init() { proto.RegisterEnum("injective.exchange.v2.MarketStatus", MarketStatus_name, MarketStatus_value) + proto.RegisterType((*OpenNotionalCap)(nil), "injective.exchange.v2.OpenNotionalCap") + proto.RegisterType((*OpenNotionalCapUncapped)(nil), "injective.exchange.v2.OpenNotionalCapUncapped") + proto.RegisterType((*OpenNotionalCapCapped)(nil), "injective.exchange.v2.OpenNotionalCapCapped") proto.RegisterType((*MarketFeeMultiplier)(nil), "injective.exchange.v2.MarketFeeMultiplier") proto.RegisterType((*SpotMarket)(nil), "injective.exchange.v2.SpotMarket") proto.RegisterType((*BinaryOptionsMarket)(nil), "injective.exchange.v2.BinaryOptionsMarket") @@ -858,98 +1023,236 @@ func init() { } var fileDescriptor_c255fc568a8e9667 = []byte{ - // 1456 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4d, 0x6f, 0x1b, 0x55, - 0x17, 0xce, 0x24, 0xa9, 0x93, 0x1c, 0x7f, 0xc4, 0xb9, 0x76, 0x53, 0xab, 0x7d, 0xdf, 0x24, 0xaf, - 0xf3, 0x16, 0x0a, 0xa8, 0x36, 0x0d, 0xac, 0x60, 0xd5, 0x34, 0x0d, 0x0a, 0xea, 0x47, 0x3a, 0x4e, - 0x11, 0xaa, 0x84, 0x46, 0x37, 0xe3, 0x93, 0xe4, 0x92, 0xf9, 0xea, 0xcc, 0x1d, 0xb7, 0xee, 0x16, - 0x16, 0x2c, 0x40, 0xe2, 0x17, 0x20, 0xfe, 0x03, 0xff, 0x01, 0x75, 0xd9, 0x25, 0x62, 0x51, 0xa1, - 0x86, 0x3f, 0xc1, 0x0e, 0xdd, 0x0f, 0xcf, 0x4c, 0x1c, 0x3b, 0xb1, 0x49, 0x10, 0x0b, 0x76, 0x33, - 0xe7, 0xe3, 0xb9, 0x8f, 0xef, 0x39, 0xe7, 0xb9, 0x77, 0x0c, 0x75, 0xe6, 0x7d, 0x89, 0x36, 0x67, - 0x1d, 0x6c, 0xe2, 0x73, 0xfb, 0x80, 0x7a, 0xfb, 0xd8, 0xec, 0xac, 0x35, 0x5d, 0x1a, 0x1e, 0x22, - 0x6f, 0x04, 0xa1, 0xcf, 0x7d, 0x72, 0x39, 0x89, 0x69, 0xf4, 0x62, 0x1a, 0x9d, 0xb5, 0xab, 0xd5, - 0x7d, 0x7f, 0xdf, 0x97, 0x11, 0x4d, 0xf1, 0xa4, 0x82, 0xaf, 0x5e, 0x4f, 0x01, 0xfd, 0x90, 0xda, - 0x0e, 0x36, 0x3b, 0xb7, 0x76, 0x91, 0xd3, 0x5b, 0xfa, 0x55, 0x85, 0xd5, 0xbf, 0x36, 0xa0, 0x72, - 0x5f, 0x2e, 0xb2, 0x89, 0x78, 0x3f, 0x76, 0x38, 0x0b, 0x1c, 0x86, 0x21, 0xb9, 0x06, 0x73, 0x6a, - 0x6d, 0x8b, 0xb5, 0x6b, 0xc6, 0x8a, 0x71, 0x63, 0xce, 0x9c, 0x55, 0x86, 0xad, 0x36, 0xf9, 0x14, - 0x4a, 0x7b, 0x88, 0x96, 0x9b, 0x84, 0xd7, 0x26, 0x45, 0xc4, 0xfa, 0xea, 0xcb, 0xd7, 0xcb, 0x13, - 0xbf, 0xbe, 0x5e, 0xbe, 0x66, 0xfb, 0x91, 0xeb, 0x47, 0x51, 0xfb, 0xb0, 0xc1, 0xfc, 0xa6, 0x4b, - 0xf9, 0x41, 0xe3, 0x1e, 0xee, 0x53, 0xbb, 0xbb, 0x81, 0xb6, 0x59, 0xdc, 0xcb, 0x2e, 0xf4, 0xd1, - 0xf4, 0x37, 0x3f, 0x2e, 0x4f, 0xd4, 0x7f, 0xca, 0x01, 0xb4, 0x02, 0x9f, 0x2b, 0x2a, 0x64, 0x11, - 0x72, 0x9c, 0xd9, 0x87, 0x18, 0xea, 0xa5, 0xf5, 0x1b, 0xf9, 0x2f, 0xc0, 0x2e, 0x8d, 0xd0, 0x6a, - 0xa3, 0xe7, 0xbb, 0x6a, 0x51, 0x73, 0x4e, 0x58, 0x36, 0x84, 0x81, 0x2c, 0x43, 0xfe, 0x69, 0xec, - 0xf3, 0x9e, 0x7f, 0x4a, 0xfa, 0x41, 0x9a, 0x54, 0xc0, 0x16, 0x94, 0x5c, 0x7a, 0x88, 0xa1, 0x25, - 0xe8, 0x87, 0x94, 0x63, 0x6d, 0x7a, 0x74, 0xe2, 0x05, 0x99, 0xba, 0x89, 0x68, 0x52, 0x8e, 0x02, - 0x8a, 0x1f, 0x87, 0xba, 0x34, 0x06, 0x14, 0xcf, 0x42, 0x7d, 0x0e, 0x8b, 0x21, 0x3a, 0xb4, 0xab, - 0xc1, 0xa2, 0x03, 0x1a, 0x6a, 0xc8, 0xdc, 0xe8, 0x90, 0x15, 0x0d, 0xb1, 0x89, 0xd8, 0x12, 0x00, - 0x12, 0xf9, 0x58, 0x15, 0x67, 0xfa, 0xaa, 0xf8, 0x31, 0xe4, 0x22, 0x4e, 0x79, 0x1c, 0xd5, 0x66, - 0x57, 0x8c, 0x1b, 0xa5, 0xb5, 0xd5, 0xc6, 0xc0, 0xfe, 0x6a, 0xa8, 0x9a, 0xb4, 0x64, 0xa8, 0xa9, - 0x53, 0x88, 0x09, 0x15, 0x97, 0x79, 0x56, 0x10, 0x32, 0x1b, 0x2d, 0x51, 0x1d, 0x2b, 0x62, 0x2f, - 0xb0, 0x36, 0x37, 0x3a, 0xe1, 0xb2, 0xcb, 0xbc, 0x6d, 0x91, 0xbe, 0xc3, 0xec, 0xc3, 0x16, 0x7b, - 0x21, 0xf7, 0x41, 0x60, 0x3e, 0x8d, 0xa9, 0xc7, 0x19, 0xef, 0x66, 0x60, 0x61, 0x8c, 0x7d, 0x70, - 0x99, 0xf7, 0x48, 0x23, 0x24, 0xc8, 0x9b, 0x50, 0x10, 0xc8, 0x9e, 0xcf, 0x99, 0xef, 0x51, 0xa7, - 0x96, 0x1f, 0x1d, 0x2f, 0xef, 0x32, 0xef, 0x81, 0xce, 0x23, 0x55, 0xb8, 0x44, 0xdb, 0x2e, 0xf3, - 0x6a, 0x05, 0xb9, 0x97, 0xea, 0x85, 0xbc, 0x07, 0x0b, 0xf2, 0xc1, 0x0a, 0x30, 0x74, 0x59, 0x14, - 0x31, 0xdf, 0x8b, 0x6a, 0xc5, 0x15, 0xe3, 0x46, 0xd1, 0x2c, 0x4b, 0xc7, 0x76, 0x6a, 0x27, 0xab, - 0x50, 0xd4, 0x2d, 0x6c, 0x33, 0x97, 0x3a, 0x51, 0xad, 0x24, 0x03, 0x0b, 0xaa, 0x8b, 0x95, 0x8d, - 0x5c, 0x87, 0x52, 0xaf, 0x91, 0x75, 0xd4, 0xbc, 0x8c, 0x2a, 0xea, 0x5e, 0x56, 0xc6, 0xfa, 0x1f, - 0xb3, 0x50, 0x59, 0x67, 0x1e, 0x0d, 0xbb, 0x0f, 0x03, 0xc1, 0x30, 0x3a, 0x63, 0x7c, 0x56, 0xa1, - 0xa8, 0x86, 0xdf, 0x8a, 0xba, 0xee, 0xae, 0xef, 0xe8, 0x09, 0x2a, 0x28, 0x63, 0x4b, 0xda, 0xc8, - 0xdb, 0x30, 0xaf, 0x83, 0x82, 0xd0, 0xef, 0xb0, 0x36, 0x86, 0x7a, 0x90, 0x4a, 0xca, 0xbc, 0xad, - 0xad, 0xe4, 0x2e, 0xe4, 0x75, 0x20, 0xef, 0x06, 0x6a, 0x92, 0x4a, 0x6b, 0xff, 0xcf, 0x34, 0x91, - 0x16, 0x1a, 0xad, 0x3b, 0x8d, 0x87, 0xf2, 0x75, 0xa7, 0x1b, 0xa0, 0x09, 0x7e, 0xf2, 0x4c, 0x1a, - 0x50, 0xe9, 0x91, 0xb2, 0xa9, 0x83, 0xd6, 0x1e, 0xb5, 0xb9, 0x1f, 0xca, 0x69, 0x2a, 0x9a, 0x0b, - 0x9a, 0x9a, 0xf0, 0x6c, 0x4a, 0x07, 0xb9, 0x05, 0x55, 0x7c, 0x1e, 0xb0, 0x90, 0x8a, 0x5f, 0x6c, - 0x71, 0xe6, 0x62, 0xc4, 0xa9, 0x1b, 0xc8, 0x59, 0x99, 0x32, 0x2b, 0xa9, 0x6f, 0xa7, 0xe7, 0x12, - 0x29, 0x11, 0x72, 0xee, 0xa0, 0x8b, 0x1e, 0xcf, 0xa4, 0xcc, 0xa8, 0x94, 0xd4, 0x97, 0xa6, 0x24, - 0x95, 0x9e, 0xcd, 0x56, 0xba, 0x4f, 0x60, 0xe6, 0x4e, 0x08, 0xcc, 0xb1, 0x81, 0x83, 0xbe, 0x81, - 0x3b, 0xa9, 0x3e, 0xf9, 0x8b, 0x53, 0x9f, 0xc2, 0xc5, 0xab, 0x4f, 0xf1, 0x9c, 0xea, 0x93, 0x0a, - 0x4c, 0xe9, 0xc2, 0x04, 0x66, 0xfe, 0xef, 0x11, 0x98, 0xf2, 0x39, 0x05, 0xe6, 0x01, 0x94, 0x33, - 0x1d, 0x26, 0x49, 0xd7, 0x16, 0x12, 0x4c, 0xe3, 0x2c, 0xcc, 0xf9, 0x34, 0x59, 0x32, 0x3e, 0x21, - 0x58, 0xe4, 0x2f, 0x0a, 0xd6, 0x40, 0x69, 0xaa, 0x0c, 0x91, 0xa6, 0x93, 0xaa, 0x53, 0x1d, 0xa0, - 0x3a, 0xfa, 0xc4, 0x3e, 0x9a, 0x83, 0xf2, 0x06, 0x86, 0xac, 0x43, 0x45, 0x3d, 0xcf, 0x10, 0x9e, - 0xe5, 0x44, 0x2a, 0x84, 0xcc, 0x69, 0xd9, 0xd1, 0x22, 0xb0, 0x4e, 0x23, 0x24, 0xff, 0x03, 0x2d, - 0x42, 0x96, 0x5c, 0x4b, 0x2b, 0x8e, 0x4e, 0x7a, 0x24, 0x4c, 0xff, 0x94, 0xdc, 0xf4, 0x8d, 0x7c, - 0xee, 0xf4, 0x91, 0xef, 0x3f, 0x63, 0x1f, 0x43, 0x95, 0x79, 0x8c, 0x33, 0xea, 0x58, 0x2e, 0x0d, - 0xf7, 0x99, 0x67, 0x49, 0x6d, 0x52, 0xaa, 0x32, 0x5a, 0x3d, 0x89, 0x06, 0xb8, 0x2f, 0xf3, 0x4d, - 0x91, 0x4e, 0xbe, 0x80, 0x9a, 0x4b, 0x99, 0xc7, 0xd1, 0xa3, 0x9e, 0x8d, 0xc7, 0xa1, 0xc7, 0x38, - 0x82, 0x17, 0x33, 0x20, 0x59, 0xf8, 0x93, 0x42, 0x05, 0x17, 0x27, 0x54, 0xf9, 0x8b, 0x17, 0xaa, - 0xc2, 0x39, 0x85, 0x6a, 0x05, 0xf2, 0x2c, 0xda, 0xc6, 0x30, 0x40, 0x1e, 0x53, 0x47, 0xea, 0xde, - 0xac, 0x99, 0x35, 0xfd, 0x9b, 0xa4, 0xac, 0x5f, 0x7a, 0x16, 0xce, 0x7b, 0x57, 0x22, 0x67, 0xde, - 0x95, 0xce, 0x27, 0x48, 0xa4, 0x05, 0x95, 0x10, 0xdb, 0x71, 0xff, 0x20, 0x5c, 0x1e, 0x9d, 0xf8, - 0x82, 0xca, 0xcf, 0xcc, 0x80, 0x56, 0xb9, 0xef, 0x0c, 0x58, 0xea, 0x57, 0xb9, 0x56, 0xa2, 0xd5, - 0x5b, 0xde, 0x9e, 0x7f, 0xfa, 0x97, 0xd2, 0xa0, 0x73, 0x61, 0x8c, 0x6f, 0xa5, 0xfe, 0x73, 0xa1, - 0xee, 0x41, 0x41, 0x91, 0xf8, 0xcc, 0x77, 0x62, 0x17, 0x4f, 0x5f, 0xfc, 0x36, 0xe4, 0x3a, 0x32, - 0x4c, 0x2e, 0x99, 0x1f, 0xda, 0xb4, 0x0a, 0xcb, 0x44, 0xdb, 0x0f, 0xdb, 0xeb, 0xd3, 0x82, 0x97, - 0xa9, 0x13, 0xeb, 0x3f, 0x18, 0x50, 0xc8, 0xba, 0x65, 0x77, 0xc8, 0x79, 0xd6, 0xc8, 0xc6, 0x38, - 0xdd, 0x21, 0x12, 0x35, 0xf1, 0x4d, 0x50, 0xc3, 0x6d, 0x65, 0x18, 0x8e, 0x8a, 0xc3, 0x53, 0x9c, - 0xfa, 0xb7, 0x06, 0xfc, 0xe7, 0xae, 0xb8, 0xf2, 0x75, 0x37, 0x63, 0x1e, 0x87, 0xa8, 0xaf, 0xc0, - 0xa2, 0x32, 0x62, 0x0a, 0xcf, 0xd8, 0xa1, 0x87, 0x90, 0xef, 0x39, 0xbd, 0x3d, 0x5f, 0x6f, 0x53, - 0x63, 0xc8, 0x36, 0x0d, 0x59, 0xc6, 0x04, 0x37, 0x79, 0xae, 0x7f, 0x65, 0xc0, 0xb5, 0x44, 0x35, - 0xf4, 0x77, 0x75, 0xec, 0xb5, 0x99, 0xb7, 0x3f, 0x02, 0x9b, 0x4f, 0x60, 0x66, 0x4f, 0x05, 0x6b, - 0x26, 0x37, 0x87, 0x30, 0x19, 0xbc, 0x82, 0xd9, 0xcb, 0xae, 0xff, 0x3e, 0x09, 0x57, 0x86, 0xb0, - 0x3d, 0x9d, 0xc1, 0xb0, 0xbb, 0xf5, 0xe4, 0xf0, 0xbb, 0xf5, 0xfb, 0x50, 0xe5, 0xcf, 0x68, 0x60, - 0x45, 0x9c, 0x86, 0xd9, 0xbb, 0xf5, 0x94, 0x4c, 0x21, 0xc2, 0xd7, 0x12, 0xae, 0x34, 0xe3, 0x19, - 0xbc, 0x95, 0x5d, 0x24, 0x4d, 0x56, 0x02, 0x69, 0xc7, 0x6e, 0xec, 0xc8, 0x71, 0x1b, 0xe7, 0xe3, - 0xbc, 0x9e, 0xe1, 0xd6, 0x5b, 0x52, 0x8e, 0xcc, 0x9d, 0x04, 0x6e, 0xe0, 0x30, 0x5e, 0x3a, 0xc7, - 0x30, 0xfe, 0x3c, 0x09, 0x95, 0xbe, 0x52, 0x9c, 0xbd, 0xc5, 0x4f, 0xe0, 0xca, 0x81, 0x1f, 0x87, - 0x4e, 0xd7, 0xd2, 0xd5, 0x92, 0x47, 0x98, 0x65, 0xd3, 0x60, 0x9c, 0x19, 0xa8, 0x2a, 0x8c, 0x5e, - 0xe5, 0x29, 0xc7, 0x3b, 0x34, 0x10, 0xb7, 0x0d, 0x8d, 0x2d, 0x8e, 0xf5, 0x10, 0x23, 0xae, 0xce, - 0xc7, 0xa9, 0x31, 0x6e, 0x1b, 0x0a, 0x60, 0x4b, 0xe7, 0xcb, 0xe3, 0xf1, 0x43, 0x58, 0xf4, 0xf0, - 0x39, 0x4f, 0x08, 0xa7, 0x45, 0x9e, 0x96, 0x45, 0xae, 0x0a, 0xaf, 0xa6, 0x92, 0x96, 0xf9, 0x1d, - 0x28, 0xf7, 0x12, 0x24, 0x9b, 0x0e, 0x75, 0xe4, 0x6e, 0x4f, 0x99, 0xf3, 0xda, 0xbe, 0xa5, 0xcd, - 0xf5, 0x23, 0x03, 0x16, 0x07, 0xf7, 0x34, 0x31, 0x81, 0xa4, 0x0d, 0xd1, 0x63, 0x30, 0x8e, 0xea, - 0x2c, 0xa4, 0xe9, 0x3d, 0xcc, 0x07, 0x50, 0xce, 0x60, 0x8e, 0x2f, 0xca, 0x69, 0xb2, 0xba, 0xac, - 0x5f, 0x87, 0x92, 0x43, 0xa3, 0x93, 0xcd, 0x5f, 0x14, 0xd6, 0x64, 0x43, 0xde, 0xdd, 0xe9, 0x69, - 0xb7, 0xba, 0x1e, 0x90, 0x79, 0xc8, 0x3f, 0xf6, 0xa2, 0x00, 0x6d, 0xb6, 0xc7, 0xb0, 0x5d, 0x9e, - 0x20, 0x00, 0xb9, 0xdb, 0x72, 0xd8, 0xcb, 0x86, 0x78, 0xde, 0xa6, 0x71, 0x84, 0xed, 0xf2, 0x24, - 0x29, 0x01, 0x6c, 0xa0, 0xeb, 0x3b, 0x2c, 0x3a, 0xc0, 0x76, 0x79, 0x8a, 0xe4, 0x61, 0x46, 0x4e, - 0x37, 0xb6, 0xcb, 0xd3, 0xeb, 0x87, 0x2f, 0xdf, 0x2c, 0x19, 0xaf, 0xde, 0x2c, 0x19, 0xbf, 0xbd, - 0x59, 0x32, 0xbe, 0x3f, 0x5a, 0x9a, 0x78, 0x75, 0xb4, 0x34, 0xf1, 0xcb, 0xd1, 0xd2, 0xc4, 0x93, - 0x47, 0xfb, 0x8c, 0x1f, 0xc4, 0xbb, 0x0d, 0xdb, 0x77, 0x9b, 0x5b, 0x3d, 0x1d, 0xb9, 0x47, 0x77, - 0xa3, 0x66, 0xa2, 0x2a, 0x37, 0x6d, 0x3f, 0xc4, 0xec, 0xeb, 0x01, 0x65, 0x5e, 0xd3, 0xf5, 0xdb, - 0xb1, 0x83, 0x51, 0xfa, 0x47, 0xa4, 0xb8, 0x70, 0x47, 0xcd, 0xce, 0xda, 0x6e, 0x4e, 0xfe, 0x69, - 0xf8, 0xc1, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x3e, 0x75, 0xdd, 0xae, 0x14, 0x00, 0x00, + // 1570 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4b, 0x73, 0x1b, 0xc5, + 0x16, 0xf6, 0xf8, 0x21, 0xdb, 0x47, 0x4f, 0xb7, 0x64, 0x47, 0x37, 0xb9, 0xd7, 0xf6, 0x95, 0x49, + 0x08, 0x8f, 0x48, 0xc4, 0xb0, 0x01, 0x56, 0xb1, 0x1d, 0x81, 0xa9, 0x24, 0x76, 0x46, 0x0e, 0x95, + 0x4a, 0x15, 0x35, 0xd5, 0x1e, 0xb5, 0xed, 0xc6, 0xf3, 0xca, 0x4c, 0x8f, 0x12, 0x65, 0x0b, 0x0b, + 0x16, 0x50, 0xc5, 0x2f, 0xa0, 0xf8, 0x05, 0x6c, 0x58, 0xb3, 0xa5, 0xb2, 0x4c, 0x15, 0x1b, 0x8a, + 0x45, 0x8a, 0x8a, 0xf9, 0x21, 0x54, 0x3f, 0xe6, 0x61, 0x59, 0xb2, 0x25, 0x6c, 0x8a, 0x05, 0xbb, + 0x99, 0xd3, 0xe7, 0xfb, 0xfa, 0x4c, 0x9f, 0x73, 0xbe, 0xee, 0x1e, 0xa8, 0x51, 0xe7, 0x73, 0x62, + 0x32, 0xda, 0x21, 0x0d, 0xf2, 0xd4, 0x3c, 0xc0, 0xce, 0x3e, 0x69, 0x74, 0x56, 0x1b, 0x36, 0xf6, + 0x0f, 0x09, 0xab, 0x7b, 0xbe, 0xcb, 0x5c, 0x34, 0x1f, 0xfb, 0xd4, 0x23, 0x9f, 0x7a, 0x67, 0xf5, + 0x72, 0x65, 0xdf, 0xdd, 0x77, 0x85, 0x47, 0x83, 0x3f, 0x49, 0xe7, 0xcb, 0x57, 0x13, 0x42, 0xd7, + 0xc7, 0xa6, 0x45, 0x1a, 0x9d, 0x9b, 0xbb, 0x84, 0xe1, 0x9b, 0xea, 0x55, 0xba, 0xd5, 0x7e, 0xd0, + 0xa0, 0xb8, 0xe5, 0x11, 0xe7, 0x9e, 0xcb, 0xa8, 0xeb, 0x60, 0x6b, 0x1d, 0x7b, 0xe8, 0x0e, 0xcc, + 0x84, 0x8e, 0x89, 0x3d, 0x8f, 0xb4, 0xab, 0xda, 0xb2, 0x76, 0x3d, 0xbb, 0x5a, 0xaf, 0xf7, 0x9d, + 0xba, 0xde, 0x83, 0x7c, 0xa0, 0x50, 0x1f, 0x8f, 0xe9, 0x31, 0x03, 0x6a, 0x42, 0x46, 0x71, 0x8d, + 0x0b, 0xae, 0xb7, 0x87, 0xe3, 0x5a, 0x8f, 0x98, 0x14, 0x7a, 0x6d, 0x0a, 0x26, 0x4c, 0xec, 0xd5, + 0xfe, 0x03, 0x97, 0x06, 0xcc, 0x5a, 0xd3, 0x61, 0xbe, 0x2f, 0x09, 0x7a, 0x1f, 0xa6, 0x3a, 0xd8, + 0x0a, 0x89, 0xf8, 0x9a, 0xd9, 0xb5, 0x95, 0xe7, 0x2f, 0x97, 0xc6, 0x7e, 0x7b, 0xb9, 0x74, 0xc5, + 0x74, 0x03, 0xdb, 0x0d, 0x82, 0xf6, 0x61, 0x9d, 0xba, 0x0d, 0x1b, 0xb3, 0x83, 0xfa, 0x1d, 0xb2, + 0x8f, 0xcd, 0xee, 0x06, 0x31, 0x75, 0x89, 0xa8, 0x7d, 0xa9, 0x41, 0xf9, 0xae, 0x48, 0x42, 0x93, + 0x90, 0xbb, 0xa1, 0xc5, 0xa8, 0x67, 0x51, 0xe2, 0xa3, 0x2b, 0x30, 0x2b, 0x73, 0x63, 0x50, 0xb9, + 0x48, 0xb3, 0xfa, 0x8c, 0x34, 0x6c, 0xb6, 0xd1, 0x27, 0x50, 0xd8, 0x23, 0xc4, 0xb0, 0x63, 0x77, + 0xf1, 0xe9, 0x43, 0x4e, 0x9c, 0xdf, 0x4b, 0x4f, 0xf4, 0xc1, 0xe4, 0x57, 0xdf, 0x2f, 0x8d, 0xd5, + 0x7e, 0xcc, 0x00, 0xb4, 0x3c, 0x97, 0xc9, 0x50, 0xd0, 0x02, 0x64, 0x18, 0x35, 0x0f, 0x89, 0xaf, + 0xa6, 0x56, 0x6f, 0xe8, 0x7f, 0x00, 0xbb, 0x38, 0x20, 0x46, 0x9b, 0x38, 0xae, 0x2d, 0x27, 0xd5, + 0x67, 0xb9, 0x65, 0x83, 0x1b, 0xd0, 0x12, 0x64, 0x1f, 0x87, 0x2e, 0x8b, 0xc6, 0x27, 0xc4, 0x38, + 0x08, 0x93, 0x74, 0xd8, 0x84, 0x82, 0x8d, 0x0f, 0x89, 0x6f, 0xf0, 0xf0, 0x7d, 0xcc, 0x48, 0x75, + 0x72, 0xf8, 0xc0, 0x73, 0x02, 0xda, 0x24, 0x44, 0xc7, 0x8c, 0x70, 0x2a, 0x76, 0x9c, 0x6a, 0x6a, + 0x04, 0x2a, 0x96, 0xa6, 0x7a, 0x08, 0x0b, 0x3e, 0xb1, 0x70, 0x57, 0x91, 0x05, 0x07, 0xd8, 0x57, + 0x94, 0x99, 0xe1, 0x29, 0xcb, 0x8a, 0xa2, 0x49, 0x48, 0x8b, 0x13, 0x08, 0xe6, 0x63, 0x59, 0x9c, + 0xee, 0xc9, 0xe2, 0x87, 0x90, 0x09, 0x18, 0x66, 0x61, 0x50, 0x9d, 0x59, 0xd6, 0xae, 0x17, 0x56, + 0x57, 0x06, 0x14, 0xae, 0xcc, 0x49, 0x4b, 0xb8, 0xea, 0x0a, 0x82, 0x74, 0x28, 0xdb, 0xd4, 0x31, + 0x3c, 0x9f, 0x9a, 0xc4, 0xe0, 0xd9, 0x31, 0x02, 0xfa, 0x8c, 0x54, 0x67, 0x87, 0x0f, 0xb8, 0x64, + 0x53, 0x67, 0x9b, 0xc3, 0x77, 0xa8, 0x79, 0xd8, 0xa2, 0xcf, 0xc4, 0x3a, 0x70, 0xce, 0xc7, 0x21, + 0x76, 0x18, 0x65, 0xdd, 0x14, 0x2d, 0x8c, 0xb0, 0x0e, 0x36, 0x75, 0xee, 0x2b, 0x86, 0x98, 0xb9, + 0x09, 0x39, 0xce, 0xec, 0xa8, 0xce, 0xa9, 0x66, 0x87, 0xe7, 0xcb, 0xda, 0x34, 0xee, 0x38, 0x54, + 0x81, 0x29, 0xdc, 0xb6, 0xa9, 0x53, 0xcd, 0x89, 0xb5, 0x94, 0x2f, 0xe8, 0x2d, 0x98, 0x13, 0x0f, + 0x86, 0x47, 0x7c, 0x9b, 0x06, 0x01, 0x75, 0x9d, 0xa0, 0x9a, 0x5f, 0xd6, 0xae, 0xe7, 0xf5, 0x92, + 0x18, 0xd8, 0x4e, 0xec, 0x68, 0x05, 0xf2, 0xaa, 0x84, 0x4d, 0x6a, 0x63, 0x2b, 0xa8, 0x16, 0x84, + 0x63, 0x4e, 0x56, 0xb1, 0xb4, 0xa1, 0xab, 0x50, 0x88, 0x0a, 0x59, 0x79, 0x15, 0x85, 0x57, 0x5e, + 0xd5, 0xb2, 0x34, 0xd6, 0x7e, 0x99, 0x85, 0xf2, 0x1a, 0x75, 0xb0, 0xdf, 0xdd, 0xf2, 0x78, 0x84, + 0xc1, 0x19, 0xed, 0xb3, 0x02, 0x79, 0x29, 0x8e, 0x46, 0xd0, 0xb5, 0x77, 0x5d, 0x4b, 0x75, 0x50, + 0x4e, 0x1a, 0x5b, 0xc2, 0x86, 0x5e, 0x87, 0xa2, 0x72, 0xf2, 0x7c, 0xb7, 0x43, 0xdb, 0xc4, 0x57, + 0x8d, 0x54, 0x90, 0xe6, 0x6d, 0x65, 0x45, 0xb7, 0x21, 0xab, 0x1c, 0x59, 0xd7, 0x93, 0x9d, 0x54, + 0x58, 0x7d, 0x2d, 0x55, 0x44, 0x4a, 0x88, 0x95, 0x2e, 0xd7, 0xb7, 0xc4, 0xeb, 0x4e, 0xd7, 0x23, + 0x3a, 0xb8, 0xf1, 0x33, 0xaa, 0x43, 0x39, 0x0a, 0xca, 0xc4, 0x16, 0x31, 0xf6, 0xb0, 0xc9, 0x5c, + 0x5f, 0x74, 0x53, 0x5e, 0x9f, 0x53, 0xa1, 0xf1, 0x91, 0xa6, 0x18, 0x40, 0x37, 0xa1, 0x42, 0x9e, + 0x7a, 0xd4, 0xc7, 0xfc, 0x8b, 0x0d, 0x46, 0x6d, 0x12, 0x30, 0x6c, 0x7b, 0xa2, 0x57, 0x26, 0xf4, + 0x72, 0x32, 0xb6, 0x13, 0x0d, 0x71, 0x48, 0x40, 0x18, 0xb3, 0x88, 0x4d, 0x1c, 0x96, 0x82, 0x4c, + 0x4b, 0x48, 0x32, 0x96, 0x40, 0xe2, 0x4c, 0xcf, 0xa4, 0x33, 0xdd, 0x23, 0x30, 0xb3, 0x27, 0x04, + 0xe6, 0x58, 0xc3, 0x41, 0x4f, 0xc3, 0x9d, 0x54, 0x9f, 0xec, 0xc5, 0xa9, 0x4f, 0xee, 0xe2, 0xd5, + 0x27, 0x7f, 0x4e, 0xf5, 0x49, 0x04, 0xa6, 0x70, 0x61, 0x02, 0x53, 0xfc, 0x7b, 0x04, 0xa6, 0x74, + 0x4e, 0x81, 0xb9, 0x07, 0xa5, 0x54, 0x85, 0x89, 0xa0, 0xab, 0x73, 0x31, 0xa7, 0x76, 0x16, 0x67, + 0x31, 0x01, 0x8b, 0x88, 0x4f, 0x08, 0x16, 0xfa, 0x8b, 0x82, 0xd5, 0x57, 0x9a, 0xca, 0x03, 0xa4, + 0xe9, 0xa4, 0xea, 0x54, 0xfa, 0xa8, 0x0e, 0x7a, 0x08, 0x73, 0xae, 0x47, 0x92, 0xe0, 0x0c, 0x13, + 0x7b, 0xd5, 0x79, 0x71, 0xf6, 0xb9, 0x36, 0xdc, 0xd9, 0x67, 0x6d, 0x92, 0x7f, 0x88, 0x5e, 0x74, + 0x8f, 0x9b, 0xd5, 0x59, 0xe0, 0x27, 0x80, 0xd2, 0x06, 0xf1, 0x69, 0x07, 0x73, 0x9e, 0x33, 0x24, + 0x6d, 0x29, 0x16, 0x21, 0x2e, 0xa0, 0x4a, 0xd0, 0x94, 0xbc, 0xac, 0xe1, 0x80, 0xa0, 0xff, 0x83, + 0x92, 0x37, 0x43, 0x7c, 0x85, 0xd2, 0x32, 0x05, 0xba, 0xcf, 0x4d, 0xff, 0x94, 0x90, 0xf5, 0x88, + 0x49, 0xe6, 0x74, 0x31, 0xe9, 0xdd, 0xbd, 0x1f, 0x40, 0x85, 0x3a, 0x94, 0x51, 0x6c, 0x19, 0x36, + 0xf6, 0xf7, 0xa9, 0x63, 0x08, 0xd5, 0x93, 0x7a, 0x35, 0x5c, 0xa5, 0x20, 0x45, 0x70, 0x57, 0xe0, + 0x75, 0x0e, 0x47, 0x9f, 0x41, 0xd5, 0xc6, 0xd4, 0x61, 0xc4, 0xc1, 0x8e, 0x49, 0x8e, 0x53, 0x8f, + 0xb0, 0xb9, 0x2f, 0xa4, 0x48, 0xd2, 0xf4, 0x27, 0x25, 0x10, 0x2e, 0x4e, 0x02, 0xb3, 0x17, 0x2f, + 0x81, 0xb9, 0x73, 0x4a, 0xe0, 0x32, 0x64, 0x69, 0xb0, 0x4d, 0x7c, 0x8f, 0xb0, 0x10, 0x5b, 0x42, + 0x51, 0x67, 0xf4, 0xb4, 0xe9, 0xdf, 0x24, 0x92, 0xbd, 0xa2, 0x36, 0x77, 0xde, 0x53, 0x18, 0x3a, + 0xf3, 0x14, 0x76, 0x4e, 0xa9, 0x6b, 0x41, 0xd9, 0x27, 0xed, 0xb0, 0xb7, 0x11, 0xe6, 0x87, 0x0f, + 0x7c, 0x4e, 0xe2, 0xd3, 0x3d, 0xd0, 0x57, 0x3f, 0x17, 0x2e, 0x4e, 0x3f, 0xbf, 0xd1, 0x60, 0xb1, + 0x57, 0x3f, 0x5b, 0xf1, 0xfe, 0xb2, 0xe9, 0xec, 0xb9, 0xa7, 0xdf, 0xee, 0xfa, 0xed, 0x65, 0x23, + 0xdc, 0xef, 0x7a, 0xf7, 0xb2, 0x9a, 0x03, 0x39, 0x19, 0xc4, 0xa7, 0xae, 0x15, 0xda, 0xe4, 0xf4, + 0xc9, 0x6f, 0x41, 0xa6, 0x23, 0xdc, 0xd4, 0x6d, 0x7a, 0x50, 0x3b, 0x48, 0x2e, 0x9d, 0x98, 0xae, + 0xdf, 0x56, 0xcb, 0xa1, 0x80, 0xb5, 0xef, 0x34, 0xc8, 0xa5, 0x87, 0x45, 0xdd, 0x09, 0xa5, 0x50, + 0xcc, 0xda, 0x28, 0x75, 0xc7, 0x81, 0x2a, 0xf0, 0x26, 0x48, 0xd9, 0x30, 0x52, 0x11, 0x0e, 0xcb, + 0xc3, 0x12, 0x9e, 0xda, 0xd7, 0x1a, 0xfc, 0xf7, 0x36, 0x3f, 0xa6, 0x76, 0x9b, 0x21, 0x0b, 0x7d, + 0xa2, 0x8e, 0xed, 0x3c, 0x33, 0xbc, 0xbf, 0xcf, 0x58, 0xa1, 0x2d, 0xc8, 0x46, 0x83, 0xce, 0x9e, + 0xab, 0x96, 0x69, 0xd0, 0x0f, 0x8c, 0x01, 0xd3, 0xe8, 0x60, 0xc7, 0xcf, 0xb5, 0x2f, 0x34, 0xb8, + 0x12, 0xeb, 0x91, 0xfa, 0x17, 0x10, 0x3a, 0x6d, 0xea, 0xec, 0x0f, 0x11, 0xcd, 0x47, 0x30, 0xbd, + 0x27, 0x9d, 0x55, 0x24, 0x37, 0x06, 0x44, 0xd2, 0x7f, 0x06, 0x3d, 0x42, 0xd7, 0xfe, 0x18, 0x87, + 0x4b, 0x03, 0xa2, 0x3d, 0x3d, 0x82, 0x41, 0xf7, 0x81, 0xf1, 0xc1, 0xf7, 0x81, 0x77, 0xa0, 0xc2, + 0x9e, 0x60, 0xcf, 0x08, 0x18, 0xf6, 0xd3, 0xf7, 0x81, 0x09, 0x01, 0x41, 0x7c, 0xac, 0xc5, 0x87, + 0x12, 0xc4, 0x13, 0xb8, 0x96, 0x9e, 0x24, 0x01, 0x4b, 0xe9, 0x35, 0x43, 0x3b, 0xb4, 0x44, 0xbb, + 0x8d, 0xf2, 0x43, 0xa1, 0x96, 0x8a, 0x2d, 0x9a, 0x52, 0xb4, 0xcc, 0x7a, 0x4c, 0xd7, 0xb7, 0x19, + 0xa7, 0xce, 0xd1, 0x8c, 0x3f, 0x8f, 0x43, 0xb9, 0x27, 0x15, 0x67, 0x2f, 0xf1, 0x23, 0xb8, 0x74, + 0xe0, 0x86, 0xbe, 0xd5, 0x35, 0x54, 0xb6, 0xc4, 0xe6, 0x28, 0x74, 0x6b, 0x84, 0x1e, 0xa8, 0x48, + 0x8e, 0x28, 0xf3, 0x98, 0x91, 0x75, 0xec, 0xf1, 0x73, 0x8c, 0xe2, 0xe6, 0x07, 0x06, 0x9f, 0x04, + 0x4c, 0xee, 0xbc, 0x13, 0x23, 0x9c, 0x63, 0x24, 0xc1, 0xa6, 0xc2, 0x8b, 0x8d, 0xf7, 0x3d, 0x58, + 0x70, 0xc8, 0x53, 0x16, 0x07, 0x9c, 0x24, 0x79, 0x52, 0x24, 0xb9, 0xc2, 0x47, 0x55, 0x28, 0x49, + 0x9a, 0xdf, 0x80, 0x52, 0x04, 0x10, 0xd1, 0x74, 0xb0, 0x25, 0x56, 0x7b, 0x42, 0x2f, 0x2a, 0xfb, + 0xa6, 0x32, 0xd7, 0x8e, 0x34, 0x58, 0xe8, 0x5f, 0xd3, 0x48, 0x07, 0x94, 0x14, 0x44, 0x14, 0xc1, + 0x28, 0xaa, 0x33, 0x97, 0xc0, 0x23, 0xce, 0x7b, 0x50, 0x4a, 0x71, 0x8e, 0x2e, 0xca, 0x09, 0x58, + 0x5e, 0x30, 0xae, 0x42, 0xc1, 0xc2, 0xc1, 0xc9, 0xe2, 0xcf, 0x73, 0x6b, 0xbc, 0x20, 0x6f, 0xee, + 0x44, 0xda, 0x2d, 0x0f, 0x1e, 0xa8, 0x08, 0xd9, 0x07, 0x4e, 0xe0, 0x11, 0x93, 0xee, 0x51, 0xd2, + 0x2e, 0x8d, 0x21, 0x80, 0xcc, 0x2d, 0xd1, 0xec, 0x25, 0x8d, 0x3f, 0x6f, 0xe3, 0x30, 0x20, 0xed, + 0xd2, 0x38, 0x2a, 0x00, 0x6c, 0x10, 0xdb, 0xb5, 0x68, 0x70, 0x40, 0xda, 0xa5, 0x09, 0x94, 0x85, + 0x69, 0xd1, 0xdd, 0xa4, 0x5d, 0x9a, 0x5c, 0x3b, 0x7c, 0xfe, 0x6a, 0x51, 0x7b, 0xf1, 0x6a, 0x51, + 0xfb, 0xfd, 0xd5, 0xa2, 0xf6, 0xed, 0xd1, 0xe2, 0xd8, 0x8b, 0xa3, 0xc5, 0xb1, 0x5f, 0x8f, 0x16, + 0xc7, 0x1e, 0xdd, 0xdf, 0xa7, 0xec, 0x20, 0xdc, 0xad, 0x9b, 0xae, 0xdd, 0xd8, 0x8c, 0x74, 0xe4, + 0x0e, 0xde, 0x0d, 0x1a, 0xb1, 0xaa, 0xdc, 0x30, 0x5d, 0x9f, 0xa4, 0x5f, 0x0f, 0x30, 0x75, 0x1a, + 0xb6, 0xdb, 0x0e, 0x2d, 0x12, 0x24, 0x3f, 0x97, 0xf9, 0x51, 0x3e, 0x68, 0x74, 0x56, 0x77, 0x33, + 0xe2, 0x47, 0xf0, 0xbb, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0x33, 0x6e, 0xf5, 0xe5, 0x82, 0x16, + 0x00, 0x00, +} + +func (m *OpenNotionalCap) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenNotionalCap) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCap) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Cap != nil { + { + size := m.Cap.Size() + i -= size + if _, err := m.Cap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + return len(dAtA) - i, nil +} + +func (m *OpenNotionalCap_Uncapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCap_Uncapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Uncapped != nil { + { + size, err := m.Uncapped.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMarket(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *OpenNotionalCap_Capped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCap_Capped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Capped != nil { + { + size, err := m.Capped.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMarket(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *OpenNotionalCapUncapped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenNotionalCapUncapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCapUncapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *OpenNotionalCapCapped) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenNotionalCapCapped) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenNotionalCapCapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Value.Size() + i -= size + if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintMarket(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil } func (m *MarketFeeMultiplier) Marshal() (dAtA []byte, err error) { @@ -1150,6 +1453,18 @@ func (m *BinaryOptionsMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMarket(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa if m.QuoteDecimals != 0 { i = encodeVarintMarket(dAtA, i, uint64(m.QuoteDecimals)) i-- @@ -1332,6 +1647,18 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintMarket(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 { size := m.ReduceMarginRatio.Size() i -= size @@ -1900,6 +2227,62 @@ func encodeVarintMarket(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *OpenNotionalCap) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Cap != nil { + n += m.Cap.Size() + } + return n +} + +func (m *OpenNotionalCap_Uncapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Uncapped != nil { + l = m.Uncapped.Size() + n += 1 + l + sovMarket(uint64(l)) + } + return n +} +func (m *OpenNotionalCap_Capped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Capped != nil { + l = m.Capped.Size() + n += 1 + l + sovMarket(uint64(l)) + } + return n +} +func (m *OpenNotionalCapUncapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *OpenNotionalCapCapped) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Value.Size() + n += 1 + l + sovMarket(uint64(l)) + return n +} + func (m *MarketFeeMultiplier) Size() (n int) { if m == nil { return 0 @@ -2035,6 +2418,8 @@ func (m *BinaryOptionsMarket) Size() (n int) { if m.QuoteDecimals != 0 { n += 2 + sovMarket(uint64(m.QuoteDecimals)) } + l = m.OpenNotionalCap.Size() + n += 2 + l + sovMarket(uint64(l)) return n } @@ -2104,6 +2489,8 @@ func (m *DerivativeMarket) Size() (n int) { } l = m.ReduceMarginRatio.Size() n += 2 + l + sovMarket(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovMarket(uint64(l)) return n } @@ -2181,76 +2568,330 @@ func (m *PerpetualMarketFundingState) Size() (n int) { l = m.Funding.Size() n += 1 + l + sovMarket(uint64(l)) } - return n -} + return n +} + +func (m *ExpiryFuturesMarketInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovMarket(uint64(l)) + } + if m.ExpirationTimestamp != 0 { + n += 1 + sovMarket(uint64(m.ExpirationTimestamp)) + } + if m.TwapStartTimestamp != 0 { + n += 1 + sovMarket(uint64(m.TwapStartTimestamp)) + } + l = m.ExpirationTwapStartPriceCumulative.Size() + n += 1 + l + sovMarket(uint64(l)) + l = m.SettlementPrice.Size() + n += 1 + l + sovMarket(uint64(l)) + return n +} + +func (m *PerpetualMarketInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovMarket(uint64(l)) + } + l = m.HourlyFundingRateCap.Size() + n += 1 + l + sovMarket(uint64(l)) + l = m.HourlyInterestRate.Size() + n += 1 + l + sovMarket(uint64(l)) + if m.NextFundingTimestamp != 0 { + n += 1 + sovMarket(uint64(m.NextFundingTimestamp)) + } + if m.FundingInterval != 0 { + n += 1 + sovMarket(uint64(m.FundingInterval)) + } + return n +} + +func (m *PerpetualMarketFunding) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.CumulativeFunding.Size() + n += 1 + l + sovMarket(uint64(l)) + l = m.CumulativePrice.Size() + n += 1 + l + sovMarket(uint64(l)) + if m.LastTimestamp != 0 { + n += 1 + sovMarket(uint64(m.LastTimestamp)) + } + return n +} + +func sovMarket(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozMarket(x uint64) (n int) { + return sovMarket(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *OpenNotionalCap) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uncapped", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMarket + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMarket + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OpenNotionalCapUncapped{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Cap = &OpenNotionalCap_Uncapped{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Capped", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMarket + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMarket + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &OpenNotionalCapCapped{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Cap = &OpenNotionalCap_Capped{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMarket(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMarket + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func (m *ExpiryFuturesMarketInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovMarket(uint64(l)) - } - if m.ExpirationTimestamp != 0 { - n += 1 + sovMarket(uint64(m.ExpirationTimestamp)) - } - if m.TwapStartTimestamp != 0 { - n += 1 + sovMarket(uint64(m.TwapStartTimestamp)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - l = m.ExpirationTwapStartPriceCumulative.Size() - n += 1 + l + sovMarket(uint64(l)) - l = m.SettlementPrice.Size() - n += 1 + l + sovMarket(uint64(l)) - return n + return nil } - -func (m *PerpetualMarketInfo) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovMarket(uint64(l)) - } - l = m.HourlyFundingRateCap.Size() - n += 1 + l + sovMarket(uint64(l)) - l = m.HourlyInterestRate.Size() - n += 1 + l + sovMarket(uint64(l)) - if m.NextFundingTimestamp != 0 { - n += 1 + sovMarket(uint64(m.NextFundingTimestamp)) - } - if m.FundingInterval != 0 { - n += 1 + sovMarket(uint64(m.FundingInterval)) +func (m *OpenNotionalCapUncapped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCapUncapped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCapUncapped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMarket(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMarket + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } } - return n -} -func (m *PerpetualMarketFunding) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.CumulativeFunding.Size() - n += 1 + l + sovMarket(uint64(l)) - l = m.CumulativePrice.Size() - n += 1 + l + sovMarket(uint64(l)) - if m.LastTimestamp != 0 { - n += 1 + sovMarket(uint64(m.LastTimestamp)) + if iNdEx > l { + return io.ErrUnexpectedEOF } - return n + return nil } +func (m *OpenNotionalCapCapped) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenNotionalCapCapped: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenNotionalCapCapped: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMarket + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMarket + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMarket(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMarket + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } -func sovMarket(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozMarket(x uint64) (n int) { - return sovMarket(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil } func (m *MarketFeeMultiplier) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -3452,6 +4093,39 @@ func (m *BinaryOptionsMarket) Unmarshal(dAtA []byte) error { break } } + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMarket + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMarket + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipMarket(dAtA[iNdEx:]) @@ -4115,6 +4789,39 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMarket + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMarket + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMarket + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipMarket(dAtA[iNdEx:]) diff --git a/chain/exchange/types/v2/msgs.go b/chain/exchange/types/v2/msgs.go index 5347e74d..2166894e 100644 --- a/chain/exchange/types/v2/msgs.go +++ b/chain/exchange/types/v2/msgs.go @@ -35,6 +35,7 @@ var ( _ sdk.Msg = &MsgIncreasePositionMargin{} _ sdk.Msg = &MsgDecreasePositionMargin{} _ sdk.Msg = &MsgLiquidatePosition{} + _ sdk.Msg = &MsgOffsetPosition{} _ sdk.Msg = &MsgEmergencySettleMarket{} _ sdk.Msg = &MsgInstantSpotMarketLaunch{} _ sdk.Msg = &MsgInstantPerpetualMarketLaunch{} @@ -88,6 +89,7 @@ const ( TypeMsgIncreasePositionMargin = "increasePositionMargin" TypeMsgDecreasePositionMargin = "decreasePositionMargin" TypeMsgLiquidatePosition = "liquidatePosition" + TypeMsgOffsetPosition = "offsetPosition" TypeMsgEmergencySettleMarket = "emergencySettleMarket" TypeMsgInstantSpotMarketLaunch = "instantSpotMarketLaunch" TypeMsgInstantPerpetualMarketLaunch = "instantPerpetualMarketLaunch" @@ -200,6 +202,7 @@ func (msg *MsgUpdateSpotMarket) HasMinNotionalUpdate() bool { return !msg.NewMinNotional.IsNil() && !msg.NewMinNotional.IsZero() } +//revive:disable:cyclomatic // Any refactoring to the function would make it less readable func (msg *MsgUpdateDerivativeMarket) ValidateBasic() error { if err := types.ValidateAddress(msg.Admin); err != nil { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Admin) @@ -212,6 +215,7 @@ func (msg *MsgUpdateDerivativeMarket) ValidateBasic() error { hasNoUpdate := !msg.HasTickerUpdate() && !msg.HasMinPriceTickSizeUpdate() && !msg.HasMinNotionalUpdate() && + !msg.HasOpenNotionalCapUpdate() && !msg.HasMinQuantityTickSizeUpdate() && !msg.HasInitialMarginRatioUpdate() && !msg.HasMaintenanceMarginRatioUpdate() && @@ -243,6 +247,12 @@ func (msg *MsgUpdateDerivativeMarket) ValidateBasic() error { } } + if msg.HasOpenNotionalCapUpdate() { + if err := ValidateOpenNotionalCap(msg.NewOpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } + } + if msg.HasInitialMarginRatioUpdate() { if err := types.ValidateMarginRatio(msg.NewInitialMarginRatio); err != nil { return err @@ -326,6 +336,18 @@ func (msg *MsgUpdateDerivativeMarket) HasMinNotionalUpdate() bool { return !msg.NewMinNotional.IsNil() && !msg.NewMinNotional.IsZero() } +func (msg *MsgUpdateDerivativeMarket) HasOpenNotionalCapUpdate() bool { + switch { + case msg.NewOpenNotionalCap.GetCapped() != nil: + return true + case msg.NewOpenNotionalCap.GetUncapped() != nil: + return true + + default: + return false + } +} + func (m *SpotOrder) ValidateBasic(senderAddr sdk.AccAddress) error { if !types.IsHexHash(m.MarketId) { return errors.Wrap(types.ErrMarketInvalid, m.MarketId) @@ -376,10 +398,6 @@ func (m *OrderInfo) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPriceBand, } } - if isDerivative && !hasBinaryPriceBand && m.Price.LT(types.MinDerivativeOrderPrice) { - return errors.Wrap(types.ErrInvalidPrice, m.Price.String()) - } - return nil } @@ -417,7 +435,7 @@ func (m *DerivativeOrder) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPric return types.ErrInvalidTriggerPrice } - if m.IsConditional() && (m.TriggerPrice == nil || m.TriggerPrice.LT(types.MinDerivativeOrderPrice)) { + if m.IsConditional() && (m.TriggerPrice == nil || m.TriggerPrice.LTE(math.LegacyZeroDec())) { /*||!o.IsConditional() && o.TriggerPrice != nil */ // commented out this check since FE is sending to us 0.0 trigger price for all orders return errors.Wrapf( @@ -686,6 +704,9 @@ func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { if err := types.ValidateMinNotional(msg.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(msg.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return nil } @@ -763,6 +784,9 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if err := types.ValidateMinNotional(msg.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(msg.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return nil } @@ -839,6 +863,9 @@ func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { if err := types.ValidateMinNotional(msg.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(msg.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return nil } @@ -1831,6 +1858,63 @@ func (msg *MsgLiquidatePosition) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } +func (*MsgOffsetPosition) Route() string { + return RouterKey +} + +func (*MsgOffsetPosition) Type() string { + return TypeMsgOffsetPosition +} + +func (msg *MsgOffsetPosition) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Sender) + + if err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) + } + + if !types.IsHexHash(msg.MarketId) { + return errors.Wrap(types.ErrMarketInvalid, msg.MarketId) + } + + _, ok := types.IsValidSubaccountID(msg.SubaccountId) + if !ok { + return errors.Wrap(types.ErrBadSubaccountID, msg.SubaccountId) + } + + if len(msg.OffsettingSubaccountIds) == 0 { + return errors.Wrap(types.ErrOffsettingSubaccountIDsEmpty, "at least one offsetting subaccount ID must be provided") + } + + for _, subaccountID := range msg.OffsettingSubaccountIds { + if _, ok := types.IsValidSubaccountID(subaccountID); !ok { + return errors.Wrap(types.ErrBadSubaccountID, subaccountID) + } + + if subaccountID == msg.SubaccountId { + return errors.Wrap(types.ErrBadSubaccountID, "offsetting subaccount ID cannot be the same as the original subaccount ID") + } + } + + if types.HasDuplicates(msg.OffsettingSubaccountIds) { + return errors.Wrap(types.ErrBadSubaccountID, "message contains duplicate offsetting subaccount IDs") + } + + return nil +} + +func (msg *MsgOffsetPosition) GetSignBytes() []byte { + return sdk.MustSortJSON(types.ModuleCdc.MustMarshalJSON(msg)) +} + +func (msg *MsgOffsetPosition) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + func (msg *MsgEmergencySettleMarket) Route() string { return RouterKey } @@ -1924,7 +2008,10 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { len(msg.DerivativeOrdersToCreate) == 0 && len(msg.SpotOrdersToCreate) == 0 && len(msg.BinaryOptionsOrdersToCreate) == 0 && - len(msg.BinaryOptionsOrdersToCancel) == 0 { + len(msg.BinaryOptionsOrdersToCancel) == 0 && + len(msg.SpotMarketOrdersToCreate) == 0 && + len(msg.DerivativeMarketOrdersToCreate) == 0 && + len(msg.BinaryOptionsMarketOrdersToCreate) == 0 { return errors.Wrap(types.ErrInvalidBatchMsgUpdate, "msg is empty") } @@ -2045,7 +2132,13 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { } } - return nil + // Check for duplicate derivative market orders (same market and subaccount) + if err := ensureNoDuplicateMarketOrders(sender, msg.DerivativeMarketOrdersToCreate); err != nil { + return err + } + + // Check for duplicate binary options market orders (same market and subaccount) + return ensureNoDuplicateMarketOrders(sender, msg.BinaryOptionsMarketOrdersToCreate) } // GetSignBytes implements the sdk.Msg interface. It encodes the message for signing @@ -2611,34 +2704,22 @@ func hasDuplicatesOrder(slice []*OrderData) bool { return false } -func (msg *MsgSetDelegationTransferReceivers) Route() string { return RouterKey } -func (msg *MsgSetDelegationTransferReceivers) Type() string { return "setDelegationTransferReceivers" } -func (msg *MsgSetDelegationTransferReceivers) ValidateBasic() error { - if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } - - if len(msg.Receivers) == 0 { - return errors.Wrap(sdkerrors.ErrInvalidRequest, "receivers list cannot be empty") - } +// ensureNoDuplicateMarketOrders checks if there are duplicate market orders for the same market and subaccount combination +func ensureNoDuplicateMarketOrders(sender sdk.AccAddress, orders []*DerivativeOrder) error { + seen := make(map[string]struct{}) + for _, order := range orders { + // Normalize the subaccount ID (converts both full subaccount ID and subaccount index to full subaccount ID) + normalizedSubaccountID, err := types.GetSubaccountIDOrDeriveFromNonce(sender, order.OrderInfo.SubaccountId) + if err != nil { + return errors.Wrap(types.ErrBadSubaccountID, order.OrderInfo.SubaccountId) + } - for _, receiver := range msg.Receivers { - if _, err := sdk.AccAddressFromBech32(receiver); err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid receiver address: %s", receiver) + // Create a unique key combining market ID and normalized subaccount ID + key := order.MarketId + ":" + normalizedSubaccountID.Hex() + if _, exists := seen[key]; exists { + return errors.Wrap(types.ErrInvalidBatchMsgUpdate, "duplicate market orders for the same market and subaccount") } + seen[key] = struct{}{} } - return nil } - -func (msg *MsgSetDelegationTransferReceivers) GetSignBytes() []byte { - bz, _ := json.Marshal(msg) - return sdk.MustSortJSON(bz) -} - -func (msg *MsgSetDelegationTransferReceivers) GetSigners() []sdk.AccAddress { - sender, _ := sdk.AccAddressFromBech32(msg.Sender) - return []sdk.AccAddress{sender} -} - -var _ sdk.Msg = &MsgSetDelegationTransferReceivers{} diff --git a/chain/exchange/types/v2/params.go b/chain/exchange/types/v2/params.go index 02d6dd1f..bfc39752 100644 --- a/chain/exchange/types/v2/params.go +++ b/chain/exchange/types/v2/params.go @@ -44,6 +44,7 @@ var ( KeyPostOnlyModeHeightThreshold = []byte("PostOnlyModeHeightThreshold") KeyPostOnlyModeBlocksAmount = []byte("PostOnlyModeBlocksAmount") KeyMinPostOnlyModeDowntimeDuration = []byte("MinPostOnlyModeDowntimeDuration") + KeyPostOnlyModeBlocksAmountAfterDowntime = []byte("PostOnlyModeBlocksAmountAfterDowntime") ) // ParamSetPairs returns the parameter set pairs. @@ -128,6 +129,11 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { &p.PostOnlyModeBlocksAmount, ValidatePostOnlyModeBlocksAmount, ), + paramtypes.NewParamSetPair( + KeyPostOnlyModeBlocksAmountAfterDowntime, + &p.PostOnlyModeBlocksAmountAfterDowntime, + ValidatePostOnlyModeBlocksAmountAfterDowntime, + ), } } @@ -167,6 +173,7 @@ func DefaultParams() Params { EmitLegacyVersionEvents: true, PostOnlyModeBlocksAmount: 2000, // default 2000 blocks MinPostOnlyModeDowntimeDuration: "DURATION_10M", // default 10 minutes + PostOnlyModeBlocksAmountAfterDowntime: 1000, // default 1000 blocks } } @@ -257,6 +264,10 @@ func (p Params) Validate() error { return fmt.Errorf("min_post_only_mode_downtime_duration is incorrect: %w", err) } + if err := ValidatePostOnlyModeBlocksAmountAfterDowntime(p.PostOnlyModeBlocksAmountAfterDowntime); err != nil { + return fmt.Errorf("post_only_mode_blocks_amount_after_downtime is incorrect: %w", err) + } + return nil } @@ -300,3 +311,43 @@ func ValidateMinPostOnlyModeDowntimeDuration(downtimeDuration any) error { return nil } + +func ValidatePostOnlyModeBlocksAmountAfterDowntime(blocksAmount any) error { + v, ok := blocksAmount.(uint64) + if !ok { + return fmt.Errorf("invalid parameter type: %T", blocksAmount) + } + + if v == 0 { + return fmt.Errorf("PostOnlyModeBlocksAmountAfterDowntime must be greater than zero: %d", v) + } + + return nil +} + +func ValidateOpenNotionalCap(i any) error { + v, ok := i.(OpenNotionalCap) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + capped := v.GetCapped() != nil + uncapped := v.GetUncapped() != nil + + if capped && uncapped { + return errors.New("open notional cap cannot be both capped and uncapped") + } + if !capped && !uncapped { + return errors.New("open notional cap must be either capped or uncapped") + } + if capped { + if v.GetCapped().Value.IsNil() { + return errors.New("cap value cannot be nil") + } + if v.GetCapped().Value.IsNegative() { + return fmt.Errorf("cap value cannot be negative: %s", v) + } + } + + return nil +} diff --git a/chain/exchange/types/v2/position.go b/chain/exchange/types/v2/position.go index 9d342378..53d0feb8 100644 --- a/chain/exchange/types/v2/position.go +++ b/chain/exchange/types/v2/position.go @@ -191,15 +191,19 @@ func (p *Position) checkValidClosingPrice( return nil } -func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice math.LegacyDec, funding *PerpetualMarketFunding) math.LegacyDec { +func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice math.LegacyDec, funding *PerpetualMarketFunding) *math.LegacyDec { bankruptcyPrice := p.GetBankruptcyPrice(funding) hasNegativeEquity := (p.IsLong && markPrice.LT(bankruptcyPrice)) || (p.IsShort() && markPrice.GT(bankruptcyPrice)) - if hasNegativeEquity { - return markPrice + return &markPrice } - return bankruptcyPrice + return &bankruptcyPrice +} + +func (p *Position) GetOffsettingMarketOrderWorstPrice(funding *PerpetualMarketFunding) *math.LegacyDec { + bankruptcyPrice := p.GetBankruptcyPrice(funding) + return &bankruptcyPrice } func (p *Position) GetBankruptcyPrice(funding *PerpetualMarketFunding) (bankruptcyPrice math.LegacyDec) { diff --git a/chain/exchange/types/v2/proposal.go b/chain/exchange/types/v2/proposal.go index 0bde0882..cfe67009 100644 --- a/chain/exchange/types/v2/proposal.go +++ b/chain/exchange/types/v2/proposal.go @@ -17,23 +17,23 @@ import ( // constants const ( - ProposalTypeExchangeEnable string = "ProposalTypeExchangeEnableV2" - ProposalTypeBatchExchangeModification string = "ProposalTypeBatchExchangeModificationV2" - ProposalTypeSpotMarketParamUpdate string = "ProposalTypeSpotMarketParamUpdateV2" - ProposalTypeSpotMarketLaunch string = "ProposalTypeSpotMarketLaunchV2" - ProposalTypePerpetualMarketLaunch string = "ProposalTypePerpetualMarketLaunchV2" - ProposalTypeExpiryFuturesMarketLaunch string = "ProposalTypeExpiryFuturesMarketLaunchV2" - ProposalTypeDerivativeMarketParamUpdate string = "ProposalTypeDerivativeMarketParamUpdateV2" - ProposalTypeMarketForcedSettlement string = "ProposalTypeMarketForcedSettlementV2" - ProposalUpdateDenomDecimals string = "ProposalUpdateDenomDecimalsV2" - ProposalTypeTradingRewardCampaign string = "ProposalTypeTradingRewardCampaignV2" - ProposalTypeTradingRewardCampaignUpdate string = "ProposalTypeTradingRewardCampaignUpdateProposalV2" - ProposalTypeTradingRewardPointsUpdate string = "ProposalTypeTradingRewardPointsUpdateProposalV2" - ProposalTypeFeeDiscountProposal string = "ProposalTypeFeeDiscountProposalV2" - ProposalTypeBatchCommunityPoolSpendProposal string = "ProposalTypeBatchCommunityPoolSpendProposalV2" - ProposalTypeBinaryOptionsMarketLaunch string = "ProposalTypeBinaryOptionsMarketLaunchV2" - ProposalTypeBinaryOptionsMarketParamUpdate string = "ProposalTypeBinaryOptionsMarketParamUpdateV2" - ProposalAtomicMarketOrderFeeMultiplierSchedule string = "ProposalAtomicMarketOrderFeeMultiplierScheduleV2" + ProposalTypeExchangeEnable string = "ProposalTypeExchangeEnableV2" + ProposalTypeBatchExchangeModification string = "ProposalTypeBatchExchangeModificationV2" + ProposalTypeSpotMarketParamUpdate string = "ProposalTypeSpotMarketParamUpdateV2" + ProposalTypeSpotMarketLaunch string = "ProposalTypeSpotMarketLaunchV2" + ProposalTypePerpetualMarketLaunch string = "ProposalTypePerpetualMarketLaunchV2" + ProposalTypeExpiryFuturesMarketLaunch string = "ProposalTypeExpiryFuturesMarketLaunchV2" + ProposalTypeDerivativeMarketParamUpdate string = "ProposalTypeDerivativeMarketParamUpdateV2" + ProposalTypeMarketForcedSettlement string = "ProposalTypeMarketForcedSettlementV2" + ProposalUpdateAuctionExchangeTransferDenomDecimals string = "ProposalUpdateAuctionExchangeTransferDenomDecimalsV2" + ProposalTypeTradingRewardCampaign string = "ProposalTypeTradingRewardCampaignV2" + ProposalTypeTradingRewardCampaignUpdate string = "ProposalTypeTradingRewardCampaignUpdateProposalV2" + ProposalTypeTradingRewardPointsUpdate string = "ProposalTypeTradingRewardPointsUpdateProposalV2" + ProposalTypeFeeDiscountProposal string = "ProposalTypeFeeDiscountProposalV2" + ProposalTypeBatchCommunityPoolSpendProposal string = "ProposalTypeBatchCommunityPoolSpendProposalV2" + ProposalTypeBinaryOptionsMarketLaunch string = "ProposalTypeBinaryOptionsMarketLaunchV2" + ProposalTypeBinaryOptionsMarketParamUpdate string = "ProposalTypeBinaryOptionsMarketParamUpdateV2" + ProposalAtomicMarketOrderFeeMultiplierSchedule string = "ProposalAtomicMarketOrderFeeMultiplierScheduleV2" ) func init() { @@ -45,7 +45,7 @@ func init() { govtypes.RegisterProposalType(ProposalTypeExpiryFuturesMarketLaunch) govtypes.RegisterProposalType(ProposalTypeDerivativeMarketParamUpdate) govtypes.RegisterProposalType(ProposalTypeMarketForcedSettlement) - govtypes.RegisterProposalType(ProposalUpdateDenomDecimals) + govtypes.RegisterProposalType(ProposalUpdateAuctionExchangeTransferDenomDecimals) govtypes.RegisterProposalType(ProposalTypeTradingRewardCampaign) govtypes.RegisterProposalType(ProposalTypeTradingRewardCampaignUpdate) govtypes.RegisterProposalType(ProposalTypeTradingRewardPointsUpdate) @@ -191,8 +191,8 @@ func (p *BatchExchangeModificationProposal) ValidateBasic() error { } } - if p.DenomDecimalsUpdateProposal != nil { - if err := p.DenomDecimalsUpdateProposal.ValidateBasic(); err != nil { + if p.AuctionExchangeTransferDenomDecimalsUpdateProposal != nil { + if err := p.AuctionExchangeTransferDenomDecimalsUpdateProposal.ValidateBasic(); err != nil { return err } } @@ -470,6 +470,7 @@ func NewDerivativeMarketParamUpdateProposal( minNotional *math.LegacyDec, hourlyInterestRate *math.LegacyDec, hourlyFundingRateCap *math.LegacyDec, + openNotionalCap *OpenNotionalCap, status MarketStatus, oracleParams *OracleParams, ticker string, @@ -489,6 +490,7 @@ func NewDerivativeMarketParamUpdateProposal( MinQuantityTickSize: minQuantityTickSize, HourlyInterestRate: hourlyInterestRate, HourlyFundingRateCap: hourlyFundingRateCap, + OpenNotionalCap: openNotionalCap, Status: status, OracleParams: oracleParams, Ticker: ticker, @@ -533,6 +535,7 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { p.MaintenanceMarginRatio == nil && p.HourlyInterestRate == nil && p.HourlyFundingRateCap == nil && + p.OpenNotionalCap == nil && p.Status == MarketStatus_Unspecified && p.AdminInfo == nil && p.OracleParams == nil { @@ -582,6 +585,11 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } } + if p.OpenNotionalCap != nil { + if err := ValidateOpenNotionalCap(*p.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } + } if p.HourlyInterestRate != nil { if err := types.ValidateHourlyInterestRate(*p.HourlyInterestRate); err != nil { @@ -682,8 +690,8 @@ func (p *MarketForcedSettlementProposal) ValidateBasic() error { func NewUpdateDenomDecimalsProposal( title, description string, denomDecimals []*DenomDecimals, -) *UpdateDenomDecimalsProposal { - return &UpdateDenomDecimalsProposal{ +) *UpdateAuctionExchangeTransferDenomDecimalsProposal { + return &UpdateAuctionExchangeTransferDenomDecimalsProposal{ Title: title, Description: description, DenomDecimals: denomDecimals, @@ -691,28 +699,28 @@ func NewUpdateDenomDecimalsProposal( } // Implements Proposal Interface -var _ govtypes.Content = &UpdateDenomDecimalsProposal{} +var _ govtypes.Content = &UpdateAuctionExchangeTransferDenomDecimalsProposal{} // GetTitle returns the title of this proposal -func (p *UpdateDenomDecimalsProposal) GetTitle() string { +func (p *UpdateAuctionExchangeTransferDenomDecimalsProposal) GetTitle() string { return p.Title } // GetDescription returns the description of this proposal -func (p *UpdateDenomDecimalsProposal) GetDescription() string { +func (p *UpdateAuctionExchangeTransferDenomDecimalsProposal) GetDescription() string { return p.Description } // ProposalRoute returns router key of this proposal. -func (p *UpdateDenomDecimalsProposal) ProposalRoute() string { return RouterKey } +func (*UpdateAuctionExchangeTransferDenomDecimalsProposal) ProposalRoute() string { return RouterKey } // ProposalType returns proposal type of this proposal. -func (p *UpdateDenomDecimalsProposal) ProposalType() string { - return ProposalUpdateDenomDecimals +func (*UpdateAuctionExchangeTransferDenomDecimalsProposal) ProposalType() string { + return ProposalUpdateAuctionExchangeTransferDenomDecimals } // ValidateBasic returns ValidateBasic result of this proposal. -func (p *UpdateDenomDecimalsProposal) ValidateBasic() error { +func (p *UpdateAuctionExchangeTransferDenomDecimalsProposal) ValidateBasic() error { for _, d := range p.DenomDecimals { if err := d.Validate(); err != nil { return err @@ -812,6 +820,7 @@ func NewPerpetualMarketLaunchProposal( oracleBase, oracleQuote string, oracleScaleFactor uint32, oracleType oracletypes.OracleType, initialMarginRatio, maintenanceMarginRatio, reduceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize, minNotional math.LegacyDec, + openNotionalCap OpenNotionalCap, ) *PerpetualMarketLaunchProposal { return &PerpetualMarketLaunchProposal{ Title: title, @@ -825,6 +834,7 @@ func NewPerpetualMarketLaunchProposal( InitialMarginRatio: initialMarginRatio, MaintenanceMarginRatio: maintenanceMarginRatio, ReduceMarginRatio: reduceMarginRatio, + OpenNotionalCap: openNotionalCap, MakerFeeRate: makerFeeRate, TakerFeeRate: takerFeeRate, MinPriceTickSize: minPriceTickSize, @@ -901,6 +911,9 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { if err := types.ValidateMinNotional(p.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(p.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return govtypes.ValidateAbstract(p) } @@ -911,6 +924,7 @@ func NewExpiryFuturesMarketLaunchProposal( oracleBase, oracleQuote string, oracleScaleFactor uint32, oracleType oracletypes.OracleType, expiry int64, initialMarginRatio, maintenanceMarginRatio, reduceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize, minNotional math.LegacyDec, + openNotionalCap OpenNotionalCap, ) *ExpiryFuturesMarketLaunchProposal { return &ExpiryFuturesMarketLaunchProposal{ Title: title, @@ -925,6 +939,7 @@ func NewExpiryFuturesMarketLaunchProposal( InitialMarginRatio: initialMarginRatio, MaintenanceMarginRatio: maintenanceMarginRatio, ReduceMarginRatio: reduceMarginRatio, + OpenNotionalCap: openNotionalCap, MakerFeeRate: makerFeeRate, TakerFeeRate: takerFeeRate, MinPriceTickSize: minPriceTickSize, @@ -1004,6 +1019,9 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error { if err := types.ValidateMinNotional(p.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(p.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return govtypes.ValidateAbstract(p) } @@ -1635,6 +1653,9 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if err := types.ValidateMinNotional(p.MinNotional); err != nil { return errors.Wrap(types.ErrInvalidNotional, err.Error()) } + if err := ValidateOpenNotionalCap(p.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } return govtypes.ValidateAbstract(p) } @@ -1645,6 +1666,7 @@ func NewBinaryOptionsMarketParamUpdateProposal( description string, marketID string, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, + openNotionalCap *OpenNotionalCap, expirationTimestamp, settlementTimestamp int64, admin string, status MarketStatus, @@ -1661,6 +1683,7 @@ func NewBinaryOptionsMarketParamUpdateProposal( MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, MinNotional: minNotional, + OpenNotionalCap: openNotionalCap, ExpirationTimestamp: expirationTimestamp, SettlementTimestamp: settlementTimestamp, Admin: admin, @@ -1702,6 +1725,7 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error { p.MinPriceTickSize == nil && p.MinQuantityTickSize == nil && p.MinNotional == nil && + p.OpenNotionalCap == nil && p.Status == MarketStatus_Unspecified && p.ExpirationTimestamp == 0 && p.SettlementTimestamp == 0 && @@ -1746,6 +1770,12 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error { } } + if p.OpenNotionalCap != nil { + if err := ValidateOpenNotionalCap(*p.OpenNotionalCap); err != nil { + return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error()) + } + } + if p.ExpirationTimestamp != 0 && p.SettlementTimestamp != 0 { if p.ExpirationTimestamp >= p.SettlementTimestamp || p.ExpirationTimestamp < 0 || p.SettlementTimestamp < 0 { return types.ErrInvalidExpiry diff --git a/chain/exchange/types/v2/proposal.pb.go b/chain/exchange/types/v2/proposal.pb.go index 3166632f..01d8b244 100644 --- a/chain/exchange/types/v2/proposal.pb.go +++ b/chain/exchange/types/v2/proposal.pb.go @@ -160,20 +160,20 @@ func (m *ExchangeEnableProposal) XXX_DiscardUnknown() { var xxx_messageInfo_ExchangeEnableProposal proto.InternalMessageInfo type BatchExchangeModificationProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - SpotMarketParamUpdateProposals []*SpotMarketParamUpdateProposal `protobuf:"bytes,3,rep,name=spot_market_param_update_proposals,json=spotMarketParamUpdateProposals,proto3" json:"spot_market_param_update_proposals,omitempty"` - DerivativeMarketParamUpdateProposals []*DerivativeMarketParamUpdateProposal `protobuf:"bytes,4,rep,name=derivative_market_param_update_proposals,json=derivativeMarketParamUpdateProposals,proto3" json:"derivative_market_param_update_proposals,omitempty"` - SpotMarketLaunchProposals []*SpotMarketLaunchProposal `protobuf:"bytes,5,rep,name=spot_market_launch_proposals,json=spotMarketLaunchProposals,proto3" json:"spot_market_launch_proposals,omitempty"` - PerpetualMarketLaunchProposals []*PerpetualMarketLaunchProposal `protobuf:"bytes,6,rep,name=perpetual_market_launch_proposals,json=perpetualMarketLaunchProposals,proto3" json:"perpetual_market_launch_proposals,omitempty"` - ExpiryFuturesMarketLaunchProposals []*ExpiryFuturesMarketLaunchProposal `protobuf:"bytes,7,rep,name=expiry_futures_market_launch_proposals,json=expiryFuturesMarketLaunchProposals,proto3" json:"expiry_futures_market_launch_proposals,omitempty"` - TradingRewardCampaignUpdateProposal *TradingRewardCampaignUpdateProposal `protobuf:"bytes,8,opt,name=trading_reward_campaign_update_proposal,json=tradingRewardCampaignUpdateProposal,proto3" json:"trading_reward_campaign_update_proposal,omitempty"` - BinaryOptionsMarketLaunchProposals []*BinaryOptionsMarketLaunchProposal `protobuf:"bytes,9,rep,name=binary_options_market_launch_proposals,json=binaryOptionsMarketLaunchProposals,proto3" json:"binary_options_market_launch_proposals,omitempty"` - BinaryOptionsParamUpdateProposals []*BinaryOptionsMarketParamUpdateProposal `protobuf:"bytes,10,rep,name=binary_options_param_update_proposals,json=binaryOptionsParamUpdateProposals,proto3" json:"binary_options_param_update_proposals,omitempty"` - DenomDecimalsUpdateProposal *UpdateDenomDecimalsProposal `protobuf:"bytes,11,opt,name=denom_decimals_update_proposal,json=denomDecimalsUpdateProposal,proto3" json:"denom_decimals_update_proposal,omitempty"` - FeeDiscountProposal *FeeDiscountProposal `protobuf:"bytes,12,opt,name=fee_discount_proposal,json=feeDiscountProposal,proto3" json:"fee_discount_proposal,omitempty"` - MarketForcedSettlementProposals []*MarketForcedSettlementProposal `protobuf:"bytes,13,rep,name=market_forced_settlement_proposals,json=marketForcedSettlementProposals,proto3" json:"market_forced_settlement_proposals,omitempty"` - DenomMinNotionalProposal *DenomMinNotionalProposal `protobuf:"bytes,14,opt,name=denom_min_notional_proposal,json=denomMinNotionalProposal,proto3" json:"denom_min_notional_proposal,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + SpotMarketParamUpdateProposals []*SpotMarketParamUpdateProposal `protobuf:"bytes,3,rep,name=spot_market_param_update_proposals,json=spotMarketParamUpdateProposals,proto3" json:"spot_market_param_update_proposals,omitempty"` + DerivativeMarketParamUpdateProposals []*DerivativeMarketParamUpdateProposal `protobuf:"bytes,4,rep,name=derivative_market_param_update_proposals,json=derivativeMarketParamUpdateProposals,proto3" json:"derivative_market_param_update_proposals,omitempty"` + SpotMarketLaunchProposals []*SpotMarketLaunchProposal `protobuf:"bytes,5,rep,name=spot_market_launch_proposals,json=spotMarketLaunchProposals,proto3" json:"spot_market_launch_proposals,omitempty"` + PerpetualMarketLaunchProposals []*PerpetualMarketLaunchProposal `protobuf:"bytes,6,rep,name=perpetual_market_launch_proposals,json=perpetualMarketLaunchProposals,proto3" json:"perpetual_market_launch_proposals,omitempty"` + ExpiryFuturesMarketLaunchProposals []*ExpiryFuturesMarketLaunchProposal `protobuf:"bytes,7,rep,name=expiry_futures_market_launch_proposals,json=expiryFuturesMarketLaunchProposals,proto3" json:"expiry_futures_market_launch_proposals,omitempty"` + TradingRewardCampaignUpdateProposal *TradingRewardCampaignUpdateProposal `protobuf:"bytes,8,opt,name=trading_reward_campaign_update_proposal,json=tradingRewardCampaignUpdateProposal,proto3" json:"trading_reward_campaign_update_proposal,omitempty"` + BinaryOptionsMarketLaunchProposals []*BinaryOptionsMarketLaunchProposal `protobuf:"bytes,9,rep,name=binary_options_market_launch_proposals,json=binaryOptionsMarketLaunchProposals,proto3" json:"binary_options_market_launch_proposals,omitempty"` + BinaryOptionsParamUpdateProposals []*BinaryOptionsMarketParamUpdateProposal `protobuf:"bytes,10,rep,name=binary_options_param_update_proposals,json=binaryOptionsParamUpdateProposals,proto3" json:"binary_options_param_update_proposals,omitempty"` + AuctionExchangeTransferDenomDecimalsUpdateProposal *UpdateAuctionExchangeTransferDenomDecimalsProposal `protobuf:"bytes,11,opt,name=auction_exchange_transfer_denom_decimals_update_proposal,json=auctionExchangeTransferDenomDecimalsUpdateProposal,proto3" json:"auction_exchange_transfer_denom_decimals_update_proposal,omitempty"` + FeeDiscountProposal *FeeDiscountProposal `protobuf:"bytes,12,opt,name=fee_discount_proposal,json=feeDiscountProposal,proto3" json:"fee_discount_proposal,omitempty"` + MarketForcedSettlementProposals []*MarketForcedSettlementProposal `protobuf:"bytes,13,rep,name=market_forced_settlement_proposals,json=marketForcedSettlementProposals,proto3" json:"market_forced_settlement_proposals,omitempty"` + DenomMinNotionalProposal *DenomMinNotionalProposal `protobuf:"bytes,14,opt,name=denom_min_notional_proposal,json=denomMinNotionalProposal,proto3" json:"denom_min_notional_proposal,omitempty"` } func (m *BatchExchangeModificationProposal) Reset() { *m = BatchExchangeModificationProposal{} } @@ -312,6 +312,8 @@ type PerpetualMarketLaunchProposal struct { AdminInfo *AdminInfo `protobuf:"bytes,16,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,17,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,18,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *PerpetualMarketLaunchProposal) Reset() { *m = PerpetualMarketLaunchProposal{} } @@ -382,6 +384,8 @@ type BinaryOptionsMarketLaunchProposal struct { // orders in the market MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` AdminPermissions uint32 `protobuf:"varint,17,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,18,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *BinaryOptionsMarketLaunchProposal) Reset() { *m = BinaryOptionsMarketLaunchProposal{} } @@ -460,6 +464,8 @@ type ExpiryFuturesMarketLaunchProposal struct { AdminInfo *AdminInfo `protobuf:"bytes,17,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,19,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *ExpiryFuturesMarketLaunchProposal) Reset() { *m = ExpiryFuturesMarketLaunchProposal{} } @@ -534,6 +540,8 @@ type DerivativeMarketParamUpdateProposal struct { AdminInfo *AdminInfo `protobuf:"bytes,17,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio *cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio,omitempty"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap *OpenNotionalCap `protobuf:"bytes,19,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap,omitempty"` } func (m *DerivativeMarketParamUpdateProposal) Reset() { *m = DerivativeMarketParamUpdateProposal{} } @@ -661,24 +669,28 @@ func (m *MarketForcedSettlementProposal) XXX_DiscardUnknown() { var xxx_messageInfo_MarketForcedSettlementProposal proto.InternalMessageInfo -type UpdateDenomDecimalsProposal struct { +type UpdateAuctionExchangeTransferDenomDecimalsProposal struct { Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` DenomDecimals []*DenomDecimals `protobuf:"bytes,3,rep,name=denom_decimals,json=denomDecimals,proto3" json:"denom_decimals,omitempty"` } -func (m *UpdateDenomDecimalsProposal) Reset() { *m = UpdateDenomDecimalsProposal{} } -func (m *UpdateDenomDecimalsProposal) String() string { return proto.CompactTextString(m) } -func (*UpdateDenomDecimalsProposal) ProtoMessage() {} -func (*UpdateDenomDecimalsProposal) Descriptor() ([]byte, []int) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) Reset() { + *m = UpdateAuctionExchangeTransferDenomDecimalsProposal{} +} +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) String() string { + return proto.CompactTextString(m) +} +func (*UpdateAuctionExchangeTransferDenomDecimalsProposal) ProtoMessage() {} +func (*UpdateAuctionExchangeTransferDenomDecimalsProposal) Descriptor() ([]byte, []int) { return fileDescriptor_0fb550654abc72c5, []int{10} } -func (m *UpdateDenomDecimalsProposal) XXX_Unmarshal(b []byte) error { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *UpdateDenomDecimalsProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_UpdateDenomDecimalsProposal.Marshal(b, m, deterministic) + return xxx_messageInfo_UpdateAuctionExchangeTransferDenomDecimalsProposal.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -688,17 +700,17 @@ func (m *UpdateDenomDecimalsProposal) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *UpdateDenomDecimalsProposal) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateDenomDecimalsProposal.Merge(m, src) +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateAuctionExchangeTransferDenomDecimalsProposal.Merge(m, src) } -func (m *UpdateDenomDecimalsProposal) XXX_Size() int { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) XXX_Size() int { return m.Size() } -func (m *UpdateDenomDecimalsProposal) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateDenomDecimalsProposal.DiscardUnknown(m) +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateAuctionExchangeTransferDenomDecimalsProposal.DiscardUnknown(m) } -var xxx_messageInfo_UpdateDenomDecimalsProposal proto.InternalMessageInfo +var xxx_messageInfo_UpdateAuctionExchangeTransferDenomDecimalsProposal proto.InternalMessageInfo type BinaryOptionsMarketParamUpdateProposal struct { Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -733,6 +745,8 @@ type BinaryOptionsMarketParamUpdateProposal struct { // min_notional defines the minimum notional (in quote asset) required for // orders in the market MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap *OpenNotionalCap `protobuf:"bytes,17,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap,omitempty"` } func (m *BinaryOptionsMarketParamUpdateProposal) Reset() { @@ -1257,7 +1271,7 @@ func init() { proto.RegisterType((*DerivativeMarketParamUpdateProposal)(nil), "injective.exchange.v2.DerivativeMarketParamUpdateProposal") proto.RegisterType((*AdminInfo)(nil), "injective.exchange.v2.AdminInfo") proto.RegisterType((*MarketForcedSettlementProposal)(nil), "injective.exchange.v2.MarketForcedSettlementProposal") - proto.RegisterType((*UpdateDenomDecimalsProposal)(nil), "injective.exchange.v2.UpdateDenomDecimalsProposal") + proto.RegisterType((*UpdateAuctionExchangeTransferDenomDecimalsProposal)(nil), "injective.exchange.v2.UpdateAuctionExchangeTransferDenomDecimalsProposal") proto.RegisterType((*BinaryOptionsMarketParamUpdateProposal)(nil), "injective.exchange.v2.BinaryOptionsMarketParamUpdateProposal") proto.RegisterType((*ProviderOracleParams)(nil), "injective.exchange.v2.ProviderOracleParams") proto.RegisterType((*OracleParams)(nil), "injective.exchange.v2.OracleParams") @@ -1276,169 +1290,174 @@ func init() { } var fileDescriptor_0fb550654abc72c5 = []byte{ - // 2589 bytes of a gzipped FileDescriptorProto + // 2661 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0xdb, 0x8e, 0xed, 0x79, 0x33, 0xe3, 0x8f, 0xb6, 0x63, 0x66, 0x9d, 0xc4, 0x1f, 0xed, - 0x7c, 0x98, 0xec, 0xee, 0x0c, 0x31, 0x8b, 0x16, 0x19, 0x21, 0xe4, 0xcf, 0xc4, 0x22, 0x1f, 0x4e, - 0x8f, 0xb3, 0x59, 0x45, 0x2c, 0x4d, 0xb9, 0xbb, 0x6c, 0x17, 0x9e, 0xfe, 0xd8, 0xae, 0x1e, 0x27, - 0xde, 0x0b, 0x2b, 0x24, 0x24, 0x14, 0x21, 0xb1, 0x20, 0x81, 0xc4, 0x21, 0xd2, 0xfe, 0x05, 0x88, - 0x03, 0x07, 0xae, 0x9c, 0x58, 0x38, 0xa0, 0x15, 0xa7, 0x15, 0x87, 0x08, 0x25, 0x42, 0x70, 0x80, - 0x13, 0x12, 0x12, 0x37, 0xd4, 0x55, 0xd5, 0x3d, 0x3d, 0x33, 0xdd, 0x33, 0x3d, 0xe3, 0xb1, 0xf6, - 0xb0, 0xb9, 0x24, 0xd3, 0xaf, 0xde, 0x7b, 0xf5, 0xea, 0x55, 0xbd, 0x5f, 0xbd, 0xaa, 0x7a, 0x86, - 0xcb, 0xc4, 0xfa, 0x3e, 0xd6, 0x3d, 0x72, 0x8c, 0x4b, 0xf8, 0x89, 0x7e, 0x88, 0xac, 0x03, 0x5c, - 0x3a, 0x5e, 0x2e, 0x39, 0xae, 0xed, 0xd8, 0x14, 0x55, 0x8a, 0x8e, 0x6b, 0x7b, 0xb6, 0x7c, 0x3e, - 0xe4, 0x2a, 0x06, 0x5c, 0xc5, 0xe3, 0xe5, 0x99, 0xd7, 0x74, 0x9b, 0x9a, 0x36, 0xd5, 0x18, 0x53, - 0x89, 0x7f, 0x70, 0x89, 0x99, 0xa9, 0x03, 0xfb, 0xc0, 0xe6, 0x74, 0xff, 0x97, 0xa0, 0x4e, 0x20, - 0x93, 0x58, 0x76, 0x89, 0xfd, 0x2b, 0x48, 0xb3, 0x5c, 0xac, 0xb4, 0x87, 0x28, 0x2e, 0x1d, 0xdf, - 0xd8, 0xc3, 0x1e, 0xba, 0x51, 0xd2, 0x6d, 0x62, 0x89, 0xf6, 0x2f, 0x89, 0x76, 0x93, 0x1e, 0x94, - 0x8e, 0x6f, 0xf8, 0xff, 0x89, 0x86, 0xa2, 0x68, 0x30, 0x08, 0xf5, 0x5c, 0xb2, 0x57, 0xf5, 0x88, - 0x6d, 0x85, 0x0a, 0xa2, 0x44, 0xc1, 0x9f, 0x30, 0xd2, 0x70, 0x3c, 0x9c, 0x4b, 0x89, 0xe7, 0x32, - 0x91, 0x7b, 0x84, 0x3d, 0xc1, 0x73, 0xa5, 0xc6, 0x63, 0xbb, 0x48, 0xaf, 0xd4, 0xec, 0xe6, 0x9f, - 0x9c, 0x4d, 0xf9, 0xc5, 0x30, 0x5c, 0x2a, 0x3b, 0xb6, 0x77, 0x87, 0xc9, 0xee, 0x20, 0x17, 0x99, - 0x0f, 0x1c, 0x03, 0x79, 0x78, 0x47, 0x38, 0x57, 0x9e, 0x82, 0x73, 0x1e, 0xf1, 0x2a, 0xb8, 0x20, - 0xcd, 0x4b, 0x4b, 0x19, 0x95, 0x7f, 0xc8, 0xf3, 0x90, 0x35, 0x30, 0xd5, 0x5d, 0xe2, 0xf8, 0xd6, - 0x17, 0xfa, 0x59, 0x5b, 0x94, 0x24, 0x5f, 0x80, 0x0c, 0x37, 0x48, 0x23, 0x46, 0x61, 0x80, 0xb5, - 0x8f, 0x70, 0xc2, 0xb6, 0x21, 0x6f, 0xc3, 0xa8, 0x89, 0x8e, 0xb0, 0xab, 0xed, 0x63, 0xac, 0xb9, - 0xc8, 0xc3, 0x85, 0x41, 0x9f, 0x63, 0x6d, 0xf1, 0x93, 0xe7, 0x73, 0xd2, 0x5f, 0x9f, 0xcf, 0x5d, - 0xe0, 0x7e, 0xa3, 0xc6, 0x51, 0x91, 0xd8, 0x25, 0x13, 0x79, 0x87, 0xc5, 0xdb, 0xf8, 0x00, 0xe9, - 0x27, 0x1b, 0x58, 0x57, 0x73, 0x4c, 0x74, 0x0b, 0x63, 0x15, 0x79, 0xd8, 0x57, 0xe5, 0xd5, 0xab, - 0x3a, 0xd7, 0x81, 0x2a, 0x2f, 0xaa, 0xea, 0x5d, 0x98, 0x76, 0x71, 0x05, 0x9d, 0x08, 0x65, 0xf4, - 0x10, 0xb9, 0x42, 0xe5, 0x50, 0x7a, 0x95, 0x93, 0x42, 0xc5, 0x16, 0xc6, 0x65, 0x5f, 0x01, 0xd3, - 0xac, 0xc2, 0xa4, 0x49, 0x2c, 0xcd, 0x71, 0x89, 0x8e, 0x35, 0x8f, 0xe8, 0x47, 0x1a, 0x25, 0x1f, - 0xe0, 0xc2, 0x70, 0x7a, 0xb5, 0xe3, 0x26, 0xb1, 0x76, 0x7c, 0xf1, 0x5d, 0xa2, 0x1f, 0x95, 0xc9, - 0x07, 0xcc, 0x5a, 0x5f, 0xe7, 0xfb, 0x55, 0x64, 0x79, 0xc4, 0x3b, 0x89, 0xa8, 0x1d, 0xe9, 0xc0, - 0x5a, 0x93, 0x58, 0xf7, 0x85, 0x86, 0x50, 0xf3, 0x37, 0x60, 0x88, 0x7a, 0xc8, 0xab, 0xd2, 0x42, - 0x66, 0x5e, 0x5a, 0x1a, 0x5d, 0x5e, 0x2c, 0xc6, 0x86, 0x56, 0x91, 0x2f, 0x9a, 0x32, 0x63, 0x55, - 0x85, 0x88, 0x7c, 0x11, 0x86, 0x7c, 0x4b, 0xb0, 0x5b, 0x00, 0x66, 0xc6, 0xa0, 0x6f, 0x86, 0x2a, - 0x68, 0xf2, 0x16, 0xe4, 0x7c, 0xa3, 0x2d, 0xdb, 0x5f, 0x23, 0xa8, 0x52, 0xc8, 0xa6, 0x37, 0x35, - 0x6b, 0x12, 0xeb, 0xae, 0x90, 0x93, 0xbf, 0x05, 0x80, 0x0c, 0x5f, 0x13, 0xb1, 0xf6, 0xed, 0x42, - 0x6e, 0x5e, 0x5a, 0xca, 0x2e, 0xcf, 0x27, 0x98, 0xb9, 0xea, 0x33, 0x6e, 0x5b, 0xfb, 0xb6, 0x9a, - 0x41, 0xc1, 0x4f, 0x79, 0x11, 0xf2, 0x7e, 0x34, 0x6b, 0x06, 0xd6, 0x89, 0x89, 0x2a, 0xb4, 0x90, - 0x9f, 0x97, 0x96, 0xf2, 0x6a, 0xce, 0x27, 0x6e, 0x08, 0x9a, 0x7c, 0x05, 0x46, 0xdf, 0xaf, 0xda, - 0x5e, 0x84, 0x6b, 0x94, 0x71, 0xe5, 0x19, 0x35, 0x60, 0x5b, 0xb9, 0xff, 0xe3, 0x8f, 0xe7, 0xfa, - 0xfe, 0xf9, 0xf1, 0x5c, 0xdf, 0x9f, 0x7e, 0xfb, 0xe6, 0x8c, 0x40, 0x98, 0x03, 0xfb, 0xb8, 0x28, - 0x22, 0xae, 0xb8, 0x6e, 0x5b, 0x1e, 0xb6, 0xbc, 0xa7, 0xff, 0xf8, 0xcd, 0xf5, 0xab, 0x61, 0xc0, - 0xb6, 0x8c, 0x3a, 0xe5, 0x0f, 0x12, 0x4c, 0x6f, 0x0a, 0xd6, 0x4d, 0x0b, 0xed, 0x55, 0x4e, 0x1f, - 0x90, 0x37, 0x21, 0x17, 0x74, 0xbe, 0x7b, 0xe2, 0x60, 0x16, 0x93, 0xc9, 0x73, 0xbb, 0x19, 0x61, - 0x55, 0xeb, 0x04, 0x57, 0xde, 0x08, 0x86, 0xeb, 0x0f, 0x68, 0x2e, 0x1c, 0x50, 0xbc, 0xb9, 0xca, - 0x9f, 0xf3, 0xb0, 0xb0, 0x86, 0x3c, 0xfd, 0x30, 0x68, 0xbf, 0x63, 0x1b, 0x64, 0x9f, 0xe8, 0xc8, - 0x37, 0xea, 0xd4, 0x83, 0xfa, 0x50, 0x02, 0x85, 0x3a, 0xb6, 0xa7, 0x09, 0xac, 0x71, 0x7c, 0x5f, - 0x6a, 0x55, 0xe6, 0x4c, 0x2d, 0xd8, 0x20, 0x68, 0x61, 0x60, 0x7e, 0x60, 0x29, 0xbb, 0xfc, 0x56, - 0xc2, 0x58, 0x5b, 0x4e, 0x85, 0x3a, 0x4b, 0x5b, 0x35, 0x53, 0xf9, 0xe7, 0x12, 0x2c, 0x19, 0xd8, - 0x25, 0xc7, 0xc8, 0x57, 0xdc, 0xc6, 0x90, 0x41, 0x66, 0xc8, 0x4a, 0x82, 0x21, 0x1b, 0xa1, 0x9a, - 0x64, 0x73, 0x2e, 0x1b, 0xed, 0x99, 0xa8, 0xec, 0xc0, 0xc5, 0xa8, 0x5b, 0x2a, 0xa8, 0x6a, 0xe9, - 0x87, 0x11, 0x3b, 0xce, 0x31, 0x3b, 0x4a, 0x6d, 0x1d, 0x72, 0x9b, 0x09, 0x86, 0x9d, 0xbf, 0x46, - 0x13, 0x5a, 0xa8, 0xfc, 0x03, 0x58, 0x70, 0xb0, 0xeb, 0x60, 0xaf, 0x8a, 0x2a, 0x89, 0xdd, 0x0e, - 0xb5, 0x9c, 0x87, 0x9d, 0x40, 0x3e, 0xb6, 0xef, 0x59, 0xa7, 0x55, 0x33, 0x95, 0x7f, 0x22, 0xc1, - 0x55, 0xfc, 0xc4, 0x21, 0xee, 0x89, 0xb6, 0x5f, 0xf5, 0xaa, 0x2e, 0xa6, 0x89, 0x66, 0x0c, 0x33, - 0x33, 0xbe, 0x9e, 0xb8, 0xf4, 0x7d, 0x25, 0x5b, 0x5c, 0x47, 0xac, 0x29, 0x0a, 0x6e, 0xc7, 0x42, - 0xe5, 0x8f, 0x24, 0xb8, 0xe6, 0xb9, 0xc8, 0x20, 0xd6, 0x81, 0xe6, 0xe2, 0xc7, 0xc8, 0x35, 0x34, - 0x1d, 0x99, 0x0e, 0x22, 0x07, 0x56, 0xe3, 0xb2, 0x60, 0x80, 0x9d, 0xbc, 0x2a, 0x76, 0xb9, 0x16, - 0x95, 0x29, 0x59, 0x17, 0x3a, 0x1a, 0x56, 0xc5, 0xa2, 0xd7, 0x9e, 0x89, 0x79, 0x68, 0x8f, 0x58, - 0xc8, 0x3d, 0xd1, 0x6c, 0x16, 0x3e, 0xc9, 0x1e, 0xca, 0xb4, 0xf4, 0xd0, 0x1a, 0x53, 0x72, 0x8f, - 0xeb, 0x88, 0xf7, 0xd0, 0x5e, 0x3b, 0x16, 0x2a, 0xff, 0x54, 0x82, 0x2b, 0x0d, 0xe6, 0x24, 0x44, - 0x0d, 0x30, 0x6b, 0xbe, 0x99, 0xde, 0x9a, 0xb8, 0xc0, 0x59, 0xa8, 0x33, 0x29, 0x36, 0x6a, 0x1e, - 0xc3, 0xac, 0x81, 0x2d, 0xdb, 0x0c, 0xf1, 0xbe, 0x69, 0xa6, 0xb2, 0x6c, 0xa6, 0x96, 0x13, 0x2c, - 0xe1, 0xfa, 0x36, 0x7c, 0x15, 0xc1, 0xe6, 0x10, 0x76, 0x7f, 0xc1, 0x88, 0x92, 0x1b, 0x66, 0xe6, - 0xbb, 0x70, 0xde, 0xcf, 0x38, 0x0c, 0x42, 0x75, 0xbb, 0x6a, 0x79, 0xb5, 0xfe, 0xf8, 0xce, 0x76, - 0x3d, 0xa1, 0xbf, 0x2d, 0x8c, 0x37, 0x84, 0x48, 0xd8, 0xcf, 0xe4, 0x7e, 0x33, 0x51, 0xfe, 0xa1, - 0x04, 0x8a, 0x98, 0xea, 0x7d, 0xdb, 0xd5, 0xb1, 0xa1, 0x51, 0xec, 0x79, 0x15, 0x6c, 0xe2, 0x48, - 0x67, 0xfe, 0x1e, 0xe8, 0xfb, 0xf9, 0x6b, 0x2d, 0xb7, 0xfb, 0x2d, 0x26, 0x5f, 0x0e, 0xc5, 0xc3, - 0x8e, 0xe7, 0xcc, 0x96, 0xed, 0x54, 0xb6, 0x80, 0xfb, 0x40, 0x8b, 0x66, 0x00, 0xb5, 0xa1, 0x8e, - 0xb2, 0xa1, 0x96, 0x12, 0xa1, 0xd1, 0xb2, 0xcd, 0x3b, 0xb5, 0x0c, 0x20, 0xec, 0xb6, 0x60, 0x24, - 0xb4, 0xac, 0x3c, 0x48, 0xbf, 0x2d, 0x5f, 0x0f, 0x77, 0xb1, 0xb6, 0x5b, 0x95, 0xf2, 0xb3, 0x21, - 0x28, 0x24, 0x01, 0x64, 0xd7, 0xfb, 0xd8, 0x74, 0x98, 0x35, 0xf1, 0x54, 0x39, 0xc8, 0x97, 0x2e, - 0x01, 0x88, 0x34, 0xc5, 0xb2, 0x4d, 0x9e, 0x24, 0xab, 0x19, 0x9e, 0xa3, 0x58, 0xb6, 0x29, 0xcf, - 0x41, 0x36, 0x48, 0x50, 0xfc, 0x76, 0x96, 0xf9, 0xaa, 0x20, 0xb2, 0x13, 0x9f, 0x21, 0x21, 0xf1, - 0xac, 0xe5, 0xb3, 0x7d, 0xbd, 0x4c, 0x3c, 0x87, 0xd3, 0xab, 0x8d, 0x4d, 0x3c, 0x9b, 0x8f, 0x05, - 0x23, 0xbd, 0x3b, 0x16, 0x64, 0xba, 0x3d, 0x16, 0x34, 0xe6, 0xac, 0x90, 0x7e, 0x94, 0x2d, 0x72, - 0xd6, 0x6c, 0x0f, 0x72, 0xd6, 0xd1, 0x54, 0x39, 0xeb, 0x58, 0x5c, 0xce, 0x7a, 0x3b, 0x7d, 0x70, - 0x2c, 0xc4, 0xe4, 0xac, 0xf5, 0xcb, 0x5e, 0xf9, 0xef, 0x08, 0x5c, 0x6a, 0xb9, 0x7b, 0xf7, 0x3c, - 0x30, 0x1a, 0x56, 0xfe, 0x60, 0xd3, 0xca, 0x9f, 0x83, 0x2c, 0x3f, 0xe9, 0x6a, 0xbe, 0x7b, 0x82, - 0xd0, 0xe0, 0xa4, 0x35, 0x44, 0xb1, 0xbc, 0x00, 0x39, 0xc1, 0xc0, 0xa4, 0x78, 0x4c, 0xa8, 0x42, - 0xe8, 0xbe, 0x4f, 0x92, 0x8b, 0x30, 0x29, 0x58, 0xa8, 0x8e, 0x2a, 0x58, 0xdb, 0x47, 0xba, 0x67, - 0xbb, 0x6c, 0x99, 0xe7, 0xd5, 0x09, 0xde, 0x54, 0xf6, 0x5b, 0xb6, 0x58, 0x83, 0xbc, 0x19, 0xf6, - 0xe9, 0xf9, 0x19, 0xf6, 0x08, 0xcb, 0xb0, 0x2f, 0x47, 0xa6, 0x58, 0x9c, 0xbd, 0x03, 0x27, 0xdf, - 0x63, 0x9f, 0x2c, 0xc5, 0x16, 0x96, 0xf9, 0xbf, 0xe5, 0x07, 0x30, 0x45, 0x2c, 0xe2, 0x11, 0x9e, - 0x48, 0x1d, 0x10, 0xcb, 0x5f, 0xc0, 0xc4, 0x8e, 0xac, 0xe0, 0xb6, 0x0b, 0x4f, 0x16, 0x0a, 0xee, - 0x30, 0x79, 0xd5, 0x17, 0x97, 0xdf, 0x83, 0x82, 0x89, 0x88, 0x3f, 0xad, 0xc8, 0xd2, 0x71, 0xbd, - 0xea, 0x0e, 0xd6, 0xf4, 0x74, 0x44, 0x49, 0x54, 0x7d, 0x73, 0xf0, 0x66, 0xd3, 0x2b, 0x6d, 0x17, - 0xbc, 0xb9, 0x0e, 0x54, 0xd5, 0x05, 0x6f, 0x02, 0x00, 0xe6, 0xcf, 0x06, 0x00, 0x47, 0x4f, 0x09, - 0x80, 0x8d, 0x50, 0x33, 0xd6, 0x13, 0xa8, 0x19, 0xef, 0x1c, 0x6a, 0xca, 0x30, 0xe9, 0x62, 0xa3, - 0xda, 0xb8, 0x4c, 0x26, 0xd2, 0xdb, 0x33, 0xc1, 0xe5, 0x23, 0x2b, 0xa4, 0xbb, 0x73, 0x72, 0x4b, - 0x58, 0x51, 0xfe, 0x3e, 0x0c, 0x0b, 0x6d, 0xb3, 0xd1, 0x9e, 0x83, 0xcf, 0x22, 0xe4, 0x03, 0x5c, - 0x38, 0x31, 0xf7, 0xec, 0x8a, 0x80, 0x1f, 0x81, 0x27, 0x65, 0x46, 0x93, 0xaf, 0xc1, 0x98, 0x60, - 0x72, 0x5c, 0xfb, 0x98, 0x18, 0xd8, 0x15, 0x20, 0x34, 0xca, 0xc9, 0x3b, 0x82, 0xda, 0x88, 0x1a, - 0x43, 0x5d, 0xa2, 0x46, 0xa7, 0x60, 0x75, 0x03, 0xa6, 0xd8, 0x31, 0x86, 0x65, 0x37, 0x9a, 0x47, - 0x4c, 0x4c, 0x3d, 0x64, 0x3a, 0x0c, 0xb5, 0x06, 0xd4, 0xc9, 0x5a, 0xdb, 0x6e, 0xd0, 0xe4, 0x8b, - 0x44, 0xf2, 0xc6, 0x9a, 0x48, 0x86, 0x8b, 0xd4, 0xda, 0x6a, 0x22, 0x53, 0x70, 0x8e, 0xad, 0x2a, - 0x8e, 0x30, 0x2a, 0xff, 0x68, 0x44, 0xef, 0x6c, 0x13, 0x7a, 0x37, 0x83, 0x49, 0xae, 0x77, 0x60, - 0x92, 0xef, 0x31, 0x98, 0x8c, 0x9e, 0x0d, 0x98, 0x8c, 0xf5, 0x18, 0x4c, 0xc6, 0xbb, 0x04, 0x93, - 0xd7, 0x61, 0x82, 0x83, 0x89, 0x83, 0x5d, 0x93, 0x50, 0xea, 0x87, 0x19, 0x43, 0x82, 0xbc, 0x3a, - 0xce, 0x1a, 0x76, 0x6a, 0xf4, 0x2e, 0x93, 0xee, 0x76, 0x11, 0xac, 0xfc, 0x32, 0x03, 0x0b, 0x6d, - 0xcf, 0xe5, 0xaf, 0x92, 0x8c, 0x0e, 0xe0, 0x62, 0x1a, 0x86, 0xf8, 0x2d, 0x86, 0x88, 0x5e, 0xf1, - 0x95, 0x98, 0x7c, 0xc0, 0xd9, 0x25, 0x1f, 0xd9, 0xb3, 0x48, 0x3e, 0x5e, 0xe1, 0xc5, 0xe7, 0x85, - 0x17, 0xf5, 0xc9, 0xc7, 0x44, 0xcf, 0x92, 0x0f, 0xf9, 0x54, 0xc9, 0x47, 0x57, 0xc0, 0xd4, 0x16, - 0x72, 0x94, 0xcf, 0x00, 0x16, 0x53, 0x5c, 0xdb, 0x9e, 0xcd, 0x33, 0x5a, 0x52, 0xac, 0x76, 0xf0, - 0x98, 0xd6, 0x69, 0xac, 0x76, 0xf0, 0xb8, 0x96, 0x3e, 0x56, 0x87, 0x7a, 0x77, 0xca, 0x1f, 0xee, - 0xfd, 0xe3, 0xdf, 0xc8, 0xd9, 0x3c, 0xfe, 0x65, 0xce, 0xe6, 0xf1, 0x0f, 0x4e, 0xf9, 0xf8, 0x57, - 0x06, 0xf9, 0x96, 0x5d, 0x75, 0x2b, 0x27, 0xdb, 0x96, 0x87, 0x5d, 0x4c, 0x3d, 0xb5, 0xfe, 0x28, - 0xd7, 0x7e, 0x45, 0x35, 0x8b, 0xcb, 0x0f, 0x61, 0x8a, 0x53, 0xb7, 0xaa, 0x16, 0xbb, 0xa6, 0x46, - 0x1e, 0x5e, 0x47, 0x4e, 0x04, 0xa4, 0xdb, 0xaa, 0x8d, 0x55, 0x10, 0x79, 0xaa, 0xcc, 0x77, 0xfe, - 0x54, 0x79, 0x2b, 0x4c, 0xe3, 0xd9, 0xbd, 0x33, 0x15, 0x57, 0x90, 0x49, 0x3a, 0xf8, 0x46, 0xca, - 0x82, 0x9b, 0x06, 0xb9, 0x3e, 0xff, 0x8a, 0x3c, 0x7a, 0x8e, 0xa5, 0x78, 0xf4, 0x1c, 0xef, 0xc9, - 0xa3, 0xe7, 0x59, 0x00, 0xab, 0xd4, 0x05, 0xb0, 0x3e, 0x4c, 0x0f, 0xac, 0x6f, 0x84, 0xc0, 0x9a, - 0x02, 0x32, 0x95, 0xbb, 0x90, 0x09, 0x47, 0x51, 0x3b, 0x47, 0x48, 0xd1, 0x73, 0x44, 0x6c, 0x6a, - 0xda, 0x1f, 0x9f, 0x9a, 0x2a, 0xbf, 0xea, 0x87, 0xd9, 0xd6, 0x77, 0xd8, 0x67, 0x83, 0xd2, 0x77, - 0x61, 0xbc, 0xee, 0xb6, 0x9d, 0xe8, 0x1d, 0x95, 0x3b, 0x8c, 0xd1, 0x88, 0x9d, 0x44, 0xc7, 0x2b, - 0x6a, 0x7a, 0x87, 0x5f, 0x0b, 0x1d, 0xde, 0x7a, 0xe0, 0xca, 0x7f, 0x24, 0xb8, 0xd0, 0xe2, 0xf5, - 0xa2, 0x6b, 0xc7, 0x7c, 0x1b, 0x46, 0xeb, 0x5f, 0x54, 0xc4, 0x53, 0xec, 0xe5, 0x56, 0xd7, 0xfc, - 0x41, 0xef, 0x6a, 0xbe, 0xee, 0xcd, 0x64, 0xe5, 0x5e, 0xfa, 0x81, 0x5f, 0x0e, 0x07, 0xde, 0x62, - 0x54, 0xca, 0xef, 0x46, 0xe0, 0x6a, 0xba, 0xd7, 0xa3, 0x57, 0x65, 0x30, 0x5f, 0xbc, 0x32, 0x98, - 0xa4, 0x0b, 0x92, 0x4c, 0xe7, 0x17, 0x24, 0x90, 0x7c, 0x41, 0x12, 0x87, 0x0e, 0xd9, 0xee, 0xd1, - 0xa1, 0x06, 0x94, 0xb9, 0x28, 0x50, 0x9e, 0x6a, 0x9f, 0xdc, 0x89, 0xdf, 0x27, 0x5f, 0x4f, 0x7a, - 0xc6, 0x17, 0x17, 0x5b, 0x9f, 0xf7, 0x7e, 0xb9, 0xf2, 0x28, 0x3d, 0x5e, 0x94, 0x5a, 0xdd, 0x45, - 0xc4, 0x6d, 0x4e, 0xbf, 0x97, 0x60, 0x2a, 0x6e, 0xa0, 0xfe, 0xb9, 0x5a, 0x5c, 0x0a, 0x72, 0xa4, - 0x10, 0x5f, 0xf2, 0x0c, 0x8c, 0x84, 0xf7, 0x80, 0x1c, 0x27, 0xc2, 0xef, 0xa4, 0x2b, 0x80, 0x81, - 0x94, 0x57, 0x00, 0x83, 0xdd, 0x5d, 0x01, 0x28, 0x7f, 0x94, 0x20, 0x57, 0x67, 0x7b, 0xc3, 0x75, - 0x86, 0xd4, 0xf6, 0x3a, 0xa3, 0x3f, 0xf5, 0x75, 0xc6, 0x59, 0x8f, 0xe5, 0x5f, 0xfd, 0xb0, 0x18, - 0x5b, 0x28, 0xd1, 0xa3, 0x2b, 0xa2, 0x07, 0x90, 0x0f, 0xcb, 0x37, 0x58, 0xfa, 0x35, 0xc0, 0x62, - 0xe0, 0x2b, 0x9d, 0xd4, 0x6c, 0xb0, 0x74, 0x2c, 0xa7, 0x47, 0xbe, 0xe4, 0xf7, 0xe0, 0x7c, 0xa8, - 0x56, 0x54, 0x89, 0x38, 0xb6, 0x1d, 0x16, 0x0a, 0x7d, 0x39, 0x41, 0x7d, 0xa0, 0x91, 0xeb, 0xdf, - 0xb1, 0xed, 0x8a, 0x3a, 0xa9, 0x37, 0xd1, 0x68, 0x77, 0xb9, 0x59, 0x0a, 0x37, 0x2a, 0xff, 0x1e, - 0x48, 0x70, 0x77, 0x8f, 0xb6, 0xcd, 0x33, 0x72, 0xb7, 0x03, 0x73, 0xb1, 0xee, 0xd6, 0x90, 0x61, - 0x10, 0x16, 0xf1, 0x9d, 0x3b, 0xfe, 0x62, 0x8c, 0xe3, 0x57, 0x03, 0x75, 0x72, 0x05, 0x2e, 0xc5, - 0xf7, 0xc8, 0x2b, 0x4b, 0x82, 0x4a, 0xac, 0x0e, 0xfa, 0x9b, 0x89, 0xe9, 0x8f, 0x7b, 0xbd, 0x97, - 0xf3, 0xdd, 0x00, 0x77, 0x1f, 0x4a, 0x30, 0x11, 0xf4, 0x47, 0x2c, 0x8f, 0xb7, 0xca, 0xd7, 0x60, - 0x0c, 0xe9, 0xbc, 0x62, 0x05, 0x19, 0x86, 0x8b, 0x29, 0x15, 0xf3, 0x3c, 0x2a, 0xc8, 0xab, 0x9c, - 0x2a, 0xaf, 0x01, 0x58, 0xf8, 0xb1, 0xe6, 0xf8, 0xb2, 0xb4, 0x93, 0xab, 0xb9, 0x8c, 0x85, 0x1f, - 0xb3, 0x1e, 0xa9, 0xf2, 0x97, 0x7e, 0x58, 0xaa, 0x33, 0x75, 0x07, 0xb3, 0xa3, 0x20, 0x6f, 0xee, - 0xd1, 0xba, 0x7b, 0x0b, 0xa6, 0x1d, 0xae, 0x96, 0x4d, 0x53, 0x64, 0x0b, 0x1f, 0x60, 0x5b, 0xf8, - 0x94, 0x13, 0x74, 0x6a, 0x57, 0x6a, 0x7b, 0xf8, 0x23, 0x98, 0x0a, 0xe7, 0x96, 0x58, 0x5e, 0x38, - 0xb7, 0x7c, 0x2d, 0x2d, 0x25, 0xcc, 0x6d, 0x93, 0x3f, 0x55, 0xd9, 0x6d, 0x24, 0xd1, 0x95, 0xef, - 0xa4, 0x9f, 0xd2, 0x1b, 0xf1, 0x53, 0xda, 0xc2, 0x4f, 0xca, 0x73, 0x09, 0x26, 0x63, 0xaa, 0x88, - 0xba, 0xf6, 0xdf, 0x16, 0x8c, 0x50, 0xfd, 0x10, 0x1b, 0xd5, 0x0a, 0x16, 0x21, 0x9b, 0xa2, 0x76, - 0xa9, 0x2c, 0x24, 0xd4, 0x50, 0x76, 0xe5, 0x66, 0xfa, 0x51, 0x5f, 0x0c, 0x47, 0x1d, 0x33, 0x10, - 0xe5, 0x47, 0xfd, 0x30, 0xc7, 0x6a, 0x7a, 0xd6, 0x6d, 0xd3, 0xac, 0x5a, 0xc4, 0x3b, 0xf1, 0xa7, - 0xae, 0xec, 0x4f, 0x63, 0x0f, 0x40, 0x2a, 0xd3, 0x58, 0x62, 0xfa, 0xb6, 0xa8, 0xf8, 0x2f, 0xd6, - 0x15, 0xf7, 0xd7, 0xac, 0x4e, 0xb2, 0x41, 0xad, 0x69, 0x5a, 0x29, 0xa7, 0x1f, 0xfb, 0x52, 0x7d, - 0xdd, 0x52, 0xb2, 0x7e, 0xe5, 0xd7, 0xfd, 0x50, 0x5c, 0xf5, 0x6c, 0x93, 0xe8, 0x3c, 0xa7, 0xb9, - 0xe7, 0x1a, 0x2c, 0x39, 0xbf, 0x53, 0xad, 0x78, 0xc4, 0xa9, 0x10, 0xec, 0x06, 0xb3, 0x70, 0x6a, - 0xb7, 0x7c, 0x0f, 0xa6, 0x83, 0x5a, 0x33, 0x8c, 0x35, 0x33, 0xec, 0x20, 0xf0, 0xd1, 0xf5, 0xd6, - 0xf5, 0x65, 0x51, 0x9b, 0xd4, 0x29, 0xb3, 0x99, 0x48, 0x57, 0xf6, 0xd2, 0x7b, 0xe8, 0xed, 0xd0, - 0x43, 0x9d, 0x8d, 0x5e, 0xf9, 0x9f, 0x04, 0x85, 0xa4, 0xa2, 0xb3, 0xae, 0x5d, 0xf3, 0x10, 0x26, - 0x9b, 0x4b, 0xe0, 0x02, 0xbf, 0x5c, 0x4b, 0x59, 0xfa, 0xa6, 0x4e, 0x34, 0x96, 0xbc, 0x75, 0x59, - 0xce, 0x93, 0x34, 0xbc, 0xeb, 0x4f, 0x20, 0x17, 0xad, 0xff, 0x96, 0x97, 0x61, 0x6a, 0xf3, 0xdd, - 0xf5, 0x5b, 0xab, 0x77, 0x6f, 0x6e, 0x6a, 0x0f, 0xee, 0x96, 0x77, 0x36, 0xd7, 0xb7, 0xb7, 0xb6, - 0x37, 0x37, 0xc6, 0xfb, 0x66, 0x0a, 0x4f, 0x9f, 0xcd, 0xc7, 0xb6, 0xc9, 0x32, 0x0c, 0x96, 0x77, - 0xee, 0xed, 0x8e, 0x4b, 0x33, 0x23, 0x4f, 0x9f, 0xcd, 0xb3, 0xdf, 0xbe, 0x83, 0x36, 0x36, 0xd5, - 0xed, 0x77, 0x56, 0x77, 0xb7, 0xdf, 0xd9, 0x2c, 0x8f, 0xf7, 0xcf, 0x8c, 0x3d, 0x7d, 0x36, 0x1f, - 0x25, 0xad, 0x1d, 0x7d, 0xf2, 0x62, 0x56, 0xfa, 0xf4, 0xc5, 0xac, 0xf4, 0xb7, 0x17, 0xb3, 0xd2, - 0x47, 0x2f, 0x67, 0xfb, 0x3e, 0x7d, 0x39, 0xdb, 0xf7, 0xd9, 0xcb, 0xd9, 0xbe, 0x47, 0xf7, 0x0f, - 0x88, 0x77, 0x58, 0xdd, 0x2b, 0xea, 0xb6, 0x59, 0xda, 0x0e, 0xfc, 0x74, 0x1b, 0xed, 0xd1, 0x52, - 0xe8, 0xb5, 0x37, 0x75, 0xdb, 0xc5, 0xd1, 0xcf, 0x43, 0x44, 0xac, 0x92, 0x69, 0xfb, 0xf3, 0x4a, - 0x6b, 0x19, 0xbe, 0x9f, 0x67, 0xd2, 0xd2, 0xf1, 0xf2, 0xde, 0x10, 0xfb, 0x1b, 0x98, 0xaf, 0xfe, - 0x3f, 0x00, 0x00, 0xff, 0xff, 0x71, 0x20, 0x59, 0x86, 0x60, 0x34, 0x00, 0x00, + 0xd9, 0x77, 0xdb, 0x8e, 0xe3, 0xa9, 0xf9, 0xb0, 0xdd, 0xf6, 0xfa, 0x9d, 0x75, 0x12, 0x7f, 0x8c, + 0xf3, 0xe1, 0x37, 0xbb, 0x3b, 0x43, 0xcc, 0xa2, 0x5d, 0x79, 0x85, 0x90, 0x3f, 0x13, 0x8b, 0x7c, + 0x38, 0x3d, 0xce, 0x26, 0x8a, 0x58, 0x9a, 0x72, 0x77, 0xd9, 0x2e, 0x3c, 0xdd, 0xd5, 0xdb, 0x55, + 0xe3, 0xc4, 0x7b, 0x61, 0x85, 0x84, 0x84, 0x22, 0x24, 0x96, 0x95, 0x10, 0xe2, 0x10, 0x69, 0xf9, + 0x07, 0x10, 0x42, 0xdc, 0x57, 0x9c, 0x58, 0x38, 0x45, 0x9c, 0x10, 0x87, 0x08, 0x25, 0x07, 0x38, + 0x80, 0xc4, 0x95, 0x1b, 0xea, 0xaa, 0xea, 0x9e, 0x9e, 0x99, 0xee, 0x99, 0x9e, 0xf1, 0x8c, 0x72, + 0x20, 0x97, 0xc4, 0xfd, 0xd4, 0xf3, 0x3c, 0xf5, 0xd4, 0x53, 0x55, 0xbf, 0xfa, 0xd5, 0xc7, 0x80, + 0x8b, 0xd8, 0xfe, 0x3e, 0x32, 0x18, 0x3e, 0x46, 0x25, 0xf4, 0xd8, 0x38, 0x84, 0xf6, 0x01, 0x2a, + 0x1d, 0x2f, 0x97, 0x1c, 0x97, 0x38, 0x84, 0xc2, 0x4a, 0xd1, 0x71, 0x09, 0x23, 0xea, 0x1b, 0x81, + 0x56, 0xd1, 0xd7, 0x2a, 0x1e, 0x2f, 0xcf, 0xbc, 0x69, 0x10, 0x6a, 0x11, 0xaa, 0x73, 0xa5, 0x92, + 0xf8, 0x10, 0x16, 0x33, 0x53, 0x07, 0xe4, 0x80, 0x08, 0xb9, 0xf7, 0x97, 0x94, 0x4e, 0x40, 0x0b, + 0xdb, 0xa4, 0xc4, 0xff, 0x95, 0xa2, 0x59, 0x61, 0x56, 0xda, 0x83, 0x14, 0x95, 0x8e, 0xaf, 0xed, + 0x21, 0x06, 0xaf, 0x95, 0x0c, 0x82, 0x6d, 0x59, 0xfe, 0x7f, 0xb2, 0xdc, 0xa2, 0x07, 0xa5, 0xe3, + 0x6b, 0xde, 0x7f, 0xb2, 0xa0, 0x28, 0x0b, 0x4c, 0x4c, 0x99, 0x8b, 0xf7, 0xaa, 0x0c, 0x13, 0x3b, + 0x70, 0x10, 0x16, 0x4a, 0xfd, 0x98, 0x96, 0x06, 0xed, 0x11, 0x5a, 0x85, 0x68, 0x2d, 0x0b, 0xba, + 0x47, 0x88, 0x49, 0x9d, 0x4b, 0x35, 0x1d, 0xe2, 0x42, 0xa3, 0x52, 0x8b, 0x5b, 0x7c, 0x0a, 0xb5, + 0xc2, 0xcf, 0xcf, 0x82, 0x0b, 0x65, 0x87, 0xb0, 0x5b, 0xdc, 0x76, 0x07, 0xba, 0xd0, 0xba, 0xe7, + 0x98, 0x90, 0xa1, 0x1d, 0x99, 0x5c, 0x75, 0x0a, 0x9c, 0x61, 0x98, 0x55, 0x50, 0x5e, 0x99, 0x57, + 0x96, 0x52, 0x9a, 0xf8, 0x50, 0xe7, 0x41, 0xda, 0x44, 0xd4, 0x70, 0xb1, 0xe3, 0x45, 0x9f, 0x1f, + 0xe4, 0x65, 0x61, 0x91, 0x7a, 0x0e, 0xa4, 0x44, 0x40, 0x3a, 0x36, 0xf3, 0x43, 0xbc, 0x7c, 0x54, + 0x08, 0xb6, 0x4d, 0x75, 0x1b, 0xe4, 0x2c, 0x78, 0x84, 0x5c, 0x7d, 0x1f, 0x21, 0xdd, 0x85, 0x0c, + 0xe5, 0x87, 0x3d, 0x8d, 0xb5, 0xc5, 0xaf, 0x9e, 0xcf, 0x29, 0x7f, 0x7d, 0x3e, 0x77, 0x4e, 0xe4, + 0x8d, 0x9a, 0x47, 0x45, 0x4c, 0x4a, 0x16, 0x64, 0x87, 0xc5, 0x9b, 0xe8, 0x00, 0x1a, 0x27, 0x1b, + 0xc8, 0xd0, 0x32, 0xdc, 0x74, 0x0b, 0x21, 0x0d, 0x32, 0xe4, 0xb9, 0x62, 0xf5, 0xae, 0xce, 0x74, + 0xe0, 0x8a, 0x85, 0x5d, 0x3d, 0x00, 0xd3, 0x2e, 0xaa, 0xc0, 0x13, 0xe9, 0x8c, 0x1e, 0x42, 0x57, + 0xba, 0x1c, 0x49, 0xee, 0x72, 0x52, 0xba, 0xd8, 0x42, 0xa8, 0xec, 0x39, 0xe0, 0x9e, 0x35, 0x30, + 0x69, 0x61, 0x5b, 0x77, 0x5c, 0x6c, 0x20, 0x9d, 0x61, 0xe3, 0x48, 0xa7, 0xf8, 0x13, 0x94, 0x3f, + 0x9b, 0xdc, 0xed, 0xb8, 0x85, 0xed, 0x1d, 0xcf, 0x7c, 0x17, 0x1b, 0x47, 0x65, 0xfc, 0x09, 0x8f, + 0xd6, 0xf3, 0xf9, 0x71, 0x15, 0xda, 0x0c, 0xb3, 0x93, 0x90, 0xdb, 0xd1, 0x0e, 0xa2, 0xb5, 0xb0, + 0x7d, 0x57, 0x7a, 0x08, 0x3c, 0x7f, 0x00, 0x46, 0x28, 0x83, 0xac, 0x4a, 0xf3, 0xa9, 0x79, 0x65, + 0x29, 0xb7, 0xbc, 0x58, 0x8c, 0x9c, 0x5a, 0x45, 0x31, 0x68, 0xca, 0x5c, 0x55, 0x93, 0x26, 0xea, + 0x79, 0x30, 0xe2, 0x45, 0x82, 0xdc, 0x3c, 0xe0, 0x61, 0x0c, 0x7b, 0x61, 0x68, 0x52, 0xa6, 0x6e, + 0x81, 0x8c, 0x17, 0xb4, 0x4d, 0xbc, 0x31, 0x02, 0x2b, 0xf9, 0x74, 0xf2, 0x50, 0xd3, 0x16, 0xb6, + 0x6f, 0x4b, 0x3b, 0xf5, 0x5b, 0x00, 0x40, 0xd3, 0xf3, 0x84, 0xed, 0x7d, 0x92, 0xcf, 0xcc, 0x2b, + 0x4b, 0xe9, 0xe5, 0xf9, 0x98, 0x30, 0x57, 0x3d, 0xc5, 0x6d, 0x7b, 0x9f, 0x68, 0x29, 0xe8, 0xff, + 0xa9, 0x2e, 0x82, 0xac, 0x37, 0x9b, 0x75, 0x13, 0x19, 0xd8, 0x82, 0x15, 0x9a, 0xcf, 0xce, 0x2b, + 0x4b, 0x59, 0x2d, 0xe3, 0x09, 0x37, 0xa4, 0x4c, 0xbd, 0x04, 0x72, 0x1f, 0x57, 0x09, 0x0b, 0x69, + 0xe5, 0xb8, 0x56, 0x96, 0x4b, 0x7d, 0xb5, 0x95, 0xbb, 0x3f, 0xfe, 0x62, 0x6e, 0xe0, 0x1f, 0x5f, + 0xcc, 0x0d, 0xfc, 0xe9, 0x77, 0xef, 0xcc, 0x48, 0x84, 0x39, 0x20, 0xc7, 0x45, 0x39, 0xe3, 0x8a, + 0xeb, 0xc4, 0x66, 0xc8, 0x66, 0x4f, 0xfe, 0xfe, 0x9b, 0xab, 0x97, 0x83, 0x09, 0xdb, 0x72, 0xd6, + 0x15, 0xfe, 0xa0, 0x80, 0xe9, 0x4d, 0xa9, 0xba, 0x69, 0xc3, 0xbd, 0xca, 0xe9, 0x27, 0xe4, 0x75, + 0x90, 0xf1, 0x2b, 0xdf, 0x3d, 0x71, 0x10, 0x9f, 0x93, 0xf1, 0x7d, 0xbb, 0x19, 0x52, 0xd5, 0xea, + 0x0c, 0x57, 0xde, 0xf6, 0x9b, 0xeb, 0x35, 0x68, 0x2e, 0x68, 0x50, 0x74, 0xb8, 0x85, 0x5f, 0xe4, + 0xc0, 0xc2, 0x1a, 0x64, 0xc6, 0xa1, 0x5f, 0x7e, 0x8b, 0x98, 0x78, 0x1f, 0x1b, 0xd0, 0x0b, 0xea, + 0xd4, 0x8d, 0xfa, 0x54, 0x01, 0x05, 0xea, 0x10, 0xa6, 0x4b, 0xac, 0x71, 0xbc, 0x5c, 0xea, 0x55, + 0x9e, 0x4c, 0xdd, 0x5f, 0x20, 0x68, 0x7e, 0x68, 0x7e, 0x68, 0x29, 0xbd, 0xfc, 0x6e, 0x4c, 0x5b, + 0x5b, 0x76, 0x85, 0x36, 0x4b, 0x5b, 0x15, 0x53, 0xf5, 0x73, 0x05, 0x2c, 0x99, 0xc8, 0xc5, 0xc7, + 0xd0, 0x73, 0xdc, 0x26, 0x90, 0x61, 0x1e, 0xc8, 0x4a, 0x4c, 0x20, 0x1b, 0x81, 0x9b, 0xf8, 0x70, + 0x2e, 0x9a, 0xed, 0x95, 0xa8, 0xea, 0x80, 0xf3, 0xe1, 0xb4, 0x54, 0x60, 0xd5, 0x36, 0x0e, 0x43, + 0x71, 0x9c, 0xe1, 0x71, 0x94, 0xda, 0x26, 0xe4, 0x26, 0x37, 0x0c, 0x2a, 0x7f, 0x93, 0xc6, 0x94, + 0x50, 0xf5, 0x07, 0x60, 0xc1, 0x41, 0xae, 0x83, 0x58, 0x15, 0x56, 0x62, 0xab, 0x1d, 0x69, 0xd9, + 0x0f, 0x3b, 0xbe, 0x7d, 0x64, 0xdd, 0xb3, 0x4e, 0xab, 0x62, 0xaa, 0xfe, 0x44, 0x01, 0x97, 0xd1, + 0x63, 0x07, 0xbb, 0x27, 0xfa, 0x7e, 0x95, 0x55, 0x5d, 0x44, 0x63, 0xc3, 0x38, 0xcb, 0xc3, 0x78, + 0x3f, 0x76, 0xe8, 0x7b, 0x4e, 0xb6, 0x84, 0x8f, 0xc8, 0x50, 0x0a, 0xa8, 0x9d, 0x0a, 0x55, 0x3f, + 0x53, 0xc0, 0x15, 0xe6, 0x42, 0x13, 0xdb, 0x07, 0xba, 0x8b, 0x1e, 0x41, 0xd7, 0xd4, 0x0d, 0x68, + 0x39, 0x10, 0x1f, 0xd8, 0x8d, 0xc3, 0x82, 0x03, 0x76, 0xfc, 0xa8, 0xd8, 0x15, 0x5e, 0x34, 0xee, + 0x64, 0x5d, 0xfa, 0x68, 0x18, 0x15, 0x8b, 0xac, 0xbd, 0x12, 0xcf, 0xd0, 0x1e, 0xb6, 0xa1, 0x7b, + 0xa2, 0x13, 0x3e, 0x7d, 0xe2, 0x33, 0x94, 0x6a, 0x99, 0xa1, 0x35, 0xee, 0xe4, 0x8e, 0xf0, 0x11, + 0x9d, 0xa1, 0xbd, 0x76, 0x2a, 0x54, 0xfd, 0xa9, 0x02, 0x2e, 0x35, 0x84, 0x13, 0x33, 0x6b, 0x00, + 0x8f, 0xe6, 0x9b, 0xc9, 0xa3, 0x89, 0x9a, 0x38, 0x0b, 0x75, 0x21, 0x45, 0xce, 0x9a, 0x2f, 0x15, + 0xf0, 0x3e, 0xac, 0x1a, 0x9e, 0x82, 0xee, 0xd7, 0xa0, 0x33, 0x17, 0xda, 0x74, 0x1f, 0xb9, 0xba, + 0x89, 0x6c, 0x62, 0x05, 0x4b, 0x41, 0x53, 0x27, 0xa6, 0x79, 0x27, 0x6e, 0xc7, 0x04, 0x29, 0xaa, + 0x5a, 0x15, 0xce, 0x03, 0x70, 0x95, 0xae, 0x37, 0x3c, 0xcf, 0xfe, 0x72, 0x12, 0x04, 0xbc, 0x0c, + 0x13, 0x68, 0x37, 0x74, 0xf1, 0x77, 0xc1, 0x1b, 0x1e, 0x75, 0x31, 0x31, 0x35, 0x48, 0xd5, 0x66, + 0xb5, 0xe8, 0xc4, 0x12, 0x79, 0x35, 0x26, 0xba, 0x2d, 0x84, 0x36, 0xa4, 0x49, 0x50, 0xfd, 0xe4, + 0x7e, 0xb3, 0x50, 0xfd, 0xa1, 0x02, 0x0a, 0x72, 0xcc, 0xec, 0x13, 0xd7, 0x40, 0xa6, 0x4e, 0x11, + 0x63, 0x15, 0x64, 0xa1, 0x50, 0x65, 0xde, 0x62, 0xea, 0x75, 0xd8, 0x37, 0x5a, 0xf2, 0x86, 0x2d, + 0x6e, 0x5f, 0x0e, 0xcc, 0x83, 0x8a, 0xe7, 0xac, 0x96, 0xe5, 0x54, 0xb5, 0xc1, 0x39, 0xd1, 0x17, + 0x61, 0x2a, 0x51, 0x6b, 0x6a, 0x8e, 0x37, 0xb5, 0x14, 0x8b, 0xb1, 0x36, 0xb1, 0x6e, 0xd5, 0xa8, + 0x44, 0x50, 0x6d, 0xde, 0x8c, 0x29, 0x59, 0xb9, 0x97, 0x7c, 0x7d, 0xbf, 0x1a, 0x2c, 0x87, 0x6d, + 0xd7, 0xbc, 0xc2, 0xcf, 0x46, 0x40, 0x3e, 0x0e, 0x69, 0xbb, 0x5e, 0x10, 0xa7, 0x03, 0xfa, 0x25, + 0x38, 0xb7, 0x4f, 0xbc, 0x2e, 0x00, 0x20, 0xf9, 0x8e, 0x4d, 0x2c, 0xc1, 0xb6, 0xb5, 0x94, 0x20, + 0x3b, 0x36, 0xb1, 0xd4, 0x39, 0x90, 0xf6, 0x99, 0x8e, 0x57, 0xce, 0x29, 0xb4, 0x06, 0x24, 0xcd, + 0xf1, 0x14, 0x62, 0x18, 0x6c, 0x8d, 0x18, 0x0f, 0xf4, 0x92, 0xc1, 0x9e, 0x4d, 0xee, 0x36, 0x92, + 0xc1, 0x36, 0xef, 0x2f, 0x46, 0x7b, 0xb7, 0xbf, 0x48, 0x75, 0xbb, 0xbf, 0x68, 0x24, 0xbf, 0x20, + 0x79, 0x2b, 0x5b, 0x90, 0xdf, 0x74, 0x0f, 0xc8, 0x6f, 0x2e, 0x11, 0xf9, 0x1d, 0x8b, 0x22, 0xbf, + 0x37, 0x93, 0x4f, 0x8e, 0x85, 0x08, 0xf2, 0x5b, 0x3f, 0xec, 0x0b, 0xcf, 0x52, 0xe0, 0x42, 0x4b, + 0x1a, 0xd0, 0xf3, 0x89, 0xd1, 0x30, 0xf2, 0x87, 0x9b, 0x46, 0xfe, 0x1c, 0x48, 0x8b, 0x2d, 0xb3, + 0xee, 0xa5, 0xc7, 0x9f, 0x1a, 0x42, 0xb4, 0x06, 0x29, 0x52, 0x17, 0x40, 0x46, 0x2a, 0x70, 0x2b, + 0x31, 0x27, 0x34, 0x69, 0x74, 0xd7, 0x13, 0xa9, 0x45, 0x30, 0x29, 0x55, 0xa8, 0x01, 0x2b, 0x48, + 0xdf, 0x87, 0x06, 0x23, 0x2e, 0x1f, 0xe6, 0x59, 0x6d, 0x42, 0x14, 0x95, 0xbd, 0x92, 0x2d, 0x5e, + 0xa0, 0x6e, 0x06, 0x75, 0x32, 0x8f, 0xaa, 0x8f, 0x72, 0xaa, 0x7e, 0x31, 0xd4, 0xc5, 0x72, 0x13, + 0xef, 0x27, 0xf9, 0x0e, 0xff, 0xe4, 0x5c, 0x5d, 0x46, 0xe6, 0xfd, 0xad, 0xde, 0x03, 0x53, 0xd8, + 0xc6, 0x0c, 0x0b, 0x46, 0x76, 0x80, 0x6d, 0x6f, 0x00, 0x63, 0x12, 0x1a, 0xc1, 0x6d, 0x07, 0x9e, + 0x2a, 0x1d, 0xdc, 0xe2, 0xf6, 0x9a, 0x67, 0xae, 0x7e, 0x04, 0xf2, 0x16, 0xc4, 0x5e, 0xb7, 0x42, + 0xdb, 0x40, 0xf5, 0xae, 0x3b, 0x18, 0xd3, 0xd3, 0x21, 0x27, 0x61, 0xf7, 0xcd, 0x93, 0x37, 0x9d, + 0xdc, 0x69, 0xbb, 0xc9, 0x9b, 0xe9, 0xc0, 0x55, 0xdd, 0xe4, 0x8d, 0x01, 0xc0, 0x6c, 0x7f, 0x00, + 0x30, 0x77, 0x4a, 0x00, 0x6c, 0x84, 0x9a, 0xb1, 0x9e, 0x40, 0xcd, 0x78, 0xe7, 0x50, 0x53, 0x06, + 0x93, 0x2e, 0x32, 0xab, 0x8d, 0xc3, 0x64, 0x22, 0x79, 0x3c, 0x13, 0xc2, 0x3e, 0x3c, 0x42, 0x1e, + 0x80, 0x09, 0xe2, 0xa0, 0xd0, 0xda, 0x6f, 0x40, 0x27, 0xaf, 0xf2, 0xe0, 0x2e, 0xc7, 0x04, 0x77, + 0xc7, 0x41, 0x41, 0xab, 0xd6, 0xa1, 0xc3, 0x8f, 0x25, 0x06, 0xb4, 0x31, 0x52, 0x2f, 0xee, 0x6e, + 0x2b, 0xdf, 0x12, 0xb0, 0x0a, 0x5f, 0x8e, 0x82, 0x85, 0xb6, 0x84, 0xb9, 0xe7, 0xb0, 0xb6, 0x08, + 0xb2, 0x3e, 0xe2, 0x9c, 0x58, 0x7b, 0xa4, 0x22, 0x81, 0x4d, 0x22, 0x55, 0x99, 0xcb, 0xd4, 0x2b, + 0x60, 0x4c, 0x2a, 0x39, 0x2e, 0x39, 0xc6, 0x26, 0x72, 0x25, 0xbc, 0xe5, 0x84, 0x78, 0x47, 0x4a, + 0x1b, 0xf1, 0x68, 0xa4, 0x4b, 0x3c, 0xea, 0x14, 0x06, 0xaf, 0x81, 0x29, 0xbe, 0xd3, 0xe2, 0xbc, + 0x49, 0x67, 0xd8, 0x42, 0x94, 0x41, 0xcb, 0xe1, 0x78, 0x38, 0xa4, 0x4d, 0xd6, 0xca, 0x76, 0xfd, + 0x22, 0xcf, 0x24, 0xc4, 0x48, 0x6b, 0x26, 0x29, 0x61, 0x52, 0x2b, 0xab, 0x99, 0x4c, 0x81, 0x33, + 0x7c, 0xbc, 0x0a, 0xec, 0xd2, 0xc4, 0x47, 0xe3, 0xba, 0x90, 0x6e, 0x5a, 0x17, 0x9a, 0x61, 0x2a, + 0xd3, 0x3b, 0x98, 0xca, 0xf6, 0x18, 0xa6, 0x72, 0xfd, 0x81, 0xa9, 0xb1, 0x1e, 0xc3, 0xd4, 0x78, + 0x97, 0x30, 0xf5, 0x16, 0x98, 0x10, 0x30, 0xe5, 0x20, 0xd7, 0xc2, 0x94, 0x7a, 0xd3, 0x8c, 0x63, + 0x4c, 0x56, 0x1b, 0xe7, 0x05, 0x3b, 0x35, 0x79, 0x1f, 0xd1, 0xa3, 0xbb, 0x8d, 0x42, 0x3b, 0x6c, + 0x28, 0xfc, 0x3b, 0x05, 0x16, 0xda, 0x1e, 0x4a, 0xbc, 0x26, 0x46, 0x1d, 0x00, 0xd1, 0x34, 0x18, + 0x11, 0x47, 0x38, 0x12, 0x17, 0xe4, 0x57, 0x2c, 0x61, 0x02, 0xfd, 0x23, 0x4c, 0xe9, 0x7e, 0x10, + 0xa6, 0xd7, 0x48, 0xf4, 0xaa, 0x90, 0xa8, 0x9e, 0x30, 0x4d, 0xf4, 0x8c, 0x30, 0xa9, 0xbd, 0x27, + 0x4c, 0x93, 0xaf, 0x0c, 0xf2, 0xda, 0x82, 0x59, 0xe1, 0xb7, 0x69, 0xb0, 0x98, 0xe0, 0x34, 0xbc, + 0x3f, 0xb7, 0x93, 0x71, 0x28, 0xd0, 0xc1, 0x1d, 0x65, 0xa7, 0x28, 0xd0, 0xc1, 0x9d, 0x65, 0x72, + 0x14, 0x18, 0xe9, 0xdd, 0x99, 0xc7, 0xd9, 0xde, 0xdf, 0xa9, 0x8e, 0xf6, 0xe7, 0x4e, 0x35, 0xd5, + 0x9f, 0x3b, 0x55, 0x70, 0xca, 0x3b, 0xd5, 0x32, 0x50, 0x6f, 0x90, 0xaa, 0x5b, 0x39, 0xd9, 0xb6, + 0x19, 0x72, 0x11, 0x65, 0x5a, 0xfd, 0xc6, 0xb6, 0xfd, 0x88, 0x6a, 0x36, 0x57, 0xef, 0x83, 0x29, + 0x21, 0xdd, 0xaa, 0xda, 0xfc, 0xf4, 0x1f, 0x32, 0xb4, 0x0e, 0x9d, 0x10, 0xfc, 0xb7, 0x75, 0x1b, + 0xe9, 0x20, 0x74, 0x03, 0x9c, 0xed, 0xfc, 0x06, 0xf8, 0x46, 0xb0, 0xf5, 0xe0, 0xc7, 0xf9, 0x54, + 0x1e, 0xc8, 0xc6, 0xf9, 0x10, 0x4b, 0x34, 0x9f, 0xdc, 0xd4, 0xdf, 0x9f, 0x88, 0xaf, 0xd0, 0x5d, + 0xf2, 0x58, 0x82, 0xbb, 0xe4, 0xf1, 0x9e, 0xdc, 0x25, 0xf7, 0x03, 0xb2, 0x95, 0x57, 0x07, 0xd9, + 0x4a, 0x33, 0x64, 0xdf, 0x4f, 0x0e, 0xd9, 0x6f, 0x07, 0x90, 0x9d, 0x00, 0x8c, 0x0b, 0xb7, 0x41, + 0x2a, 0xc8, 0x4f, 0x6d, 0x57, 0xa5, 0x84, 0x77, 0x55, 0x91, 0x44, 0x7d, 0x30, 0x9a, 0xa8, 0x17, + 0x7e, 0x39, 0x08, 0x66, 0x5b, 0xdf, 0x15, 0xf4, 0x07, 0xff, 0x6f, 0x83, 0xf1, 0xba, 0x5b, 0x0d, + 0x6c, 0x74, 0xf4, 0x3e, 0x65, 0x8c, 0x86, 0xe2, 0xc4, 0x06, 0x5a, 0xd1, 0x92, 0x27, 0xfc, 0x4a, + 0x90, 0xf0, 0xd6, 0x0d, 0x2f, 0xfc, 0x6a, 0x10, 0x2c, 0x77, 0x7e, 0xa7, 0xd4, 0x75, 0xbe, 0xbe, + 0x0d, 0x72, 0xf5, 0xd7, 0x5f, 0xf2, 0x4a, 0xfd, 0x62, 0xab, 0x5b, 0x16, 0xbf, 0x76, 0x2d, 0x6b, + 0x86, 0x3f, 0x57, 0xf6, 0x93, 0xe7, 0xe3, 0x83, 0x20, 0x1f, 0x9d, 0x37, 0xb6, 0xf0, 0x79, 0x0a, + 0x5c, 0x4e, 0x76, 0x39, 0xf8, 0xfa, 0x95, 0xd3, 0xff, 0xde, 0x2b, 0xa7, 0xb8, 0xc3, 0xa5, 0x54, + 0xe7, 0x87, 0x4b, 0x20, 0xfe, 0x70, 0x29, 0x0a, 0x4b, 0xd2, 0xdd, 0x63, 0x49, 0x0d, 0x56, 0x33, + 0x61, 0x58, 0x3d, 0xd5, 0x7a, 0xbd, 0x13, 0xbd, 0x5e, 0xbf, 0x15, 0xf7, 0x4a, 0x43, 0x1e, 0x0a, + 0xbe, 0xf2, 0x75, 0x3b, 0x72, 0x85, 0x9c, 0xe8, 0xc5, 0x0a, 0xf9, 0x30, 0x39, 0x40, 0x95, 0x5a, + 0x9d, 0xe3, 0x44, 0x2d, 0x92, 0xbf, 0x57, 0xc0, 0x54, 0x54, 0x0a, 0xd5, 0x69, 0x30, 0x22, 0x8f, + 0x6a, 0x05, 0x06, 0xc9, 0x2f, 0x75, 0x06, 0x8c, 0x06, 0xa7, 0xb3, 0x02, 0x81, 0x82, 0xef, 0xb8, + 0xe3, 0x93, 0xa1, 0x84, 0xc7, 0x27, 0xc3, 0xdd, 0x1d, 0x9f, 0x14, 0xfe, 0xa8, 0x80, 0x4c, 0x5d, + 0xec, 0x0d, 0x47, 0x41, 0x4a, 0xdb, 0xa3, 0xa0, 0xc1, 0xc4, 0x47, 0x41, 0xfd, 0x6e, 0xcb, 0x3f, + 0x07, 0xc1, 0x62, 0xe4, 0x0b, 0x9b, 0x1e, 0x1d, 0xaf, 0xdd, 0x03, 0xd9, 0xe0, 0xdd, 0x0f, 0x27, + 0x98, 0x43, 0x7c, 0x84, 0x7e, 0xad, 0x93, 0xc7, 0x3e, 0x9c, 0x70, 0x66, 0x8c, 0xd0, 0x97, 0xfa, + 0x11, 0x78, 0x23, 0x70, 0x2b, 0x9f, 0x17, 0x39, 0x84, 0x04, 0x2f, 0xcc, 0xfe, 0x3f, 0xc6, 0xbd, + 0xef, 0x51, 0xf8, 0xdf, 0x21, 0xa4, 0xa2, 0x4d, 0x1a, 0x4d, 0x32, 0xda, 0x1d, 0x47, 0x4c, 0x90, + 0xc6, 0xc2, 0xbf, 0x86, 0x62, 0xd2, 0xdd, 0xa3, 0x05, 0xb9, 0x4f, 0xe9, 0x76, 0xc0, 0x5c, 0x64, + 0xba, 0x75, 0x68, 0x9a, 0x98, 0xcf, 0xf8, 0xce, 0x13, 0x7f, 0x3e, 0x22, 0xf1, 0xab, 0xbe, 0x3b, + 0xb5, 0x02, 0x2e, 0x44, 0xd7, 0x28, 0xde, 0x1d, 0xf9, 0x4f, 0xf8, 0x3a, 0xa8, 0x6f, 0x26, 0xa2, + 0x3e, 0x91, 0xf5, 0x5e, 0xf6, 0x77, 0x03, 0xdc, 0x7d, 0xaa, 0x80, 0x09, 0xbf, 0x3e, 0x6c, 0x33, + 0x51, 0xaa, 0x5e, 0x01, 0x63, 0xd0, 0x10, 0x2f, 0x94, 0xa0, 0x69, 0xba, 0x88, 0x52, 0xd9, 0xcf, + 0x39, 0x29, 0x5e, 0x15, 0x52, 0x75, 0x0d, 0x00, 0x1b, 0x3d, 0xd2, 0x1d, 0xcf, 0x96, 0x76, 0x72, + 0xac, 0x99, 0xb2, 0xd1, 0x23, 0x5e, 0x23, 0x2d, 0xfc, 0x79, 0x10, 0x2c, 0xd5, 0x85, 0xba, 0x83, + 0xf8, 0x66, 0x57, 0x14, 0xf7, 0x68, 0xdc, 0xbd, 0x0b, 0xa6, 0x1d, 0xe1, 0x96, 0x77, 0x53, 0x88, + 0x1c, 0x0c, 0x71, 0x72, 0x30, 0xe5, 0xf8, 0x95, 0x92, 0x4a, 0x8d, 0x1d, 0x3c, 0x04, 0x53, 0x41, + 0xdf, 0x62, 0x9b, 0x05, 0x7d, 0x2b, 0xc6, 0xd2, 0x52, 0x4c, 0xdf, 0x36, 0xe5, 0x53, 0x53, 0xdd, + 0x46, 0x11, 0x5d, 0xf9, 0x4e, 0xf2, 0x2e, 0xbd, 0x16, 0xdd, 0xa5, 0x2d, 0xf2, 0x54, 0x78, 0xae, + 0x80, 0xc9, 0x88, 0x57, 0x63, 0x5d, 0xe7, 0x6f, 0x0b, 0x8c, 0x52, 0xe3, 0x10, 0x99, 0xd5, 0x0a, + 0x92, 0x53, 0x36, 0xc1, 0x5b, 0xb5, 0xb2, 0xb4, 0xd0, 0x02, 0xdb, 0x95, 0xeb, 0xc9, 0x5b, 0x7d, + 0x3e, 0x68, 0x75, 0x44, 0x43, 0x0a, 0x3f, 0x1a, 0x04, 0x73, 0xfc, 0x0d, 0xd7, 0x3a, 0xb1, 0xac, + 0xaa, 0x8d, 0xd9, 0x89, 0xd7, 0x75, 0x65, 0xaf, 0x1b, 0x7b, 0x00, 0x52, 0xa9, 0xc6, 0xb7, 0xc9, + 0xef, 0xc9, 0x9f, 0x8a, 0x14, 0xeb, 0x7e, 0x15, 0x52, 0x8b, 0x3a, 0x2e, 0x06, 0xad, 0xe6, 0x69, + 0xa5, 0x9c, 0xbc, 0xed, 0x4b, 0xf5, 0xef, 0xd4, 0xe2, 0xfd, 0x17, 0x7e, 0x3d, 0x08, 0x8a, 0xab, + 0x8c, 0x58, 0xd8, 0x10, 0x9c, 0xe6, 0x8e, 0x6b, 0x72, 0xda, 0x7f, 0xab, 0x5a, 0x61, 0xd8, 0xa9, + 0x60, 0xe4, 0xfa, 0xbd, 0x70, 0xea, 0xb4, 0x7c, 0x0f, 0x4c, 0xfb, 0x6f, 0x0b, 0x11, 0xd2, 0xad, + 0xa0, 0x02, 0x3f, 0x47, 0x57, 0x5b, 0xbf, 0x27, 0x0c, 0xc7, 0xa4, 0x4d, 0x59, 0xcd, 0x42, 0xba, + 0xb2, 0x97, 0x3c, 0x43, 0xef, 0x05, 0x19, 0xea, 0xac, 0xf5, 0x85, 0xff, 0x28, 0x20, 0x1f, 0xf7, + 0xc8, 0xb0, 0xeb, 0xd4, 0xdc, 0x07, 0x93, 0xcd, 0x4f, 0x1e, 0xfd, 0xbc, 0x5c, 0x49, 0xf8, 0xd4, + 0x51, 0x9b, 0x68, 0x7c, 0xe2, 0xd8, 0xe5, 0xf3, 0xad, 0xb8, 0xe6, 0x5d, 0x7d, 0x0c, 0x32, 0xe1, + 0x1f, 0x0e, 0xa8, 0xcb, 0x60, 0x6a, 0xf3, 0xc1, 0xfa, 0x8d, 0xd5, 0xdb, 0xd7, 0x37, 0xf5, 0x7b, + 0xb7, 0xcb, 0x3b, 0x9b, 0xeb, 0xdb, 0x5b, 0xdb, 0x9b, 0x1b, 0xe3, 0x03, 0x33, 0xf9, 0x27, 0x4f, + 0xe7, 0x23, 0xcb, 0x54, 0x15, 0x0c, 0x97, 0x77, 0xee, 0xec, 0x8e, 0x2b, 0x33, 0xa3, 0x4f, 0x9e, + 0xce, 0xf3, 0xbf, 0xbd, 0x04, 0x6d, 0x6c, 0x6a, 0xdb, 0x1f, 0xae, 0xee, 0x6e, 0x7f, 0xb8, 0x59, + 0x1e, 0x1f, 0x9c, 0x19, 0x7b, 0xf2, 0x74, 0x3e, 0x2c, 0x5a, 0x3b, 0xfa, 0xea, 0xc5, 0xac, 0xf2, + 0xec, 0xc5, 0xac, 0xf2, 0xb7, 0x17, 0xb3, 0xca, 0x67, 0x2f, 0x67, 0x07, 0x9e, 0xbd, 0x9c, 0x1d, + 0xf8, 0xcb, 0xcb, 0xd9, 0x81, 0x87, 0x77, 0x0f, 0x30, 0x3b, 0xac, 0xee, 0x15, 0x0d, 0x62, 0x95, + 0xb6, 0xfd, 0x3c, 0xdd, 0x84, 0x7b, 0xb4, 0x14, 0x64, 0xed, 0x1d, 0x83, 0xb8, 0x28, 0xfc, 0x79, + 0x08, 0xb1, 0x5d, 0xb2, 0x88, 0xd7, 0xaf, 0xb4, 0xc6, 0xf0, 0x3d, 0x9e, 0x49, 0x4b, 0xc7, 0xcb, + 0x7b, 0x23, 0xfc, 0xc7, 0x53, 0x5f, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x27, 0x33, + 0x0c, 0x99, 0x36, 0x00, 0x00, } func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) { @@ -1691,9 +1710,9 @@ func (m *BatchExchangeModificationProposal) MarshalToSizedBuffer(dAtA []byte) (i i-- dAtA[i] = 0x62 } - if m.DenomDecimalsUpdateProposal != nil { + if m.AuctionExchangeTransferDenomDecimalsUpdateProposal != nil { { - size, err := m.DenomDecimalsUpdateProposal.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.AuctionExchangeTransferDenomDecimalsUpdateProposal.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -1984,6 +2003,18 @@ func (m *PerpetualMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 { size := m.ReduceMarginRatio.Size() i -= size @@ -2155,6 +2186,18 @@ func (m *BinaryOptionsMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 if m.AdminPermissions != 0 { i = encodeVarintProposal(dAtA, i, uint64(m.AdminPermissions)) i-- @@ -2306,6 +2349,18 @@ func (m *ExpiryFuturesMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a { size := m.ReduceMarginRatio.Size() i -= size @@ -2484,6 +2539,20 @@ func (m *DerivativeMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + if m.OpenNotionalCap != nil { + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } if m.ReduceMarginRatio != nil { { size := m.ReduceMarginRatio.Size() @@ -2773,7 +2842,7 @@ func (m *MarketForcedSettlementProposal) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *UpdateDenomDecimalsProposal) Marshal() (dAtA []byte, err error) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2783,12 +2852,12 @@ func (m *UpdateDenomDecimalsProposal) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *UpdateDenomDecimalsProposal) MarshalTo(dAtA []byte) (int, error) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *UpdateDenomDecimalsProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2844,6 +2913,20 @@ func (m *BinaryOptionsMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byt _ = i var l int _ = l + if m.OpenNotionalCap != nil { + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } if m.MinNotional != nil { { size := m.MinNotional.Size() @@ -3680,8 +3763,8 @@ func (m *BatchExchangeModificationProposal) Size() (n int) { n += 1 + l + sovProposal(uint64(l)) } } - if m.DenomDecimalsUpdateProposal != nil { - l = m.DenomDecimalsUpdateProposal.Size() + if m.AuctionExchangeTransferDenomDecimalsUpdateProposal != nil { + l = m.AuctionExchangeTransferDenomDecimalsUpdateProposal.Size() n += 1 + l + sovProposal(uint64(l)) } if m.FeeDiscountProposal != nil { @@ -3810,6 +3893,8 @@ func (m *PerpetualMarketLaunchProposal) Size() (n int) { } l = m.ReduceMarginRatio.Size() n += 2 + l + sovProposal(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovProposal(uint64(l)) return n } @@ -3872,6 +3957,8 @@ func (m *BinaryOptionsMarketLaunchProposal) Size() (n int) { if m.AdminPermissions != 0 { n += 2 + sovProposal(uint64(m.AdminPermissions)) } + l = m.OpenNotionalCap.Size() + n += 2 + l + sovProposal(uint64(l)) return n } @@ -3934,6 +4021,8 @@ func (m *ExpiryFuturesMarketLaunchProposal) Size() (n int) { } l = m.ReduceMarginRatio.Size() n += 2 + l + sovProposal(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovProposal(uint64(l)) return n } @@ -4014,6 +4103,10 @@ func (m *DerivativeMarketParamUpdateProposal) Size() (n int) { l = m.ReduceMarginRatio.Size() n += 2 + l + sovProposal(uint64(l)) } + if m.OpenNotionalCap != nil { + l = m.OpenNotionalCap.Size() + n += 2 + l + sovProposal(uint64(l)) + } return n } @@ -4058,7 +4151,7 @@ func (m *MarketForcedSettlementProposal) Size() (n int) { return n } -func (m *UpdateDenomDecimalsProposal) Size() (n int) { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) Size() (n int) { if m == nil { return 0 } @@ -4148,6 +4241,10 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Size() (n int) { l = m.MinNotional.Size() n += 2 + l + sovProposal(uint64(l)) } + if m.OpenNotionalCap != nil { + l = m.OpenNotionalCap.Size() + n += 2 + l + sovProposal(uint64(l)) + } return n } @@ -5383,7 +5480,7 @@ func (m *BatchExchangeModificationProposal) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DenomDecimalsUpdateProposal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AuctionExchangeTransferDenomDecimalsUpdateProposal", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -5410,10 +5507,10 @@ func (m *BatchExchangeModificationProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.DenomDecimalsUpdateProposal == nil { - m.DenomDecimalsUpdateProposal = &UpdateDenomDecimalsProposal{} + if m.AuctionExchangeTransferDenomDecimalsUpdateProposal == nil { + m.AuctionExchangeTransferDenomDecimalsUpdateProposal = &UpdateAuctionExchangeTransferDenomDecimalsProposal{} } - if err := m.DenomDecimalsUpdateProposal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.AuctionExchangeTransferDenomDecimalsUpdateProposal.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -6569,6 +6666,39 @@ func (m *PerpetualMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -7108,6 +7238,39 @@ func (m *BinaryOptionsMarketLaunchProposal) Unmarshal(dAtA []byte) error { break } } + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -7715,6 +7878,39 @@ func (m *ExpiryFuturesMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -8380,6 +8576,42 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OpenNotionalCap == nil { + m.OpenNotionalCap = &OpenNotionalCap{} + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -8684,7 +8916,7 @@ func (m *MarketForcedSettlementProposal) Unmarshal(dAtA []byte) error { } return nil } -func (m *UpdateDenomDecimalsProposal) Unmarshal(dAtA []byte) error { +func (m *UpdateAuctionExchangeTransferDenomDecimalsProposal) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8707,10 +8939,10 @@ func (m *UpdateDenomDecimalsProposal) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: UpdateDenomDecimalsProposal: wiretype end group for non-group") + return fmt.Errorf("proto: UpdateAuctionExchangeTransferDenomDecimalsProposal: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: UpdateDenomDecimalsProposal: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: UpdateAuctionExchangeTransferDenomDecimalsProposal: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9366,6 +9598,42 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OpenNotionalCap == nil { + m.OpenNotionalCap = &OpenNotionalCap{} + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) diff --git a/chain/exchange/types/v2/query.pb.go b/chain/exchange/types/v2/query.pb.go index b3e1a31f..98b0242c 100644 --- a/chain/exchange/types/v2/query.pb.go +++ b/chain/exchange/types/v2/query.pb.go @@ -882,24 +882,28 @@ func (m *QueryAggregateMarketVolumeResponse) GetVolume() VolumeRecord { return VolumeRecord{} } -// QueryDenomDecimalRequest is the request type for the Query/DenomDecimal RPC -// method. -type QueryDenomDecimalRequest struct { +// QueryAuctionExchangeTransferDenomDecimalRequest is the request type for the +// Query/DenomDecimal RPC method. +type QueryAuctionExchangeTransferDenomDecimalRequest struct { Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } -func (m *QueryDenomDecimalRequest) Reset() { *m = QueryDenomDecimalRequest{} } -func (m *QueryDenomDecimalRequest) String() string { return proto.CompactTextString(m) } -func (*QueryDenomDecimalRequest) ProtoMessage() {} -func (*QueryDenomDecimalRequest) Descriptor() ([]byte, []int) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) Reset() { + *m = QueryAuctionExchangeTransferDenomDecimalRequest{} +} +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) String() string { + return proto.CompactTextString(m) +} +func (*QueryAuctionExchangeTransferDenomDecimalRequest) ProtoMessage() {} +func (*QueryAuctionExchangeTransferDenomDecimalRequest) Descriptor() ([]byte, []int) { return fileDescriptor_108a0f108cdd0cc4, []int{16} } -func (m *QueryDenomDecimalRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryDenomDecimalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryDenomDecimalRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -909,19 +913,19 @@ func (m *QueryDenomDecimalRequest) XXX_Marshal(b []byte, deterministic bool) ([] return b[:n], nil } } -func (m *QueryDenomDecimalRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDenomDecimalRequest.Merge(m, src) +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalRequest.Merge(m, src) } -func (m *QueryDenomDecimalRequest) XXX_Size() int { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) XXX_Size() int { return m.Size() } -func (m *QueryDenomDecimalRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDenomDecimalRequest.DiscardUnknown(m) +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryDenomDecimalRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalRequest proto.InternalMessageInfo -func (m *QueryDenomDecimalRequest) GetDenom() string { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) GetDenom() string { if m != nil { return m.Denom } @@ -930,22 +934,26 @@ func (m *QueryDenomDecimalRequest) GetDenom() string { // QueryDenomDecimalResponse is the response type for the Query/DenomDecimal RPC // method. -type QueryDenomDecimalResponse struct { +type QueryAuctionExchangeTransferDenomDecimalResponse struct { Decimal uint64 `protobuf:"varint,1,opt,name=decimal,proto3" json:"decimal,omitempty"` } -func (m *QueryDenomDecimalResponse) Reset() { *m = QueryDenomDecimalResponse{} } -func (m *QueryDenomDecimalResponse) String() string { return proto.CompactTextString(m) } -func (*QueryDenomDecimalResponse) ProtoMessage() {} -func (*QueryDenomDecimalResponse) Descriptor() ([]byte, []int) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) Reset() { + *m = QueryAuctionExchangeTransferDenomDecimalResponse{} +} +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) String() string { + return proto.CompactTextString(m) +} +func (*QueryAuctionExchangeTransferDenomDecimalResponse) ProtoMessage() {} +func (*QueryAuctionExchangeTransferDenomDecimalResponse) Descriptor() ([]byte, []int) { return fileDescriptor_108a0f108cdd0cc4, []int{17} } -func (m *QueryDenomDecimalResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryDenomDecimalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryDenomDecimalResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -955,19 +963,19 @@ func (m *QueryDenomDecimalResponse) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryDenomDecimalResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDenomDecimalResponse.Merge(m, src) +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalResponse.Merge(m, src) } -func (m *QueryDenomDecimalResponse) XXX_Size() int { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) XXX_Size() int { return m.Size() } -func (m *QueryDenomDecimalResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDenomDecimalResponse.DiscardUnknown(m) +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryDenomDecimalResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalResponse proto.InternalMessageInfo -func (m *QueryDenomDecimalResponse) GetDecimal() uint64 { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) GetDecimal() uint64 { if m != nil { return m.Decimal } @@ -976,23 +984,27 @@ func (m *QueryDenomDecimalResponse) GetDecimal() uint64 { // QueryDenomDecimalsRequest is the request type for the Query/DenomDecimals RPC // method. -type QueryDenomDecimalsRequest struct { +type QueryAuctionExchangeTransferDenomDecimalsRequest struct { // denoms can be empty to query all denom decimals Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty"` } -func (m *QueryDenomDecimalsRequest) Reset() { *m = QueryDenomDecimalsRequest{} } -func (m *QueryDenomDecimalsRequest) String() string { return proto.CompactTextString(m) } -func (*QueryDenomDecimalsRequest) ProtoMessage() {} -func (*QueryDenomDecimalsRequest) Descriptor() ([]byte, []int) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) Reset() { + *m = QueryAuctionExchangeTransferDenomDecimalsRequest{} +} +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) String() string { + return proto.CompactTextString(m) +} +func (*QueryAuctionExchangeTransferDenomDecimalsRequest) ProtoMessage() {} +func (*QueryAuctionExchangeTransferDenomDecimalsRequest) Descriptor() ([]byte, []int) { return fileDescriptor_108a0f108cdd0cc4, []int{18} } -func (m *QueryDenomDecimalsRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryDenomDecimalsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryDenomDecimalsRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1002,19 +1014,19 @@ func (m *QueryDenomDecimalsRequest) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *QueryDenomDecimalsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDenomDecimalsRequest.Merge(m, src) +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsRequest.Merge(m, src) } -func (m *QueryDenomDecimalsRequest) XXX_Size() int { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) XXX_Size() int { return m.Size() } -func (m *QueryDenomDecimalsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDenomDecimalsRequest.DiscardUnknown(m) +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryDenomDecimalsRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsRequest proto.InternalMessageInfo -func (m *QueryDenomDecimalsRequest) GetDenoms() []string { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) GetDenoms() []string { if m != nil { return m.Denoms } @@ -1023,22 +1035,26 @@ func (m *QueryDenomDecimalsRequest) GetDenoms() []string { // QueryDenomDecimalsRequest is the response type for the Query/DenomDecimals // RPC method. -type QueryDenomDecimalsResponse struct { +type QueryAuctionExchangeTransferDenomDecimalsResponse struct { DenomDecimals []DenomDecimals `protobuf:"bytes,1,rep,name=denom_decimals,json=denomDecimals,proto3" json:"denom_decimals"` } -func (m *QueryDenomDecimalsResponse) Reset() { *m = QueryDenomDecimalsResponse{} } -func (m *QueryDenomDecimalsResponse) String() string { return proto.CompactTextString(m) } -func (*QueryDenomDecimalsResponse) ProtoMessage() {} -func (*QueryDenomDecimalsResponse) Descriptor() ([]byte, []int) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) Reset() { + *m = QueryAuctionExchangeTransferDenomDecimalsResponse{} +} +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) String() string { + return proto.CompactTextString(m) +} +func (*QueryAuctionExchangeTransferDenomDecimalsResponse) ProtoMessage() {} +func (*QueryAuctionExchangeTransferDenomDecimalsResponse) Descriptor() ([]byte, []int) { return fileDescriptor_108a0f108cdd0cc4, []int{19} } -func (m *QueryDenomDecimalsResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryDenomDecimalsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryDenomDecimalsResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -1048,19 +1064,19 @@ func (m *QueryDenomDecimalsResponse) XXX_Marshal(b []byte, deterministic bool) ( return b[:n], nil } } -func (m *QueryDenomDecimalsResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryDenomDecimalsResponse.Merge(m, src) +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsResponse.Merge(m, src) } -func (m *QueryDenomDecimalsResponse) XXX_Size() int { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) XXX_Size() int { return m.Size() } -func (m *QueryDenomDecimalsResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryDenomDecimalsResponse.DiscardUnknown(m) +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryDenomDecimalsResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryAuctionExchangeTransferDenomDecimalsResponse proto.InternalMessageInfo -func (m *QueryDenomDecimalsResponse) GetDenomDecimals() []DenomDecimals { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) GetDenomDecimals() []DenomDecimals { if m != nil { return m.DenomDecimals } @@ -1533,6 +1549,8 @@ func (m *QuerySpotOrderbookRequest) GetOrderSide() OrderSide { type QuerySpotOrderbookResponse struct { BuysPriceLevel []*Level `protobuf:"bytes,1,rep,name=buys_price_level,json=buysPriceLevel,proto3" json:"buys_price_level,omitempty"` SellsPriceLevel []*Level `protobuf:"bytes,2,rep,name=sells_price_level,json=sellsPriceLevel,proto3" json:"sells_price_level,omitempty"` + // the current orderbook sequence number + Seq uint64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"` } func (m *QuerySpotOrderbookResponse) Reset() { *m = QuerySpotOrderbookResponse{} } @@ -1582,6 +1600,13 @@ func (m *QuerySpotOrderbookResponse) GetSellsPriceLevel() []*Level { return nil } +func (m *QuerySpotOrderbookResponse) GetSeq() uint64 { + if m != nil { + return m.Seq + } + return 0 +} + type FullSpotMarket struct { // spot market details Market *SpotMarket `protobuf:"bytes,1,opt,name=market,proto3" json:"market,omitempty"` @@ -2479,6 +2504,8 @@ func (m *QueryDerivativeOrderbookRequest) GetLimit() uint64 { type QueryDerivativeOrderbookResponse struct { BuysPriceLevel []*Level `protobuf:"bytes,1,rep,name=buys_price_level,json=buysPriceLevel,proto3" json:"buys_price_level,omitempty"` SellsPriceLevel []*Level `protobuf:"bytes,2,rep,name=sells_price_level,json=sellsPriceLevel,proto3" json:"sells_price_level,omitempty"` + // the current orderbook sequence number + Seq uint64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"` } func (m *QueryDerivativeOrderbookResponse) Reset() { *m = QueryDerivativeOrderbookResponse{} } @@ -2528,6 +2555,13 @@ func (m *QueryDerivativeOrderbookResponse) GetSellsPriceLevel() []*Level { return nil } +func (m *QueryDerivativeOrderbookResponse) GetSeq() uint64 { + if m != nil { + return m.Seq + } + return 0 +} + // QueryTraderSpotOrdersToCancelUpToAmountRequest is the request type for the // Query/TraderSpotOrdersToCancelUpToAmountRequest RPC method. type QueryTraderSpotOrdersToCancelUpToAmountRequest struct { @@ -6475,6 +6509,8 @@ func (m *QueryFullSpotOrderbookRequest) GetMarketId() string { type QueryFullSpotOrderbookResponse struct { Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` + // the current orderbook sequence number + Seq uint64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"` } func (m *QueryFullSpotOrderbookResponse) Reset() { *m = QueryFullSpotOrderbookResponse{} } @@ -6524,6 +6560,13 @@ func (m *QueryFullSpotOrderbookResponse) GetAsks() []*TrimmedLimitOrder { return nil } +func (m *QueryFullSpotOrderbookResponse) GetSeq() uint64 { + if m != nil { + return m.Seq + } + return 0 +} + type QueryFullDerivativeOrderbookRequest struct { // market id MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` @@ -6572,6 +6615,8 @@ func (m *QueryFullDerivativeOrderbookRequest) GetMarketId() string { type QueryFullDerivativeOrderbookResponse struct { Bids []*TrimmedLimitOrder `protobuf:"bytes,1,rep,name=Bids,proto3" json:"Bids,omitempty"` Asks []*TrimmedLimitOrder `protobuf:"bytes,2,rep,name=Asks,proto3" json:"Asks,omitempty"` + // the current orderbook sequence number + Seq uint64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"` } func (m *QueryFullDerivativeOrderbookResponse) Reset() { *m = QueryFullDerivativeOrderbookResponse{} } @@ -6621,6 +6666,13 @@ func (m *QueryFullDerivativeOrderbookResponse) GetAsks() []*TrimmedLimitOrder { return nil } +func (m *QueryFullDerivativeOrderbookResponse) GetSeq() uint64 { + if m != nil { + return m.Seq + } + return 0 +} + type TrimmedLimitOrder struct { // price of the order (in human readable format) Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` @@ -7420,6 +7472,142 @@ func (m *QueryDenomMinNotionalsResponse) GetDenomMinNotionals() []*DenomMinNotio return nil } +type OpenInterest struct { + // the market ID + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // the open interest of the market + Balance cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=balance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance"` +} + +func (m *OpenInterest) Reset() { *m = OpenInterest{} } +func (m *OpenInterest) String() string { return proto.CompactTextString(m) } +func (*OpenInterest) ProtoMessage() {} +func (*OpenInterest) Descriptor() ([]byte, []int) { + return fileDescriptor_108a0f108cdd0cc4, []int{146} +} +func (m *OpenInterest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenInterest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OpenInterest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OpenInterest) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenInterest.Merge(m, src) +} +func (m *OpenInterest) XXX_Size() int { + return m.Size() +} +func (m *OpenInterest) XXX_DiscardUnknown() { + xxx_messageInfo_OpenInterest.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenInterest proto.InternalMessageInfo + +func (m *OpenInterest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryOpenInterestRequest struct { + // market id + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` +} + +func (m *QueryOpenInterestRequest) Reset() { *m = QueryOpenInterestRequest{} } +func (m *QueryOpenInterestRequest) String() string { return proto.CompactTextString(m) } +func (*QueryOpenInterestRequest) ProtoMessage() {} +func (*QueryOpenInterestRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_108a0f108cdd0cc4, []int{147} +} +func (m *QueryOpenInterestRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryOpenInterestRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryOpenInterestRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryOpenInterestRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryOpenInterestRequest.Merge(m, src) +} +func (m *QueryOpenInterestRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryOpenInterestRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryOpenInterestRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryOpenInterestRequest proto.InternalMessageInfo + +func (m *QueryOpenInterestRequest) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +type QueryOpenInterestResponse struct { + Amount *OpenInterest `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *QueryOpenInterestResponse) Reset() { *m = QueryOpenInterestResponse{} } +func (m *QueryOpenInterestResponse) String() string { return proto.CompactTextString(m) } +func (*QueryOpenInterestResponse) ProtoMessage() {} +func (*QueryOpenInterestResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_108a0f108cdd0cc4, []int{148} +} +func (m *QueryOpenInterestResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryOpenInterestResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryOpenInterestResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryOpenInterestResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryOpenInterestResponse.Merge(m, src) +} +func (m *QueryOpenInterestResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryOpenInterestResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryOpenInterestResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryOpenInterestResponse proto.InternalMessageInfo + +func (m *QueryOpenInterestResponse) GetAmount() *OpenInterest { + if m != nil { + return m.Amount + } + return nil +} + func init() { proto.RegisterEnum("injective.exchange.v2.OrderSide", OrderSide_name, OrderSide_value) proto.RegisterEnum("injective.exchange.v2.CancellationStrategy", CancellationStrategy_name, CancellationStrategy_value) @@ -7440,10 +7628,10 @@ func init() { proto.RegisterType((*QueryAggregateVolumesResponse)(nil), "injective.exchange.v2.QueryAggregateVolumesResponse") proto.RegisterType((*QueryAggregateMarketVolumeRequest)(nil), "injective.exchange.v2.QueryAggregateMarketVolumeRequest") proto.RegisterType((*QueryAggregateMarketVolumeResponse)(nil), "injective.exchange.v2.QueryAggregateMarketVolumeResponse") - proto.RegisterType((*QueryDenomDecimalRequest)(nil), "injective.exchange.v2.QueryDenomDecimalRequest") - proto.RegisterType((*QueryDenomDecimalResponse)(nil), "injective.exchange.v2.QueryDenomDecimalResponse") - proto.RegisterType((*QueryDenomDecimalsRequest)(nil), "injective.exchange.v2.QueryDenomDecimalsRequest") - proto.RegisterType((*QueryDenomDecimalsResponse)(nil), "injective.exchange.v2.QueryDenomDecimalsResponse") + proto.RegisterType((*QueryAuctionExchangeTransferDenomDecimalRequest)(nil), "injective.exchange.v2.QueryAuctionExchangeTransferDenomDecimalRequest") + proto.RegisterType((*QueryAuctionExchangeTransferDenomDecimalResponse)(nil), "injective.exchange.v2.QueryAuctionExchangeTransferDenomDecimalResponse") + proto.RegisterType((*QueryAuctionExchangeTransferDenomDecimalsRequest)(nil), "injective.exchange.v2.QueryAuctionExchangeTransferDenomDecimalsRequest") + proto.RegisterType((*QueryAuctionExchangeTransferDenomDecimalsResponse)(nil), "injective.exchange.v2.QueryAuctionExchangeTransferDenomDecimalsResponse") proto.RegisterType((*QueryAggregateMarketVolumesRequest)(nil), "injective.exchange.v2.QueryAggregateMarketVolumesRequest") proto.RegisterType((*QueryAggregateMarketVolumesResponse)(nil), "injective.exchange.v2.QueryAggregateMarketVolumesResponse") proto.RegisterType((*QuerySubaccountDepositRequest)(nil), "injective.exchange.v2.QuerySubaccountDepositRequest") @@ -7570,404 +7758,415 @@ func init() { proto.RegisterType((*QueryDenomMinNotionalResponse)(nil), "injective.exchange.v2.QueryDenomMinNotionalResponse") proto.RegisterType((*QueryDenomMinNotionalsRequest)(nil), "injective.exchange.v2.QueryDenomMinNotionalsRequest") proto.RegisterType((*QueryDenomMinNotionalsResponse)(nil), "injective.exchange.v2.QueryDenomMinNotionalsResponse") + proto.RegisterType((*OpenInterest)(nil), "injective.exchange.v2.OpenInterest") + proto.RegisterType((*QueryOpenInterestRequest)(nil), "injective.exchange.v2.QueryOpenInterestRequest") + proto.RegisterType((*QueryOpenInterestResponse)(nil), "injective.exchange.v2.QueryOpenInterestResponse") } func init() { proto.RegisterFile("injective/exchange/v2/query.proto", fileDescriptor_108a0f108cdd0cc4) } var fileDescriptor_108a0f108cdd0cc4 = []byte{ - // 6264 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x5b, 0x8c, 0x5c, 0xc9, - 0x55, 0xbe, 0x3d, 0xef, 0x33, 0xef, 0x9a, 0xf1, 0x78, 0xdc, 0x5e, 0xbf, 0xae, 0xd7, 0xf1, 0x6b, - 0x3d, 0x6d, 0x8f, 0xc7, 0xeb, 0xb7, 0xbd, 0x33, 0x1e, 0x8f, 0xed, 0x8d, 0x1f, 0xb3, 0xed, 0xd9, - 0xdd, 0x10, 0x96, 0x74, 0xee, 0x74, 0xdf, 0xe9, 0xb9, 0x71, 0x77, 0xdf, 0x76, 0xdf, 0xdb, 0x63, - 0x0f, 0x96, 0x3f, 0x08, 0x10, 0x45, 0x41, 0x42, 0x3c, 0x3e, 0xf2, 0x11, 0x94, 0x8f, 0x04, 0x81, - 0x80, 0x08, 0x50, 0x58, 0x08, 0x22, 0x41, 0x3c, 0x03, 0x91, 0x90, 0x20, 0xd1, 0x02, 0x89, 0x90, - 0x58, 0x42, 0x36, 0x12, 0x22, 0x12, 0x84, 0x7f, 0x24, 0x40, 0xb7, 0xea, 0x54, 0xf5, 0x7d, 0x55, - 0xdd, 0x7b, 0xc7, 0x5e, 0x79, 0x81, 0x2f, 0x4f, 0xd7, 0xad, 0x73, 0xea, 0x9c, 0x53, 0xa7, 0xce, - 0x39, 0x55, 0x75, 0x4e, 0x19, 0xf6, 0x5b, 0x8d, 0x4f, 0x98, 0x65, 0xd7, 0xda, 0x30, 0x0b, 0xe6, - 0xa3, 0xf2, 0xba, 0xd1, 0xa8, 0x9a, 0x85, 0x8d, 0xd9, 0xc2, 0x83, 0xb6, 0xd9, 0xda, 0x9c, 0x69, - 0xb6, 0x6c, 0xd7, 0x26, 0xdb, 0x45, 0x97, 0x19, 0xde, 0x65, 0x66, 0x63, 0x36, 0x3f, 0x59, 0xb5, - 0xab, 0x36, 0xed, 0x51, 0xf0, 0xfe, 0x62, 0x9d, 0xf3, 0x2f, 0x54, 0x6d, 0xbb, 0x5a, 0x33, 0x0b, - 0x46, 0xd3, 0x2a, 0x18, 0x8d, 0x86, 0xed, 0x1a, 0xae, 0x65, 0x37, 0x1c, 0xfc, 0xfa, 0x62, 0xfc, - 0x68, 0x02, 0x2d, 0xeb, 0x75, 0x30, 0xbe, 0x97, 0xdd, 0xaa, 0x98, 0xad, 0x55, 0xdb, 0xbe, 0x8f, - 0xdd, 0xf4, 0xf8, 0x6e, 0x75, 0xa3, 0x75, 0xdf, 0x74, 0xb1, 0xcf, 0x81, 0xf8, 0x3e, 0x55, 0xb3, - 0x61, 0x3a, 0x96, 0x13, 0x1d, 0xcf, 0x6e, 0x19, 0xe5, 0x9a, 0x59, 0xd8, 0x38, 0xb9, 0x6a, 0xba, - 0xc6, 0x49, 0xfc, 0xc9, 0xba, 0xe9, 0x77, 0x01, 0xee, 0xb5, 0x57, 0x8d, 0x72, 0xd9, 0x6e, 0x37, - 0x5c, 0x32, 0x05, 0xbd, 0x6e, 0xcb, 0xa8, 0x98, 0xad, 0x69, 0x6d, 0x9f, 0x76, 0x78, 0xa0, 0x88, - 0xbf, 0xc8, 0x11, 0x18, 0x73, 0x44, 0xaf, 0x52, 0xc3, 0x6e, 0x94, 0xcd, 0xe9, 0xdc, 0x3e, 0xed, - 0xf0, 0x70, 0x71, 0xb4, 0xd3, 0x7e, 0xc7, 0x6b, 0xd6, 0x3f, 0x0e, 0x2f, 0xbc, 0xe6, 0xc9, 0xb9, - 0x83, 0xf5, 0xae, 0xc7, 0xa2, 0x53, 0x34, 0x1f, 0xb4, 0x4d, 0xc7, 0x25, 0x07, 0x60, 0xd8, 0x87, - 0xca, 0xaa, 0xe0, 0x48, 0x43, 0x9d, 0xc6, 0x9b, 0x15, 0xb2, 0x0b, 0x06, 0x18, 0xc7, 0x5e, 0x87, - 0x1c, 0xed, 0xd0, 0xcf, 0x1a, 0x6e, 0x56, 0xf4, 0xaf, 0x68, 0xb0, 0x5b, 0x32, 0x84, 0xd3, 0xb4, - 0x1b, 0x8e, 0x49, 0x6e, 0x02, 0xac, 0xb6, 0x37, 0x4b, 0x54, 0xb6, 0xce, 0xb4, 0xb6, 0xaf, 0xeb, - 0xf0, 0xe0, 0xec, 0xd1, 0x99, 0xd8, 0x19, 0x9f, 0x09, 0x21, 0x59, 0x34, 0x5c, 0xa3, 0x38, 0xb0, - 0xda, 0xde, 0x64, 0x28, 0xc9, 0x87, 0x61, 0xd0, 0x31, 0x6b, 0x35, 0x8e, 0x2b, 0x97, 0x19, 0x17, - 0x78, 0xe0, 0x0c, 0x99, 0xfe, 0xeb, 0x1a, 0x1c, 0x0c, 0xf5, 0xf1, 0xa6, 0xfe, 0xb6, 0xe9, 0x1a, - 0x15, 0xc3, 0x35, 0xde, 0xb4, 0xdc, 0xf5, 0xdb, 0x94, 0x4b, 0x72, 0x07, 0xfa, 0xeb, 0xd8, 0x4a, - 0x05, 0x34, 0x38, 0x3b, 0x9b, 0x6e, 0x4c, 0x3f, 0xbe, 0xa2, 0xc0, 0xa1, 0x14, 0x28, 0x99, 0x84, - 0x1e, 0xcb, 0x59, 0x68, 0x6f, 0x4e, 0x77, 0xed, 0xd3, 0x0e, 0xf7, 0x17, 0xd9, 0x0f, 0xfd, 0x05, - 0xc8, 0x53, 0x29, 0x5f, 0xc3, 0xc1, 0x96, 0x8d, 0x96, 0x51, 0xe7, 0xd3, 0xa8, 0x7f, 0x14, 0x76, - 0xc5, 0x7e, 0xc5, 0x19, 0xb8, 0x00, 0xbd, 0x4d, 0xda, 0x82, 0xd4, 0xef, 0x96, 0x50, 0xcf, 0xc0, - 0x16, 0xba, 0xbf, 0xf1, 0xee, 0xde, 0x6d, 0x45, 0x04, 0xd1, 0x7f, 0x56, 0x83, 0x3d, 0xa1, 0x09, - 0x5e, 0x34, 0x9b, 0xb6, 0x63, 0xb9, 0xd9, 0xb4, 0xe8, 0x3a, 0x40, 0xe7, 0x37, 0xe5, 0x7a, 0x70, - 0x76, 0x7f, 0xa2, 0x18, 0x29, 0x31, 0x5a, 0xd1, 0x07, 0xaa, 0x7f, 0x57, 0x83, 0xbd, 0x52, 0x82, - 0x90, 0xe3, 0x8f, 0x43, 0x7f, 0x05, 0xdb, 0x50, 0xe3, 0x16, 0x25, 0x43, 0x25, 0x60, 0x9a, 0xe1, - 0x0d, 0xd7, 0x1a, 0x6e, 0x6b, 0xb3, 0x28, 0xb0, 0xe6, 0x7f, 0x14, 0x86, 0x03, 0x9f, 0xc8, 0x18, - 0x74, 0xdd, 0x37, 0x37, 0x91, 0x75, 0xef, 0x4f, 0x32, 0x07, 0x3d, 0x1b, 0x46, 0xad, 0x6d, 0x22, - 0xb3, 0x7b, 0x24, 0x14, 0x20, 0x9a, 0x22, 0xeb, 0x7c, 0x3e, 0x77, 0x56, 0xd3, 0xf7, 0xe0, 0xb2, - 0xe5, 0xf3, 0xb9, 0x60, 0xd4, 0x8c, 0x46, 0xd9, 0x14, 0xf3, 0x6d, 0xe0, 0x9a, 0x8b, 0x7e, 0x47, - 0xfe, 0x5f, 0x81, 0xfe, 0x55, 0x6c, 0x43, 0xfe, 0x65, 0xa3, 0x23, 0x28, 0x4e, 0xba, 0x80, 0xd2, - 0xcf, 0xa0, 0x4a, 0xcd, 0x57, 0xab, 0x2d, 0xb3, 0x6a, 0xb8, 0xe6, 0x1b, 0x76, 0xad, 0x5d, 0x37, - 0xf9, 0x94, 0x4f, 0x43, 0x1f, 0x9f, 0x4a, 0xc6, 0x31, 0xff, 0xa9, 0x37, 0x91, 0xf6, 0x08, 0x20, - 0x92, 0xb6, 0x0c, 0xe3, 0x06, 0xff, 0x54, 0xda, 0xa0, 0xdf, 0x38, 0x8d, 0x07, 0x24, 0x34, 0xb2, - 0x65, 0x88, 0x78, 0xc6, 0x8c, 0x20, 0x62, 0x47, 0xff, 0x91, 0xf8, 0x11, 0x85, 0x7a, 0xe6, 0xa1, - 0x1f, 0x89, 0x63, 0x03, 0x0d, 0x14, 0xc5, 0x6f, 0xb2, 0x1b, 0x40, 0x2c, 0x45, 0x66, 0x50, 0x06, - 0x8a, 0x03, 0x7c, 0x2d, 0x3a, 0xfa, 0x0f, 0xb9, 0x75, 0x8b, 0xe2, 0x46, 0x76, 0x6c, 0xd8, 0xd9, - 0x61, 0x87, 0x2f, 0x81, 0x20, 0x5b, 0xa7, 0x24, 0x6c, 0x09, 0x9c, 0xf3, 0x0c, 0x8c, 0x0b, 0xaa, - 0x6c, 0xb7, 0x2a, 0xc5, 0x1d, 0x46, 0xec, 0x57, 0x87, 0xfc, 0x18, 0x4c, 0x77, 0x06, 0x44, 0xda, - 0xf9, 0x78, 0xb9, 0xf4, 0x62, 0x9c, 0x12, 0x48, 0xfc, 0xcd, 0x8e, 0xfe, 0x0a, 0xec, 0x0f, 0x32, - 0x1c, 0x80, 0x42, 0x89, 0x06, 0x0c, 0x98, 0x16, 0xf2, 0x08, 0x55, 0xd0, 0x55, 0x18, 0x50, 0x6e, - 0xf3, 0xd0, 0xcb, 0xa8, 0x46, 0x9b, 0x24, 0x23, 0xda, 0x2f, 0x14, 0x6e, 0x99, 0x18, 0xa0, 0x7e, - 0x02, 0xa6, 0xe9, 0x40, 0x8b, 0x66, 0xc3, 0xae, 0x2f, 0x9a, 0x65, 0xab, 0x6e, 0xd4, 0x38, 0x85, - 0x93, 0xd0, 0x53, 0xf1, 0x9a, 0x91, 0x3a, 0xf6, 0x43, 0x3f, 0x0d, 0x3b, 0x63, 0x20, 0x90, 0xa2, - 0x69, 0xe8, 0xab, 0xb0, 0x26, 0x0a, 0xd4, 0x5d, 0xe4, 0x3f, 0xf5, 0x53, 0x31, 0x60, 0x42, 0xbb, - 0xa6, 0xa0, 0x97, 0x22, 0xe7, 0xba, 0x85, 0xbf, 0x74, 0x1b, 0x2d, 0x76, 0x08, 0x08, 0x07, 0x7b, - 0x0d, 0x46, 0x68, 0xbf, 0x12, 0x8e, 0xc1, 0x75, 0xe5, 0x45, 0xa9, 0x91, 0xf0, 0x61, 0x41, 0x39, - 0x0c, 0x57, 0xfc, 0x8d, 0xfa, 0x55, 0x95, 0xdc, 0x05, 0xb9, 0x41, 0x85, 0xd7, 0xc2, 0x0a, 0x5f, - 0x81, 0x03, 0x4a, 0x24, 0x48, 0xfe, 0x25, 0xe8, 0xdb, 0xc2, 0xd2, 0xe5, 0x30, 0xfa, 0x47, 0x23, - 0x31, 0x03, 0x37, 0x82, 0x59, 0x3c, 0x8a, 0x98, 0xe3, 0x9c, 0x7f, 0x8e, 0xdf, 0x92, 0xb9, 0x2b, - 0x41, 0xfc, 0xf9, 0x80, 0x73, 0x48, 0x63, 0x9a, 0x45, 0x7f, 0x7d, 0x19, 0x76, 0x30, 0xec, 0x4d, - 0xdb, 0x65, 0xbc, 0xf9, 0x15, 0xc1, 0x71, 0x0d, 0xb7, 0xed, 0xf0, 0x70, 0x8d, 0xfd, 0x4a, 0x32, - 0x31, 0x6f, 0xa2, 0x16, 0x07, 0x30, 0x0a, 0xc7, 0xdd, 0xc7, 0x3a, 0x72, 0x31, 0x4b, 0x1d, 0xa6, - 0x00, 0x2e, 0x72, 0x08, 0xfd, 0x34, 0x4c, 0x85, 0x10, 0xa7, 0x5a, 0xbe, 0x2b, 0x11, 0x0e, 0x05, - 0x39, 0xe7, 0xa0, 0x97, 0x75, 0x43, 0xb1, 0xa5, 0xa0, 0x06, 0x01, 0xf4, 0x6f, 0xe5, 0x70, 0x0d, - 0x79, 0xdf, 0x44, 0x6c, 0x94, 0x86, 0x20, 0x6f, 0x9a, 0x6b, 0x56, 0xdd, 0x62, 0x31, 0x43, 0x77, - 0x91, 0xfd, 0x20, 0x57, 0x00, 0x68, 0x14, 0x58, 0x72, 0xac, 0x8a, 0x49, 0x63, 0xa5, 0x91, 0xd9, - 0x7d, 0x12, 0x7a, 0xe8, 0x78, 0xf7, 0xac, 0x8a, 0x59, 0x1c, 0xb0, 0xf9, 0x9f, 0xa4, 0x04, 0x3b, - 0x29, 0xa6, 0x52, 0xb9, 0x5d, 0x6f, 0xd7, 0x0c, 0x0f, 0xa8, 0xd4, 0xb0, 0xbd, 0xad, 0x84, 0x51, - 0x9b, 0xee, 0xf6, 0x68, 0x58, 0x38, 0xe0, 0xc5, 0x1e, 0xff, 0xf0, 0xee, 0xde, 0x5d, 0x65, 0xdb, - 0xa9, 0xdb, 0x8e, 0x53, 0xb9, 0x3f, 0x63, 0xd9, 0x85, 0xba, 0xe1, 0xae, 0xcf, 0xdc, 0x32, 0xab, - 0x46, 0x79, 0x73, 0xd1, 0x2c, 0x17, 0x77, 0x50, 0x2c, 0x57, 0x05, 0x92, 0x3b, 0x88, 0x23, 0x76, - 0x80, 0x07, 0x6d, 0xa3, 0xe1, 0x5a, 0xee, 0xe6, 0x74, 0xcf, 0xd6, 0x07, 0x78, 0x0d, 0x71, 0xe8, - 0xbf, 0xa9, 0xa1, 0x89, 0x09, 0xc9, 0x14, 0x67, 0x6b, 0x09, 0xc6, 0x56, 0xdb, 0x9b, 0x4e, 0xa9, - 0xd9, 0xb2, 0xca, 0x66, 0xa9, 0x66, 0x6e, 0x98, 0x35, 0xd4, 0xa2, 0x17, 0x24, 0x72, 0xba, 0xe5, - 0xf5, 0x29, 0x8e, 0x78, 0x50, 0xcb, 0x1e, 0x10, 0xfd, 0x4d, 0x6e, 0xc0, 0xb8, 0x17, 0x35, 0x07, - 0x11, 0xe5, 0x52, 0x20, 0x1a, 0xa5, 0x60, 0x1d, 0x4c, 0xfa, 0x17, 0x35, 0x18, 0x59, 0x6a, 0xd7, - 0x6a, 0x1d, 0xfd, 0x78, 0x0a, 0x95, 0x22, 0x6f, 0xc0, 0x78, 0xdd, 0xaa, 0x20, 0x55, 0x46, 0xa3, - 0x52, 0x72, 0xed, 0x55, 0x0c, 0xb5, 0x0e, 0xca, 0xac, 0x91, 0x55, 0xa1, 0xe4, 0xcc, 0x37, 0x2a, - 0x2b, 0x77, 0x17, 0x30, 0xb6, 0x1c, 0xa9, 0xfb, 0x5a, 0xed, 0x55, 0xfd, 0xd3, 0x1a, 0x86, 0x3e, - 0x41, 0x52, 0x9f, 0x72, 0x9d, 0x93, 0x59, 0x98, 0x7a, 0x68, 0xb9, 0xeb, 0xa5, 0x28, 0xcd, 0x2c, - 0xd0, 0x27, 0xde, 0xd7, 0xdb, 0x41, 0x52, 0x4a, 0x18, 0xd9, 0x44, 0x28, 0xc1, 0x29, 0xbe, 0x12, - 0xb6, 0x0f, 0x32, 0xc6, 0x83, 0x08, 0x3a, 0x36, 0xa2, 0x8e, 0x1a, 0x14, 0xfa, 0x9e, 0x66, 0x59, - 0xca, 0xf9, 0xc9, 0x49, 0xf9, 0x79, 0x2b, 0x56, 0xb2, 0x3e, 0xaf, 0x12, 0x54, 0x86, 0x94, 0xdc, - 0x70, 0x1b, 0xf3, 0xd3, 0x62, 0xa7, 0xc2, 0xd7, 0x83, 0xb3, 0xb0, 0x79, 0xc3, 0x70, 0xd6, 0x3b, - 0xde, 0x4f, 0xc9, 0x51, 0xc4, 0xe9, 0xe4, 0x62, 0x9c, 0xce, 0x7e, 0x18, 0x62, 0x76, 0x67, 0x9d, - 0x22, 0x9e, 0xee, 0xa2, 0xf3, 0x3c, 0x48, 0xdb, 0xd8, 0x58, 0x7a, 0x95, 0xef, 0x4f, 0x62, 0xc8, - 0x40, 0x4e, 0x17, 0xa1, 0x37, 0xb0, 0x1f, 0x7e, 0x49, 0xc2, 0xe9, 0x4a, 0xcb, 0xaa, 0xd7, 0xcd, - 0x8a, 0x87, 0xe9, 0x96, 0x67, 0x05, 0x28, 0xba, 0x22, 0xc2, 0x8a, 0xdd, 0xfd, 0x0a, 0x3d, 0x17, - 0xe8, 0x0c, 0xf7, 0xcc, 0xb8, 0xd5, 0x6b, 0xf0, 0x22, 0x0b, 0x07, 0x58, 0xcb, 0x7c, 0xa5, 0xd2, - 0x32, 0x1d, 0x27, 0xe3, 0x48, 0x87, 0x60, 0x94, 0x0f, 0x63, 0x30, 0x04, 0x38, 0xd6, 0x88, 0x11, - 0x40, 0xab, 0x7f, 0x2e, 0x07, 0xdb, 0x63, 0x39, 0x26, 0xe7, 0xa0, 0x87, 0xea, 0x18, 0xc3, 0x4d, - 0xed, 0xe6, 0xb6, 0x24, 0xbb, 0xc9, 0x20, 0xc8, 0x15, 0xe8, 0x17, 0x56, 0x37, 0x97, 0x1e, 0x5a, - 0x00, 0x79, 0x08, 0xd6, 0xac, 0x5a, 0xcd, 0x58, 0xad, 0x31, 0x3f, 0x93, 0x16, 0x01, 0x07, 0xea, - 0xec, 0xe8, 0xbb, 0x7d, 0x3b, 0x7a, 0xcf, 0x5c, 0x74, 0x14, 0x89, 0xf9, 0x03, 0x74, 0x4f, 0x9e, - 0xae, 0x78, 0xdb, 0xc9, 0xb2, 0x55, 0x99, 0xee, 0x65, 0xdb, 0xc9, 0xb2, 0x55, 0xd1, 0x4d, 0x0c, - 0x9a, 0xa2, 0xb3, 0xfd, 0x4c, 0x95, 0xaa, 0x0e, 0x07, 0x13, 0xa6, 0xfc, 0x99, 0x0e, 0x77, 0xc9, - 0xb7, 0x66, 0x83, 0xe6, 0x39, 0x55, 0xb4, 0xf2, 0x9f, 0x9a, 0x6f, 0xb1, 0x85, 0xe1, 0xc5, 0x66, - 0x78, 0x40, 0x18, 0x29, 0x9f, 0x02, 0x25, 0x3a, 0xde, 0x7e, 0xee, 0x18, 0xc8, 0x4d, 0x18, 0x59, - 0x35, 0x1d, 0xb7, 0xb4, 0xda, 0xde, 0x44, 0x34, 0xb9, 0xf4, 0x68, 0x86, 0x3c, 0xd0, 0x85, 0xf6, - 0x26, 0x43, 0xf5, 0x61, 0x18, 0xa5, 0xa8, 0xe8, 0x39, 0x16, 0xc3, 0xd5, 0x95, 0x1e, 0xd7, 0xb0, - 0x07, 0x7b, 0xcf, 0xac, 0xd5, 0x28, 0x32, 0xfd, 0x2a, 0x2e, 0xcf, 0x45, 0xb3, 0x65, 0x6d, 0xd0, - 0xe0, 0x60, 0x0b, 0x22, 0xfc, 0x89, 0x1c, 0xce, 0xb8, 0x1c, 0xcb, 0xff, 0x79, 0x41, 0xfe, 0x2e, - 0x57, 0xa3, 0x8e, 0x0c, 0x9e, 0x45, 0x90, 0xaa, 0x8c, 0x31, 0xbb, 0x9e, 0x3e, 0xc6, 0xd4, 0xdf, - 0xd6, 0x60, 0x9f, 0x9c, 0xee, 0x0f, 0x6c, 0x20, 0xf8, 0xd9, 0x2e, 0x98, 0x89, 0xb5, 0x65, 0x2b, - 0xf6, 0x55, 0xa3, 0x51, 0x36, 0x6b, 0xaf, 0x37, 0x57, 0xec, 0xf9, 0xba, 0x67, 0x7f, 0x9e, 0x9d, - 0xe7, 0x5e, 0x84, 0xc1, 0x55, 0xc3, 0x31, 0x4b, 0x06, 0xc5, 0x9b, 0xc5, 0x94, 0x83, 0x07, 0xc7, - 0xc8, 0x21, 0x4b, 0x30, 0xf4, 0xa0, 0x6d, 0xbb, 0x02, 0x4d, 0x77, 0x7a, 0x34, 0x83, 0x14, 0x10, - 0xf1, 0x5c, 0x87, 0x7e, 0xc7, 0x6d, 0x19, 0xae, 0x59, 0x65, 0x9b, 0x81, 0x91, 0xd9, 0x63, 0x12, - 0x19, 0x32, 0x89, 0xd4, 0xe8, 0x2d, 0xc7, 0x3d, 0x04, 0x29, 0x0a, 0x60, 0x72, 0x0b, 0x46, 0x5b, - 0xe6, 0x9a, 0xd9, 0x32, 0x1b, 0x65, 0x13, 0xd7, 0x41, 0x6f, 0x7a, 0xcd, 0x1a, 0x11, 0xb0, 0x6c, - 0x21, 0x7c, 0x3b, 0x07, 0x73, 0xbe, 0x99, 0x09, 0xa9, 0xd5, 0xfb, 0x3a, 0x3f, 0x61, 0xc9, 0x76, - 0x3d, 0x03, 0xc9, 0x76, 0x3f, 0x63, 0xc9, 0xf6, 0x6c, 0x5d, 0xb2, 0x6b, 0x78, 0x3c, 0x13, 0x2f, - 0xd8, 0x67, 0x17, 0xb2, 0xb5, 0xe0, 0x68, 0x8c, 0xff, 0xde, 0xd2, 0x78, 0xa9, 0x03, 0xb7, 0x7f, - 0xcd, 0xc1, 0x2e, 0x74, 0xf3, 0x9d, 0x81, 0x3e, 0x20, 0xe1, 0xdb, 0x05, 0xba, 0xa9, 0xa8, 0x5a, - 0x8d, 0x2c, 0x0a, 0x85, 0x20, 0x81, 0xd8, 0xaf, 0x7b, 0x2b, 0xb1, 0xdf, 0x5e, 0x1e, 0xfb, 0x79, - 0x9a, 0xd3, 0xbf, 0x30, 0xf0, 0x83, 0x77, 0xf7, 0xb2, 0x86, 0xf8, 0x30, 0xb0, 0x57, 0x12, 0x06, - 0xf6, 0x75, 0xc2, 0xc0, 0x07, 0x78, 0x42, 0x27, 0xd3, 0x23, 0x34, 0xfa, 0xaf, 0x86, 0xa2, 0xb3, - 0x59, 0x75, 0x74, 0x16, 0x37, 0x6d, 0x22, 0x46, 0xdb, 0x84, 0x63, 0xa9, 0x54, 0xea, 0x7d, 0x18, - 0xfa, 0x67, 0xb4, 0x48, 0x88, 0xf3, 0x1c, 0x77, 0x76, 0x4e, 0x24, 0x52, 0x92, 0xec, 0xef, 0x9e, - 0xa5, 0x08, 0x3e, 0xc3, 0xef, 0x20, 0x7c, 0xf1, 0xd9, 0x73, 0x3b, 0x91, 0xf8, 0xb4, 0x06, 0xe0, - 0x0b, 0x09, 0x9e, 0xe3, 0xc2, 0xf6, 0x62, 0xb6, 0xc9, 0x65, 0xb3, 0xd5, 0x34, 0xdd, 0xb6, 0x51, - 0x63, 0x12, 0xb9, 0xe7, 0x1a, 0xae, 0x17, 0x19, 0x0e, 0x72, 0xb6, 0x1b, 0x6b, 0x36, 0x9e, 0x25, - 0xc8, 0x6e, 0x89, 0x43, 0x18, 0x6e, 0x36, 0xd6, 0xec, 0x22, 0x4a, 0xcd, 0xfb, 0x9b, 0x2c, 0xc3, - 0xd0, 0x5a, 0xbb, 0x51, 0xb1, 0x1a, 0x55, 0x86, 0x8d, 0x1d, 0x30, 0x1d, 0x4f, 0x87, 0x6d, 0x89, - 0x41, 0x16, 0x07, 0x11, 0x85, 0x87, 0x51, 0xff, 0x95, 0x2e, 0x98, 0x5c, 0x6a, 0xd7, 0x6a, 0xe1, - 0xe9, 0x24, 0x57, 0x42, 0xc7, 0x1f, 0x87, 0xa4, 0xa7, 0xd2, 0x41, 0x40, 0x71, 0x22, 0xb6, 0x02, - 0x23, 0x4d, 0x4e, 0x80, 0x9f, 0xda, 0x63, 0xe9, 0xa8, 0xa5, 0xd2, 0xbb, 0xb1, 0xad, 0x38, 0x2c, - 0x90, 0x50, 0x09, 0xdc, 0xf3, 0x24, 0xe0, 0xb6, 0x5b, 0xa6, 0xc3, 0x70, 0x76, 0x51, 0x9c, 0x33, - 0x12, 0x9c, 0xd7, 0x1e, 0x35, 0xad, 0xd6, 0xe6, 0x12, 0x03, 0xe8, 0xc8, 0xf4, 0xc6, 0x36, 0x4f, - 0x08, 0xb4, 0x91, 0x22, 0x5d, 0x60, 0xaa, 0x89, 0x6e, 0x35, 0x83, 0x69, 0xa5, 0xfa, 0xcb, 0x76, - 0x00, 0xb1, 0x07, 0x80, 0x3d, 0x4f, 0x7d, 0x00, 0xb8, 0xd0, 0x0b, 0xdd, 0x1e, 0xa3, 0x7a, 0x15, - 0xb7, 0xa6, 0x31, 0xeb, 0x0e, 0x97, 0xf9, 0xb5, 0xf0, 0xf9, 0xdb, 0x31, 0xc5, 0x89, 0x55, 0x64, - 0xda, 0xc4, 0x29, 0xdc, 0x05, 0x3c, 0xc7, 0x89, 0xf4, 0x48, 0xb3, 0x7d, 0xab, 0x48, 0xac, 0x83, - 0x20, 0xf2, 0x6a, 0x48, 0xad, 0x32, 0xd1, 0xc8, 0xcf, 0xd6, 0x16, 0xd0, 0xeb, 0x84, 0x3b, 0xa0, - 0x2f, 0x48, 0x45, 0xa9, 0x19, 0xdd, 0xad, 0x06, 0x71, 0x74, 0x2e, 0xe2, 0x78, 0xb8, 0xc1, 0xef, - 0x96, 0xd9, 0xcf, 0x74, 0x01, 0xd0, 0x75, 0xdc, 0x12, 0x75, 0x2e, 0x80, 0xa8, 0xab, 0xa4, 0x09, - 0x31, 0x59, 0xee, 0x97, 0xf4, 0x8b, 0x28, 0xd9, 0x65, 0xdb, 0xb1, 0x68, 0x8a, 0xd1, 0xcd, 0x46, - 0x86, 0x79, 0xe1, 0xda, 0x13, 0x03, 0x2d, 0xb4, 0xa7, 0xc7, 0x33, 0xd4, 0x26, 0xea, 0xce, 0x91, - 0xc4, 0xe5, 0xce, 0x51, 0xa1, 0xde, 0x32, 0x68, 0x7d, 0x29, 0x92, 0x0e, 0x21, 0x86, 0xcc, 0xc4, - 0xee, 0x27, 0xe0, 0x43, 0x12, 0x3c, 0x61, 0xbe, 0x9f, 0x3e, 0x6b, 0xc8, 0x81, 0x42, 0x68, 0xac, - 0x6b, 0x6b, 0x6b, 0x8c, 0xf7, 0xf7, 0x6f, 0xd0, 0x57, 0x51, 0x87, 0x43, 0x49, 0x3a, 0x22, 0x41, - 0x27, 0x8b, 0xb0, 0xac, 0x88, 0x92, 0xf9, 0x84, 0xfe, 0x4c, 0xe6, 0x77, 0x1b, 0x9f, 0xdf, 0x35, - 0x38, 0x94, 0x38, 0x2f, 0xe2, 0xbe, 0x50, 0x8c, 0xe8, 0xad, 0xf4, 0xbd, 0x32, 0xbb, 0x1f, 0xab, - 0x47, 0x3f, 0x99, 0x83, 0xf1, 0xc8, 0x2c, 0x90, 0x1d, 0xd0, 0x67, 0x39, 0xa5, 0x9a, 0xdd, 0xa8, - 0x52, 0xa4, 0xfd, 0xc5, 0x5e, 0xcb, 0xb9, 0x65, 0x37, 0xaa, 0x4f, 0x1f, 0x98, 0x2f, 0xc2, 0xa0, - 0xd9, 0x70, 0x5b, 0x9b, 0x91, 0xc3, 0x9b, 0xe4, 0xfd, 0x38, 0x85, 0x63, 0x4e, 0xe0, 0x0e, 0x8c, - 0x99, 0x9c, 0xe8, 0x12, 0x06, 0xfa, 0x19, 0xdc, 0xc9, 0xa8, 0x00, 0xbe, 0x4d, 0x61, 0xf5, 0x47, - 0x70, 0x22, 0xbd, 0x66, 0x8a, 0x93, 0xd0, 0x80, 0xd8, 0x0f, 0xcb, 0x5c, 0x63, 0x18, 0x51, 0x50, - 0xfe, 0x97, 0x71, 0x1d, 0xc7, 0x45, 0x24, 0x69, 0x0c, 0xce, 0x3a, 0xaa, 0x64, 0x2c, 0xbc, 0xa0, - 0xb4, 0x7b, 0x6b, 0x31, 0x11, 0xaa, 0x24, 0x73, 0x8c, 0xdc, 0x19, 0x48, 0x7c, 0x7d, 0x2a, 0x6a, - 0x9b, 0xe8, 0x0c, 0xa4, 0x38, 0x90, 0xe2, 0x1b, 0x01, 0x8a, 0x33, 0x46, 0x1d, 0x01, 0xaa, 0xe7, - 0x71, 0x03, 0x2e, 0x89, 0xd1, 0xd2, 0x11, 0x7d, 0x40, 0x89, 0x42, 0x64, 0x3c, 0x06, 0xf4, 0x21, - 0x5b, 0xb0, 0x18, 0x5c, 0xfc, 0x9f, 0xe2, 0xfb, 0x1f, 0xa9, 0xd1, 0xc2, 0x31, 0x3f, 0x16, 0xc8, - 0x51, 0xf4, 0xec, 0xcd, 0xc5, 0xec, 0x39, 0x8a, 0x9d, 0x9c, 0x47, 0x9e, 0x0f, 0xc6, 0x71, 0xea, - 0xe7, 0x30, 0x2f, 0x28, 0xde, 0xab, 0x22, 0x11, 0x93, 0xd0, 0xc3, 0xd2, 0x51, 0x35, 0x9a, 0x8e, - 0xca, 0x7e, 0xe8, 0x3b, 0x31, 0xa3, 0xe0, 0xb6, 0x5d, 0x69, 0xd7, 0x4c, 0x1a, 0x65, 0xf2, 0x44, - 0xb6, 0xd7, 0x31, 0xf9, 0x21, 0xf0, 0x49, 0x64, 0x1b, 0x04, 0xa4, 0x28, 0xcb, 0x30, 0xb9, 0xce, - 0x12, 0x6d, 0x19, 0x2c, 0x4a, 0x6d, 0x07, 0x6c, 0x0f, 0xfa, 0x5e, 0x3e, 0x5e, 0x09, 0x73, 0x22, - 0xde, 0x37, 0x63, 0xfd, 0xc0, 0x7f, 0x49, 0x53, 0x34, 0x1f, 0x1a, 0xad, 0xca, 0xb2, 0x6d, 0x35, - 0xdc, 0x54, 0xc9, 0x68, 0x73, 0x30, 0xd5, 0x34, 0xd9, 0x5e, 0xa3, 0x69, 0xdb, 0xb5, 0x92, 0x6b, - 0xd5, 0x4d, 0xc7, 0x35, 0xea, 0x4d, 0x6a, 0x60, 0xbb, 0x8a, 0x93, 0xf8, 0x75, 0xd9, 0xb6, 0x6b, - 0x2b, 0xfc, 0x9b, 0xfe, 0x53, 0xfc, 0xda, 0x33, 0x66, 0x4c, 0x64, 0x6e, 0x15, 0x76, 0x71, 0x7f, - 0x46, 0x73, 0x88, 0x4b, 0x2d, 0xda, 0xab, 0xd4, 0xa4, 0xdd, 0x18, 0x1d, 0xe9, 0xec, 0xe5, 0xb4, - 0x7f, 0xf2, 0xfd, 0x63, 0xe9, 0xfb, 0xd1, 0x7c, 0xf9, 0xbe, 0x5c, 0x35, 0xea, 0x4d, 0xc3, 0xaa, - 0x36, 0xb8, 0xf4, 0xff, 0xbd, 0x1b, 0x4d, 0x54, 0x6c, 0x1f, 0xa4, 0xf5, 0x01, 0xbc, 0xe0, 0xd1, - 0xe8, 0x09, 0x01, 0xa9, 0x2c, 0x63, 0x17, 0xff, 0x76, 0xee, 0x84, 0x74, 0x43, 0x6d, 0xb0, 0xa5, - 0xe8, 0xc7, 0x4d, 0x0d, 0xca, 0x4e, 0x57, 0xf6, 0x89, 0x3c, 0x86, 0x83, 0xa1, 0x21, 0xa9, 0xf8, - 0xc5, 0xb8, 0x4e, 0x79, 0xdd, 0xf4, 0xf4, 0x13, 0x0f, 0xbb, 0x8f, 0x48, 0x8f, 0x13, 0x39, 0x2b, - 0x4c, 0x2c, 0x76, 0xad, 0xb8, 0x3f, 0x30, 0xa8, 0xd7, 0xc4, 0x3b, 0xdd, 0x43, 0x9c, 0xe4, 0x63, - 0xb0, 0xd3, 0xb5, 0x5d, 0xa3, 0x16, 0x3b, 0x33, 0x19, 0x9c, 0xe2, 0x14, 0xc5, 0x12, 0x99, 0x17, - 0xf2, 0x19, 0x0d, 0x8e, 0x73, 0xad, 0x4a, 0xc7, 0x65, 0x77, 0x56, 0x2e, 0x0f, 0x23, 0xfe, 0x95, - 0x44, 0x66, 0xeb, 0xb0, 0x5f, 0xd0, 0x22, 0x65, 0xba, 0x27, 0xbd, 0x3a, 0xee, 0xe6, 0x23, 0xc7, - 0xf2, 0xae, 0x5f, 0x40, 0x9d, 0xbc, 0xe9, 0xdc, 0x6d, 0xba, 0x66, 0xe5, 0x6e, 0xdb, 0xbd, 0xbb, - 0xc6, 0x3a, 0x38, 0xc9, 0x89, 0xac, 0x8b, 0xa8, 0xac, 0xb1, 0xc0, 0xa8, 0xac, 0xfb, 0x60, 0xc8, - 0x72, 0x4a, 0xb6, 0xf7, 0xbd, 0x64, 0xb7, 0x5d, 0x0c, 0x91, 0xc0, 0x12, 0x20, 0xfa, 0x21, 0x3c, - 0x32, 0x8a, 0xe0, 0xc0, 0xc3, 0x34, 0x61, 0x9a, 0x16, 0x31, 0xfc, 0x56, 0x74, 0xc4, 0x41, 0x15, - 0x26, 0x44, 0xbf, 0x8c, 0x4e, 0x6e, 0xc9, 0x34, 0x17, 0x2d, 0x87, 0x1d, 0xd7, 0x61, 0xd0, 0xea, - 0xf3, 0xcc, 0x72, 0xa6, 0xff, 0x49, 0x43, 0x17, 0x27, 0x43, 0x80, 0x34, 0xec, 0x06, 0x70, 0x2d, - 0xb3, 0x25, 0x6e, 0x93, 0xb4, 0xc3, 0xdd, 0xc5, 0x01, 0xaf, 0x85, 0x9d, 0x0b, 0xdd, 0x86, 0x21, - 0x11, 0x40, 0x77, 0xce, 0x21, 0x64, 0xf1, 0x86, 0x6f, 0xac, 0x15, 0xcb, 0x6c, 0xd1, 0x81, 0x06, - 0x8d, 0xce, 0xa8, 0xe4, 0x55, 0x18, 0x14, 0xf6, 0xcb, 0xad, 0xe1, 0x09, 0xc4, 0x91, 0x74, 0xd8, - 0x56, 0x56, 0x6e, 0x15, 0x81, 0x5b, 0x2d, 0xb7, 0x26, 0xec, 0x94, 0xaf, 0x1b, 0x57, 0x4f, 0x3e, - 0x15, 0x9f, 0xe4, 0xb7, 0x6a, 0xb1, 0x7d, 0x84, 0xc3, 0xdd, 0xbe, 0x66, 0x9a, 0xa5, 0x0a, 0x7e, - 0xef, 0x2c, 0x1f, 0x2d, 0x2d, 0xaf, 0x02, 0xe5, 0xc4, 0x5a, 0xb4, 0x51, 0x7f, 0x05, 0x3d, 0x09, - 0x26, 0x68, 0xdf, 0xb6, 0x9c, 0xba, 0xe1, 0x96, 0x7d, 0x27, 0x9e, 0x7b, 0x61, 0xb0, 0xd2, 0x76, - 0xdc, 0xd2, 0x9a, 0x51, 0x76, 0x6d, 0x56, 0x23, 0xd2, 0x55, 0x04, 0xaf, 0x69, 0x89, 0xb6, 0xe8, - 0x5f, 0xe8, 0x82, 0xd1, 0x10, 0x34, 0xd1, 0x21, 0xb0, 0x8f, 0x49, 0x9f, 0x57, 0x49, 0xe6, 0x61, - 0xc0, 0xd8, 0x30, 0xac, 0xcc, 0x79, 0x10, 0x1d, 0x28, 0xcf, 0xa3, 0xd3, 0x55, 0x9f, 0x25, 0x40, - 0x67, 0x10, 0x64, 0x09, 0x86, 0x30, 0x35, 0xbd, 0xb4, 0x6e, 0xd7, 0x2a, 0xbe, 0x8b, 0x98, 0xe4, - 0xcb, 0x21, 0x04, 0xbc, 0x61, 0xd7, 0x2a, 0xe4, 0x55, 0x18, 0x31, 0x1f, 0x35, 0xcd, 0xb2, 0xb7, - 0x60, 0x19, 0x2d, 0xbd, 0xe9, 0x31, 0x0d, 0x73, 0x50, 0x6a, 0x6e, 0xc8, 0x55, 0x80, 0x8a, 0xb5, - 0x86, 0x97, 0x3c, 0xec, 0x88, 0x3e, 0xe5, 0xfe, 0xa5, 0x03, 0xa6, 0x3f, 0x44, 0xe7, 0x1d, 0x33, - 0xcd, 0xa8, 0x68, 0xaf, 0x03, 0xe1, 0xac, 0xd7, 0xc5, 0x57, 0x0c, 0x53, 0x3e, 0xa4, 0xce, 0xea, - 0xe7, 0xd8, 0x8a, 0xe3, 0xab, 0x61, 0xf4, 0xfa, 0x41, 0x5c, 0xe8, 0xd8, 0xd5, 0x0b, 0xfd, 0x16, - 0x3a, 0x82, 0x12, 0x66, 0xe9, 0xb3, 0x39, 0xd8, 0xee, 0xeb, 0xc2, 0x76, 0x49, 0x54, 0x94, 0xff, - 0xcf, 0x55, 0x49, 0xff, 0x79, 0x1e, 0x9a, 0x4b, 0x25, 0x88, 0x13, 0x68, 0x41, 0x9e, 0x0f, 0x48, - 0xcf, 0xdb, 0xfd, 0xa3, 0x27, 0x25, 0xcf, 0xc4, 0x8a, 0xbe, 0xb8, 0x63, 0x35, 0x7e, 0x48, 0xe1, - 0x6d, 0x42, 0x36, 0xd0, 0x0b, 0x8e, 0x2d, 0xc7, 0xb5, 0xca, 0x62, 0x5a, 0xcf, 0xc1, 0x70, 0xe0, - 0x03, 0x21, 0xd0, 0xed, 0x99, 0x6f, 0x34, 0xe5, 0xf4, 0x6f, 0x6f, 0xf6, 0x3a, 0xd5, 0x3a, 0xdd, - 0x45, 0xf6, 0x43, 0x6f, 0xa0, 0xa3, 0x52, 0x8c, 0x21, 0x76, 0x9b, 0xe0, 0x88, 0xd6, 0x84, 0x04, - 0xf7, 0x00, 0x8a, 0xa2, 0x0f, 0xce, 0x0b, 0xe6, 0x6f, 0x5b, 0xae, 0xfd, 0x86, 0xd1, 0xae, 0x51, - 0x6f, 0x20, 0x78, 0xf8, 0x73, 0x0d, 0xa6, 0xc2, 0x5f, 0x70, 0xe4, 0x23, 0x30, 0x56, 0x37, 0x1c, - 0xd7, 0x6c, 0xf1, 0x8b, 0x4b, 0x93, 0xbb, 0xca, 0x51, 0xd6, 0x3e, 0xcf, 0x9b, 0xc9, 0x49, 0x98, - 0xac, 0x88, 0xa0, 0xde, 0xd7, 0x9d, 0x5d, 0x97, 0x4c, 0x74, 0xbe, 0x75, 0x40, 0x0e, 0xc2, 0x88, - 0xd3, 0xb4, 0x5d, 0x5f, 0x67, 0x76, 0x57, 0x34, 0xec, 0xb5, 0x06, 0xba, 0x95, 0x1f, 0xce, 0x9e, - 0xf0, 0x75, 0xeb, 0x66, 0xdd, 0xbc, 0x56, 0xd1, 0x4d, 0x5f, 0x44, 0x43, 0x8f, 0xdb, 0xd6, 0xc5, - 0xa5, 0x96, 0x5d, 0xa7, 0x2c, 0xf9, 0x0e, 0xa4, 0x36, 0xbc, 0xdf, 0xa5, 0xe0, 0xa9, 0xe8, 0x10, - 0x6d, 0xe4, 0x57, 0xb0, 0x3c, 0x8f, 0x2a, 0x06, 0x0b, 0xca, 0x44, 0xb9, 0xb3, 0xe5, 0x9b, 0xe3, - 0x1b, 0x96, 0xe3, 0xda, 0x2d, 0xab, 0x2c, 0xa2, 0xa9, 0xb2, 0xed, 0x0b, 0x96, 0x94, 0x28, 0x6c, - 0x34, 0x28, 0x32, 0x14, 0x62, 0x43, 0x3f, 0xcc, 0x83, 0x3e, 0xfa, 0x21, 0xa1, 0x80, 0x20, 0x80, - 0x63, 0xc8, 0xf5, 0xfd, 0xd2, 0xbf, 0xa2, 0xc1, 0x04, 0xfd, 0xcc, 0x46, 0xf4, 0x22, 0x27, 0x6f, - 0x4b, 0x47, 0x5e, 0x02, 0xc2, 0x46, 0xa8, 0xb6, 0xec, 0x76, 0xd3, 0x8b, 0x35, 0x1d, 0xb3, 0x8c, - 0x8a, 0x3d, 0x46, 0xbf, 0x5c, 0xc7, 0x0f, 0xf7, 0xcc, 0x32, 0xd9, 0x01, 0x7d, 0x75, 0xe3, 0x51, - 0xc9, 0xa8, 0x9a, 0xa8, 0xe6, 0xbd, 0x75, 0xe3, 0xd1, 0x7c, 0xd5, 0x24, 0x33, 0x30, 0x61, 0x35, - 0xca, 0xb5, 0xb6, 0x47, 0xaa, 0xf1, 0xb0, 0xb4, 0xce, 0x06, 0xc1, 0x24, 0xbe, 0x71, 0xfc, 0x54, - 0x34, 0x1e, 0xe2, 0xe8, 0x9e, 0xce, 0xf1, 0xfe, 0x62, 0x27, 0x4e, 0x6f, 0x7d, 0x8b, 0xa3, 0xd8, - 0xce, 0xb7, 0xd9, 0xfa, 0xe7, 0x34, 0x3c, 0xf1, 0x17, 0xe5, 0x11, 0x86, 0x6b, 0xd5, 0x2c, 0x77, - 0x33, 0xd5, 0x6d, 0xe6, 0xc7, 0x60, 0x3b, 0xe3, 0x0f, 0x49, 0xf2, 0xe2, 0x4f, 0x8f, 0xf1, 0x84, - 0x28, 0x2b, 0x46, 0x54, 0xc5, 0x09, 0x37, 0xda, 0xa8, 0xff, 0x97, 0x16, 0xd0, 0x48, 0x3f, 0x75, - 0x22, 0xef, 0x18, 0x36, 0x44, 0x2b, 0xde, 0xfd, 0xed, 0x4d, 0xf4, 0x7a, 0x1d, 0x10, 0xf2, 0x26, - 0x8c, 0x71, 0xe2, 0x85, 0xac, 0x18, 0xf5, 0x7e, 0x43, 0x88, 0xb5, 0xb1, 0x58, 0x2a, 0x3b, 0xc3, - 0xc5, 0xe7, 0xb3, 0x34, 0xa3, 0x88, 0x85, 0x7f, 0x22, 0x57, 0x61, 0xd0, 0x3f, 0x59, 0x5d, 0x54, - 0xb7, 0xf4, 0x64, 0xdd, 0x2a, 0x42, 0x4b, 0xcc, 0xa4, 0xa8, 0xf7, 0x59, 0xb0, 0x1a, 0x06, 0x97, - 0x42, 0xd2, 0x65, 0xab, 0xbe, 0x8a, 0xa9, 0xd4, 0x21, 0x20, 0x61, 0x0a, 0x43, 0x37, 0x45, 0xb2, - 0x59, 0x62, 0xe0, 0x38, 0x15, 0xe1, 0x8b, 0xa2, 0x07, 0x70, 0x3c, 0xf6, 0xee, 0xff, 0xaa, 0xdd, - 0xa8, 0x58, 0x2c, 0x25, 0xec, 0x59, 0xd7, 0xf7, 0x7e, 0xbe, 0x0b, 0xf6, 0x47, 0x6e, 0xa9, 0xc3, - 0xe3, 0xfd, 0xef, 0x4d, 0xf0, 0xb8, 0x0e, 0x43, 0x6e, 0xcb, 0xaa, 0x56, 0xcd, 0xd6, 0x72, 0xd6, - 0x9b, 0xc8, 0x00, 0x60, 0x72, 0xa2, 0xc7, 0x41, 0xe8, 0xb3, 0x1c, 0x7a, 0xbd, 0x4f, 0x43, 0xce, - 0xfe, 0x85, 0xc1, 0x1f, 0xbc, 0xbb, 0x97, 0x37, 0x15, 0xf9, 0x1f, 0xa1, 0x7c, 0x90, 0x3e, 0x49, - 0x3e, 0x48, 0x7f, 0x27, 0x1f, 0xe4, 0x93, 0x5a, 0x20, 0x97, 0x4e, 0xa9, 0x14, 0xa2, 0x04, 0x33, - 0x98, 0x9d, 0x70, 0x36, 0x6d, 0x76, 0x42, 0x18, 0xa5, 0xc8, 0x51, 0xe0, 0x57, 0x65, 0x3c, 0x33, - 0x3f, 0x53, 0xf2, 0xa4, 0xfe, 0x4b, 0xfc, 0x04, 0x2b, 0x06, 0x1c, 0x49, 0xbe, 0x08, 0xdd, 0x0b, - 0x96, 0x70, 0x16, 0x87, 0xd5, 0x04, 0xfb, 0x92, 0x28, 0x28, 0x94, 0x07, 0x3d, 0xef, 0xdc, 0xe7, - 0xf5, 0x91, 0x19, 0xa0, 0x3d, 0x28, 0x71, 0xdc, 0x1d, 0xbc, 0x20, 0xcd, 0xc6, 0xe2, 0x17, 0x78, - 0xb0, 0x28, 0x45, 0xf2, 0x01, 0x60, 0xf4, 0x1d, 0x0d, 0xc6, 0x23, 0xdf, 0x9e, 0xeb, 0xda, 0x0e, - 0xae, 0x86, 0xae, 0xf0, 0x6a, 0x88, 0x98, 0xb7, 0xee, 0x98, 0xab, 0xba, 0xdb, 0xb8, 0x3e, 0xf0, - 0xb2, 0xd9, 0xb5, 0xeb, 0x56, 0xf9, 0xda, 0x23, 0xb3, 0xdc, 0xf6, 0x14, 0x79, 0xc9, 0x34, 0x6f, - 0xb7, 0x6b, 0xae, 0xd5, 0xac, 0x59, 0x66, 0x2b, 0xd5, 0x4c, 0x6e, 0xe0, 0xd5, 0x65, 0x1a, 0x74, - 0xe2, 0x06, 0x1e, 0xea, 0xa2, 0x35, 0x8b, 0x18, 0x7d, 0x60, 0xfa, 0x59, 0x5e, 0xe5, 0x4c, 0xe7, - 0xf3, 0x9e, 0x6b, 0xdc, 0x37, 0xaf, 0xb7, 0x8c, 0x4e, 0x02, 0xe6, 0x34, 0xf4, 0x55, 0xbd, 0xdf, - 0xa6, 0xc9, 0xcf, 0x74, 0xf0, 0xa7, 0xfe, 0x6b, 0xa2, 0x88, 0x39, 0x02, 0x8a, 0x04, 0x9e, 0x85, - 0x1e, 0xda, 0x19, 0xcf, 0x2e, 0x64, 0xfe, 0x92, 0xc1, 0x33, 0x50, 0x06, 0x40, 0xee, 0x40, 0xe7, - 0x06, 0xad, 0xc4, 0x70, 0xa8, 0x4b, 0xb0, 0xc4, 0x25, 0x18, 0x43, 0x33, 0x62, 0x06, 0x7e, 0xeb, - 0x2b, 0x68, 0x09, 0xe8, 0xaf, 0xf9, 0xb6, 0xbb, 0x6e, 0xb7, 0xac, 0x1f, 0xa7, 0x09, 0x9a, 0x11, - 0x3e, 0x5b, 0x41, 0x3e, 0x5b, 0x7e, 0x09, 0xe4, 0x82, 0x12, 0xf8, 0x08, 0x9e, 0xf9, 0xc4, 0x61, - 0x45, 0x11, 0x9c, 0x86, 0x5e, 0xcc, 0x3b, 0x65, 0xf3, 0xb3, 0x1b, 0xe7, 0x67, 0x7b, 0x74, 0x7e, - 0x6e, 0x36, 0xdc, 0x22, 0x76, 0x16, 0x27, 0x8c, 0x51, 0xcc, 0x4e, 0x22, 0xc1, 0xfa, 0x97, 0xf9, - 0x39, 0x53, 0x2c, 0x34, 0x12, 0xf6, 0x61, 0x20, 0xec, 0xa8, 0x94, 0x42, 0x95, 0xb2, 0x10, 0x39, - 0x46, 0x01, 0x19, 0x72, 0x96, 0x1b, 0x3b, 0x0f, 0xbd, 0x14, 0x8d, 0x93, 0x70, 0x94, 0x1d, 0x23, - 0x28, 0x04, 0xd4, 0xcf, 0x62, 0x70, 0x84, 0xf7, 0x44, 0x6c, 0xf7, 0x99, 0x6a, 0xe5, 0xbc, 0x85, - 0x11, 0x52, 0x08, 0x12, 0xf9, 0xbc, 0x0c, 0x7d, 0xb8, 0xab, 0x45, 0x2d, 0x7c, 0x51, 0x59, 0x52, - 0xcc, 0xc1, 0x39, 0x90, 0x78, 0x21, 0x23, 0xf0, 0xd9, 0x77, 0xf1, 0xb3, 0x2b, 0xf6, 0xab, 0xf4, - 0xbd, 0x84, 0x74, 0xa3, 0x77, 0xde, 0x4b, 0xb8, 0x0f, 0xc3, 0x81, 0x4f, 0xea, 0x10, 0xfe, 0x52, - 0x87, 0xd9, 0x0c, 0x76, 0x51, 0xf0, 0x3a, 0x27, 0x12, 0x86, 0x1a, 0x76, 0xfd, 0xb6, 0xd5, 0xe0, - 0xf5, 0x00, 0xea, 0xea, 0xf7, 0xb7, 0x44, 0xa6, 0x50, 0x18, 0xaa, 0xf3, 0x4e, 0x48, 0x40, 0xbd, - 0xd2, 0x45, 0x52, 0xb8, 0x12, 0xf6, 0x4a, 0xb0, 0x8b, 0x29, 0xd8, 0x14, 0xe9, 0x54, 0x91, 0x0e, - 0x38, 0xfe, 0x9b, 0x30, 0xc1, 0x8a, 0xe2, 0xeb, 0x56, 0x43, 0xd4, 0x49, 0xf0, 0x09, 0x39, 0xa4, - 0xaa, 0x8c, 0xf7, 0x73, 0x33, 0x5e, 0x09, 0x0f, 0x70, 0x74, 0x0e, 0x06, 0x44, 0x0d, 0x30, 0x99, - 0x84, 0x31, 0xef, 0xdf, 0xd2, 0xeb, 0x0d, 0xa7, 0x69, 0x96, 0xad, 0x35, 0xcb, 0xac, 0x8c, 0x6d, - 0x23, 0x7d, 0xd0, 0xb5, 0xd0, 0xde, 0x1c, 0xd3, 0x48, 0x3f, 0x74, 0xdf, 0x33, 0x6b, 0xb5, 0xb1, - 0xdc, 0xd1, 0x37, 0x60, 0x32, 0x2e, 0x43, 0xdc, 0x43, 0xe0, 0x83, 0xa5, 0x88, 0xc7, 0xb6, 0x91, - 0x09, 0x18, 0xf5, 0xf6, 0xdc, 0x6f, 0xda, 0x2d, 0xc7, 0x5d, 0xb1, 0x17, 0x4c, 0xc7, 0x1d, 0xd3, - 0x78, 0xa3, 0xf7, 0x6b, 0xc5, 0xa6, 0x9f, 0xc6, 0x72, 0xb3, 0xdf, 0x5f, 0x87, 0x1e, 0x2a, 0x09, - 0xf2, 0x8e, 0x06, 0xdb, 0x6f, 0x9d, 0x0a, 0x85, 0x03, 0x0b, 0xb6, 0x7d, 0x9f, 0x9c, 0x57, 0x3d, - 0x57, 0xa2, 0x0e, 0x44, 0xf2, 0x17, 0xb6, 0x04, 0xcb, 0xe6, 0x40, 0x9f, 0xff, 0xe4, 0x3b, 0xdf, - 0xff, 0xc5, 0xdc, 0x05, 0x72, 0xae, 0x10, 0xff, 0xae, 0x51, 0xe7, 0x3c, 0xa4, 0x70, 0xeb, 0x94, - 0xa0, 0xb7, 0xf0, 0x58, 0xe8, 0xfa, 0x13, 0xf2, 0x55, 0x0d, 0x46, 0x6f, 0x9d, 0x12, 0x71, 0x1c, - 0xe5, 0x67, 0x2e, 0x89, 0xa6, 0xb8, 0xa8, 0x31, 0x7f, 0x3a, 0x23, 0x14, 0xf2, 0x70, 0x81, 0xf2, - 0x70, 0x9a, 0x9c, 0x92, 0xf0, 0xe0, 0x34, 0x6d, 0x57, 0x4a, 0xfd, 0x6f, 0x68, 0x30, 0x11, 0xf3, - 0x98, 0x0e, 0x39, 0xa9, 0xa2, 0x25, 0xf6, 0x59, 0x9e, 0xfc, 0x6c, 0x16, 0x10, 0xa4, 0xfd, 0x38, - 0xa5, 0xfd, 0x10, 0x39, 0x58, 0x50, 0x3f, 0x64, 0x85, 0x54, 0xfd, 0x91, 0x06, 0x24, 0xfa, 0x7a, - 0x0d, 0x39, 0x9d, 0xf5, 0xb5, 0x1b, 0x46, 0xf0, 0xcb, 0x5b, 0x7b, 0x24, 0x47, 0x3f, 0x4f, 0x89, - 0x9e, 0x23, 0xb3, 0x09, 0x44, 0x17, 0x9c, 0x28, 0xa9, 0x5f, 0xd5, 0x60, 0x3c, 0x82, 0x5a, 0xad, - 0x2f, 0xb2, 0x67, 0x23, 0xf2, 0xa7, 0x33, 0x42, 0x21, 0xf9, 0xe7, 0x28, 0xf9, 0xa7, 0xc8, 0xc9, - 0xcc, 0xe4, 0x93, 0xaf, 0x68, 0x30, 0x16, 0x7e, 0x85, 0x87, 0x9c, 0x4a, 0x33, 0xef, 0x21, 0x0f, - 0x95, 0x9f, 0xcb, 0x06, 0x84, 0xa4, 0x9f, 0xa5, 0xa4, 0xcf, 0x92, 0x13, 0x49, 0xa4, 0x9b, 0x61, - 0x22, 0xff, 0x50, 0x83, 0xd1, 0xd0, 0xab, 0x36, 0x44, 0xa9, 0xb0, 0xf1, 0x2f, 0x01, 0xe5, 0x4f, - 0x65, 0x82, 0x49, 0x69, 0x65, 0xc4, 0xdf, 0xa1, 0xc7, 0x7e, 0x0a, 0x8f, 0x51, 0xfe, 0x4f, 0xa8, - 0xe4, 0xc3, 0xaf, 0xf2, 0x90, 0x2c, 0xc4, 0xa4, 0x93, 0xbc, 0xec, 0xe1, 0x9f, 0xf4, 0x92, 0x0f, - 0xbf, 0x57, 0x44, 0xbe, 0xad, 0xc1, 0xf6, 0xd8, 0xf7, 0x55, 0xc8, 0xd9, 0x54, 0x94, 0xc4, 0xbc, - 0xc8, 0x93, 0x3f, 0xb7, 0x05, 0x48, 0x64, 0xe4, 0x26, 0x65, 0xe4, 0x2a, 0x99, 0x4f, 0xcd, 0x88, - 0x1f, 0x4d, 0xc0, 0x76, 0xfe, 0x8d, 0x06, 0x53, 0xf1, 0x2f, 0xc7, 0x90, 0xec, 0x04, 0x8a, 0xf9, - 0x39, 0xbf, 0x15, 0x50, 0x64, 0xee, 0x32, 0x65, 0xee, 0x2c, 0x79, 0x79, 0x4b, 0xcc, 0x39, 0xe4, - 0xb7, 0x35, 0x18, 0xf2, 0xbf, 0xbd, 0x43, 0x0a, 0x2a, 0x62, 0x62, 0x5e, 0x22, 0xca, 0x9f, 0x48, - 0x0f, 0x80, 0x34, 0x5f, 0xa2, 0x34, 0x9f, 0x21, 0xa7, 0x93, 0x68, 0x0e, 0xbc, 0x20, 0x54, 0x78, - 0x4c, 0x7f, 0x3e, 0x21, 0x5f, 0xd2, 0x60, 0x38, 0xf0, 0x5c, 0x10, 0x49, 0x4d, 0x82, 0x10, 0xf9, - 0xc9, 0x0c, 0x10, 0x48, 0xf5, 0xcb, 0x94, 0xea, 0x13, 0x64, 0x26, 0x13, 0xd5, 0x0e, 0xf9, 0x9c, - 0x06, 0x83, 0xbe, 0xb7, 0x2d, 0xc8, 0x8c, 0xd2, 0x86, 0x47, 0x9e, 0xe3, 0xc8, 0x17, 0x52, 0xf7, - 0x47, 0x42, 0x8f, 0x51, 0x42, 0x0f, 0x92, 0x03, 0xaa, 0xe8, 0x00, 0x4f, 0x5c, 0xc9, 0x2f, 0x6b, - 0x00, 0xbe, 0xe7, 0x4a, 0x8e, 0xa7, 0x1b, 0x8c, 0xd3, 0x36, 0x93, 0xb6, 0x3b, 0x92, 0x76, 0x86, - 0x92, 0x76, 0x92, 0x14, 0x52, 0x90, 0x16, 0x58, 0x78, 0x5f, 0xd2, 0x60, 0x34, 0xf4, 0x48, 0x88, - 0xda, 0x98, 0xc7, 0xbf, 0x6d, 0xa2, 0x36, 0xe6, 0x92, 0x57, 0x48, 0xf4, 0x13, 0x94, 0xea, 0xa3, - 0xe4, 0xb0, 0x8a, 0xea, 0xb5, 0x76, 0xad, 0x56, 0xe2, 0x52, 0x7d, 0x3b, 0xfa, 0x10, 0xcc, 0xc9, - 0xf4, 0x23, 0xa7, 0x0a, 0xaf, 0xe2, 0x9f, 0x18, 0x49, 0x17, 0x1a, 0xfa, 0x68, 0x0d, 0x48, 0xf9, - 0xb7, 0x34, 0x18, 0x0e, 0x44, 0x9c, 0xea, 0x95, 0x15, 0x1b, 0xd2, 0x9e, 0xcc, 0x00, 0x91, 0x32, - 0x3c, 0xa1, 0x34, 0x8b, 0xa7, 0x4b, 0x03, 0x14, 0x7f, 0x5d, 0x83, 0xb1, 0x70, 0x8d, 0xb5, 0xda, - 0x49, 0x4a, 0xde, 0x12, 0x51, 0x3b, 0x49, 0xd9, 0x93, 0x14, 0xfa, 0x12, 0x25, 0xfd, 0x15, 0x72, - 0x39, 0x91, 0xf4, 0x80, 0x3e, 0x17, 0x1e, 0x07, 0x8e, 0xf5, 0x9e, 0x90, 0x7f, 0xd1, 0x60, 0x5a, - 0xf6, 0x20, 0x05, 0x51, 0xee, 0x77, 0x12, 0x5e, 0x2e, 0xc9, 0x5f, 0xdc, 0x1a, 0x30, 0xf2, 0xb7, - 0x4c, 0xf9, 0x7b, 0x95, 0xdc, 0xc8, 0xc8, 0x1f, 0xf2, 0x26, 0xc2, 0x19, 0x7e, 0xb5, 0xfb, 0x84, - 0xfc, 0x9d, 0x17, 0xd0, 0x47, 0x1e, 0x8e, 0x49, 0x08, 0xe8, 0x65, 0xef, 0xdd, 0x24, 0x04, 0xf4, - 0xd2, 0xf7, 0x69, 0xb2, 0xf0, 0x55, 0x5a, 0xdd, 0xc4, 0x8a, 0x49, 0xe5, 0x0c, 0xbe, 0xad, 0xc1, - 0x58, 0xf8, 0x89, 0x58, 0xb5, 0x26, 0x4a, 0xde, 0xac, 0xcd, 0xcf, 0x65, 0x03, 0x42, 0x8e, 0x4e, - 0x53, 0x8e, 0x0a, 0xe4, 0x78, 0x41, 0xf1, 0xf4, 0xaf, 0x13, 0x21, 0xfb, 0x3b, 0x1a, 0xec, 0xec, - 0x68, 0xf7, 0x4a, 0xcb, 0x68, 0x38, 0x96, 0xd9, 0x78, 0x0e, 0x2b, 0x29, 0xd5, 0x8c, 0xb8, 0x9c, - 0xbe, 0x52, 0x8a, 0x35, 0xf5, 0x17, 0xa8, 0x69, 0xc1, 0x9a, 0xb8, 0x64, 0x4d, 0x8b, 0x7d, 0x62, - 0x24, 0x59, 0xd3, 0xe2, 0xdf, 0x14, 0x49, 0xdc, 0x09, 0x30, 0x97, 0x17, 0x2e, 0xf3, 0x0b, 0x18, - 0xb9, 0x77, 0x35, 0x98, 0x96, 0xbd, 0x5d, 0xa2, 0x36, 0x0e, 0x09, 0xef, 0xa6, 0xa8, 0x8d, 0x43, - 0xd2, 0x73, 0x29, 0xfa, 0x75, 0xca, 0xda, 0x3c, 0xb9, 0x92, 0x7c, 0x94, 0xa2, 0x66, 0xf0, 0x2f, - 0x35, 0x98, 0x88, 0x39, 0xb3, 0x21, 0x2f, 0xa7, 0x23, 0x2f, 0xe2, 0x83, 0xce, 0x64, 0x86, 0x43, - 0x8e, 0xae, 0x50, 0x8e, 0xce, 0x91, 0x33, 0xc9, 0x1c, 0xc5, 0xfb, 0xa3, 0x7f, 0xd4, 0x60, 0x2a, - 0xbe, 0x70, 0x5d, 0xbd, 0x41, 0x50, 0x3e, 0x9a, 0xa0, 0xde, 0x20, 0xa8, 0xeb, 0xe4, 0xf5, 0x5b, - 0x94, 0xa5, 0x25, 0xb2, 0x98, 0x92, 0x25, 0xf5, 0x9a, 0xfa, 0x6f, 0x0d, 0xf6, 0xa8, 0xab, 0xe4, - 0xc9, 0x7c, 0x7a, 0x87, 0x23, 0xe3, 0x77, 0xe1, 0x69, 0x50, 0x20, 0xdf, 0x6f, 0x50, 0xbe, 0x97, - 0xc9, 0x9d, 0x2d, 0xf1, 0x2d, 0xf7, 0x5f, 0xff, 0x16, 0x58, 0x8c, 0x21, 0x2f, 0x76, 0x21, 0x83, - 0xe2, 0x45, 0x7c, 0xd9, 0xc5, 0xad, 0x01, 0x6f, 0x95, 0xdf, 0x94, 0x7e, 0xed, 0x3f, 0x34, 0xd8, - 0x1b, 0x56, 0xb1, 0xb0, 0x9b, 0x78, 0x4e, 0xaa, 0x9d, 0x81, 0xe5, 0x4c, 0x8e, 0xe3, 0x77, 0x34, - 0x18, 0x8f, 0xd4, 0x44, 0xab, 0x4f, 0xec, 0x64, 0x4f, 0x17, 0xa8, 0x4f, 0xec, 0xa4, 0x85, 0xd7, - 0xfa, 0x49, 0xca, 0xda, 0x31, 0x72, 0x24, 0x85, 0x69, 0x45, 0xfa, 0xbe, 0xa6, 0xc1, 0x58, 0xa4, - 0xe4, 0xfe, 0x54, 0x96, 0xe1, 0x53, 0x39, 0x70, 0x59, 0x19, 0x76, 0xe2, 0xae, 0x3e, 0x4a, 0x72, - 0xc0, 0x72, 0x7e, 0x47, 0x83, 0x1d, 0x92, 0xc2, 0x69, 0xf5, 0x65, 0x81, 0xba, 0x62, 0x3b, 0x7f, - 0x61, 0x4b, 0xb0, 0xc8, 0xd3, 0x22, 0xe5, 0xe9, 0x32, 0xb9, 0x98, 0x96, 0x27, 0x6e, 0x27, 0x02, - 0xac, 0xfd, 0xa9, 0x06, 0x93, 0x71, 0x65, 0x65, 0xe4, 0x4c, 0xba, 0x48, 0x2f, 0x52, 0xde, 0x9d, - 0x3f, 0x9b, 0x1d, 0x30, 0xe5, 0x0e, 0x5c, 0xfc, 0x1d, 0x5e, 0x14, 0x5f, 0xd4, 0x60, 0x82, 0x9f, - 0xd2, 0xfa, 0xaa, 0xd9, 0xd4, 0xc7, 0x19, 0xd1, 0x8a, 0x38, 0xf5, 0x71, 0x46, 0x4c, 0x99, 0x5c, - 0xe2, 0x71, 0x46, 0x9d, 0xc2, 0x94, 0x68, 0x79, 0x1a, 0xf9, 0x05, 0x0d, 0x06, 0x44, 0xed, 0x1b, - 0x79, 0x49, 0x35, 0x56, 0xb8, 0x76, 0x2e, 0x7f, 0x3c, 0x65, 0x6f, 0xa4, 0xeb, 0x30, 0xa5, 0x4b, - 0x27, 0xfb, 0x24, 0x74, 0x35, 0x05, 0x19, 0xbf, 0xa7, 0xc1, 0x78, 0xa4, 0x4a, 0x5e, 0x6d, 0x4f, - 0x64, 0x25, 0xf9, 0x6a, 0x7b, 0x22, 0x2d, 0xc5, 0xd7, 0xe7, 0x28, 0xb1, 0x33, 0xe4, 0xa5, 0x24, - 0x62, 0x03, 0x8a, 0xfb, 0xc7, 0x1a, 0x4c, 0xc4, 0x14, 0x80, 0x93, 0x94, 0xd7, 0x28, 0x11, 0x09, - 0x9f, 0xc9, 0x0c, 0x97, 0xf2, 0x2c, 0xda, 0x47, 0x7e, 0x48, 0x6d, 0xff, 0x59, 0x83, 0xbc, 0xbc, - 0xb0, 0x9c, 0x5c, 0xca, 0x46, 0x51, 0x78, 0x36, 0x2e, 0x6f, 0x15, 0x3c, 0xa5, 0x7d, 0x91, 0xf2, - 0x15, 0x98, 0xa6, 0x4f, 0xe5, 0xe0, 0x40, 0x8a, 0x72, 0x6e, 0xb2, 0x94, 0x8e, 0xda, 0xa4, 0x97, - 0x0a, 0xf2, 0xd7, 0x9f, 0x1a, 0x0f, 0xb2, 0x7f, 0x87, 0xb2, 0x7f, 0x83, 0x2c, 0xc9, 0x8c, 0x91, - 0xc8, 0xbc, 0x49, 0x27, 0x88, 0x6f, 0x68, 0x30, 0x11, 0x53, 0xdb, 0xad, 0xd6, 0x57, 0x79, 0x39, - 0xba, 0x5a, 0x5f, 0x15, 0x65, 0xe8, 0xfa, 0x2b, 0x94, 0xb1, 0xf3, 0xe4, 0xac, 0x6c, 0x5e, 0xc5, - 0x2b, 0x36, 0xbe, 0x87, 0x7c, 0x02, 0xac, 0x7c, 0x4b, 0x83, 0x1d, 0x92, 0xa2, 0x6f, 0xb5, 0x3b, - 0x54, 0xd7, 0xac, 0xab, 0xdd, 0x61, 0x42, 0xad, 0x7a, 0x8a, 0x83, 0x7b, 0x0f, 0x5e, 0xca, 0xd3, - 0xdf, 0x6a, 0x30, 0x15, 0x5f, 0x13, 0xae, 0x8e, 0x20, 0x95, 0x05, 0xed, 0xea, 0x08, 0x52, 0x5d, - 0xc8, 0xae, 0x5f, 0xa5, 0x0c, 0x5d, 0x22, 0x17, 0xd2, 0xce, 0x13, 0xbe, 0x73, 0x14, 0x99, 0x2a, - 0x49, 0xf5, 0xba, 0x7a, 0xaa, 0xd4, 0xef, 0x74, 0xa8, 0xa7, 0x2a, 0xa1, 0x5c, 0x3e, 0x71, 0xaa, - 0x58, 0xd6, 0x21, 0xcf, 0x4d, 0x8f, 0x3b, 0xcd, 0x1a, 0x8f, 0x96, 0xda, 0x26, 0x9f, 0xec, 0xc4, - 0x54, 0x84, 0xab, 0x5d, 0x96, 0xb4, 0xa6, 0x5b, 0x9f, 0xa5, 0x1c, 0xbc, 0x44, 0x8e, 0x4a, 0x38, - 0x88, 0xa9, 0xac, 0x25, 0x7f, 0xa6, 0xc1, 0xf4, 0x72, 0xa7, 0x56, 0xf7, 0x39, 0x52, 0x9f, 0x94, - 0x31, 0xe0, 0xaf, 0x58, 0x0e, 0x73, 0xf1, 0x35, 0x5e, 0xf7, 0x11, 0x2c, 0xe5, 0x56, 0x9b, 0x31, - 0x79, 0x59, 0xba, 0xda, 0x8c, 0x29, 0x4a, 0xd5, 0x13, 0xa3, 0x86, 0x00, 0xf1, 0xbc, 0xce, 0x9a, - 0xbc, 0xa3, 0xc1, 0x54, 0x7c, 0x75, 0xad, 0x7a, 0x99, 0x2b, 0x4b, 0x7a, 0xd5, 0xcb, 0x5c, 0x5d, - 0xcc, 0xab, 0x2f, 0x50, 0x3e, 0x2e, 0x92, 0xf3, 0x12, 0x3e, 0x02, 0x75, 0xae, 0xfe, 0xba, 0x5e, - 0xdf, 0x75, 0xbc, 0x37, 0x29, 0x31, 0xb5, 0xad, 0xea, 0x49, 0x91, 0xd7, 0xe0, 0xaa, 0x27, 0x45, - 0x51, 0x97, 0x9b, 0x38, 0x29, 0xb1, 0x45, 0xbb, 0xe4, 0x4f, 0x34, 0x18, 0x8f, 0x94, 0x60, 0xaa, - 0x97, 0x84, 0xac, 0x30, 0x57, 0xbd, 0x24, 0xa4, 0x75, 0x9e, 0x89, 0x87, 0x6b, 0xd1, 0x22, 0xd0, - 0xc2, 0x63, 0x5f, 0x01, 0xf0, 0x13, 0xf2, 0xd7, 0x1a, 0xec, 0x90, 0xd4, 0x22, 0xaa, 0x0d, 0xad, - 0xba, 0x04, 0x54, 0x6d, 0x68, 0x13, 0x8a, 0x1f, 0x13, 0x17, 0x3a, 0x4f, 0xa0, 0x8c, 0x29, 0x8d, - 0x24, 0xdf, 0xd4, 0x60, 0xa7, 0xb4, 0xca, 0x90, 0x5c, 0x4c, 0xa9, 0x21, 0xb1, 0x05, 0x90, 0xf9, - 0x4b, 0x5b, 0x84, 0x4e, 0x79, 0xdb, 0x1d, 0xd0, 0x32, 0x5a, 0x29, 0xef, 0x6d, 0xc0, 0x1c, 0xf2, - 0x79, 0x0d, 0x46, 0x82, 0x35, 0x8b, 0xd2, 0x5d, 0x58, 0x6c, 0xd1, 0xa3, 0x74, 0x17, 0x16, 0x5f, - 0x08, 0xa9, 0x17, 0x28, 0x9d, 0x47, 0xc8, 0x21, 0xd9, 0xee, 0xd0, 0x72, 0xed, 0x12, 0xab, 0x2e, - 0xb4, 0x28, 0x35, 0x5f, 0xd7, 0xf0, 0x89, 0x94, 0x48, 0x21, 0xa1, 0x7a, 0x35, 0xc8, 0xaa, 0x17, - 0xd5, 0xab, 0x41, 0x5a, 0xad, 0x98, 0x98, 0xb8, 0xc1, 0x68, 0x16, 0x61, 0x46, 0xe1, 0x71, 0xa0, - 0x44, 0x92, 0xc6, 0xba, 0x53, 0xf1, 0x95, 0x88, 0x6a, 0x2b, 0xab, 0x2c, 0x80, 0x54, 0x5b, 0x59, - 0x75, 0xe1, 0x63, 0xe2, 0xd1, 0xc2, 0xba, 0x00, 0x2f, 0x05, 0x0a, 0x24, 0x69, 0xd8, 0x1e, 0xf3, - 0x08, 0x85, 0xda, 0xb4, 0xca, 0x9f, 0xbc, 0x50, 0x9b, 0x56, 0xc5, 0x6b, 0x17, 0x89, 0x61, 0xbb, - 0xff, 0x29, 0x8c, 0x92, 0xbd, 0x86, 0x9e, 0xcf, 0xf1, 0x79, 0x89, 0xbf, 0xd7, 0x60, 0xa7, 0xf4, - 0x81, 0x0b, 0xf5, 0x8a, 0x4e, 0x7a, 0x40, 0x43, 0xbd, 0xa2, 0x13, 0x5f, 0xd5, 0xd0, 0x2f, 0x52, - 0xe6, 0x5e, 0x26, 0x73, 0xb2, 0x88, 0x30, 0x86, 0xb3, 0x92, 0x78, 0xba, 0xe7, 0xab, 0x1a, 0x8c, - 0x85, 0xcb, 0x25, 0xd5, 0xa7, 0x8b, 0x92, 0xd2, 0xcf, 0xfc, 0x5c, 0x36, 0xa0, 0x94, 0xd4, 0x77, - 0xfe, 0xa3, 0x38, 0x84, 0x0c, 0x84, 0xe8, 0x5f, 0xd6, 0x60, 0x32, 0xa6, 0xf0, 0x30, 0x21, 0x73, - 0x28, 0xae, 0x3c, 0x52, 0x9d, 0xdf, 0x10, 0x5b, 0x1b, 0x99, 0x78, 0x35, 0xbb, 0x4a, 0xa1, 0x78, - 0x95, 0xab, 0x38, 0xd0, 0xfd, 0x4c, 0x0e, 0xf6, 0x27, 0xd6, 0xbc, 0x91, 0xc5, 0x2c, 0x07, 0xe8, - 0xb2, 0x3a, 0xca, 0xfc, 0xb5, 0xa7, 0xc4, 0x82, 0x9c, 0x7e, 0x84, 0x72, 0x5a, 0x24, 0xcb, 0xa9, - 0x2f, 0x5d, 0xca, 0x1d, 0x5c, 0xca, 0x33, 0xf9, 0x1f, 0x6a, 0xa0, 0x27, 0x57, 0x24, 0x91, 0x6b, - 0xc9, 0xca, 0x95, 0xa2, 0x40, 0x2a, 0xbf, 0xf4, 0xb4, 0x68, 0x52, 0x06, 0x07, 0x06, 0x45, 0xc2, - 0xee, 0x24, 0x4a, 0x9e, 0x4b, 0xed, 0xd4, 0x43, 0x91, 0x3f, 0xd0, 0x60, 0x2c, 0x5c, 0xd0, 0x94, - 0x90, 0xff, 0x19, 0x5f, 0x39, 0x95, 0x90, 0xff, 0x29, 0xa9, 0x99, 0x4a, 0xcc, 0x24, 0x32, 0xd8, - 0xc9, 0x8c, 0xe3, 0x41, 0xb2, 0xda, 0x9d, 0xc2, 0x63, 0xac, 0x47, 0x7a, 0x42, 0xfe, 0x4a, 0x03, - 0x12, 0xad, 0xb1, 0x51, 0xdf, 0xbd, 0x4b, 0x4b, 0xa2, 0xd4, 0x77, 0xef, 0xf2, 0x9a, 0xa7, 0xc4, - 0xec, 0x1c, 0xac, 0x38, 0xf2, 0xc3, 0x72, 0x1e, 0x5a, 0x4f, 0x7c, 0xdc, 0x7c, 0x5d, 0x83, 0x89, - 0x98, 0x12, 0x26, 0x92, 0x91, 0xae, 0x74, 0x0e, 0x4a, 0x51, 0x2b, 0x95, 0xb8, 0xab, 0x8f, 0x61, - 0xc8, 0xe9, 0x70, 0x44, 0xf3, 0xbb, 0x82, 0x45, 0x3c, 0x27, 0x92, 0x15, 0x3d, 0x58, 0x01, 0xa5, - 0xb6, 0x7f, 0xb1, 0x95, 0x4f, 0x89, 0xf9, 0x5d, 0xb8, 0xec, 0x31, 0x36, 0x0e, 0x18, 0xee, 0x5f, - 0xf5, 0xc2, 0xc9, 0x40, 0x49, 0x13, 0x49, 0x4f, 0x40, 0xba, 0x3a, 0x85, 0xf8, 0x8a, 0x29, 0x7d, - 0x86, 0x12, 0x7d, 0x98, 0x7c, 0x28, 0x15, 0xd1, 0x0e, 0xf9, 0x7d, 0x7a, 0xfd, 0x16, 0x2c, 0xcc, - 0x49, 0xba, 0x7e, 0x8b, 0x2d, 0x6e, 0x4a, 0xba, 0x7e, 0x8b, 0xaf, 0x6d, 0x4a, 0x14, 0x72, 0xb4, - 0xf0, 0x48, 0x24, 0xd4, 0xbe, 0x4d, 0xef, 0x3b, 0x43, 0x35, 0x45, 0x24, 0x13, 0x19, 0x69, 0xef, - 0x3b, 0x25, 0x95, 0x51, 0x89, 0x87, 0x3d, 0x31, 0x65, 0x53, 0x0b, 0xf7, 0xbf, 0xf1, 0xbd, 0x3d, - 0xda, 0x37, 0xbf, 0xb7, 0x47, 0xfb, 0xee, 0xf7, 0xf6, 0x68, 0x3f, 0xf7, 0xde, 0x9e, 0x6d, 0xdf, - 0x7c, 0x6f, 0xcf, 0xb6, 0xef, 0xbc, 0xb7, 0x67, 0xdb, 0x47, 0x5f, 0xab, 0x5a, 0xee, 0x7a, 0x7b, - 0x75, 0xa6, 0x6c, 0xd7, 0x0b, 0x37, 0x39, 0xbe, 0x5b, 0xc6, 0xaa, 0xd3, 0xc1, 0x7e, 0xbc, 0x6c, - 0xb7, 0x4c, 0xff, 0xcf, 0x75, 0xc3, 0x6a, 0xe0, 0x5d, 0x92, 0xd3, 0x19, 0xda, 0xdd, 0x6c, 0x9a, - 0x4e, 0x61, 0x63, 0x76, 0xb5, 0x97, 0xfe, 0x07, 0xe6, 0xa7, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, - 0x16, 0xbd, 0xd6, 0x96, 0xed, 0x7d, 0x00, 0x00, + // 6391 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x5b, 0x6c, 0x1c, 0xc9, + 0x71, 0x9a, 0x25, 0x45, 0x91, 0x45, 0x89, 0x8f, 0xa6, 0x44, 0x51, 0x7b, 0x77, 0x7a, 0x8c, 0x4e, + 0x27, 0xe9, 0xee, 0xc4, 0x95, 0x28, 0xe9, 0xf4, 0xd6, 0x1d, 0x29, 0x8a, 0x92, 0xce, 0x7a, 0xf0, + 0x56, 0xbc, 0x3b, 0xc7, 0xb9, 0x78, 0x3d, 0xdc, 0x6d, 0x2e, 0xc7, 0xda, 0xdd, 0x59, 0xed, 0xcc, + 0xf2, 0xc4, 0x08, 0xfa, 0x88, 0x93, 0x18, 0x86, 0x0d, 0xe4, 0xf9, 0xe1, 0x0f, 0x03, 0x0e, 0x10, + 0x07, 0x09, 0xf2, 0x40, 0x02, 0x38, 0x97, 0x38, 0x88, 0x1d, 0xc4, 0x49, 0x6c, 0xc7, 0x40, 0x80, + 0xc4, 0xc6, 0x25, 0xb1, 0x11, 0x20, 0x17, 0xc7, 0x0e, 0x10, 0xc4, 0x40, 0xe2, 0xfc, 0x07, 0x48, + 0x82, 0xe9, 0xae, 0xee, 0x9d, 0x57, 0xf7, 0xcc, 0x90, 0x3a, 0xc8, 0x4e, 0xbe, 0xc4, 0xed, 0xe9, + 0xaa, 0xae, 0xaa, 0xae, 0xae, 0xaa, 0x7e, 0x54, 0x09, 0x0e, 0xd8, 0xad, 0x8f, 0xd2, 0xaa, 0x67, + 0xaf, 0xd1, 0x12, 0x7d, 0x50, 0x5d, 0xb5, 0x5a, 0x75, 0x5a, 0x5a, 0x9b, 0x29, 0xdd, 0xef, 0xd2, + 0xce, 0xfa, 0x74, 0xbb, 0xe3, 0x78, 0x0e, 0xd9, 0x25, 0xbb, 0x4c, 0x8b, 0x2e, 0xd3, 0x6b, 0x33, + 0xc5, 0x9d, 0x75, 0xa7, 0xee, 0xb0, 0x1e, 0x25, 0xff, 0x2f, 0xde, 0xb9, 0xf8, 0x74, 0xdd, 0x71, + 0xea, 0x0d, 0x5a, 0xb2, 0xda, 0x76, 0xc9, 0x6a, 0xb5, 0x1c, 0xcf, 0xf2, 0x6c, 0xa7, 0xe5, 0xe2, + 0xd7, 0x67, 0x93, 0x47, 0x93, 0x68, 0x79, 0xaf, 0x43, 0xc9, 0xbd, 0x9c, 0x4e, 0x8d, 0x76, 0x96, + 0x1d, 0xe7, 0x1e, 0x76, 0x33, 0x93, 0xbb, 0x35, 0xad, 0xce, 0x3d, 0xea, 0x61, 0x9f, 0x83, 0xc9, + 0x7d, 0xea, 0xb4, 0x45, 0x5d, 0xdb, 0x8d, 0x8f, 0xe7, 0x74, 0xac, 0x6a, 0x83, 0x96, 0xd6, 0x4e, + 0x2c, 0x53, 0xcf, 0x3a, 0x81, 0x3f, 0x79, 0x37, 0xf3, 0x0e, 0xc0, 0xdd, 0xee, 0xb2, 0x55, 0xad, + 0x3a, 0xdd, 0x96, 0x47, 0x26, 0x61, 0xc0, 0xeb, 0x58, 0x35, 0xda, 0x99, 0x32, 0xf6, 0x1b, 0x47, + 0x86, 0xca, 0xf8, 0x8b, 0x1c, 0x85, 0x31, 0x57, 0xf6, 0xaa, 0xb4, 0x9c, 0x56, 0x95, 0x4e, 0x15, + 0xf6, 0x1b, 0x47, 0x76, 0x94, 0x47, 0x7b, 0xed, 0xb7, 0xfd, 0x66, 0xf3, 0x23, 0xf0, 0xf4, 0x6b, + 0xbe, 0x9c, 0x7b, 0x58, 0xef, 0xf8, 0x2c, 0xba, 0x65, 0x7a, 0xbf, 0x4b, 0x5d, 0x8f, 0x1c, 0x84, + 0x1d, 0x01, 0x54, 0x76, 0x0d, 0x47, 0xda, 0xde, 0x6b, 0xbc, 0x51, 0x23, 0x4f, 0xc1, 0x10, 0xe7, + 0xd8, 0xef, 0x50, 0x60, 0x1d, 0x06, 0x79, 0xc3, 0x8d, 0x9a, 0xf9, 0x05, 0x03, 0x9e, 0x51, 0x0c, + 0xe1, 0xb6, 0x9d, 0x96, 0x4b, 0xc9, 0x0d, 0x80, 0xe5, 0xee, 0x7a, 0x85, 0xc9, 0xd6, 0x9d, 0x32, + 0xf6, 0xf7, 0x1d, 0x19, 0x9e, 0x79, 0x7e, 0x3a, 0x71, 0xc6, 0xa7, 0x23, 0x48, 0xe6, 0x2d, 0xcf, + 0x2a, 0x0f, 0x2d, 0x77, 0xd7, 0x39, 0x4a, 0xf2, 0x01, 0x18, 0x76, 0x69, 0xa3, 0x21, 0x70, 0x15, + 0x72, 0xe3, 0x02, 0x1f, 0x9c, 0x23, 0x33, 0x7f, 0xcb, 0x80, 0x43, 0x91, 0x3e, 0xfe, 0xd4, 0xdf, + 0xa2, 0x9e, 0x55, 0xb3, 0x3c, 0xeb, 0x4d, 0xdb, 0x5b, 0xbd, 0xc5, 0xb8, 0x24, 0xb7, 0x61, 0xb0, + 0x89, 0xad, 0x4c, 0x40, 0xc3, 0x33, 0x33, 0xd9, 0xc6, 0x0c, 0xe2, 0x2b, 0x4b, 0x1c, 0x5a, 0x81, + 0x92, 0x9d, 0xb0, 0xd5, 0x76, 0xe7, 0xba, 0xeb, 0x53, 0x7d, 0xfb, 0x8d, 0x23, 0x83, 0x65, 0xfe, + 0xc3, 0x7c, 0x1a, 0x8a, 0x4c, 0xca, 0x57, 0x71, 0xb0, 0x45, 0xab, 0x63, 0x35, 0xc5, 0x34, 0x9a, + 0x1f, 0x82, 0xa7, 0x12, 0xbf, 0xe2, 0x0c, 0x5c, 0x80, 0x81, 0x36, 0x6b, 0x41, 0xea, 0x9f, 0x51, + 0x50, 0xcf, 0xc1, 0xe6, 0xfa, 0xbf, 0xfe, 0xde, 0xbe, 0x2d, 0x65, 0x04, 0x31, 0x7f, 0xce, 0x80, + 0xbd, 0x91, 0x09, 0x9e, 0xa7, 0x6d, 0xc7, 0xb5, 0xbd, 0x7c, 0x5a, 0x74, 0x0d, 0xa0, 0xf7, 0x9b, + 0x71, 0x3d, 0x3c, 0x73, 0x20, 0x55, 0x8c, 0x8c, 0x18, 0xa3, 0x1c, 0x00, 0x35, 0xbf, 0x63, 0xc0, + 0x3e, 0x25, 0x41, 0xc8, 0xf1, 0x47, 0x60, 0xb0, 0x86, 0x6d, 0xa8, 0x71, 0xf3, 0x8a, 0xa1, 0x52, + 0x30, 0x4d, 0x8b, 0x86, 0xab, 0x2d, 0xaf, 0xb3, 0x5e, 0x96, 0x58, 0x8b, 0x3f, 0x0e, 0x3b, 0x42, + 0x9f, 0xc8, 0x18, 0xf4, 0xdd, 0xa3, 0xeb, 0xc8, 0xba, 0xff, 0x27, 0x39, 0x05, 0x5b, 0xd7, 0xac, + 0x46, 0x97, 0x22, 0xb3, 0x7b, 0x15, 0x14, 0x20, 0x9a, 0x32, 0xef, 0x7c, 0xbe, 0x70, 0xd6, 0x30, + 0xf7, 0xe2, 0xb2, 0x15, 0xf3, 0x39, 0x67, 0x35, 0xac, 0x56, 0x95, 0xca, 0xf9, 0xb6, 0x70, 0xcd, + 0xc5, 0xbf, 0x23, 0xff, 0xaf, 0xc0, 0xe0, 0x32, 0xb6, 0x21, 0xff, 0xaa, 0xd1, 0x11, 0x14, 0x27, + 0x5d, 0x42, 0x99, 0x67, 0x50, 0xa5, 0x66, 0xeb, 0xf5, 0x0e, 0xad, 0x5b, 0x1e, 0x7d, 0xc3, 0x69, + 0x74, 0x9b, 0x54, 0x4c, 0xf9, 0x14, 0x6c, 0x13, 0x53, 0xc9, 0x39, 0x16, 0x3f, 0xcd, 0x36, 0xd2, + 0x1e, 0x03, 0x44, 0xd2, 0x16, 0x61, 0xdc, 0x12, 0x9f, 0x2a, 0x6b, 0xec, 0x9b, 0xa0, 0xf1, 0xa0, + 0x82, 0x46, 0xbe, 0x0c, 0x11, 0xcf, 0x98, 0x15, 0x46, 0xec, 0x9a, 0x3f, 0x96, 0x3c, 0xa2, 0x54, + 0xcf, 0x22, 0x0c, 0x22, 0x71, 0x7c, 0xa0, 0xa1, 0xb2, 0xfc, 0x4d, 0x9e, 0x01, 0x90, 0x4b, 0x91, + 0x1b, 0x94, 0xa1, 0xf2, 0x90, 0x58, 0x8b, 0xae, 0xf9, 0x03, 0x61, 0xdd, 0xe2, 0xb8, 0x91, 0x1d, + 0x07, 0xf6, 0xf4, 0xd8, 0x11, 0x4b, 0x20, 0xcc, 0xd6, 0x49, 0x05, 0x5b, 0x12, 0xe7, 0x2c, 0x07, + 0x13, 0x82, 0xaa, 0x3a, 0x9d, 0x5a, 0x79, 0xb7, 0x95, 0xf8, 0xd5, 0x25, 0x3f, 0x01, 0x53, 0xbd, + 0x01, 0x91, 0x76, 0x31, 0x5e, 0x21, 0xbb, 0x18, 0x27, 0x25, 0x92, 0x60, 0xb3, 0x6b, 0xbe, 0x02, + 0x07, 0xc2, 0x0c, 0x87, 0xa0, 0x50, 0xa2, 0x21, 0x03, 0x66, 0x44, 0x3c, 0x42, 0x1d, 0x4c, 0x1d, + 0x06, 0x94, 0xdb, 0x2c, 0x0c, 0x70, 0xaa, 0xd1, 0x26, 0xa9, 0x88, 0x0e, 0x0a, 0x45, 0x58, 0x26, + 0x0e, 0x68, 0x5e, 0x83, 0x12, 0x1f, 0xa8, 0x5b, 0xf5, 0x23, 0x00, 0xb1, 0x18, 0x96, 0x3a, 0x56, + 0xcb, 0x5d, 0xa1, 0x9d, 0x79, 0xda, 0x72, 0x9a, 0xf3, 0xb4, 0x6a, 0x37, 0xad, 0x86, 0x20, 0x7c, + 0x27, 0x6c, 0xad, 0xf9, 0xcd, 0x48, 0x34, 0xff, 0x61, 0xde, 0x84, 0xe3, 0xd9, 0x11, 0x21, 0xfd, + 0x53, 0xb0, 0xad, 0xc6, 0x9b, 0x18, 0xae, 0xfe, 0xb2, 0xf8, 0x69, 0xbe, 0x9a, 0x1d, 0x9b, 0x54, + 0xd1, 0x49, 0x18, 0x60, 0xa4, 0x08, 0x05, 0xc5, 0x5f, 0xe6, 0xc7, 0x0d, 0x38, 0x91, 0x03, 0x19, + 0xd2, 0xf6, 0x1a, 0x8c, 0x30, 0xf8, 0x0a, 0x92, 0x24, 0x14, 0xf1, 0x59, 0xa5, 0x05, 0x0a, 0x60, + 0x41, 0x21, 0xef, 0xa8, 0x05, 0x1b, 0xcd, 0x2b, 0xba, 0x49, 0x95, 0x6c, 0x84, 0x57, 0x93, 0x11, + 0x5d, 0x4d, 0x35, 0x38, 0xa8, 0x45, 0x82, 0xe4, 0x5f, 0x82, 0x6d, 0x1b, 0xb0, 0x0b, 0x02, 0xc6, + 0xfc, 0x50, 0x2c, 0x20, 0x11, 0x16, 0x36, 0x8f, 0xbb, 0x92, 0x9a, 0x52, 0x08, 0x6a, 0xca, 0x5b, + 0x2a, 0x5f, 0x28, 0x89, 0x3f, 0x1f, 0xf2, 0x3c, 0x59, 0xec, 0xbe, 0xec, 0x6f, 0x2e, 0xc2, 0x6e, + 0x8e, 0xbd, 0xed, 0x78, 0x9c, 0xb7, 0xa0, 0x82, 0xb8, 0x9e, 0xe5, 0x75, 0x5d, 0x11, 0x0b, 0xf2, + 0x5f, 0x69, 0xf6, 0xeb, 0x4d, 0x98, 0x8a, 0x63, 0x94, 0x51, 0xc1, 0x36, 0xde, 0x51, 0x88, 0x59, + 0xe9, 0x8d, 0x25, 0x70, 0x59, 0x40, 0x98, 0xa7, 0x61, 0x32, 0x82, 0x38, 0x93, 0x6d, 0x58, 0x8a, + 0x71, 0x28, 0xc9, 0x39, 0x07, 0x03, 0xbc, 0x1b, 0x8a, 0x2d, 0x03, 0x35, 0x08, 0x60, 0x7e, 0xb3, + 0x00, 0x7b, 0x24, 0x5a, 0x19, 0x78, 0x65, 0x21, 0xc8, 0x9f, 0xe6, 0x86, 0xdd, 0xb4, 0x79, 0x40, + 0xd2, 0x5f, 0xe6, 0x3f, 0xc8, 0xcb, 0x00, 0x2c, 0xc4, 0xac, 0xb8, 0x76, 0x8d, 0xb2, 0x40, 0x6c, + 0x64, 0x66, 0xbf, 0x82, 0x1e, 0x36, 0xde, 0x5d, 0xbb, 0x46, 0xcb, 0x43, 0x8e, 0xf8, 0x93, 0x54, + 0x60, 0x0f, 0xc3, 0x54, 0xa9, 0x76, 0x9b, 0xdd, 0x86, 0xe5, 0x03, 0x55, 0x5a, 0x8e, 0xbf, 0x82, + 0xad, 0xc6, 0x54, 0xbf, 0x4f, 0xc3, 0xdc, 0x41, 0x3f, 0xb0, 0xf9, 0x87, 0xf7, 0xf6, 0x3d, 0x55, + 0x75, 0xdc, 0xa6, 0xe3, 0xba, 0xb5, 0x7b, 0xd3, 0xb6, 0x53, 0x6a, 0x5a, 0xde, 0xea, 0xf4, 0x4d, + 0x5a, 0xb7, 0xaa, 0xeb, 0xf3, 0xb4, 0x5a, 0xde, 0xcd, 0xb0, 0x5c, 0x91, 0x48, 0x6e, 0x23, 0x8e, + 0xc4, 0x01, 0xee, 0x77, 0xad, 0x96, 0x67, 0x7b, 0xeb, 0x53, 0x5b, 0x37, 0x3e, 0xc0, 0x6b, 0x88, + 0xc3, 0xfc, 0xb2, 0x81, 0x11, 0x67, 0x44, 0xa6, 0x38, 0x5b, 0x0b, 0x30, 0xb6, 0xdc, 0x5d, 0x77, + 0x2b, 0xed, 0x8e, 0x5d, 0xa5, 0x95, 0x06, 0x5d, 0xa3, 0x0d, 0xd4, 0xa2, 0xa7, 0x15, 0x72, 0xba, + 0xe9, 0xf7, 0x29, 0x8f, 0xf8, 0x50, 0x8b, 0x3e, 0x10, 0xfb, 0x4d, 0xae, 0xc3, 0xb8, 0x1f, 0x92, + 0x87, 0x11, 0x15, 0x32, 0x20, 0x1a, 0x65, 0x60, 0x01, 0x4c, 0x63, 0xd0, 0xe7, 0xd2, 0xfb, 0x6c, + 0xb2, 0xfa, 0xcb, 0xfe, 0x9f, 0xe6, 0xe7, 0x0c, 0x18, 0x59, 0xe8, 0x36, 0x1a, 0x3d, 0x8d, 0xd9, + 0x84, 0x92, 0x91, 0x37, 0x60, 0xbc, 0x69, 0xd7, 0x90, 0x4e, 0xab, 0x55, 0xab, 0x78, 0xce, 0x32, + 0x46, 0x76, 0x87, 0x54, 0xf6, 0xc9, 0xae, 0x31, 0x02, 0x67, 0x5b, 0xb5, 0xa5, 0x3b, 0x73, 0x18, + 0xca, 0x8e, 0x34, 0x03, 0xad, 0xce, 0xb2, 0xf9, 0x09, 0x03, 0x23, 0xad, 0x30, 0xa9, 0x9b, 0x5c, + 0xf9, 0x64, 0x06, 0x26, 0xdf, 0xb6, 0xbd, 0xd5, 0x4a, 0x9c, 0x66, 0xbe, 0xaf, 0x20, 0xfe, 0xd7, + 0x5b, 0x61, 0x52, 0x2a, 0x18, 0x48, 0xc5, 0x28, 0xc1, 0x49, 0x7f, 0x39, 0x6a, 0x31, 0x54, 0x8c, + 0x87, 0x11, 0xf4, 0xac, 0x46, 0x13, 0x75, 0x2a, 0xf2, 0x3d, 0xcb, 0x42, 0x55, 0xf3, 0x53, 0x50, + 0xf2, 0xf3, 0x56, 0xa2, 0x64, 0x03, 0x7e, 0x26, 0xac, 0x0c, 0x19, 0xb9, 0x11, 0x56, 0xe7, 0x67, + 0xe5, 0xc6, 0x48, 0xac, 0x10, 0x77, 0x6e, 0xfd, 0xba, 0xe5, 0xae, 0xf6, 0xfc, 0xa1, 0x96, 0xa3, + 0x98, 0x1b, 0x2a, 0x24, 0xb8, 0xa1, 0x03, 0xb0, 0x9d, 0x5b, 0xa2, 0x55, 0x86, 0x78, 0xaa, 0x8f, + 0xcd, 0xf3, 0x30, 0x6b, 0xe3, 0x63, 0x99, 0x75, 0xb1, 0x1d, 0x4a, 0x20, 0x03, 0x39, 0x9d, 0x87, + 0x81, 0xd0, 0xf6, 0xfb, 0x45, 0x05, 0xa7, 0x4b, 0x1d, 0xbb, 0xd9, 0xa4, 0x35, 0x1f, 0xd3, 0x4d, + 0xdf, 0x2e, 0x30, 0x74, 0x65, 0x84, 0x95, 0x87, 0x09, 0x4b, 0xec, 0x18, 0xa2, 0x37, 0xdc, 0x63, + 0xe3, 0xd6, 0x6c, 0xc0, 0xb3, 0x3c, 0x40, 0xe0, 0x2d, 0xb3, 0xb5, 0x5a, 0x87, 0xba, 0x6e, 0xce, + 0x91, 0x0e, 0xc3, 0xa8, 0x18, 0xc6, 0xe2, 0x08, 0x70, 0xac, 0x11, 0x2b, 0x84, 0xd6, 0xfc, 0x4c, + 0x01, 0x76, 0x25, 0x72, 0x4c, 0xce, 0xc1, 0x56, 0xa6, 0x63, 0x1c, 0x37, 0xb3, 0xa4, 0x5b, 0xd2, + 0x2c, 0x29, 0x87, 0x20, 0x2f, 0xc3, 0xa0, 0xb4, 0xc3, 0x85, 0xec, 0xd0, 0x12, 0xc8, 0x47, 0xb0, + 0x62, 0x37, 0x1a, 0xd6, 0x72, 0x83, 0x7b, 0x9e, 0xac, 0x08, 0x04, 0x50, 0xef, 0x00, 0xa1, 0x3f, + 0x70, 0x80, 0xe0, 0x9b, 0x8b, 0x9e, 0x22, 0x71, 0x0f, 0x81, 0x0e, 0xcb, 0xd7, 0x15, 0xdf, 0x7a, + 0x56, 0xed, 0xda, 0xd4, 0x00, 0xdf, 0xbd, 0x56, 0xed, 0x9a, 0x49, 0x31, 0x8c, 0x8a, 0xcf, 0xf6, + 0x63, 0x55, 0xaa, 0x26, 0x1c, 0x4a, 0x99, 0xf2, 0xc7, 0x3a, 0xdc, 0xa5, 0xc0, 0x9a, 0x0d, 0x9b, + 0xe7, 0x4c, 0xf1, 0xcb, 0x7f, 0x19, 0x81, 0xc5, 0x16, 0x85, 0x97, 0x7b, 0xef, 0x21, 0x69, 0xa4, + 0x02, 0x0a, 0x94, 0xea, 0x8a, 0x07, 0x85, 0x63, 0x20, 0x37, 0x60, 0x64, 0x99, 0xba, 0x5e, 0x65, + 0xb9, 0xbb, 0x8e, 0x68, 0x0a, 0xd9, 0xd1, 0x6c, 0xf7, 0x41, 0xe7, 0xba, 0xeb, 0x1c, 0xd5, 0x07, + 0x60, 0x94, 0xa1, 0x62, 0xc7, 0x66, 0x1c, 0x57, 0x5f, 0x76, 0x5c, 0x3b, 0x7c, 0xd8, 0xbb, 0xb4, + 0xd1, 0x60, 0xc8, 0xcc, 0x2b, 0xb8, 0x3c, 0xe7, 0x69, 0xc7, 0x5e, 0x63, 0xe1, 0xc2, 0x06, 0x44, + 0xf8, 0x53, 0x05, 0x9c, 0x71, 0x35, 0x96, 0xff, 0xf3, 0x82, 0xfc, 0x03, 0xa1, 0x46, 0x3d, 0x19, + 0x3c, 0x8e, 0xb0, 0x55, 0x1b, 0x75, 0xf6, 0x6d, 0x3e, 0xea, 0x34, 0xbf, 0x66, 0xc0, 0x7e, 0x35, + 0xdd, 0x3f, 0x42, 0xa1, 0xe1, 0xa7, 0xfb, 0x60, 0x3a, 0xd1, 0xba, 0x2d, 0x39, 0x57, 0xac, 0x56, + 0x95, 0x36, 0x5e, 0x6f, 0x2f, 0x39, 0xb3, 0x4d, 0xdf, 0x22, 0x3d, 0x3e, 0x5f, 0x3e, 0x0f, 0xc3, + 0xcb, 0x96, 0x4b, 0x2b, 0x16, 0xc3, 0x9b, 0xc7, 0xb8, 0x83, 0x0f, 0xc7, 0xc9, 0x21, 0x0b, 0xb0, + 0xfd, 0x7e, 0xd7, 0xf1, 0x24, 0x9a, 0xfe, 0xec, 0x68, 0x86, 0x19, 0x20, 0xe2, 0xb9, 0x06, 0x83, + 0xae, 0xd7, 0xb1, 0x3c, 0x5a, 0xe7, 0x1b, 0x86, 0x91, 0x99, 0x17, 0x14, 0x52, 0xe5, 0x12, 0x69, + 0xb0, 0x6b, 0x96, 0xbb, 0x08, 0x52, 0x96, 0xc0, 0xe4, 0x26, 0x8c, 0x76, 0xe8, 0x0a, 0xed, 0xd0, + 0x56, 0x95, 0xe2, 0xca, 0x18, 0xc8, 0xae, 0x6b, 0x23, 0x12, 0x96, 0x2f, 0x8d, 0x6f, 0x15, 0xe0, + 0x54, 0x60, 0x66, 0x22, 0x8a, 0xf6, 0xbe, 0xce, 0x4f, 0x54, 0xb2, 0x7d, 0x8f, 0x41, 0xb2, 0xfd, + 0x8f, 0x59, 0xb2, 0x5b, 0x37, 0x2e, 0xd9, 0x15, 0x3c, 0xc2, 0x49, 0x16, 0xec, 0xe3, 0x0b, 0xe2, + 0x3a, 0xf0, 0x7c, 0x82, 0x47, 0xdf, 0xd0, 0x78, 0x99, 0x43, 0xb9, 0x7f, 0x2b, 0xc0, 0x53, 0xe8, + 0xf8, 0x7b, 0x03, 0xfd, 0x90, 0x04, 0x74, 0x17, 0xd8, 0x36, 0xa3, 0x6e, 0xb7, 0xf2, 0x28, 0x14, + 0x82, 0x84, 0xa2, 0xc1, 0xfe, 0x8d, 0x44, 0x83, 0xfb, 0x44, 0x34, 0xe8, 0x6b, 0xce, 0xe0, 0xdc, + 0xd0, 0xf7, 0xdf, 0xdb, 0xc7, 0x1b, 0x92, 0x03, 0xc3, 0x01, 0x45, 0x60, 0xb8, 0xad, 0x17, 0x18, + 0xde, 0xc7, 0x53, 0x3c, 0x95, 0x1e, 0xa1, 0x1b, 0x78, 0x35, 0x12, 0xaf, 0xcd, 0xe8, 0xe3, 0xb5, + 0xa4, 0x69, 0x93, 0x51, 0xdb, 0x3a, 0xbc, 0x90, 0x49, 0xa5, 0xde, 0x87, 0xa1, 0x3f, 0x65, 0xc4, + 0x82, 0x9e, 0x27, 0xb8, 0xd7, 0x73, 0x63, 0xb1, 0x93, 0x62, 0xc7, 0xf7, 0x38, 0x45, 0xf0, 0x49, + 0x71, 0x09, 0x12, 0x88, 0xd8, 0x9e, 0xd8, 0x19, 0xc5, 0x27, 0x0c, 0x80, 0x80, 0x6b, 0x7f, 0x82, + 0x0b, 0xdb, 0x8f, 0xe2, 0x76, 0x2e, 0xd2, 0x4e, 0x9b, 0x7a, 0x5d, 0xab, 0xc1, 0x25, 0x72, 0xd7, + 0xb3, 0x3c, 0x3f, 0x56, 0x1c, 0x16, 0x6c, 0xb7, 0x56, 0x1c, 0x3c, 0x5d, 0x50, 0x5d, 0x53, 0x47, + 0x30, 0xdc, 0x68, 0xad, 0x38, 0x65, 0x94, 0x9a, 0xff, 0x37, 0x59, 0x84, 0xed, 0x2b, 0xdd, 0x56, + 0xcd, 0x6e, 0xd5, 0x39, 0x36, 0x7e, 0xe4, 0x74, 0x2c, 0x1b, 0xb6, 0x05, 0x0e, 0x59, 0x1e, 0x46, + 0x14, 0x3e, 0x46, 0xf3, 0xd7, 0xfb, 0x60, 0xe7, 0x42, 0xb7, 0xd1, 0x88, 0x4e, 0x27, 0x79, 0x39, + 0x72, 0x20, 0x72, 0x58, 0x79, 0x72, 0x1d, 0x06, 0x94, 0x67, 0x64, 0x4b, 0x30, 0xd2, 0x16, 0x04, + 0x04, 0xa9, 0x7d, 0x21, 0x1b, 0xb5, 0x4c, 0x7a, 0xd7, 0xb7, 0x94, 0x77, 0x48, 0x24, 0x4c, 0x02, + 0x77, 0x7d, 0x09, 0x78, 0xdd, 0x0e, 0x75, 0x39, 0xce, 0x3e, 0x86, 0x73, 0x5a, 0x81, 0xf3, 0xea, + 0x83, 0xb6, 0xdd, 0x59, 0x5f, 0xe0, 0x00, 0x3d, 0x99, 0x5e, 0xdf, 0xe2, 0x0b, 0x81, 0x35, 0x32, + 0xa4, 0x73, 0x5c, 0x35, 0xd1, 0xad, 0xe6, 0x30, 0xad, 0x4c, 0x7f, 0xf9, 0x9e, 0x20, 0xf1, 0x48, + 0x70, 0xeb, 0xa6, 0x8f, 0x04, 0xe7, 0x06, 0xa0, 0xdf, 0x67, 0xd4, 0xac, 0xe3, 0x66, 0x35, 0x61, + 0xdd, 0xe1, 0x32, 0xbf, 0x1a, 0x3d, 0x91, 0x7b, 0x41, 0x73, 0x86, 0x15, 0x9b, 0x36, 0x79, 0x2e, + 0x77, 0x01, 0x4f, 0x76, 0x62, 0x3d, 0xb2, 0x6c, 0xe8, 0x6a, 0x0a, 0xeb, 0x20, 0x89, 0xbc, 0x12, + 0x51, 0xab, 0x5c, 0x34, 0x8a, 0xd3, 0xb6, 0x39, 0xf4, 0x3a, 0xd1, 0x0e, 0xe8, 0x0b, 0x32, 0x51, + 0x4a, 0xe3, 0xfb, 0xd7, 0x30, 0x8e, 0xde, 0xdd, 0x9e, 0x08, 0x37, 0xc4, 0xe5, 0x36, 0xff, 0x99, + 0x2d, 0x00, 0xba, 0x86, 0x9b, 0xa4, 0xde, 0x25, 0x11, 0x73, 0x95, 0xec, 0x45, 0x4e, 0x9e, 0x3b, + 0x28, 0xf3, 0x22, 0x4a, 0x76, 0xd1, 0x71, 0x6d, 0xf6, 0xc6, 0xe9, 0x46, 0x2b, 0xc7, 0xbc, 0x08, + 0xed, 0x49, 0x80, 0x96, 0xda, 0xb3, 0xd5, 0x37, 0xd4, 0x14, 0x75, 0xe7, 0x68, 0xea, 0x72, 0x17, + 0xa8, 0x50, 0x6f, 0x39, 0xb4, 0xb9, 0x10, 0x7b, 0x8f, 0x21, 0x87, 0xcc, 0xc5, 0xee, 0x47, 0xe1, + 0x39, 0x05, 0x9e, 0x28, 0xdf, 0x9b, 0x7f, 0xb6, 0xe4, 0xe2, 0xdd, 0x71, 0x6f, 0xac, 0xab, 0x2b, + 0x2b, 0x9c, 0xf7, 0xf7, 0x6f, 0xd0, 0x57, 0x51, 0x87, 0x23, 0xaf, 0x84, 0xe4, 0x0b, 0xa1, 0x3c, + 0xc2, 0xb2, 0x63, 0x4a, 0x16, 0x10, 0xfa, 0x63, 0x99, 0xdf, 0x2d, 0x62, 0x7e, 0x57, 0xe0, 0x70, + 0xea, 0xbc, 0xc8, 0x3b, 0x45, 0x39, 0xa2, 0xbf, 0xd2, 0xf7, 0xa9, 0xec, 0x7e, 0xa2, 0x1e, 0xfd, + 0x74, 0x01, 0xc6, 0x63, 0xb3, 0x40, 0x76, 0xc3, 0x36, 0xdb, 0xad, 0x34, 0x9c, 0x56, 0x9d, 0x21, + 0x1d, 0x2c, 0x0f, 0xd8, 0xee, 0x4d, 0xa7, 0x55, 0xdf, 0x7c, 0x60, 0x3e, 0x0f, 0xc3, 0xb4, 0xe5, + 0x75, 0xd6, 0x63, 0xc7, 0x39, 0xe9, 0xfb, 0x71, 0x06, 0xc7, 0x9d, 0xc0, 0x6d, 0x18, 0xa3, 0x82, + 0xe8, 0x0a, 0x06, 0xfa, 0x39, 0xdc, 0xc9, 0xa8, 0x04, 0xbe, 0xc5, 0x60, 0xcd, 0x07, 0xf8, 0x7c, + 0x20, 0x93, 0x66, 0xca, 0xb3, 0xd1, 0x90, 0xd8, 0x8f, 0xa8, 0x5c, 0x63, 0x14, 0x51, 0x58, 0xfe, + 0x97, 0x71, 0x1d, 0x27, 0x45, 0x24, 0x59, 0x0c, 0xce, 0x2a, 0xaa, 0x64, 0x22, 0xbc, 0xa4, 0xb4, + 0x7f, 0x63, 0x31, 0x11, 0xaa, 0x24, 0x77, 0x8c, 0xc2, 0x19, 0x28, 0x7c, 0x7d, 0x26, 0x6a, 0xdb, + 0xe8, 0x0c, 0x94, 0x38, 0x90, 0xe2, 0xeb, 0x21, 0x8a, 0x73, 0x46, 0x1d, 0x21, 0xaa, 0x67, 0x71, + 0x03, 0xae, 0x88, 0xd1, 0xb2, 0x11, 0x7d, 0x50, 0x8b, 0x42, 0x3e, 0xb9, 0x0c, 0xe9, 0x43, 0xbe, + 0x60, 0x31, 0xbc, 0xf8, 0x3f, 0x2e, 0xf6, 0x3f, 0x4a, 0xa3, 0x85, 0x63, 0x7e, 0x38, 0xf4, 0x48, + 0xd2, 0xb7, 0x37, 0x17, 0xf3, 0x3f, 0x92, 0xec, 0x3d, 0xba, 0x14, 0x0f, 0xd2, 0x04, 0x4e, 0xf3, + 0x1c, 0x3e, 0x4c, 0x4a, 0xf6, 0xaa, 0x48, 0xc4, 0x4e, 0xd8, 0xca, 0xdf, 0xc3, 0x1a, 0xec, 0x3d, + 0x2c, 0xff, 0x61, 0xee, 0xc1, 0x57, 0x07, 0xb7, 0x9c, 0x5a, 0xb7, 0x41, 0x59, 0x94, 0x29, 0x5e, + 0xd2, 0xbd, 0x8e, 0x0f, 0x24, 0x42, 0x9f, 0xe4, 0x8b, 0x84, 0x90, 0x14, 0x55, 0xaf, 0x50, 0xae, + 0xf1, 0x97, 0xbe, 0x1c, 0x16, 0xa5, 0xb6, 0x1b, 0x76, 0x85, 0x7d, 0xaf, 0x18, 0xaf, 0x82, 0xef, + 0x26, 0xde, 0x37, 0x63, 0x7d, 0x3f, 0x78, 0x6d, 0x53, 0xa6, 0x6f, 0x5b, 0x9d, 0xda, 0xa2, 0x63, + 0xb7, 0xbc, 0x4c, 0xaf, 0xe1, 0x4e, 0xc1, 0x64, 0x9b, 0xf2, 0xbd, 0x46, 0xdb, 0x71, 0x1a, 0x15, + 0xcf, 0x6e, 0x52, 0xd7, 0xb3, 0x9a, 0x6d, 0x66, 0x60, 0xfb, 0xca, 0x3b, 0xf1, 0xeb, 0xa2, 0xe3, + 0x34, 0x96, 0xc4, 0x37, 0xf3, 0x67, 0xc4, 0x45, 0x68, 0xc2, 0x98, 0xc8, 0xdc, 0x32, 0x3c, 0x25, + 0xfc, 0x19, 0x7b, 0xc4, 0x5c, 0xe9, 0xb0, 0x5e, 0x95, 0x36, 0xeb, 0xc6, 0xe9, 0xc8, 0x66, 0x2f, + 0xa7, 0x82, 0x93, 0x1f, 0x1c, 0xcb, 0x3c, 0x80, 0xe6, 0x2b, 0xf0, 0xe5, 0x8a, 0xd5, 0x6c, 0x5b, + 0x76, 0xbd, 0x25, 0xa4, 0xff, 0x1f, 0xfd, 0x68, 0xa2, 0x12, 0xfb, 0x20, 0xad, 0xf7, 0xe1, 0x69, + 0x9f, 0x46, 0x5f, 0x08, 0x48, 0x65, 0x15, 0xbb, 0x04, 0xb7, 0x73, 0xc7, 0x95, 0x1b, 0x6a, 0x8b, + 0x2f, 0xc5, 0x20, 0x6e, 0x66, 0x50, 0xf6, 0x78, 0xaa, 0x4f, 0xe4, 0x21, 0x1c, 0x8a, 0x0c, 0xc9, + 0xc4, 0x2f, 0xc7, 0x75, 0xab, 0xab, 0xd4, 0xd7, 0x4f, 0x3c, 0xfe, 0x3e, 0xaa, 0x3c, 0x4e, 0x14, + 0xac, 0x70, 0xb1, 0x38, 0x8d, 0xf2, 0x81, 0xd0, 0xa0, 0x7e, 0x93, 0xe8, 0x74, 0x17, 0x71, 0x92, + 0x0f, 0xc3, 0x1e, 0xcf, 0xf1, 0xac, 0x46, 0xe2, 0xcc, 0xe4, 0x70, 0x8a, 0x93, 0x0c, 0x4b, 0x6c, + 0x5e, 0xc8, 0x27, 0x0d, 0x38, 0x26, 0xb4, 0x2a, 0x1b, 0x97, 0xfd, 0x79, 0xb9, 0x3c, 0x82, 0xf8, + 0x97, 0x52, 0x99, 0x6d, 0xc2, 0x01, 0x49, 0x8b, 0x92, 0xe9, 0xad, 0xd9, 0xd5, 0xf1, 0x19, 0x31, + 0x72, 0x22, 0xef, 0xe6, 0x05, 0xd4, 0xc9, 0x1b, 0xee, 0x9d, 0xb6, 0x47, 0x6b, 0x77, 0xba, 0xde, + 0x9d, 0x15, 0xde, 0xc1, 0x4d, 0x7f, 0x49, 0x3b, 0x8f, 0xca, 0x9a, 0x08, 0x8c, 0xca, 0xba, 0x1f, + 0xb6, 0xdb, 0x6e, 0xc5, 0xf1, 0xbf, 0x57, 0x9c, 0xae, 0x87, 0x21, 0x12, 0xd8, 0x12, 0xc4, 0x3c, + 0x8c, 0x47, 0x46, 0x31, 0x1c, 0x78, 0x98, 0x26, 0x4d, 0xd3, 0x3c, 0x86, 0xdf, 0x9a, 0x8e, 0x38, + 0xa8, 0xc6, 0x84, 0x98, 0x97, 0xd1, 0xc9, 0x2d, 0x50, 0x3a, 0x6f, 0xbb, 0xfc, 0xb8, 0x0e, 0x83, + 0xd6, 0x80, 0x67, 0x56, 0x33, 0xfd, 0x4f, 0x06, 0xba, 0x38, 0x15, 0x02, 0xa4, 0xe1, 0x19, 0x00, + 0xcf, 0xa6, 0x1d, 0x79, 0xbf, 0x64, 0x1c, 0xe9, 0x2f, 0x0f, 0xf9, 0x2d, 0xfc, 0x5c, 0xe8, 0x16, + 0x6c, 0x97, 0x01, 0x74, 0xef, 0x1c, 0x42, 0x15, 0x6f, 0x04, 0xc6, 0x5a, 0xb2, 0x69, 0x87, 0x0d, + 0x34, 0x6c, 0xf5, 0x46, 0x25, 0xaf, 0xc2, 0xb0, 0xb4, 0x5f, 0x5e, 0x03, 0x4f, 0x20, 0x8e, 0x66, + 0xc3, 0xb6, 0xb4, 0x74, 0xb3, 0x0c, 0xc2, 0x6a, 0x79, 0x0d, 0x69, 0xa7, 0x02, 0xdd, 0x84, 0x7a, + 0x8a, 0xa9, 0xf8, 0x98, 0xb8, 0x67, 0x4b, 0xec, 0x23, 0x1d, 0xee, 0xae, 0x15, 0x4a, 0x2b, 0x35, + 0xfc, 0xde, 0x5b, 0x3e, 0x46, 0x56, 0x5e, 0x25, 0xca, 0x89, 0x95, 0x78, 0xa3, 0xf9, 0x0a, 0x7a, + 0x12, 0x7c, 0x21, 0x7e, 0xcb, 0x76, 0x9b, 0x96, 0x57, 0x0d, 0x9c, 0x78, 0xee, 0x83, 0xe1, 0x5a, + 0xd7, 0xf5, 0x2a, 0x2b, 0x56, 0xd5, 0x73, 0x78, 0x92, 0x4a, 0x5f, 0x19, 0xfc, 0xa6, 0x05, 0xd6, + 0x62, 0xfe, 0x6a, 0x1f, 0x8c, 0x46, 0xa0, 0x89, 0x09, 0xa1, 0x7d, 0x4c, 0xf6, 0xb7, 0x97, 0x64, + 0x16, 0x86, 0xac, 0x35, 0xcb, 0xce, 0xfd, 0x32, 0xa2, 0x07, 0xe5, 0x7b, 0x74, 0xb6, 0xea, 0xf3, + 0x04, 0xe8, 0x1c, 0x82, 0x2c, 0xc0, 0x76, 0x7c, 0x1b, 0x5f, 0x59, 0x75, 0x1a, 0xb5, 0xc0, 0x45, + 0x4c, 0xfa, 0xe5, 0x10, 0x02, 0x5e, 0x77, 0x1a, 0x35, 0xf2, 0x2a, 0x8c, 0xd0, 0x07, 0x6d, 0x5a, + 0xf5, 0x17, 0x2c, 0xa7, 0x65, 0x20, 0x3b, 0xa6, 0x1d, 0x02, 0x94, 0x99, 0x1b, 0x72, 0x05, 0xa0, + 0x66, 0xaf, 0xe0, 0x25, 0x0f, 0x3f, 0xa2, 0xcf, 0xb8, 0x7f, 0xe9, 0x81, 0x99, 0x6f, 0xa3, 0xf3, + 0x4e, 0x98, 0x66, 0x54, 0xb4, 0xd7, 0x81, 0x08, 0xd6, 0x9b, 0xf2, 0x2b, 0x86, 0x29, 0xcf, 0xe9, + 0xd3, 0x0a, 0x04, 0xb6, 0xf2, 0xf8, 0x72, 0x14, 0xbd, 0x79, 0x08, 0x17, 0x3a, 0x76, 0xf5, 0x43, + 0xbf, 0xb9, 0x9e, 0xa0, 0xa4, 0x59, 0xfa, 0x74, 0x01, 0x76, 0x05, 0xba, 0xf0, 0x5d, 0x12, 0x13, + 0xe5, 0xff, 0x73, 0x55, 0x32, 0x7f, 0x51, 0x84, 0xe6, 0x4a, 0x09, 0xe2, 0x04, 0xda, 0x50, 0x14, + 0x03, 0xb2, 0xf3, 0xf6, 0xe0, 0xe8, 0x69, 0xcf, 0x69, 0x12, 0x45, 0x5f, 0xde, 0xbd, 0x9c, 0x3c, + 0xa4, 0xf4, 0x36, 0x11, 0x1b, 0xe8, 0x07, 0xc7, 0xb6, 0xeb, 0xd9, 0x55, 0x39, 0xad, 0xe7, 0x60, + 0x47, 0xe8, 0x03, 0x21, 0xd0, 0xef, 0x9b, 0x6f, 0x34, 0xe5, 0xec, 0x6f, 0x7f, 0xf6, 0x7a, 0xe9, + 0x42, 0xfd, 0x65, 0xfe, 0xc3, 0x6c, 0xa1, 0xa3, 0xd2, 0x8c, 0x21, 0x77, 0x9b, 0xe0, 0xca, 0xd6, + 0x94, 0x47, 0xf0, 0x21, 0x14, 0xe5, 0x00, 0x9c, 0x1f, 0xcc, 0xdf, 0xb2, 0x3d, 0xe7, 0x0d, 0xab, + 0xdb, 0x60, 0xde, 0x40, 0xf2, 0xf0, 0x15, 0x03, 0x26, 0xa3, 0x5f, 0x70, 0xe4, 0xa3, 0x30, 0xd6, + 0xb4, 0x5c, 0x8f, 0x76, 0xc4, 0xc5, 0x25, 0x15, 0xae, 0x72, 0x94, 0xb7, 0xcf, 0x8a, 0x66, 0x72, + 0x02, 0x76, 0xd6, 0x64, 0x50, 0x1f, 0xe8, 0xce, 0xaf, 0x4b, 0x26, 0x7a, 0xdf, 0x7a, 0x20, 0x87, + 0x60, 0xc4, 0x6d, 0x3b, 0x5e, 0xa0, 0x33, 0xbf, 0x2b, 0xda, 0xe1, 0xb7, 0x86, 0xba, 0x55, 0xdf, + 0x9e, 0x39, 0x1e, 0xe8, 0xd6, 0xcf, 0xbb, 0xf9, 0xad, 0xb2, 0x9b, 0x39, 0x8f, 0x86, 0x1e, 0xb7, + 0xad, 0xf3, 0x0b, 0x1d, 0xa7, 0xc9, 0x58, 0x0a, 0x1c, 0x48, 0xad, 0xf9, 0xbf, 0x2b, 0xe1, 0x53, + 0xd1, 0xed, 0xac, 0x51, 0x5c, 0xc1, 0x8a, 0x97, 0x55, 0x09, 0x58, 0x50, 0x26, 0xda, 0x9d, 0xad, + 0xd8, 0x1c, 0x5f, 0xb7, 0x5d, 0xcf, 0xe9, 0xd8, 0x55, 0x19, 0x4d, 0x55, 0x9d, 0x40, 0xb0, 0xa4, + 0x45, 0xe1, 0xa0, 0x41, 0x51, 0xa1, 0x90, 0x1b, 0xfa, 0x1d, 0x22, 0xe8, 0x63, 0x1f, 0x52, 0x92, + 0x0c, 0x42, 0x38, 0xb6, 0x7b, 0x81, 0x5f, 0xe6, 0x17, 0x0c, 0x98, 0x60, 0x9f, 0xf9, 0x88, 0x7e, + 0xe4, 0xe4, 0x6f, 0xe9, 0xc8, 0x8b, 0x40, 0xf8, 0x08, 0xf5, 0x8e, 0xd3, 0x6d, 0xfb, 0xb1, 0xa6, + 0x4b, 0xab, 0xa8, 0xd8, 0x63, 0xec, 0xcb, 0x35, 0xfc, 0x70, 0x97, 0x56, 0xc9, 0x6e, 0xd8, 0xd6, + 0xb4, 0x1e, 0x54, 0xac, 0x3a, 0x45, 0x35, 0x1f, 0x68, 0x5a, 0x0f, 0x66, 0xeb, 0x94, 0x4c, 0xc3, + 0x84, 0xdd, 0xaa, 0x36, 0xba, 0x3e, 0xa9, 0xd6, 0xdb, 0x95, 0x55, 0x3e, 0x08, 0x3e, 0xeb, 0x1b, + 0xc7, 0x4f, 0x65, 0xeb, 0x6d, 0x1c, 0xdd, 0xd7, 0x39, 0xd1, 0x5f, 0xee, 0xc4, 0xd9, 0xad, 0x6f, + 0x79, 0x14, 0xdb, 0xc5, 0x36, 0xdb, 0xfc, 0x8c, 0x81, 0x27, 0xfe, 0x32, 0x85, 0xc2, 0xf2, 0xec, + 0x86, 0xed, 0xad, 0x67, 0xba, 0xcd, 0xfc, 0x30, 0xec, 0xe2, 0xfc, 0x21, 0x49, 0x7e, 0xfc, 0xe9, + 0x33, 0x9e, 0x12, 0x65, 0x25, 0x88, 0xaa, 0x3c, 0xe1, 0xc5, 0x1b, 0xcd, 0xff, 0x36, 0x42, 0x1a, + 0x19, 0xa4, 0x4e, 0xbe, 0x44, 0x86, 0x35, 0xd9, 0x8a, 0x77, 0x7f, 0xfb, 0x52, 0xbd, 0x5e, 0x0f, + 0x84, 0xbc, 0x09, 0x63, 0x82, 0x78, 0x29, 0x2b, 0x4e, 0x7d, 0xd0, 0x10, 0x62, 0x72, 0x2e, 0xe6, + 0xea, 0x4e, 0x0b, 0xf1, 0x05, 0x2c, 0xcd, 0x28, 0x62, 0x11, 0x9f, 0xc8, 0x15, 0x18, 0x0e, 0x4e, + 0x56, 0x1f, 0xd3, 0x2d, 0x33, 0x5d, 0xb7, 0xca, 0xd0, 0x91, 0x33, 0x69, 0x9e, 0xc4, 0x7c, 0x86, + 0x39, 0xbb, 0x65, 0x09, 0x29, 0xa4, 0x5d, 0xb6, 0x9a, 0xcb, 0xf8, 0xb8, 0x3a, 0x02, 0x24, 0x4d, + 0x61, 0xe4, 0xa6, 0x48, 0x35, 0x4b, 0x1c, 0x1c, 0xa7, 0x22, 0x7a, 0x51, 0x74, 0x1f, 0x8e, 0x25, + 0xde, 0xfd, 0x5f, 0x71, 0x5a, 0x35, 0x9b, 0x3f, 0x12, 0x7b, 0xdc, 0x09, 0xc6, 0x9f, 0xed, 0x83, + 0x03, 0xb1, 0x5b, 0xea, 0xe8, 0x78, 0x3f, 0xba, 0x0f, 0x3c, 0xae, 0xc1, 0x76, 0xaf, 0x63, 0xd7, + 0xeb, 0xb4, 0xb3, 0x98, 0xf7, 0x26, 0x32, 0x04, 0x98, 0xfe, 0xd0, 0xe3, 0x10, 0x6c, 0xb3, 0x5d, + 0x76, 0xbd, 0xcf, 0x42, 0xce, 0xc1, 0xb9, 0xe1, 0xef, 0xbf, 0xb7, 0x4f, 0x34, 0x95, 0xc5, 0x1f, + 0x91, 0xf7, 0x20, 0xdb, 0x14, 0xef, 0x41, 0x06, 0x7b, 0xef, 0x41, 0x3e, 0x66, 0x84, 0xde, 0xd2, + 0x69, 0x95, 0x42, 0xe6, 0x80, 0x86, 0x5f, 0x27, 0x9c, 0xcd, 0xfa, 0x3a, 0x21, 0x8a, 0x52, 0xbe, + 0x51, 0x10, 0x57, 0x65, 0xe2, 0xad, 0x7e, 0xae, 0xe7, 0x94, 0xe6, 0xef, 0x8a, 0x13, 0xac, 0x04, + 0x70, 0x24, 0xf9, 0x22, 0xf4, 0xcf, 0xd9, 0xd2, 0x59, 0x1c, 0xd1, 0x13, 0x1c, 0x78, 0x44, 0xc1, + 0xa0, 0x7c, 0xe8, 0x59, 0xf7, 0x9e, 0x48, 0xd0, 0xcc, 0x01, 0xed, 0x43, 0x25, 0xbc, 0x5f, 0x14, + 0x07, 0xe0, 0xe1, 0x2b, 0xd3, 0x7c, 0x4c, 0xbf, 0x23, 0xc2, 0x47, 0x25, 0x92, 0x1f, 0x4a, 0xd6, + 0xdf, 0x35, 0x60, 0x3c, 0xd6, 0xfb, 0x89, 0xae, 0xff, 0xf0, 0x8a, 0xe9, 0x8b, 0xae, 0x98, 0x98, + 0x09, 0xec, 0x4f, 0xb8, 0xce, 0xbb, 0x85, 0x6b, 0x08, 0x2f, 0xa4, 0x3d, 0xa7, 0x69, 0x57, 0xaf, + 0x3e, 0xa0, 0xd5, 0xae, 0xaf, 0xec, 0x0b, 0x94, 0xde, 0xea, 0x36, 0x3c, 0xbb, 0xdd, 0xb0, 0x69, + 0x27, 0xd3, 0xdc, 0xae, 0xe1, 0xf5, 0x66, 0x16, 0x74, 0xf2, 0x96, 0x1e, 0x9a, 0xb2, 0x35, 0x8f, + 0x18, 0x03, 0x60, 0xe6, 0x59, 0x91, 0x8a, 0xcd, 0x66, 0xf8, 0xae, 0x67, 0xdd, 0xa3, 0xd7, 0x3a, + 0x56, 0xef, 0x91, 0xe6, 0x14, 0x6c, 0xab, 0xfb, 0xbf, 0x29, 0x15, 0xe7, 0x3e, 0xf8, 0xd3, 0xfc, + 0x4d, 0x99, 0x69, 0x1d, 0x03, 0x45, 0x02, 0xcf, 0xc2, 0x56, 0xd6, 0x19, 0xcf, 0x37, 0x54, 0x3e, + 0x95, 0xc3, 0x73, 0x50, 0x0e, 0x40, 0x6e, 0x43, 0xef, 0x96, 0xad, 0xc2, 0x71, 0xe8, 0x13, 0xb7, + 0xe4, 0x45, 0x19, 0x47, 0x33, 0x42, 0x43, 0xbf, 0xcd, 0x25, 0xb4, 0x16, 0xec, 0xd7, 0x6c, 0xd7, + 0x5b, 0x75, 0x3a, 0xf6, 0x4f, 0xb2, 0x47, 0x9c, 0x31, 0x3e, 0x3b, 0x61, 0x3e, 0x3b, 0x41, 0x09, + 0x14, 0xc2, 0x12, 0xf8, 0x20, 0x9e, 0x0b, 0x25, 0x61, 0x45, 0x11, 0x9c, 0x86, 0x01, 0x7c, 0x9b, + 0xca, 0xe7, 0xe7, 0x19, 0x9c, 0x9f, 0x5d, 0xf1, 0xf9, 0xb9, 0xd1, 0xf2, 0xca, 0xd8, 0x59, 0x9e, + 0x42, 0xc6, 0x31, 0xbb, 0xa9, 0x04, 0x9b, 0x9f, 0x17, 0x67, 0x51, 0x89, 0xd0, 0x48, 0xd8, 0x07, + 0x80, 0xf0, 0xe3, 0x54, 0x06, 0x55, 0xc9, 0x43, 0xe4, 0x18, 0x03, 0xe4, 0xc8, 0xf9, 0xfb, 0xd9, + 0x59, 0x18, 0x60, 0x68, 0xdc, 0x94, 0xe3, 0xee, 0x04, 0x41, 0x21, 0xa0, 0x79, 0x16, 0x03, 0x28, + 0xbc, 0x4b, 0xe2, 0x3b, 0xd4, 0x4c, 0x2b, 0xe7, 0x2d, 0x8c, 0xa2, 0x22, 0x90, 0xc8, 0xe7, 0x65, + 0xd8, 0x86, 0x3b, 0x5f, 0xd4, 0xc2, 0x67, 0xb5, 0xa9, 0xc9, 0x02, 0x5c, 0x00, 0xc9, 0x32, 0x1e, + 0xa1, 0xcf, 0x81, 0xcb, 0xa1, 0xa7, 0x12, 0xbf, 0x2a, 0x8b, 0x3a, 0x64, 0x1b, 0xbd, 0x57, 0xd4, + 0xe1, 0x1e, 0xec, 0x08, 0x7d, 0xd2, 0x87, 0xf9, 0x97, 0x7a, 0xcc, 0xe6, 0xb0, 0x8b, 0x92, 0xd7, + 0x53, 0xf2, 0x51, 0x51, 0xcb, 0x69, 0xde, 0xb2, 0x5b, 0x22, 0x8b, 0x40, 0x9f, 0x8b, 0xff, 0x96, + 0x7c, 0x4d, 0x14, 0x85, 0xea, 0x15, 0x33, 0x09, 0xa9, 0x57, 0xb6, 0x68, 0x0b, 0x57, 0xc2, 0x3e, + 0x05, 0x76, 0x39, 0x05, 0xeb, 0xf2, 0xc9, 0x55, 0xac, 0x03, 0x8e, 0xff, 0x26, 0x4c, 0xf0, 0xe4, + 0xfa, 0xa6, 0xdd, 0x92, 0xd9, 0x15, 0x62, 0x42, 0x0e, 0xeb, 0x32, 0xec, 0x83, 0xdc, 0x8c, 0xd7, + 0xa2, 0x03, 0x98, 0x1f, 0x85, 0xed, 0x77, 0xda, 0xb4, 0x75, 0xc3, 0x5f, 0x75, 0xa9, 0x5b, 0xb0, + 0x4d, 0xce, 0xcd, 0x19, 0xbc, 0xf6, 0x0c, 0x0e, 0x98, 0x69, 0x79, 0x7c, 0x10, 0x17, 0x56, 0x18, + 0x30, 0x71, 0x6a, 0xd4, 0x5b, 0xea, 0x10, 0x30, 0x82, 0x3c, 0x7f, 0x0a, 0x86, 0x64, 0x2a, 0x35, + 0xd9, 0x09, 0x63, 0xfe, 0xbf, 0x95, 0xd7, 0x5b, 0x6e, 0x9b, 0x56, 0xed, 0x15, 0x9b, 0xd6, 0xc6, + 0xb6, 0x90, 0x6d, 0xd0, 0x37, 0xd7, 0x5d, 0x1f, 0x33, 0xc8, 0x20, 0xf4, 0xdf, 0xa5, 0x8d, 0xc6, + 0x58, 0xe1, 0xf9, 0x37, 0x60, 0x67, 0xd2, 0x23, 0x7a, 0x1f, 0x41, 0x00, 0x96, 0x21, 0x1e, 0xdb, + 0x42, 0x26, 0x60, 0x74, 0xa1, 0xe3, 0x34, 0xdf, 0x74, 0x3a, 0xae, 0xb7, 0xe4, 0xcc, 0x51, 0xd7, + 0x1b, 0x33, 0x44, 0xa3, 0xff, 0x6b, 0xc9, 0x61, 0x9f, 0xc6, 0x0a, 0x33, 0x5f, 0xb9, 0x07, 0x5b, + 0x19, 0xa3, 0xe4, 0x5d, 0x03, 0x76, 0xdd, 0x3c, 0x19, 0x89, 0x8f, 0xe6, 0x1c, 0xe7, 0x1e, 0x39, + 0xaf, 0x2b, 0x29, 0xa3, 0x8f, 0xcc, 0x8a, 0x17, 0x36, 0x04, 0xcb, 0xe5, 0x6c, 0xce, 0x7e, 0xec, + 0xdd, 0x7f, 0xf9, 0xe5, 0xc2, 0x05, 0x72, 0xae, 0x94, 0x5c, 0x7b, 0xaa, 0x77, 0x64, 0x54, 0xba, + 0x79, 0x52, 0xd2, 0x5b, 0x7a, 0x28, 0xa7, 0xf5, 0x11, 0xf9, 0xa2, 0x01, 0xa3, 0x37, 0x4f, 0xca, + 0x50, 0x97, 0xf1, 0x73, 0x2a, 0x8d, 0xa6, 0xa4, 0xc0, 0xba, 0x78, 0x3a, 0x27, 0x14, 0xf2, 0x70, + 0x81, 0xf1, 0x70, 0x9a, 0x9c, 0x54, 0xf0, 0xe0, 0xb6, 0x1d, 0x4f, 0x49, 0xfd, 0x6f, 0x1b, 0x30, + 0x91, 0x50, 0xf0, 0x88, 0x9c, 0xd0, 0xd1, 0x92, 0x58, 0x3a, 0xa9, 0x38, 0x93, 0x07, 0x04, 0x69, + 0x3f, 0xc6, 0x68, 0x3f, 0x4c, 0x0e, 0x95, 0xf4, 0xc5, 0xc6, 0x90, 0xaa, 0x3f, 0x35, 0x80, 0xc4, + 0x2b, 0x0c, 0x91, 0xd3, 0x79, 0x2b, 0x12, 0x71, 0x82, 0x5f, 0xda, 0x58, 0x21, 0x23, 0xf3, 0x3c, + 0x23, 0xfa, 0x14, 0x99, 0x49, 0x21, 0xba, 0xe4, 0xc6, 0x49, 0xfd, 0xa2, 0x01, 0xe3, 0x31, 0xd4, + 0x7a, 0x7d, 0x51, 0x55, 0xdf, 0x28, 0x9e, 0xce, 0x09, 0x85, 0xe4, 0x9f, 0x63, 0xe4, 0x9f, 0x24, + 0x27, 0x72, 0x93, 0x4f, 0xbe, 0x60, 0xc0, 0x58, 0xb4, 0x52, 0x12, 0x39, 0x99, 0x65, 0xde, 0x23, + 0x0e, 0xba, 0x78, 0x2a, 0x1f, 0x10, 0x92, 0x7e, 0x96, 0x91, 0x3e, 0x43, 0x8e, 0xa7, 0x91, 0x4e, + 0xa3, 0x44, 0xfe, 0x89, 0x01, 0xa3, 0x91, 0xca, 0x43, 0x44, 0xab, 0xb0, 0xc9, 0xd5, 0x9a, 0x8a, + 0x27, 0x73, 0xc1, 0x64, 0xb4, 0x32, 0xf2, 0xef, 0x48, 0x41, 0xa6, 0xd2, 0x43, 0x94, 0xff, 0x23, + 0x26, 0xf9, 0x68, 0xe5, 0x24, 0x92, 0x87, 0x98, 0x6c, 0x92, 0x57, 0x15, 0x67, 0xca, 0x2e, 0xf9, + 0x68, 0x4d, 0x29, 0xf2, 0x2d, 0x03, 0x76, 0x25, 0x96, 0xa9, 0x21, 0x67, 0x33, 0x51, 0x92, 0x50, + 0x35, 0xa9, 0x78, 0x6e, 0x03, 0x90, 0xc8, 0xc8, 0x0d, 0xc6, 0xc8, 0x15, 0x32, 0x9b, 0x99, 0x91, + 0x20, 0x9a, 0x90, 0xed, 0xfc, 0x1b, 0x03, 0x26, 0x93, 0x0b, 0xf0, 0x90, 0xfc, 0x04, 0xca, 0xf9, + 0x39, 0xbf, 0x11, 0x50, 0x64, 0xee, 0x32, 0x63, 0xee, 0x2c, 0x79, 0x69, 0x43, 0xcc, 0xb9, 0xe4, + 0xe7, 0x0b, 0x70, 0x30, 0x43, 0x7d, 0x24, 0xb2, 0xa0, 0xa5, 0x31, 0x73, 0x11, 0xa9, 0xe2, 0xb5, + 0x4d, 0xe3, 0x41, 0xc6, 0xdf, 0x64, 0x8c, 0xbf, 0x46, 0xee, 0xa4, 0x32, 0xce, 0x91, 0x56, 0x44, + 0x43, 0xc5, 0x43, 0xb4, 0x95, 0x50, 0x9d, 0xa7, 0xd2, 0x43, 0xf6, 0xf3, 0x11, 0xf9, 0x54, 0x01, + 0x9e, 0xcd, 0x52, 0x31, 0x8a, 0x6c, 0x96, 0x15, 0x39, 0xff, 0xd7, 0x37, 0x8f, 0x08, 0x85, 0xb2, + 0xc8, 0x84, 0xf2, 0x2a, 0xb9, 0xfe, 0x98, 0x84, 0xe2, 0x92, 0xcf, 0x18, 0x30, 0x1c, 0x28, 0x67, + 0x42, 0xa6, 0xb5, 0x1e, 0x28, 0x56, 0x81, 0xa5, 0x58, 0xca, 0xdc, 0x1f, 0x59, 0x78, 0x81, 0xb1, + 0x70, 0x88, 0x1c, 0xd4, 0xc5, 0x36, 0x78, 0xa4, 0x4e, 0x7e, 0xcd, 0x00, 0x08, 0x54, 0xa8, 0x39, + 0x96, 0x6d, 0x30, 0x41, 0xdb, 0x74, 0xd6, 0xee, 0x48, 0xda, 0x19, 0x46, 0xda, 0x09, 0x52, 0xca, + 0x40, 0x5a, 0xc8, 0x6c, 0xfc, 0x8e, 0x01, 0xa3, 0x91, 0xba, 0x30, 0x7a, 0x57, 0x94, 0x5c, 0xce, + 0x46, 0xef, 0x8a, 0x14, 0x85, 0x67, 0xcc, 0xe3, 0x8c, 0xea, 0xe7, 0xc9, 0x11, 0x1d, 0xd5, 0x2b, + 0xdd, 0x46, 0xa3, 0x22, 0xa4, 0xfa, 0x4e, 0xbc, 0xf6, 0xcf, 0x89, 0xec, 0x23, 0x67, 0x0a, 0x0e, + 0x93, 0xab, 0xca, 0x64, 0x0b, 0x6c, 0x03, 0xb4, 0x86, 0xa4, 0xfc, 0x7b, 0x06, 0xec, 0x08, 0xc5, + 0xcb, 0xe4, 0x78, 0xda, 0x04, 0xc7, 0x02, 0xf2, 0x13, 0x39, 0x20, 0x32, 0x06, 0x57, 0x8c, 0x66, + 0x59, 0x1c, 0x37, 0x44, 0xf1, 0x57, 0x0d, 0x18, 0x8b, 0x26, 0xd1, 0xeb, 0x5d, 0xbc, 0xa2, 0x7c, + 0x8c, 0xde, 0xc5, 0xab, 0xaa, 0x90, 0x98, 0x0b, 0x8c, 0xf4, 0x57, 0xc8, 0xe5, 0x54, 0xd2, 0x43, + 0xfa, 0x5c, 0x7a, 0x18, 0x3a, 0x93, 0x7d, 0x44, 0xfe, 0xd5, 0x80, 0x29, 0x55, 0x0d, 0x12, 0xa2, + 0xdd, 0xad, 0xa5, 0x14, 0xab, 0x29, 0x5e, 0xdc, 0x18, 0x70, 0x46, 0x73, 0xa8, 0xe2, 0x0f, 0x79, + 0x93, 0xc1, 0x98, 0xb8, 0xbb, 0x7f, 0x44, 0xfe, 0xce, 0xdf, 0x8e, 0xc4, 0x6a, 0x05, 0xa5, 0x6c, + 0x47, 0x54, 0x25, 0x8e, 0x52, 0xb6, 0x23, 0xca, 0x92, 0x44, 0x79, 0xf8, 0xaa, 0x2c, 0xaf, 0x63, + 0x4a, 0xac, 0x76, 0x06, 0xdf, 0x31, 0x60, 0x2c, 0x5a, 0x84, 0x58, 0xaf, 0x89, 0x8a, 0xaa, 0xc8, + 0xc5, 0x53, 0xf9, 0x80, 0x90, 0xa3, 0xd3, 0x8c, 0xa3, 0x12, 0x39, 0x56, 0xd2, 0x14, 0x97, 0x76, + 0x63, 0x64, 0x7f, 0xdb, 0x80, 0x3d, 0x3d, 0xed, 0x66, 0xbe, 0xd1, 0xa6, 0xad, 0x27, 0xb0, 0x92, + 0x32, 0xcd, 0x88, 0x27, 0xe8, 0xab, 0x64, 0x58, 0x53, 0x5f, 0x43, 0x4d, 0x0b, 0x27, 0x3d, 0xa6, + 0x6b, 0x5a, 0x62, 0x55, 0x99, 0x74, 0x4d, 0x4b, 0x2e, 0x23, 0x93, 0xba, 0x8f, 0xe1, 0x2e, 0x2f, + 0x9a, 0xc7, 0x19, 0x32, 0x72, 0xef, 0x19, 0x30, 0xa5, 0x2a, 0x57, 0xa3, 0x37, 0x0e, 0x29, 0xa5, + 0x72, 0xf4, 0xc6, 0x21, 0xad, 0x42, 0x8e, 0x79, 0x8d, 0xb1, 0x36, 0x4b, 0x5e, 0x4e, 0x3f, 0x08, + 0xd2, 0x33, 0xf8, 0x97, 0x06, 0x4c, 0x24, 0x9c, 0x38, 0x91, 0x97, 0xb2, 0x91, 0x17, 0xf3, 0x41, + 0x67, 0x72, 0xc3, 0x21, 0x47, 0x2f, 0x33, 0x8e, 0xce, 0x91, 0x33, 0xe9, 0x1c, 0x25, 0xfb, 0xa3, + 0x7f, 0x34, 0x60, 0x32, 0xb9, 0x32, 0x81, 0x7e, 0x7b, 0xa3, 0xad, 0x8a, 0xa1, 0xdf, 0xde, 0xe8, + 0x0b, 0x21, 0x98, 0x37, 0x19, 0x4b, 0x0b, 0x64, 0x3e, 0x23, 0x4b, 0xfa, 0x35, 0xf5, 0x3f, 0x06, + 0xec, 0xd5, 0x97, 0x41, 0x20, 0xb3, 0xd9, 0x1d, 0x8e, 0x8a, 0xdf, 0xb9, 0xcd, 0xa0, 0x40, 0xbe, + 0xdf, 0x60, 0x7c, 0x2f, 0x92, 0xdb, 0x1b, 0xe2, 0x5b, 0xed, 0xbf, 0xfe, 0x3d, 0xb4, 0x18, 0x23, + 0x5e, 0xec, 0x42, 0x0e, 0xc5, 0x8b, 0xf9, 0xb2, 0x8b, 0x1b, 0x03, 0xde, 0x28, 0xbf, 0x19, 0xfd, + 0xda, 0x7f, 0x1a, 0xb0, 0x2f, 0xaa, 0x62, 0x51, 0x37, 0xf1, 0x84, 0x54, 0x3b, 0x07, 0xcb, 0xb9, + 0x1c, 0xc7, 0xef, 0x1b, 0x30, 0x1e, 0x4b, 0x7a, 0xd7, 0x9f, 0x37, 0xaa, 0x6a, 0x53, 0xe8, 0xcf, + 0x1b, 0x95, 0x99, 0xf5, 0xe6, 0x09, 0xc6, 0xda, 0x0b, 0xe4, 0x68, 0x06, 0xd3, 0x8a, 0xf4, 0x7d, + 0xc9, 0x80, 0xb1, 0x58, 0x4d, 0x85, 0x93, 0x79, 0x86, 0xcf, 0xe4, 0xc0, 0x55, 0x79, 0xf6, 0xe6, + 0x25, 0x46, 0xf2, 0x19, 0x72, 0x3a, 0x33, 0xc9, 0x21, 0xcb, 0xf9, 0x6d, 0x03, 0x76, 0x2b, 0x32, + 0xe3, 0xf5, 0x57, 0x1d, 0xfa, 0x94, 0xfc, 0xe2, 0x85, 0x0d, 0xc1, 0x22, 0x4f, 0xf3, 0x8c, 0xa7, + 0xcb, 0xe4, 0x62, 0x56, 0x9e, 0x84, 0x9d, 0x08, 0xb1, 0xf6, 0xe7, 0x06, 0xec, 0x4c, 0xca, 0x1b, + 0x24, 0x67, 0xb2, 0x45, 0x7a, 0xb1, 0xfc, 0xfd, 0xe2, 0xd9, 0xfc, 0x80, 0x19, 0x77, 0xe0, 0xf2, + 0xef, 0xe8, 0xa2, 0xf8, 0x9c, 0x01, 0x13, 0xe2, 0x08, 0x25, 0x90, 0xae, 0xa8, 0x3f, 0xce, 0x88, + 0xa7, 0x3c, 0xea, 0x8f, 0x33, 0x12, 0xf2, 0x20, 0x53, 0x8f, 0x33, 0x9a, 0x0c, 0xa6, 0xc2, 0xf2, + 0x0f, 0xc9, 0x2f, 0x19, 0x30, 0x24, 0x93, 0x1b, 0xc9, 0x8b, 0xba, 0xb1, 0xa2, 0xc9, 0x91, 0xc5, + 0x63, 0x19, 0x7b, 0x23, 0x5d, 0x47, 0x18, 0x5d, 0x26, 0xd9, 0xaf, 0xa0, 0xab, 0x2d, 0xc9, 0xf8, + 0x43, 0x03, 0xc6, 0x63, 0x65, 0x10, 0xf4, 0xf6, 0x44, 0x55, 0x73, 0x41, 0x6f, 0x4f, 0x94, 0xb5, + 0x16, 0xcc, 0x53, 0x8c, 0xd8, 0x69, 0xf2, 0x62, 0x1a, 0xb1, 0x21, 0xc5, 0xfd, 0xb2, 0x01, 0x13, + 0x09, 0x19, 0xfe, 0x24, 0xe3, 0x25, 0x50, 0x4c, 0xc2, 0x67, 0x72, 0xc3, 0x65, 0x3c, 0x49, 0x0f, + 0x90, 0x1f, 0x51, 0xdb, 0x7f, 0x36, 0xa0, 0xa8, 0xae, 0x1c, 0x40, 0x2e, 0xe5, 0xa3, 0x28, 0x3a, + 0x1b, 0x97, 0x37, 0x0a, 0x9e, 0xd1, 0xbe, 0x28, 0xf9, 0x0a, 0x4d, 0xd3, 0xc7, 0x0b, 0x70, 0x30, + 0x43, 0xbe, 0xbe, 0xfe, 0x04, 0x3a, 0x7b, 0x29, 0x0a, 0xfd, 0x09, 0x74, 0x8e, 0xc2, 0x01, 0xe6, + 0x6d, 0xc6, 0xfe, 0x75, 0xb2, 0xa0, 0x32, 0x46, 0xf2, 0xd9, 0x54, 0x36, 0x41, 0x7c, 0xdd, 0x80, + 0x89, 0x84, 0xe4, 0x7d, 0xbd, 0xbe, 0xaa, 0xeb, 0x0d, 0xe8, 0xf5, 0x55, 0x53, 0x67, 0xc0, 0x7c, + 0x85, 0x31, 0x76, 0x9e, 0x9c, 0x55, 0xcd, 0xab, 0x2c, 0x53, 0x14, 0xa8, 0xd4, 0x14, 0x62, 0xe5, + 0x9b, 0x06, 0xec, 0x56, 0x64, 0xf5, 0xeb, 0xdd, 0xa1, 0xbe, 0x28, 0x81, 0xde, 0x1d, 0xa6, 0x14, + 0x23, 0x48, 0x75, 0xf1, 0x94, 0xc1, 0x2b, 0x79, 0xfa, 0x5b, 0x03, 0x26, 0x93, 0x93, 0xfe, 0xf5, + 0x11, 0xa4, 0xb6, 0x62, 0x81, 0x3e, 0x82, 0xd4, 0x57, 0x2a, 0x30, 0xaf, 0x30, 0x86, 0x2e, 0x91, + 0x0b, 0x59, 0xe7, 0x09, 0x0b, 0x59, 0xc5, 0xa6, 0x4a, 0x51, 0x9e, 0x40, 0x3f, 0x55, 0xfa, 0x42, + 0x2c, 0xfa, 0xa9, 0x4a, 0xa9, 0x87, 0x90, 0x3a, 0x55, 0xfc, 0xc9, 0xa8, 0x48, 0x3e, 0x48, 0x3a, + 0xcd, 0x1a, 0x8f, 0xe7, 0x52, 0xa7, 0x9f, 0xec, 0x24, 0xa4, 0xfc, 0xeb, 0x5d, 0x96, 0x32, 0x69, + 0xdf, 0x9c, 0x61, 0x1c, 0xbc, 0x48, 0x9e, 0x57, 0x70, 0x90, 0x90, 0x3a, 0x4d, 0xfe, 0xc2, 0x80, + 0xa9, 0xc5, 0x5e, 0x32, 0xf6, 0x13, 0xa4, 0x3e, 0xed, 0xbd, 0x43, 0x30, 0x25, 0x3d, 0xca, 0xc5, + 0x97, 0x44, 0x62, 0x4f, 0x38, 0x57, 0x5f, 0x6f, 0xc6, 0xd4, 0x75, 0x07, 0xf4, 0x66, 0x4c, 0x53, + 0x8b, 0x20, 0x35, 0x6a, 0x08, 0x11, 0x2f, 0x12, 0xe9, 0xc9, 0xbb, 0x06, 0x4c, 0x26, 0xa7, 0x4f, + 0xeb, 0x97, 0xb9, 0x36, 0x67, 0x5b, 0xbf, 0xcc, 0xf5, 0xd9, 0xda, 0xe6, 0x1c, 0xe3, 0xe3, 0x22, + 0x39, 0xaf, 0xe0, 0x23, 0x94, 0xc8, 0x1c, 0x4c, 0xdc, 0x0e, 0x3c, 0x26, 0xf0, 0x27, 0x25, 0x21, + 0x79, 0x59, 0x3f, 0x29, 0xea, 0x24, 0x6b, 0xfd, 0xa4, 0x68, 0x12, 0xaf, 0x53, 0x27, 0x25, 0x31, + 0x2b, 0x9b, 0xfc, 0x99, 0x01, 0xe3, 0xb1, 0x1c, 0x5b, 0xfd, 0x92, 0x50, 0x65, 0x5e, 0xeb, 0x97, + 0x84, 0x32, 0x91, 0x37, 0xf5, 0x70, 0x2d, 0x9e, 0xe5, 0x5b, 0x7a, 0x18, 0xc8, 0xf0, 0x7e, 0x44, + 0xfe, 0xda, 0x80, 0xdd, 0x8a, 0x64, 0x53, 0xbd, 0xa1, 0xd5, 0xe7, 0xf8, 0xea, 0x0d, 0x6d, 0x4a, + 0x76, 0x6b, 0xea, 0x42, 0x17, 0xaf, 0x5f, 0x13, 0x72, 0x5f, 0xc9, 0x37, 0x0c, 0xd8, 0xa3, 0x4c, + 0x23, 0x25, 0x17, 0x33, 0x6a, 0x48, 0x62, 0x86, 0x6b, 0xf1, 0xd2, 0x06, 0xa1, 0x91, 0xad, 0x97, + 0x18, 0x5b, 0xc7, 0xc9, 0x74, 0x16, 0x2d, 0x63, 0xa5, 0x10, 0xfc, 0x0d, 0x98, 0x4b, 0x3e, 0x6b, + 0xc0, 0x48, 0x38, 0x29, 0x55, 0xb9, 0x0b, 0x4b, 0xcc, 0x6a, 0x55, 0xee, 0xc2, 0x92, 0x33, 0x5d, + 0xcd, 0x12, 0xa3, 0xf3, 0x28, 0x39, 0xac, 0xda, 0x1d, 0xda, 0x9e, 0x53, 0xe1, 0xe9, 0xa3, 0x36, + 0xa3, 0xe6, 0xab, 0x06, 0xd6, 0xc0, 0x89, 0x65, 0x8a, 0xea, 0x57, 0x83, 0x2a, 0x3d, 0x55, 0xbf, + 0x1a, 0x94, 0xe9, 0xa8, 0xa9, 0xcf, 0x4e, 0x38, 0xcd, 0x32, 0xcc, 0x28, 0x3d, 0x0c, 0xe5, 0xc0, + 0xb2, 0x58, 0x77, 0x32, 0x39, 0xd5, 0x54, 0x6f, 0x65, 0xb5, 0x19, 0xae, 0x7a, 0x2b, 0xab, 0xcf, + 0x6c, 0x4d, 0x3d, 0x5a, 0x58, 0x95, 0xe0, 0x95, 0x50, 0x06, 0x2c, 0x0b, 0xdb, 0x13, 0xaa, 0x8c, + 0xe8, 0x4d, 0xab, 0xba, 0xa6, 0x89, 0xde, 0xb4, 0x6a, 0xca, 0x99, 0xa4, 0x86, 0xed, 0xc1, 0x5a, + 0x27, 0x15, 0x67, 0x05, 0x3d, 0x9f, 0x1b, 0xf0, 0x12, 0x7f, 0x6f, 0xc0, 0x1e, 0x65, 0x05, 0x13, + 0xfd, 0x8a, 0x4e, 0xab, 0x90, 0xa2, 0x5f, 0xd1, 0xa9, 0x65, 0x53, 0xcc, 0x8b, 0x8c, 0xb9, 0x97, + 0xc8, 0x29, 0x55, 0x44, 0x98, 0xc0, 0x59, 0x45, 0xd6, 0x66, 0xfa, 0xa2, 0x01, 0x63, 0xd1, 0x7c, + 0x58, 0xfd, 0xe9, 0xa2, 0x22, 0xb7, 0xb7, 0x78, 0x2a, 0x1f, 0x50, 0x46, 0xea, 0x7b, 0xff, 0x15, + 0x21, 0x42, 0x86, 0x42, 0xf4, 0xcf, 0x1b, 0xb0, 0x33, 0x21, 0xb3, 0xd4, 0xd5, 0xbf, 0x6f, 0x48, + 0xca, 0x7f, 0xd5, 0xbf, 0x6f, 0x48, 0x4c, 0x7e, 0x4d, 0xbd, 0x9a, 0x5d, 0x66, 0x50, 0x22, 0x8d, + 0x59, 0x1e, 0xe8, 0x7e, 0xb2, 0x00, 0x07, 0x52, 0x93, 0x1a, 0xc9, 0x7c, 0x9e, 0x03, 0x74, 0x55, + 0xa2, 0x6c, 0xf1, 0xea, 0x26, 0xb1, 0x20, 0xa7, 0x1f, 0x64, 0x9c, 0x96, 0xc9, 0x62, 0xe6, 0x4b, + 0x97, 0x6a, 0x0f, 0x97, 0xf6, 0x4c, 0xfe, 0x07, 0x06, 0x98, 0xe9, 0xe9, 0x64, 0xe4, 0x6a, 0xba, + 0x72, 0x65, 0xc8, 0x6e, 0x2b, 0x2e, 0x6c, 0x16, 0x4d, 0xc6, 0xe0, 0xc0, 0x62, 0x48, 0xf8, 0x9d, + 0x44, 0xc5, 0x77, 0xa9, 0xbd, 0x64, 0x36, 0xf2, 0xc7, 0x06, 0x8c, 0x45, 0xb3, 0xd1, 0x52, 0x5e, + 0xaf, 0x26, 0xa7, 0xbd, 0xa5, 0xbc, 0x5e, 0x55, 0x24, 0xbc, 0xa5, 0xbe, 0x24, 0xb2, 0xf8, 0xc9, + 0x8c, 0xeb, 0x43, 0xf2, 0xc4, 0xab, 0xd2, 0x43, 0x4c, 0x26, 0x7b, 0x44, 0xfe, 0xca, 0x00, 0x12, + 0x4f, 0x90, 0xd2, 0xdf, 0xbd, 0x2b, 0xf3, 0xd9, 0xf4, 0x77, 0xef, 0xea, 0x84, 0xb5, 0xd4, 0xd7, + 0x39, 0x98, 0x2e, 0x16, 0x84, 0x15, 0x3c, 0x74, 0x1e, 0x05, 0xb8, 0xf9, 0xaa, 0x01, 0x13, 0x09, + 0xf9, 0x67, 0x24, 0x27, 0x5d, 0xd9, 0x1c, 0x94, 0x26, 0xd1, 0x2d, 0x75, 0x57, 0x9f, 0xc0, 0x90, + 0xdb, 0xe3, 0x88, 0xbd, 0xef, 0x0a, 0x67, 0x60, 0x1d, 0x4f, 0x57, 0xf4, 0x70, 0xfa, 0x9a, 0xde, + 0xfe, 0x25, 0xa6, 0xad, 0xa5, 0xbe, 0xef, 0xc2, 0x65, 0x8f, 0xb1, 0x71, 0xc8, 0x70, 0xff, 0x86, + 0x1f, 0x4e, 0x86, 0xf2, 0xd1, 0x48, 0x76, 0x02, 0xb2, 0x65, 0x59, 0x24, 0xa7, 0xbb, 0x99, 0xd3, + 0x8c, 0xe8, 0x23, 0xe4, 0xb9, 0x4c, 0x44, 0xbb, 0xe4, 0x8f, 0xd8, 0xf5, 0x5b, 0x38, 0xab, 0x2a, + 0xed, 0xfa, 0x2d, 0x31, 0x33, 0x2d, 0xed, 0xfa, 0x2d, 0x39, 0x31, 0x2d, 0x55, 0xc8, 0xf1, 0xac, + 0x31, 0xf9, 0x5e, 0xf7, 0x1d, 0x76, 0xdf, 0x19, 0x49, 0x08, 0x23, 0xb9, 0xc8, 0xc8, 0x7a, 0xdf, + 0xa9, 0x48, 0x6b, 0x4b, 0x3d, 0xec, 0x49, 0xc8, 0x79, 0x23, 0xbf, 0x62, 0x44, 0x52, 0xd6, 0x4a, + 0xfa, 0x00, 0x29, 0x96, 0x6b, 0x56, 0x3c, 0x9e, 0x1d, 0x00, 0xe9, 0x7c, 0x91, 0xd1, 0xf9, 0x1c, + 0x79, 0x56, 0x19, 0x44, 0xd1, 0x56, 0xc5, 0x46, 0xa8, 0xb9, 0x7b, 0x5f, 0xff, 0xee, 0x5e, 0xe3, + 0x1b, 0xdf, 0xdd, 0x6b, 0x7c, 0xe7, 0xbb, 0x7b, 0x8d, 0x5f, 0xf8, 0xde, 0xde, 0x2d, 0xdf, 0xf8, + 0xde, 0xde, 0x2d, 0xdf, 0xfe, 0xde, 0xde, 0x2d, 0x1f, 0x7a, 0xad, 0x6e, 0x7b, 0xab, 0xdd, 0xe5, + 0xe9, 0xaa, 0xd3, 0x2c, 0xdd, 0x10, 0x98, 0x6e, 0x5a, 0xcb, 0x6e, 0x0f, 0xef, 0xb1, 0xaa, 0xd3, + 0xa1, 0xc1, 0x9f, 0xab, 0x96, 0xdd, 0xc2, 0xdb, 0x2e, 0xb7, 0x37, 0xa8, 0xb7, 0xde, 0xa6, 0x6e, + 0x69, 0x6d, 0x66, 0x79, 0x80, 0xfd, 0x27, 0xfe, 0x27, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe6, + 0x22, 0x4d, 0x98, 0xf1, 0x80, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -8001,10 +8200,10 @@ type QueryClient interface { // Retrieves the aggregate market volumes for specified markets AggregateMarketVolumes(ctx context.Context, in *QueryAggregateMarketVolumesRequest, opts ...grpc.CallOption) (*QueryAggregateMarketVolumesResponse, error) // Retrieves the denom decimals for a denom. - DenomDecimal(ctx context.Context, in *QueryDenomDecimalRequest, opts ...grpc.CallOption) (*QueryDenomDecimalResponse, error) + AuctionExchangeTransferDenomDecimal(ctx context.Context, in *QueryAuctionExchangeTransferDenomDecimalRequest, opts ...grpc.CallOption) (*QueryAuctionExchangeTransferDenomDecimalResponse, error) // Retrieves the denom decimals for multiple denoms. Returns all denom // decimals if unspecified. - DenomDecimals(ctx context.Context, in *QueryDenomDecimalsRequest, opts ...grpc.CallOption) (*QueryDenomDecimalsResponse, error) + AuctionExchangeTransferDenomDecimals(ctx context.Context, in *QueryAuctionExchangeTransferDenomDecimalsRequest, opts ...grpc.CallOption) (*QueryAuctionExchangeTransferDenomDecimalsResponse, error) // Retrieves a list of spot markets. SpotMarkets(ctx context.Context, in *QuerySpotMarketsRequest, opts ...grpc.CallOption) (*QuerySpotMarketsResponse, error) // Retrieves a spot market by ticker @@ -8099,7 +8298,7 @@ type QueryClient interface { // MarketVolatility computes the volatility for spot and derivative markets // trading history. MarketVolatility(ctx context.Context, in *QueryMarketVolatilityRequest, opts ...grpc.CallOption) (*QueryMarketVolatilityResponse, error) - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets BinaryOptionsMarkets(ctx context.Context, in *QueryBinaryMarketsRequest, opts ...grpc.CallOption) (*QueryBinaryMarketsResponse, error) // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(ctx context.Context, in *QueryTraderDerivativeConditionalOrdersRequest, opts ...grpc.CallOption) (*QueryTraderDerivativeConditionalOrdersResponse, error) @@ -8118,6 +8317,8 @@ type QueryClient interface { DenomMinNotional(ctx context.Context, in *QueryDenomMinNotionalRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalResponse, error) // Retrieves the min notionals for all denoms DenomMinNotionals(ctx context.Context, in *QueryDenomMinNotionalsRequest, opts ...grpc.CallOption) (*QueryDenomMinNotionalsResponse, error) + // Retrieves a market's open interest + OpenInterest(ctx context.Context, in *QueryOpenInterestRequest, opts ...grpc.CallOption) (*QueryOpenInterestResponse, error) } type queryClient struct { @@ -8218,18 +8419,18 @@ func (c *queryClient) AggregateMarketVolumes(ctx context.Context, in *QueryAggre return out, nil } -func (c *queryClient) DenomDecimal(ctx context.Context, in *QueryDenomDecimalRequest, opts ...grpc.CallOption) (*QueryDenomDecimalResponse, error) { - out := new(QueryDenomDecimalResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v2.Query/DenomDecimal", in, out, opts...) +func (c *queryClient) AuctionExchangeTransferDenomDecimal(ctx context.Context, in *QueryAuctionExchangeTransferDenomDecimalRequest, opts ...grpc.CallOption) (*QueryAuctionExchangeTransferDenomDecimalResponse, error) { + out := new(QueryAuctionExchangeTransferDenomDecimalResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v2.Query/AuctionExchangeTransferDenomDecimal", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) DenomDecimals(ctx context.Context, in *QueryDenomDecimalsRequest, opts ...grpc.CallOption) (*QueryDenomDecimalsResponse, error) { - out := new(QueryDenomDecimalsResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v2.Query/DenomDecimals", in, out, opts...) +func (c *queryClient) AuctionExchangeTransferDenomDecimals(ctx context.Context, in *QueryAuctionExchangeTransferDenomDecimalsRequest, opts ...grpc.CallOption) (*QueryAuctionExchangeTransferDenomDecimalsResponse, error) { + out := new(QueryAuctionExchangeTransferDenomDecimalsResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v2.Query/AuctionExchangeTransferDenomDecimals", in, out, opts...) if err != nil { return nil, err } @@ -8731,6 +8932,15 @@ func (c *queryClient) DenomMinNotionals(ctx context.Context, in *QueryDenomMinNo return out, nil } +func (c *queryClient) OpenInterest(ctx context.Context, in *QueryOpenInterestRequest, opts ...grpc.CallOption) (*QueryOpenInterestResponse, error) { + out := new(QueryOpenInterestResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v2.Query/OpenInterest", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { L3DerivativeOrderBook(context.Context, *QueryFullDerivativeOrderbookRequest) (*QueryFullDerivativeOrderbookResponse, error) @@ -8752,10 +8962,10 @@ type QueryServer interface { // Retrieves the aggregate market volumes for specified markets AggregateMarketVolumes(context.Context, *QueryAggregateMarketVolumesRequest) (*QueryAggregateMarketVolumesResponse, error) // Retrieves the denom decimals for a denom. - DenomDecimal(context.Context, *QueryDenomDecimalRequest) (*QueryDenomDecimalResponse, error) + AuctionExchangeTransferDenomDecimal(context.Context, *QueryAuctionExchangeTransferDenomDecimalRequest) (*QueryAuctionExchangeTransferDenomDecimalResponse, error) // Retrieves the denom decimals for multiple denoms. Returns all denom // decimals if unspecified. - DenomDecimals(context.Context, *QueryDenomDecimalsRequest) (*QueryDenomDecimalsResponse, error) + AuctionExchangeTransferDenomDecimals(context.Context, *QueryAuctionExchangeTransferDenomDecimalsRequest) (*QueryAuctionExchangeTransferDenomDecimalsResponse, error) // Retrieves a list of spot markets. SpotMarkets(context.Context, *QuerySpotMarketsRequest) (*QuerySpotMarketsResponse, error) // Retrieves a spot market by ticker @@ -8850,7 +9060,7 @@ type QueryServer interface { // MarketVolatility computes the volatility for spot and derivative markets // trading history. MarketVolatility(context.Context, *QueryMarketVolatilityRequest) (*QueryMarketVolatilityResponse, error) - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets BinaryOptionsMarkets(context.Context, *QueryBinaryMarketsRequest) (*QueryBinaryMarketsResponse, error) // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(context.Context, *QueryTraderDerivativeConditionalOrdersRequest) (*QueryTraderDerivativeConditionalOrdersResponse, error) @@ -8869,6 +9079,8 @@ type QueryServer interface { DenomMinNotional(context.Context, *QueryDenomMinNotionalRequest) (*QueryDenomMinNotionalResponse, error) // Retrieves the min notionals for all denoms DenomMinNotionals(context.Context, *QueryDenomMinNotionalsRequest) (*QueryDenomMinNotionalsResponse, error) + // Retrieves a market's open interest + OpenInterest(context.Context, *QueryOpenInterestRequest) (*QueryOpenInterestResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -8905,11 +9117,11 @@ func (*UnimplementedQueryServer) AggregateMarketVolume(ctx context.Context, req func (*UnimplementedQueryServer) AggregateMarketVolumes(ctx context.Context, req *QueryAggregateMarketVolumesRequest) (*QueryAggregateMarketVolumesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AggregateMarketVolumes not implemented") } -func (*UnimplementedQueryServer) DenomDecimal(ctx context.Context, req *QueryDenomDecimalRequest) (*QueryDenomDecimalResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DenomDecimal not implemented") +func (*UnimplementedQueryServer) AuctionExchangeTransferDenomDecimal(ctx context.Context, req *QueryAuctionExchangeTransferDenomDecimalRequest) (*QueryAuctionExchangeTransferDenomDecimalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuctionExchangeTransferDenomDecimal not implemented") } -func (*UnimplementedQueryServer) DenomDecimals(ctx context.Context, req *QueryDenomDecimalsRequest) (*QueryDenomDecimalsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DenomDecimals not implemented") +func (*UnimplementedQueryServer) AuctionExchangeTransferDenomDecimals(ctx context.Context, req *QueryAuctionExchangeTransferDenomDecimalsRequest) (*QueryAuctionExchangeTransferDenomDecimalsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuctionExchangeTransferDenomDecimals not implemented") } func (*UnimplementedQueryServer) SpotMarkets(ctx context.Context, req *QuerySpotMarketsRequest) (*QuerySpotMarketsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SpotMarkets not implemented") @@ -9076,6 +9288,9 @@ func (*UnimplementedQueryServer) DenomMinNotional(ctx context.Context, req *Quer func (*UnimplementedQueryServer) DenomMinNotionals(ctx context.Context, req *QueryDenomMinNotionalsRequest) (*QueryDenomMinNotionalsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DenomMinNotionals not implemented") } +func (*UnimplementedQueryServer) OpenInterest(ctx context.Context, req *QueryOpenInterestRequest) (*QueryOpenInterestResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OpenInterest not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -9261,38 +9476,38 @@ func _Query_AggregateMarketVolumes_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _Query_DenomDecimal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDenomDecimalRequest) +func _Query_AuctionExchangeTransferDenomDecimal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAuctionExchangeTransferDenomDecimalRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).DenomDecimal(ctx, in) + return srv.(QueryServer).AuctionExchangeTransferDenomDecimal(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.exchange.v2.Query/DenomDecimal", + FullMethod: "/injective.exchange.v2.Query/AuctionExchangeTransferDenomDecimal", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DenomDecimal(ctx, req.(*QueryDenomDecimalRequest)) + return srv.(QueryServer).AuctionExchangeTransferDenomDecimal(ctx, req.(*QueryAuctionExchangeTransferDenomDecimalRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_DenomDecimals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryDenomDecimalsRequest) +func _Query_AuctionExchangeTransferDenomDecimals_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAuctionExchangeTransferDenomDecimalsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).DenomDecimals(ctx, in) + return srv.(QueryServer).AuctionExchangeTransferDenomDecimals(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.exchange.v2.Query/DenomDecimals", + FullMethod: "/injective.exchange.v2.Query/AuctionExchangeTransferDenomDecimals", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).DenomDecimals(ctx, req.(*QueryDenomDecimalsRequest)) + return srv.(QueryServer).AuctionExchangeTransferDenomDecimals(ctx, req.(*QueryAuctionExchangeTransferDenomDecimalsRequest)) } return interceptor(ctx, in, info, handler) } @@ -10287,6 +10502,24 @@ func _Query_DenomMinNotionals_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Query_OpenInterest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryOpenInterestRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).OpenInterest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v2.Query/OpenInterest", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).OpenInterest(ctx, req.(*QueryOpenInterestRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.exchange.v2.Query", HandlerType: (*QueryServer)(nil), @@ -10332,12 +10565,12 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Handler: _Query_AggregateMarketVolumes_Handler, }, { - MethodName: "DenomDecimal", - Handler: _Query_DenomDecimal_Handler, + MethodName: "AuctionExchangeTransferDenomDecimal", + Handler: _Query_AuctionExchangeTransferDenomDecimal_Handler, }, { - MethodName: "DenomDecimals", - Handler: _Query_DenomDecimals_Handler, + MethodName: "AuctionExchangeTransferDenomDecimals", + Handler: _Query_AuctionExchangeTransferDenomDecimals_Handler, }, { MethodName: "SpotMarkets", @@ -10559,6 +10792,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "DenomMinNotionals", Handler: _Query_DenomMinNotionals_Handler, }, + { + MethodName: "OpenInterest", + Handler: _Query_OpenInterest_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/exchange/v2/query.proto", @@ -11168,7 +11405,7 @@ func (m *QueryAggregateMarketVolumeResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } -func (m *QueryDenomDecimalRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11178,12 +11415,12 @@ func (m *QueryDenomDecimalRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryDenomDecimalRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDenomDecimalRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11198,7 +11435,7 @@ func (m *QueryDenomDecimalRequest) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } -func (m *QueryDenomDecimalResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11208,12 +11445,12 @@ func (m *QueryDenomDecimalResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryDenomDecimalResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDenomDecimalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11226,7 +11463,7 @@ func (m *QueryDenomDecimalResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *QueryDenomDecimalsRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11236,12 +11473,12 @@ func (m *QueryDenomDecimalsRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryDenomDecimalsRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDenomDecimalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11258,7 +11495,7 @@ func (m *QueryDenomDecimalsRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *QueryDenomDecimalsResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -11268,12 +11505,12 @@ func (m *QueryDenomDecimalsResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryDenomDecimalsResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryDenomDecimalsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -11661,6 +11898,11 @@ func (m *QuerySpotOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l + if m.Seq != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Seq)) + i-- + dAtA[i] = 0x18 + } if len(m.SellsPriceLevel) > 0 { for iNdEx := len(m.SellsPriceLevel) - 1; iNdEx >= 0; iNdEx-- { { @@ -12453,6 +12695,11 @@ func (m *QueryDerivativeOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (in _ = i var l int _ = l + if m.Seq != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Seq)) + i-- + dAtA[i] = 0x18 + } if len(m.SellsPriceLevel) > 0 { for iNdEx := len(m.SellsPriceLevel) - 1; iNdEx >= 0; iNdEx-- { { @@ -15596,6 +15843,11 @@ func (m *QueryFullSpotOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.Seq != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Seq)) + i-- + dAtA[i] = 0x18 + } if len(m.Asks) > 0 { for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { { @@ -15677,6 +15929,11 @@ func (m *QueryFullDerivativeOrderbookResponse) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + if m.Seq != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.Seq)) + i-- + dAtA[i] = 0x18 + } if len(m.Asks) > 0 { for iNdEx := len(m.Asks) - 1; iNdEx >= 0; iNdEx-- { { @@ -16340,6 +16597,111 @@ func (m *QueryDenomMinNotionalsResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } +func (m *OpenInterest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenInterest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenInterest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Balance.Size() + i -= size + if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryOpenInterestRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryOpenInterestRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryOpenInterestRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryOpenInterestResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryOpenInterestResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryOpenInterestResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Amount != nil { + { + size, err := m.Amount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -16602,7 +16964,7 @@ func (m *QueryAggregateMarketVolumeResponse) Size() (n int) { return n } -func (m *QueryDenomDecimalRequest) Size() (n int) { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) Size() (n int) { if m == nil { return 0 } @@ -16615,7 +16977,7 @@ func (m *QueryDenomDecimalRequest) Size() (n int) { return n } -func (m *QueryDenomDecimalResponse) Size() (n int) { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) Size() (n int) { if m == nil { return 0 } @@ -16627,7 +16989,7 @@ func (m *QueryDenomDecimalResponse) Size() (n int) { return n } -func (m *QueryDenomDecimalsRequest) Size() (n int) { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) Size() (n int) { if m == nil { return 0 } @@ -16642,7 +17004,7 @@ func (m *QueryDenomDecimalsRequest) Size() (n int) { return n } -func (m *QueryDenomDecimalsResponse) Size() (n int) { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) Size() (n int) { if m == nil { return 0 } @@ -16822,6 +17184,9 @@ func (m *QuerySpotOrderbookResponse) Size() (n int) { n += 1 + l + sovQuery(uint64(l)) } } + if m.Seq != 0 { + n += 1 + sovQuery(uint64(m.Seq)) + } return n } @@ -17142,6 +17507,9 @@ func (m *QueryDerivativeOrderbookResponse) Size() (n int) { n += 1 + l + sovQuery(uint64(l)) } } + if m.Seq != 0 { + n += 1 + sovQuery(uint64(m.Seq)) + } return n } @@ -18401,6 +18769,9 @@ func (m *QueryFullSpotOrderbookResponse) Size() (n int) { n += 1 + l + sovQuery(uint64(l)) } } + if m.Seq != 0 { + n += 1 + sovQuery(uint64(m.Seq)) + } return n } @@ -18435,6 +18806,9 @@ func (m *QueryFullDerivativeOrderbookResponse) Size() (n int) { n += 1 + l + sovQuery(uint64(l)) } } + if m.Seq != 0 { + n += 1 + sovQuery(uint64(m.Seq)) + } return n } @@ -18684,6 +19058,47 @@ func (m *QueryDenomMinNotionalsResponse) Size() (n int) { return n } +func (m *OpenInterest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = m.Balance.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryOpenInterestRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryOpenInterestResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Amount != nil { + l = m.Amount.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -20288,7 +20703,7 @@ func (m *QueryAggregateMarketVolumeResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomDecimalRequest) Unmarshal(dAtA []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20311,10 +20726,10 @@ func (m *QueryDenomDecimalRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomDecimalRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomDecimalRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20370,7 +20785,7 @@ func (m *QueryDenomDecimalRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomDecimalResponse) Unmarshal(dAtA []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20393,10 +20808,10 @@ func (m *QueryDenomDecimalResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomDecimalResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomDecimalResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20439,7 +20854,7 @@ func (m *QueryDenomDecimalResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomDecimalsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20462,10 +20877,10 @@ func (m *QueryDenomDecimalsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomDecimalsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomDecimalsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20521,7 +20936,7 @@ func (m *QueryDenomDecimalsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomDecimalsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryAuctionExchangeTransferDenomDecimalsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20544,10 +20959,10 @@ func (m *QueryDenomDecimalsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomDecimalsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomDecimalsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAuctionExchangeTransferDenomDecimalsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -21626,6 +22041,25 @@ func (m *QuerySpotOrderbookResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType) + } + m.Seq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -23751,6 +24185,25 @@ func (m *QueryDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType) + } + m.Seq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -32048,6 +32501,25 @@ func (m *QueryFullSpotOrderbookResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType) + } + m.Seq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -32248,6 +32720,25 @@ func (m *QueryFullDerivativeOrderbookResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Seq", wireType) + } + m.Seq = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Seq |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -32640,15 +33131,333 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryActiveStakeGrantRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryActiveStakeGrantRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActiveStakeGrantRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryActiveStakeGrantResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActiveStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grant", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Grant == nil { + m.Grant = &ActiveGrant{} + } + if err := m.Grant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveGrant", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EffectiveGrant == nil { + m.EffectiveGrant = &EffectiveGrant{} + } + if err := m.EffectiveGrant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGrantAuthorizationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryGrantAuthorizationResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryActiveStakeGrantRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGrantAuthorizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -32676,7 +33485,9 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Grantee = string(dAtA[iNdEx:postIndex]) + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -32699,7 +33510,7 @@ func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { +func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -32722,53 +33533,17 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryActiveStakeGrantResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryActiveStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grant", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Grant == nil { - m.Grant = &ActiveGrant{} - } - if err := m.Grant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field EffectiveGrant", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -32778,27 +33553,23 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.EffectiveGrant == nil { - m.EffectiveGrant = &EffectiveGrant{} - } - if err := m.EffectiveGrant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Granter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -32821,7 +33592,7 @@ func (m *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { +func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -32844,15 +33615,15 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -32880,13 +33651,15 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Granter = string(dAtA[iNdEx:postIndex]) + if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -32896,23 +33669,25 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Grantee = string(dAtA[iNdEx:postIndex]) + m.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -32935,7 +33710,7 @@ func (m *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -32958,15 +33733,15 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalanceRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalanceRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -32994,9 +33769,7 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -33019,7 +33792,7 @@ func (m *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33042,17 +33815,17 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalanceResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalanceResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -33062,23 +33835,27 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Granter = string(dAtA[iNdEx:postIndex]) + if m.Balance == nil { + m.Balance = &MarketBalance{} + } + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -33101,7 +33878,7 @@ func (m *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryMarketBalancesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33124,49 +33901,65 @@ func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryMarketBalancesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryMarketBalancesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryMarketBalancesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 2: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryMarketBalancesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryMarketBalancesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balances", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -33193,8 +33986,8 @@ func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Grants = append(m.Grants, &GrantAuthorization{}) - if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Balances = append(m.Balances, &MarketBalance{}) + if err := m.Balances[len(m.Balances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33219,7 +34012,7 @@ func (m *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { +func (m *MarketBalance) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33242,10 +34035,10 @@ func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketBalanceRequest: wiretype end group for non-group") + return fmt.Errorf("proto: MarketBalance: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketBalanceRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MarketBalance: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -33280,6 +34073,40 @@ func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { } m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -33301,7 +34128,7 @@ func (m *QueryMarketBalanceRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33324,17 +34151,17 @@ func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketBalanceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketBalanceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -33344,27 +34171,23 @@ func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Balance == nil { - m.Balance = &MarketBalance{} - } - if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Denom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -33387,7 +34210,7 @@ func (m *QueryMarketBalanceResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketBalancesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33410,12 +34233,46 @@ func (m *QueryMarketBalancesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketBalancesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketBalancesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -33437,7 +34294,7 @@ func (m *QueryMarketBalancesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryMarketBalancesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33460,46 +34317,12 @@ func (m *QueryMarketBalancesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryMarketBalancesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryMarketBalancesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Balances", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Balances = append(m.Balances, &MarketBalance{}) - if err := m.Balances[len(m.Balances)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -33521,7 +34344,7 @@ func (m *QueryMarketBalancesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MarketBalance) Unmarshal(dAtA []byte) error { +func (m *QueryDenomMinNotionalsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33544,49 +34367,17 @@ func (m *MarketBalance) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MarketBalance: wiretype end group for non-group") + return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MarketBalance: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MarketId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionals", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -33596,23 +34387,23 @@ func (m *MarketBalance) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.DenomMinNotionals = append(m.DenomMinNotionals, &DenomMinNotional{}) + if err := m.DenomMinNotionals[len(m.DenomMinNotionals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33637,7 +34428,7 @@ func (m *MarketBalance) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomMinNotionalRequest) Unmarshal(dAtA []byte) error { +func (m *OpenInterest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33660,15 +34451,15 @@ func (m *QueryDenomMinNotionalRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomMinNotionalRequest: wiretype end group for non-group") + return fmt.Errorf("proto: OpenInterest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomMinNotionalRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OpenInterest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Denom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -33696,61 +34487,11 @@ func (m *QueryDenomMinNotionalRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Denom = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryDenomMinNotionalResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryDenomMinNotionalResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomMinNotionalResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -33778,7 +34519,7 @@ func (m *QueryDenomMinNotionalResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -33803,7 +34544,7 @@ func (m *QueryDenomMinNotionalResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomMinNotionalsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryOpenInterestRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33826,12 +34567,44 @@ func (m *QueryDenomMinNotionalsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryOpenInterestRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomMinNotionalsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryOpenInterestRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -33853,7 +34626,7 @@ func (m *QueryDenomMinNotionalsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryDenomMinNotionalsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryOpenInterestResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -33876,15 +34649,15 @@ func (m *QueryDenomMinNotionalsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryOpenInterestResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryDenomMinNotionalsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryOpenInterestResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DenomMinNotionals", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -33911,8 +34684,10 @@ func (m *QueryDenomMinNotionalsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DenomMinNotionals = append(m.DenomMinNotionals, &DenomMinNotional{}) - if err := m.DenomMinNotionals[len(m.DenomMinNotionals)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Amount == nil { + m.Amount = &OpenInterest{} + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/chain/exchange/types/v2/tx.pb.go b/chain/exchange/types/v2/tx.pb.go index ec3af8ff..679f3811 100644 --- a/chain/exchange/types/v2/tx.pb.go +++ b/chain/exchange/types/v2/tx.pb.go @@ -160,6 +160,8 @@ type MsgUpdateDerivativeMarket struct { NewMaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=new_maintenance_margin_ratio,json=newMaintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_maintenance_margin_ratio"` // (optional) updated value for reduce_margin_ratio NewReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=new_reduce_margin_ratio,json=newReduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_reduce_margin_ratio"` + // (optional) updated value for open_notional_cap + NewOpenNotionalCap OpenNotionalCap `protobuf:"bytes,10,opt,name=new_open_notional_cap,json=newOpenNotionalCap,proto3" json:"new_open_notional_cap"` } func (m *MsgUpdateDerivativeMarket) Reset() { *m = MsgUpdateDerivativeMarket{} } @@ -786,6 +788,8 @@ type MsgInstantPerpetualMarketLaunch struct { MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the cap on the open notional + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,16,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *MsgInstantPerpetualMarketLaunch) Reset() { *m = MsgInstantPerpetualMarketLaunch{} } @@ -898,6 +902,8 @@ type MsgInstantBinaryOptionsMarketLaunch struct { // min_notional defines the minimum notional (in quote asset) required for // orders in the market (in human readable format) MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // open_notional_cap defines the cap on the open notional + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,16,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *MsgInstantBinaryOptionsMarketLaunch) Reset() { *m = MsgInstantBinaryOptionsMarketLaunch{} } @@ -1016,6 +1022,8 @@ type MsgInstantExpiryFuturesMarketLaunch struct { MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` // reduce_margin_ratio defines the ratio of the margin that is reduced ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"` + // open_notional_cap defines the cap on the open notional + OpenNotionalCap OpenNotionalCap `protobuf:"bytes,17,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"` } func (m *MsgInstantExpiryFuturesMarketLaunch) Reset() { *m = MsgInstantExpiryFuturesMarketLaunch{} } @@ -1735,6 +1743,12 @@ type MsgBatchUpdateOrders struct { BinaryOptionsMarketIdsToCancelAll []string `protobuf:"bytes,10,rep,name=binary_options_market_ids_to_cancel_all,json=binaryOptionsMarketIdsToCancelAll,proto3" json:"binary_options_market_ids_to_cancel_all,omitempty"` // the binary options orders to create BinaryOptionsOrdersToCreate []*DerivativeOrder `protobuf:"bytes,11,rep,name=binary_options_orders_to_create,json=binaryOptionsOrdersToCreate,proto3" json:"binary_options_orders_to_create,omitempty"` + // the spot market orders to create + SpotMarketOrdersToCreate []*SpotOrder `protobuf:"bytes,12,rep,name=spot_market_orders_to_create,json=spotMarketOrdersToCreate,proto3" json:"spot_market_orders_to_create,omitempty"` + // the derivative market orders to create + DerivativeMarketOrdersToCreate []*DerivativeOrder `protobuf:"bytes,13,rep,name=derivative_market_orders_to_create,json=derivativeMarketOrdersToCreate,proto3" json:"derivative_market_orders_to_create,omitempty"` + // the binary options market orders to create + BinaryOptionsMarketOrdersToCreate []*DerivativeOrder `protobuf:"bytes,14,rep,name=binary_options_market_orders_to_create,json=binaryOptionsMarketOrdersToCreate,proto3" json:"binary_options_market_orders_to_create,omitempty"` } func (m *MsgBatchUpdateOrders) Reset() { *m = MsgBatchUpdateOrders{} } @@ -1772,18 +1786,27 @@ var xxx_messageInfo_MsgBatchUpdateOrders proto.InternalMessageInfo // MsgBatchUpdateOrdersResponse defines the Msg/BatchUpdateOrders response type. type MsgBatchUpdateOrdersResponse struct { - SpotCancelSuccess []bool `protobuf:"varint,1,rep,packed,name=spot_cancel_success,json=spotCancelSuccess,proto3" json:"spot_cancel_success,omitempty"` - DerivativeCancelSuccess []bool `protobuf:"varint,2,rep,packed,name=derivative_cancel_success,json=derivativeCancelSuccess,proto3" json:"derivative_cancel_success,omitempty"` - SpotOrderHashes []string `protobuf:"bytes,3,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` - DerivativeOrderHashes []string `protobuf:"bytes,4,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` - BinaryOptionsCancelSuccess []bool `protobuf:"varint,5,rep,packed,name=binary_options_cancel_success,json=binaryOptionsCancelSuccess,proto3" json:"binary_options_cancel_success,omitempty"` - BinaryOptionsOrderHashes []string `protobuf:"bytes,6,rep,name=binary_options_order_hashes,json=binaryOptionsOrderHashes,proto3" json:"binary_options_order_hashes,omitempty"` - CreatedSpotOrdersCids []string `protobuf:"bytes,7,rep,name=created_spot_orders_cids,json=createdSpotOrdersCids,proto3" json:"created_spot_orders_cids,omitempty"` - FailedSpotOrdersCids []string `protobuf:"bytes,8,rep,name=failed_spot_orders_cids,json=failedSpotOrdersCids,proto3" json:"failed_spot_orders_cids,omitempty"` - CreatedDerivativeOrdersCids []string `protobuf:"bytes,9,rep,name=created_derivative_orders_cids,json=createdDerivativeOrdersCids,proto3" json:"created_derivative_orders_cids,omitempty"` - FailedDerivativeOrdersCids []string `protobuf:"bytes,10,rep,name=failed_derivative_orders_cids,json=failedDerivativeOrdersCids,proto3" json:"failed_derivative_orders_cids,omitempty"` - CreatedBinaryOptionsOrdersCids []string `protobuf:"bytes,11,rep,name=created_binary_options_orders_cids,json=createdBinaryOptionsOrdersCids,proto3" json:"created_binary_options_orders_cids,omitempty"` - FailedBinaryOptionsOrdersCids []string `protobuf:"bytes,12,rep,name=failed_binary_options_orders_cids,json=failedBinaryOptionsOrdersCids,proto3" json:"failed_binary_options_orders_cids,omitempty"` + SpotCancelSuccess []bool `protobuf:"varint,1,rep,packed,name=spot_cancel_success,json=spotCancelSuccess,proto3" json:"spot_cancel_success,omitempty"` + DerivativeCancelSuccess []bool `protobuf:"varint,2,rep,packed,name=derivative_cancel_success,json=derivativeCancelSuccess,proto3" json:"derivative_cancel_success,omitempty"` + SpotOrderHashes []string `protobuf:"bytes,3,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` + DerivativeOrderHashes []string `protobuf:"bytes,4,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` + BinaryOptionsCancelSuccess []bool `protobuf:"varint,5,rep,packed,name=binary_options_cancel_success,json=binaryOptionsCancelSuccess,proto3" json:"binary_options_cancel_success,omitempty"` + BinaryOptionsOrderHashes []string `protobuf:"bytes,6,rep,name=binary_options_order_hashes,json=binaryOptionsOrderHashes,proto3" json:"binary_options_order_hashes,omitempty"` + CreatedSpotOrdersCids []string `protobuf:"bytes,7,rep,name=created_spot_orders_cids,json=createdSpotOrdersCids,proto3" json:"created_spot_orders_cids,omitempty"` + FailedSpotOrdersCids []string `protobuf:"bytes,8,rep,name=failed_spot_orders_cids,json=failedSpotOrdersCids,proto3" json:"failed_spot_orders_cids,omitempty"` + CreatedDerivativeOrdersCids []string `protobuf:"bytes,9,rep,name=created_derivative_orders_cids,json=createdDerivativeOrdersCids,proto3" json:"created_derivative_orders_cids,omitempty"` + FailedDerivativeOrdersCids []string `protobuf:"bytes,10,rep,name=failed_derivative_orders_cids,json=failedDerivativeOrdersCids,proto3" json:"failed_derivative_orders_cids,omitempty"` + CreatedBinaryOptionsOrdersCids []string `protobuf:"bytes,11,rep,name=created_binary_options_orders_cids,json=createdBinaryOptionsOrdersCids,proto3" json:"created_binary_options_orders_cids,omitempty"` + FailedBinaryOptionsOrdersCids []string `protobuf:"bytes,12,rep,name=failed_binary_options_orders_cids,json=failedBinaryOptionsOrdersCids,proto3" json:"failed_binary_options_orders_cids,omitempty"` + SpotMarketOrderHashes []string `protobuf:"bytes,13,rep,name=spot_market_order_hashes,json=spotMarketOrderHashes,proto3" json:"spot_market_order_hashes,omitempty"` + CreatedSpotMarketOrdersCids []string `protobuf:"bytes,14,rep,name=created_spot_market_orders_cids,json=createdSpotMarketOrdersCids,proto3" json:"created_spot_market_orders_cids,omitempty"` + FailedSpotMarketOrdersCids []string `protobuf:"bytes,15,rep,name=failed_spot_market_orders_cids,json=failedSpotMarketOrdersCids,proto3" json:"failed_spot_market_orders_cids,omitempty"` + DerivativeMarketOrderHashes []string `protobuf:"bytes,16,rep,name=derivative_market_order_hashes,json=derivativeMarketOrderHashes,proto3" json:"derivative_market_order_hashes,omitempty"` + CreatedDerivativeMarketOrdersCids []string `protobuf:"bytes,17,rep,name=created_derivative_market_orders_cids,json=createdDerivativeMarketOrdersCids,proto3" json:"created_derivative_market_orders_cids,omitempty"` + FailedDerivativeMarketOrdersCids []string `protobuf:"bytes,18,rep,name=failed_derivative_market_orders_cids,json=failedDerivativeMarketOrdersCids,proto3" json:"failed_derivative_market_orders_cids,omitempty"` + BinaryOptionsMarketOrderHashes []string `protobuf:"bytes,19,rep,name=binary_options_market_order_hashes,json=binaryOptionsMarketOrderHashes,proto3" json:"binary_options_market_order_hashes,omitempty"` + CreatedBinaryOptionsMarketOrdersCids []string `protobuf:"bytes,20,rep,name=created_binary_options_market_orders_cids,json=createdBinaryOptionsMarketOrdersCids,proto3" json:"created_binary_options_market_orders_cids,omitempty"` + FailedBinaryOptionsMarketOrdersCids []string `protobuf:"bytes,21,rep,name=failed_binary_options_market_orders_cids,json=failedBinaryOptionsMarketOrdersCids,proto3" json:"failed_binary_options_market_orders_cids,omitempty"` } func (m *MsgBatchUpdateOrdersResponse) Reset() { *m = MsgBatchUpdateOrdersResponse{} } @@ -2700,6 +2723,113 @@ func (m *MsgLiquidatePositionResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgLiquidatePositionResponse proto.InternalMessageInfo +// A Cosmos-SDK MsgOffsetPosition +type MsgOffsetPosition struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + OffsettingSubaccountIds []string `protobuf:"bytes,4,rep,name=offsetting_subaccount_ids,json=offsettingSubaccountIds,proto3" json:"offsetting_subaccount_ids,omitempty"` +} + +func (m *MsgOffsetPosition) Reset() { *m = MsgOffsetPosition{} } +func (m *MsgOffsetPosition) String() string { return proto.CompactTextString(m) } +func (*MsgOffsetPosition) ProtoMessage() {} +func (*MsgOffsetPosition) Descriptor() ([]byte, []int) { + return fileDescriptor_7c861fb1c14863a5, []int{57} +} +func (m *MsgOffsetPosition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgOffsetPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgOffsetPosition.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgOffsetPosition) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgOffsetPosition.Merge(m, src) +} +func (m *MsgOffsetPosition) XXX_Size() int { + return m.Size() +} +func (m *MsgOffsetPosition) XXX_DiscardUnknown() { + xxx_messageInfo_MsgOffsetPosition.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgOffsetPosition proto.InternalMessageInfo + +func (m *MsgOffsetPosition) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgOffsetPosition) GetSubaccountId() string { + if m != nil { + return m.SubaccountId + } + return "" +} + +func (m *MsgOffsetPosition) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +func (m *MsgOffsetPosition) GetOffsettingSubaccountIds() []string { + if m != nil { + return m.OffsettingSubaccountIds + } + return nil +} + +// MsgOffsetPositionResponse defines the Msg/OffsetPosition +// response type. +type MsgOffsetPositionResponse struct { +} + +func (m *MsgOffsetPositionResponse) Reset() { *m = MsgOffsetPositionResponse{} } +func (m *MsgOffsetPositionResponse) String() string { return proto.CompactTextString(m) } +func (*MsgOffsetPositionResponse) ProtoMessage() {} +func (*MsgOffsetPositionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_7c861fb1c14863a5, []int{58} +} +func (m *MsgOffsetPositionResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgOffsetPositionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgOffsetPositionResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgOffsetPositionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgOffsetPositionResponse.Merge(m, src) +} +func (m *MsgOffsetPositionResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgOffsetPositionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgOffsetPositionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgOffsetPositionResponse proto.InternalMessageInfo + // A Cosmos-SDK MsgEmergencySettleMarket type MsgEmergencySettleMarket struct { // the sender's Injective address @@ -2714,7 +2844,7 @@ func (m *MsgEmergencySettleMarket) Reset() { *m = MsgEmergencySettleMark func (m *MsgEmergencySettleMarket) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarket) ProtoMessage() {} func (*MsgEmergencySettleMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{57} + return fileDescriptor_7c861fb1c14863a5, []int{59} } func (m *MsgEmergencySettleMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2773,7 +2903,7 @@ func (m *MsgEmergencySettleMarketResponse) Reset() { *m = MsgEmergencySe func (m *MsgEmergencySettleMarketResponse) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarketResponse) ProtoMessage() {} func (*MsgEmergencySettleMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{58} + return fileDescriptor_7c861fb1c14863a5, []int{60} } func (m *MsgEmergencySettleMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2821,7 +2951,7 @@ func (m *MsgIncreasePositionMargin) Reset() { *m = MsgIncreasePositionMa func (m *MsgIncreasePositionMargin) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMargin) ProtoMessage() {} func (*MsgIncreasePositionMargin) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{59} + return fileDescriptor_7c861fb1c14863a5, []int{61} } func (m *MsgIncreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2887,7 +3017,7 @@ func (m *MsgIncreasePositionMarginResponse) Reset() { *m = MsgIncreasePo func (m *MsgIncreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMarginResponse) ProtoMessage() {} func (*MsgIncreasePositionMarginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{60} + return fileDescriptor_7c861fb1c14863a5, []int{62} } func (m *MsgIncreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2935,7 +3065,7 @@ func (m *MsgDecreasePositionMargin) Reset() { *m = MsgDecreasePositionMa func (m *MsgDecreasePositionMargin) String() string { return proto.CompactTextString(m) } func (*MsgDecreasePositionMargin) ProtoMessage() {} func (*MsgDecreasePositionMargin) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{61} + return fileDescriptor_7c861fb1c14863a5, []int{63} } func (m *MsgDecreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3001,7 +3131,7 @@ func (m *MsgDecreasePositionMarginResponse) Reset() { *m = MsgDecreasePo func (m *MsgDecreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } func (*MsgDecreasePositionMarginResponse) ProtoMessage() {} func (*MsgDecreasePositionMarginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{62} + return fileDescriptor_7c861fb1c14863a5, []int{64} } func (m *MsgDecreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3046,7 +3176,7 @@ func (m *MsgPrivilegedExecuteContract) Reset() { *m = MsgPrivilegedExecu func (m *MsgPrivilegedExecuteContract) String() string { return proto.CompactTextString(m) } func (*MsgPrivilegedExecuteContract) ProtoMessage() {} func (*MsgPrivilegedExecuteContract) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{63} + return fileDescriptor_7c861fb1c14863a5, []int{65} } func (m *MsgPrivilegedExecuteContract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3084,7 +3214,7 @@ func (m *MsgPrivilegedExecuteContractResponse) Reset() { *m = MsgPrivile func (m *MsgPrivilegedExecuteContractResponse) String() string { return proto.CompactTextString(m) } func (*MsgPrivilegedExecuteContractResponse) ProtoMessage() {} func (*MsgPrivilegedExecuteContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{64} + return fileDescriptor_7c861fb1c14863a5, []int{66} } func (m *MsgPrivilegedExecuteContractResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3123,7 +3253,7 @@ func (m *MsgRewardsOptOut) Reset() { *m = MsgRewardsOptOut{} } func (m *MsgRewardsOptOut) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOut) ProtoMessage() {} func (*MsgRewardsOptOut) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{65} + return fileDescriptor_7c861fb1c14863a5, []int{67} } func (m *MsgRewardsOptOut) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3160,7 +3290,7 @@ func (m *MsgRewardsOptOutResponse) Reset() { *m = MsgRewardsOptOutRespon func (m *MsgRewardsOptOutResponse) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOutResponse) ProtoMessage() {} func (*MsgRewardsOptOutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{66} + return fileDescriptor_7c861fb1c14863a5, []int{68} } func (m *MsgRewardsOptOutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3200,7 +3330,7 @@ func (m *MsgReclaimLockedFunds) Reset() { *m = MsgReclaimLockedFunds{} } func (m *MsgReclaimLockedFunds) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFunds) ProtoMessage() {} func (*MsgReclaimLockedFunds) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{67} + return fileDescriptor_7c861fb1c14863a5, []int{69} } func (m *MsgReclaimLockedFunds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3259,7 +3389,7 @@ func (m *MsgReclaimLockedFundsResponse) Reset() { *m = MsgReclaimLockedF func (m *MsgReclaimLockedFundsResponse) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFundsResponse) ProtoMessage() {} func (*MsgReclaimLockedFundsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{68} + return fileDescriptor_7c861fb1c14863a5, []int{70} } func (m *MsgReclaimLockedFundsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3301,7 +3431,7 @@ func (m *MsgSignData) Reset() { *m = MsgSignData{} } func (m *MsgSignData) String() string { return proto.CompactTextString(m) } func (*MsgSignData) ProtoMessage() {} func (*MsgSignData) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{69} + return fileDescriptor_7c861fb1c14863a5, []int{71} } func (m *MsgSignData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3354,7 +3484,7 @@ func (m *MsgSignDoc) Reset() { *m = MsgSignDoc{} } func (m *MsgSignDoc) String() string { return proto.CompactTextString(m) } func (*MsgSignDoc) ProtoMessage() {} func (*MsgSignDoc) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{70} + return fileDescriptor_7c861fb1c14863a5, []int{72} } func (m *MsgSignDoc) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3418,7 +3548,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Reset() { *m = MsgAdminUpdat func (m *MsgAdminUpdateBinaryOptionsMarket) String() string { return proto.CompactTextString(m) } func (*MsgAdminUpdateBinaryOptionsMarket) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{71} + return fileDescriptor_7c861fb1c14863a5, []int{73} } func (m *MsgAdminUpdateBinaryOptionsMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3495,7 +3625,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) String() string { } func (*MsgAdminUpdateBinaryOptionsMarketResponse) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{72} + return fileDescriptor_7c861fb1c14863a5, []int{74} } func (m *MsgAdminUpdateBinaryOptionsMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3536,7 +3666,7 @@ func (m *MsgAuthorizeStakeGrants) Reset() { *m = MsgAuthorizeStakeGrants func (m *MsgAuthorizeStakeGrants) String() string { return proto.CompactTextString(m) } func (*MsgAuthorizeStakeGrants) ProtoMessage() {} func (*MsgAuthorizeStakeGrants) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{73} + return fileDescriptor_7c861fb1c14863a5, []int{75} } func (m *MsgAuthorizeStakeGrants) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3586,7 +3716,7 @@ func (m *MsgAuthorizeStakeGrantsResponse) Reset() { *m = MsgAuthorizeSta func (m *MsgAuthorizeStakeGrantsResponse) String() string { return proto.CompactTextString(m) } func (*MsgAuthorizeStakeGrantsResponse) ProtoMessage() {} func (*MsgAuthorizeStakeGrantsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{74} + return fileDescriptor_7c861fb1c14863a5, []int{76} } func (m *MsgAuthorizeStakeGrantsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3627,7 +3757,7 @@ func (m *MsgActivateStakeGrant) Reset() { *m = MsgActivateStakeGrant{} } func (m *MsgActivateStakeGrant) String() string { return proto.CompactTextString(m) } func (*MsgActivateStakeGrant) ProtoMessage() {} func (*MsgActivateStakeGrant) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{75} + return fileDescriptor_7c861fb1c14863a5, []int{77} } func (m *MsgActivateStakeGrant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3677,7 +3807,7 @@ func (m *MsgActivateStakeGrantResponse) Reset() { *m = MsgActivateStakeG func (m *MsgActivateStakeGrantResponse) String() string { return proto.CompactTextString(m) } func (*MsgActivateStakeGrantResponse) ProtoMessage() {} func (*MsgActivateStakeGrantResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{76} + return fileDescriptor_7c861fb1c14863a5, []int{78} } func (m *MsgActivateStakeGrantResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3716,7 +3846,7 @@ func (m *MsgBatchExchangeModification) Reset() { *m = MsgBatchExchangeMo func (m *MsgBatchExchangeModification) String() string { return proto.CompactTextString(m) } func (*MsgBatchExchangeModification) ProtoMessage() {} func (*MsgBatchExchangeModification) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{77} + return fileDescriptor_7c861fb1c14863a5, []int{79} } func (m *MsgBatchExchangeModification) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3752,7 +3882,7 @@ func (m *MsgBatchExchangeModificationResponse) Reset() { *m = MsgBatchEx func (m *MsgBatchExchangeModificationResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchExchangeModificationResponse) ProtoMessage() {} func (*MsgBatchExchangeModificationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{78} + return fileDescriptor_7c861fb1c14863a5, []int{80} } func (m *MsgBatchExchangeModificationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3791,7 +3921,7 @@ func (m *MsgSpotMarketLaunch) Reset() { *m = MsgSpotMarketLaunch{} } func (m *MsgSpotMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgSpotMarketLaunch) ProtoMessage() {} func (*MsgSpotMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{79} + return fileDescriptor_7c861fb1c14863a5, []int{81} } func (m *MsgSpotMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3827,7 +3957,7 @@ func (m *MsgSpotMarketLaunchResponse) Reset() { *m = MsgSpotMarketLaunch func (m *MsgSpotMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgSpotMarketLaunchResponse) ProtoMessage() {} func (*MsgSpotMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{80} + return fileDescriptor_7c861fb1c14863a5, []int{82} } func (m *MsgSpotMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3866,7 +3996,7 @@ func (m *MsgPerpetualMarketLaunch) Reset() { *m = MsgPerpetualMarketLaun func (m *MsgPerpetualMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgPerpetualMarketLaunch) ProtoMessage() {} func (*MsgPerpetualMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{81} + return fileDescriptor_7c861fb1c14863a5, []int{83} } func (m *MsgPerpetualMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3902,7 +4032,7 @@ func (m *MsgPerpetualMarketLaunchResponse) Reset() { *m = MsgPerpetualMa func (m *MsgPerpetualMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgPerpetualMarketLaunchResponse) ProtoMessage() {} func (*MsgPerpetualMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{82} + return fileDescriptor_7c861fb1c14863a5, []int{84} } func (m *MsgPerpetualMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3941,7 +4071,7 @@ func (m *MsgExpiryFuturesMarketLaunch) Reset() { *m = MsgExpiryFuturesMa func (m *MsgExpiryFuturesMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgExpiryFuturesMarketLaunch) ProtoMessage() {} func (*MsgExpiryFuturesMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{83} + return fileDescriptor_7c861fb1c14863a5, []int{85} } func (m *MsgExpiryFuturesMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3977,7 +4107,7 @@ func (m *MsgExpiryFuturesMarketLaunchResponse) Reset() { *m = MsgExpiryF func (m *MsgExpiryFuturesMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgExpiryFuturesMarketLaunchResponse) ProtoMessage() {} func (*MsgExpiryFuturesMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{84} + return fileDescriptor_7c861fb1c14863a5, []int{86} } func (m *MsgExpiryFuturesMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4016,7 +4146,7 @@ func (m *MsgBinaryOptionsMarketLaunch) Reset() { *m = MsgBinaryOptionsMa func (m *MsgBinaryOptionsMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgBinaryOptionsMarketLaunch) ProtoMessage() {} func (*MsgBinaryOptionsMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{85} + return fileDescriptor_7c861fb1c14863a5, []int{87} } func (m *MsgBinaryOptionsMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4052,7 +4182,7 @@ func (m *MsgBinaryOptionsMarketLaunchResponse) Reset() { *m = MsgBinaryO func (m *MsgBinaryOptionsMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgBinaryOptionsMarketLaunchResponse) ProtoMessage() {} func (*MsgBinaryOptionsMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{86} + return fileDescriptor_7c861fb1c14863a5, []int{88} } func (m *MsgBinaryOptionsMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4091,7 +4221,7 @@ func (m *MsgBatchCommunityPoolSpend) Reset() { *m = MsgBatchCommunityPoo func (m *MsgBatchCommunityPoolSpend) String() string { return proto.CompactTextString(m) } func (*MsgBatchCommunityPoolSpend) ProtoMessage() {} func (*MsgBatchCommunityPoolSpend) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{87} + return fileDescriptor_7c861fb1c14863a5, []int{89} } func (m *MsgBatchCommunityPoolSpend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4127,7 +4257,7 @@ func (m *MsgBatchCommunityPoolSpendResponse) Reset() { *m = MsgBatchComm func (m *MsgBatchCommunityPoolSpendResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCommunityPoolSpendResponse) ProtoMessage() {} func (*MsgBatchCommunityPoolSpendResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{88} + return fileDescriptor_7c861fb1c14863a5, []int{90} } func (m *MsgBatchCommunityPoolSpendResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4166,7 +4296,7 @@ func (m *MsgSpotMarketParamUpdate) Reset() { *m = MsgSpotMarketParamUpda func (m *MsgSpotMarketParamUpdate) String() string { return proto.CompactTextString(m) } func (*MsgSpotMarketParamUpdate) ProtoMessage() {} func (*MsgSpotMarketParamUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{89} + return fileDescriptor_7c861fb1c14863a5, []int{91} } func (m *MsgSpotMarketParamUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4202,7 +4332,7 @@ func (m *MsgSpotMarketParamUpdateResponse) Reset() { *m = MsgSpotMarketP func (m *MsgSpotMarketParamUpdateResponse) String() string { return proto.CompactTextString(m) } func (*MsgSpotMarketParamUpdateResponse) ProtoMessage() {} func (*MsgSpotMarketParamUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{90} + return fileDescriptor_7c861fb1c14863a5, []int{92} } func (m *MsgSpotMarketParamUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4241,7 +4371,7 @@ func (m *MsgDerivativeMarketParamUpdate) Reset() { *m = MsgDerivativeMar func (m *MsgDerivativeMarketParamUpdate) String() string { return proto.CompactTextString(m) } func (*MsgDerivativeMarketParamUpdate) ProtoMessage() {} func (*MsgDerivativeMarketParamUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{91} + return fileDescriptor_7c861fb1c14863a5, []int{93} } func (m *MsgDerivativeMarketParamUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4279,7 +4409,7 @@ func (m *MsgDerivativeMarketParamUpdateResponse) Reset() { func (m *MsgDerivativeMarketParamUpdateResponse) String() string { return proto.CompactTextString(m) } func (*MsgDerivativeMarketParamUpdateResponse) ProtoMessage() {} func (*MsgDerivativeMarketParamUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{92} + return fileDescriptor_7c861fb1c14863a5, []int{94} } func (m *MsgDerivativeMarketParamUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4318,7 +4448,7 @@ func (m *MsgBinaryOptionsMarketParamUpdate) Reset() { *m = MsgBinaryOpti func (m *MsgBinaryOptionsMarketParamUpdate) String() string { return proto.CompactTextString(m) } func (*MsgBinaryOptionsMarketParamUpdate) ProtoMessage() {} func (*MsgBinaryOptionsMarketParamUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{93} + return fileDescriptor_7c861fb1c14863a5, []int{95} } func (m *MsgBinaryOptionsMarketParamUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4358,7 +4488,7 @@ func (m *MsgBinaryOptionsMarketParamUpdateResponse) String() string { } func (*MsgBinaryOptionsMarketParamUpdateResponse) ProtoMessage() {} func (*MsgBinaryOptionsMarketParamUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{94} + return fileDescriptor_7c861fb1c14863a5, []int{96} } func (m *MsgBinaryOptionsMarketParamUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4397,7 +4527,7 @@ func (m *MsgMarketForcedSettlement) Reset() { *m = MsgMarketForcedSettle func (m *MsgMarketForcedSettlement) String() string { return proto.CompactTextString(m) } func (*MsgMarketForcedSettlement) ProtoMessage() {} func (*MsgMarketForcedSettlement) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{95} + return fileDescriptor_7c861fb1c14863a5, []int{97} } func (m *MsgMarketForcedSettlement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4433,7 +4563,7 @@ func (m *MsgMarketForcedSettlementResponse) Reset() { *m = MsgMarketForc func (m *MsgMarketForcedSettlementResponse) String() string { return proto.CompactTextString(m) } func (*MsgMarketForcedSettlementResponse) ProtoMessage() {} func (*MsgMarketForcedSettlementResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{96} + return fileDescriptor_7c861fb1c14863a5, []int{98} } func (m *MsgMarketForcedSettlementResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4472,7 +4602,7 @@ func (m *MsgTradingRewardCampaignLaunch) Reset() { *m = MsgTradingReward func (m *MsgTradingRewardCampaignLaunch) String() string { return proto.CompactTextString(m) } func (*MsgTradingRewardCampaignLaunch) ProtoMessage() {} func (*MsgTradingRewardCampaignLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{97} + return fileDescriptor_7c861fb1c14863a5, []int{99} } func (m *MsgTradingRewardCampaignLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4510,7 +4640,7 @@ func (m *MsgTradingRewardCampaignLaunchResponse) Reset() { func (m *MsgTradingRewardCampaignLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgTradingRewardCampaignLaunchResponse) ProtoMessage() {} func (*MsgTradingRewardCampaignLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{98} + return fileDescriptor_7c861fb1c14863a5, []int{100} } func (m *MsgTradingRewardCampaignLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4549,7 +4679,7 @@ func (m *MsgExchangeEnable) Reset() { *m = MsgExchangeEnable{} } func (m *MsgExchangeEnable) String() string { return proto.CompactTextString(m) } func (*MsgExchangeEnable) ProtoMessage() {} func (*MsgExchangeEnable) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{99} + return fileDescriptor_7c861fb1c14863a5, []int{101} } func (m *MsgExchangeEnable) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4585,7 +4715,7 @@ func (m *MsgExchangeEnableResponse) Reset() { *m = MsgExchangeEnableResp func (m *MsgExchangeEnableResponse) String() string { return proto.CompactTextString(m) } func (*MsgExchangeEnableResponse) ProtoMessage() {} func (*MsgExchangeEnableResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{100} + return fileDescriptor_7c861fb1c14863a5, []int{102} } func (m *MsgExchangeEnableResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4624,7 +4754,7 @@ func (m *MsgTradingRewardCampaignUpdate) Reset() { *m = MsgTradingReward func (m *MsgTradingRewardCampaignUpdate) String() string { return proto.CompactTextString(m) } func (*MsgTradingRewardCampaignUpdate) ProtoMessage() {} func (*MsgTradingRewardCampaignUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{101} + return fileDescriptor_7c861fb1c14863a5, []int{103} } func (m *MsgTradingRewardCampaignUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4662,7 +4792,7 @@ func (m *MsgTradingRewardCampaignUpdateResponse) Reset() { func (m *MsgTradingRewardCampaignUpdateResponse) String() string { return proto.CompactTextString(m) } func (*MsgTradingRewardCampaignUpdateResponse) ProtoMessage() {} func (*MsgTradingRewardCampaignUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{102} + return fileDescriptor_7c861fb1c14863a5, []int{104} } func (m *MsgTradingRewardCampaignUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4701,7 +4831,7 @@ func (m *MsgTradingRewardPendingPointsUpdate) Reset() { *m = MsgTradingR func (m *MsgTradingRewardPendingPointsUpdate) String() string { return proto.CompactTextString(m) } func (*MsgTradingRewardPendingPointsUpdate) ProtoMessage() {} func (*MsgTradingRewardPendingPointsUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{103} + return fileDescriptor_7c861fb1c14863a5, []int{105} } func (m *MsgTradingRewardPendingPointsUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4741,7 +4871,7 @@ func (m *MsgTradingRewardPendingPointsUpdateResponse) String() string { } func (*MsgTradingRewardPendingPointsUpdateResponse) ProtoMessage() {} func (*MsgTradingRewardPendingPointsUpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{104} + return fileDescriptor_7c861fb1c14863a5, []int{106} } func (m *MsgTradingRewardPendingPointsUpdateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4780,7 +4910,7 @@ func (m *MsgFeeDiscount) Reset() { *m = MsgFeeDiscount{} } func (m *MsgFeeDiscount) String() string { return proto.CompactTextString(m) } func (*MsgFeeDiscount) ProtoMessage() {} func (*MsgFeeDiscount) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{105} + return fileDescriptor_7c861fb1c14863a5, []int{107} } func (m *MsgFeeDiscount) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4816,7 +4946,7 @@ func (m *MsgFeeDiscountResponse) Reset() { *m = MsgFeeDiscountResponse{} func (m *MsgFeeDiscountResponse) String() string { return proto.CompactTextString(m) } func (*MsgFeeDiscountResponse) ProtoMessage() {} func (*MsgFeeDiscountResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{106} + return fileDescriptor_7c861fb1c14863a5, []int{108} } func (m *MsgFeeDiscountResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4859,7 +4989,7 @@ func (m *MsgAtomicMarketOrderFeeMultiplierSchedule) String() string { } func (*MsgAtomicMarketOrderFeeMultiplierSchedule) ProtoMessage() {} func (*MsgAtomicMarketOrderFeeMultiplierSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{107} + return fileDescriptor_7c861fb1c14863a5, []int{109} } func (m *MsgAtomicMarketOrderFeeMultiplierSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4899,7 +5029,7 @@ func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) String() string { } func (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse) ProtoMessage() {} func (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{108} + return fileDescriptor_7c861fb1c14863a5, []int{110} } func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4928,104 +5058,6 @@ func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) XXX_DiscardUnknown() var xxx_messageInfo_MsgAtomicMarketOrderFeeMultiplierScheduleResponse proto.InternalMessageInfo -// MsgSetDelegationTransferReceivers defines a message for setting delegation -// transfer receivers -type MsgSetDelegationTransferReceivers struct { - // the sender's Injective address (must be exchange admin) - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - // list of receiver addresses to set as delegation transfer receivers - Receivers []string `protobuf:"bytes,2,rep,name=receivers,proto3" json:"receivers,omitempty"` -} - -func (m *MsgSetDelegationTransferReceivers) Reset() { *m = MsgSetDelegationTransferReceivers{} } -func (m *MsgSetDelegationTransferReceivers) String() string { return proto.CompactTextString(m) } -func (*MsgSetDelegationTransferReceivers) ProtoMessage() {} -func (*MsgSetDelegationTransferReceivers) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{109} -} -func (m *MsgSetDelegationTransferReceivers) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgSetDelegationTransferReceivers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgSetDelegationTransferReceivers.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgSetDelegationTransferReceivers) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSetDelegationTransferReceivers.Merge(m, src) -} -func (m *MsgSetDelegationTransferReceivers) XXX_Size() int { - return m.Size() -} -func (m *MsgSetDelegationTransferReceivers) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSetDelegationTransferReceivers.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgSetDelegationTransferReceivers proto.InternalMessageInfo - -func (m *MsgSetDelegationTransferReceivers) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - -func (m *MsgSetDelegationTransferReceivers) GetReceivers() []string { - if m != nil { - return m.Receivers - } - return nil -} - -// MsgSetDelegationTransferReceiversResponse defines the response for -// MsgSetDelegationTransferReceivers -type MsgSetDelegationTransferReceiversResponse struct { -} - -func (m *MsgSetDelegationTransferReceiversResponse) Reset() { - *m = MsgSetDelegationTransferReceiversResponse{} -} -func (m *MsgSetDelegationTransferReceiversResponse) String() string { - return proto.CompactTextString(m) -} -func (*MsgSetDelegationTransferReceiversResponse) ProtoMessage() {} -func (*MsgSetDelegationTransferReceiversResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_7c861fb1c14863a5, []int{110} -} -func (m *MsgSetDelegationTransferReceiversResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgSetDelegationTransferReceiversResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgSetDelegationTransferReceiversResponse.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *MsgSetDelegationTransferReceiversResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSetDelegationTransferReceiversResponse.Merge(m, src) -} -func (m *MsgSetDelegationTransferReceiversResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgSetDelegationTransferReceiversResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSetDelegationTransferReceiversResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgSetDelegationTransferReceiversResponse proto.InternalMessageInfo - // MsgCancelPostOnlyMode defines a message for canceling post-only mode type MsgCancelPostOnlyMode struct { // the sender's Injective address @@ -5167,6 +5199,8 @@ func init() { proto.RegisterType((*MsgExternalTransferResponse)(nil), "injective.exchange.v2.MsgExternalTransferResponse") proto.RegisterType((*MsgLiquidatePosition)(nil), "injective.exchange.v2.MsgLiquidatePosition") proto.RegisterType((*MsgLiquidatePositionResponse)(nil), "injective.exchange.v2.MsgLiquidatePositionResponse") + proto.RegisterType((*MsgOffsetPosition)(nil), "injective.exchange.v2.MsgOffsetPosition") + proto.RegisterType((*MsgOffsetPositionResponse)(nil), "injective.exchange.v2.MsgOffsetPositionResponse") proto.RegisterType((*MsgEmergencySettleMarket)(nil), "injective.exchange.v2.MsgEmergencySettleMarket") proto.RegisterType((*MsgEmergencySettleMarketResponse)(nil), "injective.exchange.v2.MsgEmergencySettleMarketResponse") proto.RegisterType((*MsgIncreasePositionMargin)(nil), "injective.exchange.v2.MsgIncreasePositionMargin") @@ -5219,8 +5253,6 @@ func init() { proto.RegisterType((*MsgFeeDiscountResponse)(nil), "injective.exchange.v2.MsgFeeDiscountResponse") proto.RegisterType((*MsgAtomicMarketOrderFeeMultiplierSchedule)(nil), "injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierSchedule") proto.RegisterType((*MsgAtomicMarketOrderFeeMultiplierScheduleResponse)(nil), "injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse") - proto.RegisterType((*MsgSetDelegationTransferReceivers)(nil), "injective.exchange.v2.MsgSetDelegationTransferReceivers") - proto.RegisterType((*MsgSetDelegationTransferReceiversResponse)(nil), "injective.exchange.v2.MsgSetDelegationTransferReceiversResponse") proto.RegisterType((*MsgCancelPostOnlyMode)(nil), "injective.exchange.v2.MsgCancelPostOnlyMode") proto.RegisterType((*MsgCancelPostOnlyModeResponse)(nil), "injective.exchange.v2.MsgCancelPostOnlyModeResponse") } @@ -5228,319 +5260,335 @@ func init() { func init() { proto.RegisterFile("injective/exchange/v2/tx.proto", fileDescriptor_7c861fb1c14863a5) } var fileDescriptor_7c861fb1c14863a5 = []byte{ - // 4992 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x4b, 0x6c, 0x1c, 0xc9, - 0x75, 0x6a, 0xf1, 0x5f, 0xfc, 0x48, 0x6c, 0x52, 0xd2, 0x68, 0xf8, 0x13, 0x9b, 0xfa, 0x52, 0x22, - 0x47, 0xe4, 0x4a, 0x5a, 0xed, 0xd0, 0x92, 0x96, 0x14, 0xc5, 0x2c, 0xbd, 0x1a, 0x8b, 0x9a, 0x91, - 0xe3, 0xec, 0xc6, 0xc6, 0xa0, 0xd9, 0x5d, 0x1c, 0xb6, 0x39, 0xd3, 0x3d, 0xdb, 0xdd, 0x43, 0x89, - 0x7b, 0x48, 0x6c, 0x23, 0xb0, 0x15, 0x07, 0x01, 0x0c, 0x04, 0x09, 0x10, 0x20, 0x01, 0x9c, 0x04, - 0x49, 0x10, 0x27, 0x40, 0xd6, 0x49, 0x80, 0x38, 0x09, 0x02, 0x03, 0x01, 0x0c, 0x18, 0xc9, 0x65, - 0xf3, 0x03, 0x82, 0x3d, 0x28, 0xc6, 0xee, 0x61, 0x03, 0xe7, 0x96, 0x63, 0x72, 0x09, 0xba, 0xaa, - 0xba, 0xa6, 0x3f, 0x55, 0xd5, 0xdd, 0x23, 0xd2, 0x5e, 0x1b, 0xbe, 0xec, 0xb2, 0xab, 0xde, 0x7b, - 0x55, 0xef, 0xd5, 0xfb, 0x54, 0xbd, 0x7a, 0x35, 0x02, 0xd3, 0x86, 0xf9, 0x45, 0xa8, 0xb9, 0xc6, - 0x3e, 0x2c, 0xc0, 0x67, 0xda, 0xae, 0x6a, 0xd6, 0x60, 0x61, 0x7f, 0xb9, 0xe0, 0x3e, 0x5b, 0x6c, - 0xda, 0x96, 0x6b, 0xc9, 0xa7, 0x68, 0xff, 0xa2, 0xdf, 0xbf, 0xb8, 0xbf, 0x9c, 0x9f, 0xd6, 0x2c, - 0xa7, 0x61, 0x39, 0x85, 0x6d, 0xd5, 0x81, 0x85, 0xfd, 0xa5, 0x6d, 0xe8, 0xaa, 0x4b, 0x05, 0xcd, - 0x32, 0x4c, 0x8c, 0x96, 0x5f, 0x24, 0xfd, 0xba, 0xe1, 0xb8, 0xb6, 0xb1, 0xdd, 0x72, 0x0d, 0xcb, - 0xa4, 0x70, 0xc1, 0x46, 0x02, 0x7f, 0x86, 0xc0, 0x37, 0x9c, 0x5a, 0x61, 0x7f, 0xc9, 0xfb, 0x1f, - 0xe9, 0x38, 0x8b, 0x3b, 0xaa, 0xe8, 0xab, 0x80, 0x3f, 0x48, 0xd7, 0x78, 0xcd, 0xaa, 0x59, 0xb8, - 0xdd, 0xfb, 0x8b, 0xb4, 0x9e, 0x67, 0x33, 0x44, 0x27, 0x8f, 0xa1, 0x66, 0xd9, 0x50, 0x96, 0xad, - 0x43, 0x9b, 0x80, 0x28, 0x6c, 0x90, 0x86, 0x6a, 0xef, 0x41, 0x57, 0x3c, 0x58, 0xd3, 0xb6, 0x9a, - 0x96, 0xa3, 0xd6, 0x09, 0xd4, 0x85, 0x36, 0x94, 0x65, 0xab, 0x5a, 0xbd, 0x2d, 0x31, 0xfc, 0x49, - 0xc0, 0x46, 0xd5, 0x86, 0x61, 0x5a, 0x05, 0xf4, 0x5f, 0xdc, 0xa4, 0xfc, 0x41, 0x17, 0x18, 0x2b, - 0x39, 0xb5, 0xcf, 0x36, 0x75, 0xd5, 0x85, 0x95, 0xa6, 0xe5, 0x96, 0xd0, 0xe8, 0xf2, 0x38, 0xe8, - 0x51, 0xf5, 0x86, 0x61, 0xe6, 0xa4, 0x73, 0xd2, 0xe5, 0x81, 0x32, 0xfe, 0x90, 0x27, 0xc0, 0x00, - 0x9e, 0x5d, 0xd5, 0xd0, 0x73, 0xc7, 0x51, 0x4f, 0x3f, 0x6e, 0xd8, 0xd4, 0xe5, 0x29, 0x00, 0x4c, - 0xf8, 0xb4, 0xea, 0x1a, 0xda, 0x1e, 0xb4, 0x73, 0x5d, 0xa8, 0x77, 0xc0, 0x84, 0x4f, 0x9f, 0xa0, - 0x06, 0xf9, 0x2d, 0x70, 0xc6, 0xeb, 0x6e, 0x18, 0x66, 0xb5, 0x69, 0x1b, 0x1a, 0x44, 0x80, 0x55, - 0xc7, 0x78, 0x17, 0xe6, 0xba, 0x3d, 0xd8, 0xb5, 0xb9, 0xef, 0xbf, 0x98, 0x39, 0xf6, 0xc1, 0x8b, - 0x99, 0x09, 0xbc, 0x06, 0x8e, 0xbe, 0xb7, 0x68, 0x58, 0x85, 0x86, 0xea, 0xee, 0x2e, 0x3e, 0x84, - 0x35, 0x55, 0x3b, 0x58, 0x87, 0x5a, 0x79, 0xcc, 0x84, 0x4f, 0x4b, 0x86, 0xb9, 0xe5, 0x51, 0xf0, - 0x08, 0x57, 0x8c, 0x77, 0xa1, 0x5c, 0x05, 0x79, 0x9f, 0xf4, 0x3b, 0x2d, 0xd5, 0x74, 0x0d, 0xf7, - 0x20, 0x40, 0xbd, 0x27, 0x3d, 0xf5, 0xd3, 0x98, 0xfa, 0x63, 0x42, 0x84, 0x0e, 0x50, 0x02, 0x27, - 0xfd, 0x01, 0x4c, 0xcb, 0x53, 0x2a, 0xb5, 0x9e, 0xeb, 0x4d, 0x4f, 0x76, 0x04, 0x93, 0xfd, 0x0c, - 0x41, 0x2d, 0x16, 0xfe, 0xeb, 0x9b, 0x33, 0xc7, 0xbe, 0xf2, 0xf1, 0x7b, 0xf3, 0x58, 0xac, 0x5f, - 0xff, 0xf8, 0xbd, 0xf9, 0x49, 0xba, 0xba, 0x8c, 0xd5, 0x50, 0xa6, 0xc0, 0x04, 0xa3, 0xb9, 0x0c, - 0x9d, 0xa6, 0x65, 0x3a, 0x50, 0xf9, 0xd7, 0x1e, 0x70, 0x96, 0xf6, 0xaf, 0x43, 0xdb, 0xd8, 0x57, - 0x3d, 0x5d, 0xf8, 0xd9, 0x52, 0x1e, 0xf9, 0x52, 0xca, 0x9f, 0x07, 0x39, 0x8f, 0x9c, 0x61, 0x1a, - 0xae, 0xa1, 0xd6, 0xab, 0x0d, 0xd5, 0xae, 0x19, 0x66, 0xd5, 0x56, 0x5d, 0xc3, 0xca, 0xf5, 0xa5, - 0x27, 0x7b, 0xca, 0x84, 0x4f, 0x37, 0x31, 0x8d, 0x12, 0x22, 0x51, 0xf6, 0x28, 0xc8, 0x3a, 0x98, - 0x44, 0x93, 0x55, 0x0d, 0xd3, 0x85, 0xa6, 0x6a, 0x6a, 0x30, 0x3c, 0x42, 0x7f, 0xfa, 0x11, 0xce, - 0x7a, 0x13, 0x6f, 0xd3, 0x09, 0x8e, 0xf2, 0x36, 0x5e, 0x4e, 0x1b, 0xea, 0xad, 0xe8, 0x00, 0x03, - 0xe9, 0x07, 0x18, 0x37, 0xe1, 0xd3, 0x32, 0x22, 0x11, 0xa0, 0x5d, 0x7c, 0xed, 0xf9, 0x37, 0x67, - 0x8e, 0xc5, 0xd5, 0x5d, 0x89, 0xab, 0x7b, 0x54, 0x6f, 0x95, 0x39, 0x30, 0xcb, 0xed, 0xa4, 0xaa, - 0xff, 0x97, 0x12, 0x38, 0x41, 0xa1, 0xb6, 0x54, 0x5b, 0x6d, 0x38, 0xf2, 0x2d, 0x30, 0xa0, 0xb6, - 0xdc, 0x5d, 0xcb, 0x36, 0xdc, 0x03, 0xac, 0xf4, 0x6b, 0xb9, 0x7f, 0xf9, 0xab, 0x85, 0x71, 0xe2, - 0xdb, 0x57, 0x75, 0xdd, 0x86, 0x8e, 0x53, 0x71, 0x6d, 0xc3, 0xac, 0x95, 0xdb, 0xa0, 0xf2, 0x0a, - 0xe8, 0x6d, 0x22, 0x0a, 0xc8, 0x1e, 0x06, 0x97, 0xa7, 0x16, 0x99, 0xa1, 0x69, 0x11, 0x0f, 0xb3, - 0xd6, 0xed, 0x49, 0xa5, 0x4c, 0x50, 0x8a, 0x57, 0x3d, 0x06, 0xdb, 0xc4, 0x3c, 0x26, 0x73, 0x71, - 0x26, 0x31, 0xaa, 0x72, 0x16, 0x9c, 0x89, 0x34, 0x51, 0x86, 0xfe, 0x5c, 0x02, 0xa0, 0xe4, 0xd4, - 0xd6, 0x61, 0xd3, 0x72, 0x0c, 0x57, 0x3e, 0x0d, 0x7a, 0x1d, 0x68, 0xea, 0xd0, 0x26, 0xd6, 0x4b, - 0xbe, 0xe4, 0x39, 0x30, 0xec, 0xb4, 0xb6, 0x55, 0x4d, 0xb3, 0x5a, 0x66, 0xc0, 0x84, 0x87, 0xda, - 0x8d, 0x9b, 0xba, 0xfc, 0x2a, 0xe8, 0x55, 0x1b, 0xde, 0xdf, 0xc8, 0x84, 0x07, 0x97, 0xcf, 0x92, - 0xa0, 0xb9, 0xe8, 0x05, 0xd5, 0x45, 0x12, 0x22, 0x16, 0xef, 0x5b, 0x86, 0xe9, 0x33, 0x83, 0xc1, - 0x8b, 0x57, 0x83, 0xab, 0x46, 0x86, 0xf4, 0x38, 0x1a, 0x0b, 0x72, 0x44, 0xa6, 0xa8, 0x8c, 0x03, - 0xb9, 0xfd, 0x45, 0xf9, 0xf8, 0xb6, 0x04, 0x06, 0x4b, 0x4e, 0xed, 0x73, 0x86, 0xbb, 0xab, 0xdb, - 0xea, 0xd3, 0x1f, 0x13, 0x23, 0xd7, 0x38, 0x8c, 0x8c, 0x07, 0x19, 0xf1, 0xe7, 0xa8, 0x9c, 0x42, - 0xb1, 0xd0, 0xff, 0xa4, 0xac, 0xfc, 0x89, 0x84, 0x96, 0xeb, 0xbe, 0x0d, 0x89, 0xfb, 0x7d, 0x68, - 0x34, 0x0c, 0xf7, 0x91, 0x17, 0xc9, 0xb9, 0x6c, 0x7d, 0x0a, 0xf4, 0xa0, 0x50, 0x4f, 0x54, 0xe9, - 0x1c, 0x47, 0x95, 0x3c, 0x6a, 0x88, 0x10, 0x99, 0x37, 0x46, 0x2a, 0xde, 0xe6, 0x4c, 0xfb, 0x5c, - 0x70, 0xda, 0xac, 0xf9, 0x28, 0x9f, 0x07, 0x33, 0x9c, 0x2e, 0x9f, 0x1d, 0xcf, 0xb9, 0xa3, 0x51, - 0xaa, 0xbb, 0xaa, 0xb3, 0x4b, 0xa6, 0x3d, 0x80, 0x5a, 0xde, 0x50, 0x9d, 0x5d, 0xf9, 0x24, 0xe8, - 0xd2, 0xe8, 0x32, 0x78, 0x7f, 0x16, 0xfb, 0xfd, 0xd9, 0x28, 0x7f, 0x2d, 0x81, 0xa9, 0x92, 0x53, - 0x5b, 0x53, 0x5d, 0x6d, 0x97, 0x35, 0x86, 0xc3, 0x95, 0xc7, 0x5d, 0xd0, 0x8b, 0x86, 0xf0, 0x6c, - 0xab, 0x2b, 0x83, 0x40, 0x08, 0x56, 0xf1, 0x2e, 0x47, 0x22, 0x17, 0x83, 0x12, 0xe1, 0xcf, 0x4b, - 0xf9, 0x0b, 0x09, 0x5c, 0x10, 0x42, 0x50, 0xf1, 0xcc, 0x82, 0xa1, 0xb6, 0x78, 0xa0, 0x93, 0x93, - 0xce, 0x75, 0x5d, 0x1e, 0x28, 0x0f, 0x52, 0x01, 0x41, 0x47, 0x5e, 0x04, 0x63, 0x1a, 0xa2, 0xa1, - 0x57, 0xf1, 0xf4, 0xaa, 0x9a, 0xa1, 0x63, 0xce, 0x06, 0xca, 0xa3, 0xa4, 0x0b, 0x93, 0xbd, 0x6f, - 0xe8, 0x8e, 0x7c, 0x0d, 0xc8, 0x3b, 0xaa, 0x51, 0x8f, 0x80, 0x77, 0x21, 0xf0, 0x93, 0xb8, 0xa7, - 0x0d, 0x1d, 0x10, 0xf7, 0xaf, 0x75, 0x83, 0x7c, 0xc9, 0xa9, 0x6d, 0x9a, 0x8e, 0xab, 0x9a, 0x6e, - 0x3b, 0xf0, 0x3f, 0x54, 0x5b, 0xa6, 0xb6, 0xcb, 0x95, 0xf5, 0x69, 0xd0, 0x4b, 0x22, 0x37, 0x5e, - 0x44, 0xf2, 0xe5, 0x2d, 0xbc, 0x67, 0x2f, 0x55, 0x1d, 0x9a, 0x56, 0xc3, 0x8f, 0xea, 0x5e, 0xcb, - 0xba, 0xd7, 0x20, 0xcf, 0x80, 0xc1, 0x77, 0x5a, 0x96, 0xeb, 0xf7, 0xa3, 0x48, 0x5e, 0x06, 0xa8, - 0x09, 0x03, 0x94, 0xc1, 0x18, 0x2b, 0xe4, 0x67, 0x08, 0xca, 0x27, 0x1b, 0xd1, 0x78, 0xff, 0x0b, - 0xe0, 0x34, 0x27, 0xd6, 0x67, 0x08, 0xca, 0xde, 0xb4, 0x62, 0x81, 0x7e, 0x03, 0x0c, 0x85, 0x82, - 0x7c, 0x86, 0x68, 0x3c, 0xd8, 0x08, 0x44, 0xf8, 0x39, 0x30, 0x4c, 0xa4, 0xa6, 0x19, 0x0d, 0xb5, - 0xee, 0xa0, 0xa0, 0x3b, 0x5c, 0x1e, 0xc2, 0x82, 0xc3, 0x6d, 0xf2, 0x05, 0x30, 0xe2, 0xcb, 0x8e, - 0x40, 0x0d, 0x20, 0xa8, 0x61, 0x22, 0x3e, 0xdc, 0x58, 0x5c, 0xe1, 0x68, 0xf1, 0x5c, 0x50, 0x8b, - 0x39, 0xcb, 0xad, 0x9c, 0x07, 0x0a, 0xbf, 0x97, 0x3a, 0xab, 0xaf, 0xf6, 0x23, 0x0f, 0x40, 0xc0, - 0xb6, 0xa0, 0xdd, 0x84, 0x6e, 0x0b, 0xed, 0x2a, 0x3a, 0x57, 0x9c, 0x88, 0x66, 0x74, 0xc5, 0x34, - 0x63, 0x06, 0x0c, 0xe2, 0x83, 0x46, 0xd5, 0x93, 0x8a, 0xaf, 0x3a, 0xb8, 0x69, 0x4d, 0xf5, 0x8d, - 0x0a, 0x01, 0x20, 0x2c, 0xac, 0x33, 0x65, 0x82, 0xf4, 0xd8, 0x6b, 0xf2, 0x8c, 0x8a, 0x80, 0x38, - 0x9a, 0x5a, 0x87, 0xd5, 0x1d, 0x55, 0x73, 0x2d, 0x1b, 0xa9, 0xc1, 0x70, 0x79, 0x14, 0x77, 0x55, - 0xbc, 0x9e, 0x0d, 0xd4, 0x21, 0x3f, 0xa0, 0x63, 0xba, 0x07, 0x4d, 0x88, 0x96, 0x77, 0x64, 0xf9, - 0x7c, 0xc0, 0xad, 0x90, 0xa3, 0x8f, 0x1f, 0x1d, 0x1e, 0xa1, 0xcf, 0x27, 0x07, 0x4d, 0xe8, 0xcf, - 0xcc, 0xfb, 0x5b, 0xde, 0x04, 0x23, 0x0d, 0x75, 0x0f, 0xda, 0xd5, 0x1d, 0x08, 0xbd, 0x4d, 0x0f, - 0xcc, 0xb2, 0xa9, 0x1a, 0x42, 0xa8, 0x1b, 0x10, 0x96, 0x55, 0x17, 0x91, 0x72, 0xc3, 0xa4, 0x32, - 0x6c, 0x9f, 0x86, 0xdc, 0x20, 0xa9, 0xcf, 0x82, 0x71, 0xe6, 0x96, 0x12, 0xa4, 0x27, 0x28, 0x1b, - 0xf1, 0xfd, 0xe4, 0x17, 0x40, 0x8e, 0xbb, 0x97, 0x1c, 0xcc, 0xb0, 0xb7, 0x6e, 0xb0, 0x37, 0x92, - 0x1c, 0x07, 0x31, 0x74, 0x34, 0x0e, 0x62, 0xf8, 0x90, 0x1d, 0xc4, 0x48, 0x87, 0x0e, 0xa2, 0x02, - 0xc6, 0x58, 0x5b, 0xe7, 0x13, 0xe9, 0xc9, 0x8d, 0xda, 0xb1, 0x7d, 0xf3, 0xeb, 0x1c, 0x4f, 0x71, - 0x99, 0xe1, 0x29, 0x98, 0x46, 0xae, 0x5c, 0x01, 0x97, 0x12, 0x40, 0xa8, 0xcf, 0xf8, 0xd5, 0x3e, - 0x30, 0xd7, 0x86, 0x5d, 0x33, 0x4c, 0xd5, 0x3e, 0x78, 0xd4, 0xf4, 0xd8, 0x73, 0x5e, 0xca, 0x6f, - 0xcc, 0x81, 0x61, 0xdf, 0xa4, 0x0f, 0x1a, 0xdb, 0x56, 0x9d, 0x78, 0x0e, 0xe2, 0x0a, 0x2a, 0xa8, - 0x4d, 0xbe, 0x04, 0x4e, 0x10, 0xa0, 0xa6, 0x6d, 0xed, 0x1b, 0x1e, 0x75, 0xec, 0x3f, 0x46, 0x70, - 0xf3, 0x16, 0x69, 0x8d, 0x1a, 0x7c, 0x4f, 0x87, 0x06, 0x9f, 0xd5, 0xcf, 0xc4, 0x1d, 0x44, 0xdf, - 0xe1, 0x39, 0x88, 0xfe, 0x4e, 0x1d, 0xc4, 0x12, 0x18, 0x87, 0xcf, 0x9a, 0x06, 0x52, 0x35, 0xb3, - 0xea, 0x1a, 0x0d, 0xe8, 0xb8, 0x6a, 0xa3, 0x89, 0x3c, 0x4e, 0x57, 0x79, 0xac, 0xdd, 0xf7, 0xc4, - 0xef, 0xf2, 0x50, 0x1c, 0xe8, 0xba, 0x75, 0xd8, 0x80, 0xa6, 0x1b, 0x40, 0x01, 0x18, 0xa5, 0xdd, - 0xd7, 0x46, 0xa1, 0xa9, 0x83, 0xc1, 0x60, 0xea, 0x20, 0x12, 0x0e, 0x86, 0xd2, 0x6e, 0x14, 0x86, - 0x8f, 0xc6, 0x0f, 0x8c, 0x1c, 0xb2, 0x1f, 0x38, 0xd1, 0x99, 0x1f, 0x28, 0xae, 0x73, 0x4c, 0xf6, - 0x1a, 0xc3, 0x64, 0xb9, 0x36, 0xa6, 0x2c, 0x80, 0xab, 0x29, 0xc0, 0xa8, 0xe9, 0xfe, 0x51, 0x7f, - 0xd0, 0x74, 0x1f, 0x78, 0xcb, 0x7e, 0xb0, 0xd1, 0x72, 0x5b, 0x36, 0x74, 0x3e, 0xf9, 0x21, 0x3f, - 0x62, 0xd1, 0xbd, 0x87, 0x6b, 0xd1, 0x7d, 0x3c, 0x8b, 0x3e, 0x0d, 0x7a, 0x91, 0x7d, 0x1c, 0x20, - 0xf3, 0xeb, 0x2a, 0x93, 0x2f, 0x86, 0xa5, 0x0f, 0x1c, 0x9e, 0xa5, 0x83, 0xc3, 0xde, 0x0a, 0x0c, - 0x1e, 0xdd, 0x56, 0x60, 0xe8, 0xc8, 0xb6, 0x02, 0x3f, 0xdd, 0x2e, 0x80, 0xb7, 0x15, 0x38, 0xf9, - 0x52, 0x5b, 0x81, 0x2c, 0x7e, 0x85, 0xeb, 0x00, 0xc2, 0x7e, 0x85, 0x0b, 0x46, 0xfd, 0xca, 0x9f, - 0x4a, 0x20, 0x17, 0x4a, 0x24, 0x60, 0xa8, 0xa3, 0x4c, 0x7a, 0xbc, 0xc6, 0xe1, 0x73, 0x96, 0x9d, - 0xf4, 0x08, 0x4c, 0x48, 0xf9, 0x33, 0x09, 0x9c, 0xe3, 0x75, 0xa6, 0xcd, 0x7b, 0x94, 0x40, 0x9f, - 0x0d, 0x9d, 0x56, 0xdd, 0xf5, 0xd3, 0x7f, 0x0b, 0x82, 0xe9, 0x87, 0xe9, 0x7b, 0x48, 0x88, 0x17, - 0xa9, 0xec, 0xd3, 0xf0, 0xd3, 0x28, 0x5d, 0xac, 0x34, 0xca, 0xbf, 0x4b, 0xe0, 0x34, 0x9b, 0x8a, - 0x7c, 0x0f, 0xf4, 0xfb, 0xfa, 0x4d, 0x52, 0x97, 0xa9, 0xd4, 0x86, 0x22, 0xc9, 0xaf, 0x81, 0x1e, - 0x64, 0x74, 0xd8, 0x9f, 0xa7, 0xc3, 0xc6, 0x18, 0xf2, 0x4d, 0xd0, 0xb5, 0x03, 0x21, 0x9e, 0x72, - 0x3a, 0x44, 0x0f, 0x3e, 0x9e, 0x1e, 0xc2, 0xcb, 0xd0, 0x4e, 0xd9, 0xa6, 0x48, 0x97, 0xad, 0x85, - 0x35, 0xe7, 0x22, 0x47, 0xf4, 0x6d, 0x9a, 0x0c, 0xfd, 0x29, 0x3e, 0x4f, 0x48, 0x0f, 0xf1, 0xe7, - 0xa5, 0x6c, 0xa3, 0xec, 0x10, 0x1f, 0xe0, 0x30, 0x92, 0x67, 0x7f, 0x1f, 0x54, 0xd2, 0x50, 0x64, - 0xff, 0x11, 0x09, 0xe8, 0x0e, 0x43, 0x40, 0x57, 0xe2, 0x02, 0xe2, 0x4c, 0x4d, 0x81, 0xe0, 0x72, - 0x12, 0xcc, 0x61, 0x88, 0xe9, 0x7b, 0x12, 0xda, 0xd1, 0x04, 0x32, 0x75, 0xac, 0x05, 0xe1, 0x67, - 0x1a, 0xd7, 0x23, 0x99, 0xc6, 0x6c, 0xa2, 0xf2, 0xf3, 0x8d, 0xaf, 0x3f, 0x4f, 0x70, 0xb8, 0x49, - 0xf3, 0x53, 0xbe, 0x23, 0x21, 0x8f, 0x9b, 0x04, 0xf7, 0x49, 0xcc, 0x3b, 0xbe, 0x2f, 0xa1, 0x94, - 0xfe, 0x7d, 0x2f, 0xa8, 0xd7, 0xa9, 0xb7, 0xe6, 0x4a, 0x5c, 0x78, 0x95, 0x18, 0xcb, 0xef, 0x77, - 0x31, 0xf2, 0xfb, 0x61, 0x75, 0xe9, 0xe6, 0xa8, 0x4b, 0x4f, 0x5b, 0x5d, 0x0a, 0x8c, 0xe5, 0x99, - 0x08, 0xa9, 0x72, 0x78, 0xee, 0xca, 0x24, 0xca, 0xa4, 0x46, 0x5a, 0x69, 0xb4, 0xfb, 0x43, 0x1c, - 0xed, 0xf0, 0x5a, 0x85, 0x61, 0xf8, 0x8a, 0x56, 0x04, 0xdd, 0xba, 0xea, 0xaa, 0x09, 0x09, 0x6d, - 0x44, 0x64, 0x5d, 0x75, 0x55, 0xa2, 0x60, 0x08, 0xa7, 0x78, 0xf3, 0x79, 0x42, 0x9c, 0x63, 0x4e, - 0x45, 0xd9, 0x40, 0x1e, 0x84, 0xd9, 0x47, 0xf5, 0x28, 0x07, 0xfa, 0x9c, 0x96, 0xa6, 0x41, 0x07, - 0xab, 0x50, 0x7f, 0xd9, 0xff, 0x0c, 0x3b, 0xea, 0xd9, 0x30, 0xa1, 0x90, 0x41, 0x1f, 0x21, 0xe3, - 0x77, 0x19, 0x8c, 0xcf, 0x73, 0x18, 0x67, 0xcc, 0x49, 0x79, 0x04, 0xae, 0x24, 0x02, 0x65, 0x12, - 0xc5, 0xbf, 0xf5, 0x81, 0x71, 0x9f, 0x22, 0xbe, 0x90, 0x4b, 0xe0, 0x3e, 0xd5, 0x85, 0xd5, 0x3d, - 0x30, 0xe5, 0x34, 0x2d, 0xb7, 0x4a, 0xed, 0xc2, 0xa9, 0xba, 0x56, 0x55, 0x43, 0x33, 0xae, 0xaa, - 0xf5, 0x3a, 0x31, 0xc2, 0x9c, 0x43, 0x77, 0x01, 0x9b, 0xba, 0xf3, 0xc4, 0xc2, 0x2c, 0xad, 0xd6, - 0xeb, 0xf2, 0x9b, 0x60, 0x4e, 0xa7, 0xee, 0x82, 0x4f, 0xa6, 0x1b, 0x91, 0x99, 0xd6, 0x23, 0xd7, - 0xa3, 0x11, 0x62, 0x6f, 0x81, 0x53, 0x68, 0x36, 0xc4, 0x0b, 0x50, 0x12, 0xb9, 0x9e, 0x0c, 0x2b, - 0x28, 0x95, 0x65, 0x87, 0x6a, 0x9b, 0x4f, 0x5d, 0x86, 0x60, 0x22, 0x30, 0xcf, 0xd8, 0x00, 0xbd, - 0x99, 0x06, 0xc8, 0xe9, 0x61, 0x9f, 0xdc, 0x1e, 0x86, 0xc1, 0x01, 0xf2, 0x76, 0xb9, 0xbe, 0x0c, - 0xb7, 0x49, 0x51, 0x0e, 0x10, 0x05, 0x79, 0x8f, 0xc7, 0x01, 0x1e, 0xa0, 0x3f, 0x73, 0x10, 0x61, - 0xf3, 0x81, 0x07, 0xab, 0x83, 0x99, 0x6d, 0xa4, 0xb0, 0x55, 0x0b, 0x6b, 0x6c, 0x5c, 0x64, 0x03, - 0x99, 0x44, 0x36, 0xb1, 0x1d, 0xd7, 0x7f, 0x2a, 0xb5, 0x32, 0xb8, 0x14, 0x19, 0x8d, 0xab, 0x48, - 0x00, 0x29, 0xd2, 0xec, 0x76, 0x3c, 0xe1, 0x10, 0xd1, 0x25, 0x5b, 0xc4, 0x01, 0x16, 0xd9, 0x60, - 0x07, 0x22, 0xe3, 0xf0, 0x81, 0x08, 0x16, 0x97, 0x18, 0x4e, 0x63, 0x2a, 0xe6, 0x34, 0x82, 0xd6, - 0xab, 0x3c, 0xef, 0x05, 0x93, 0xac, 0x0e, 0xea, 0x1b, 0x16, 0xc1, 0x18, 0xd2, 0x28, 0x22, 0x83, - 0xb0, 0x9f, 0x18, 0xf5, 0xba, 0x88, 0x87, 0xc5, 0x1d, 0x72, 0x11, 0x9c, 0x0d, 0xa8, 0x49, 0x04, - 0xeb, 0x38, 0xc2, 0x3a, 0xd3, 0x06, 0x08, 0xe3, 0xce, 0x83, 0xd1, 0xb6, 0xf6, 0xfa, 0xf1, 0x1d, - 0x7b, 0x80, 0x13, 0x54, 0x23, 0x49, 0x8c, 0xbf, 0x05, 0xce, 0x44, 0xd5, 0xd1, 0xc7, 0xc0, 0xc6, - 0x7e, 0x2a, 0xa2, 0x5c, 0x04, 0x6f, 0x15, 0x4c, 0x45, 0xd6, 0x25, 0x32, 0xc7, 0x1e, 0x34, 0xc7, - 0x7c, 0x48, 0xce, 0xe1, 0x69, 0xde, 0x01, 0x13, 0xac, 0xa5, 0xf5, 0x87, 0xef, 0xc5, 0x2e, 0x2b, - 0xbe, 0x50, 0x64, 0x06, 0xaf, 0x82, 0x9c, 0xbf, 0x3b, 0x09, 0xda, 0x2a, 0xda, 0x73, 0xf4, 0xe1, - 0xa9, 0x93, 0xfe, 0x76, 0xd4, 0x42, 0xdb, 0x94, 0x9b, 0xe0, 0x0c, 0xd9, 0xa6, 0xc4, 0xf0, 0xfa, - 0x11, 0xde, 0x38, 0xee, 0x8e, 0xa0, 0xdd, 0x07, 0xd3, 0xfe, 0x78, 0x71, 0x03, 0x46, 0xd8, 0x03, - 0x08, 0x7b, 0x82, 0x40, 0x45, 0x14, 0x0f, 0x13, 0x59, 0x05, 0x53, 0x64, 0x6c, 0x0e, 0x0d, 0x6c, - 0x18, 0x79, 0x0c, 0xc4, 0x24, 0xf1, 0x69, 0xa0, 0xf8, 0xf3, 0x60, 0x5b, 0x06, 0xa2, 0x33, 0x88, - 0x3d, 0x35, 0x81, 0x64, 0x44, 0x2d, 0x44, 0xeb, 0x0d, 0x30, 0x4b, 0xa6, 0x23, 0x20, 0x35, 0x84, - 0x48, 0x91, 0x79, 0x73, 0x28, 0x05, 0x22, 0xdc, 0xdf, 0x48, 0x60, 0x9a, 0x71, 0xb8, 0x49, 0x73, - 0xa0, 0x3f, 0x8c, 0x53, 0xc7, 0x0a, 0xc3, 0x78, 0x2f, 0x89, 0x8e, 0x65, 0xc1, 0x83, 0xfd, 0x77, - 0x24, 0x70, 0x51, 0x0c, 0x92, 0xf6, 0xc8, 0x51, 0x89, 0x1e, 0xef, 0x5f, 0x49, 0x64, 0xe6, 0xe5, - 0x0e, 0xf9, 0xff, 0x7d, 0x1c, 0x4c, 0x8a, 0x68, 0xfd, 0x04, 0x1e, 0xf5, 0xe5, 0xc7, 0x60, 0x04, - 0x55, 0xf9, 0x18, 0x96, 0x59, 0xd5, 0x61, 0xdd, 0x55, 0xd1, 0x5e, 0x7d, 0x30, 0x94, 0xb3, 0x0d, - 0x55, 0x4a, 0x11, 0xe0, 0x75, 0x0f, 0x96, 0xa8, 0xc5, 0x70, 0x33, 0xd8, 0x88, 0x8b, 0xae, 0x0e, - 0xac, 0x96, 0x9b, 0xa5, 0x8e, 0x80, 0xa0, 0x04, 0xa4, 0xfd, 0x5d, 0xbc, 0xa3, 0x65, 0x9c, 0x4e, - 0x7f, 0x54, 0x7a, 0x9e, 0xb8, 0xb3, 0x15, 0xcf, 0x4d, 0xf9, 0x3b, 0x09, 0x6d, 0x6d, 0xc5, 0x50, - 0x9f, 0x58, 0x6d, 0xff, 0x3f, 0x92, 0x2f, 0x44, 0x01, 0x25, 0x22, 0xa7, 0x1f, 0xdf, 0xc1, 0x91, - 0x76, 0x37, 0x54, 0x67, 0x0f, 0x29, 0x58, 0x0f, 0xe9, 0x2e, 0xa9, 0xce, 0x9e, 0xcf, 0x50, 0x6f, - 0x9b, 0xa1, 0xc4, 0x73, 0x19, 0x93, 0x41, 0x45, 0xc1, 0x99, 0x1d, 0x56, 0x1f, 0x3d, 0x63, 0x7e, - 0xf9, 0x38, 0x2a, 0xe2, 0xe5, 0x9d, 0x5a, 0x7e, 0x82, 0x84, 0x74, 0x9b, 0x21, 0xa4, 0xf3, 0x71, - 0x21, 0xc5, 0x79, 0x54, 0x2e, 0xa0, 0xd4, 0x0e, 0xaf, 0x9b, 0x8a, 0xea, 0x77, 0x25, 0x30, 0x40, - 0x37, 0xba, 0x61, 0x01, 0x48, 0x49, 0x02, 0x38, 0x9e, 0x28, 0x80, 0x2e, 0xb1, 0x00, 0xba, 0x39, - 0x02, 0x68, 0x67, 0x1f, 0x94, 0x6f, 0xe3, 0x88, 0x1a, 0x38, 0x85, 0x46, 0x37, 0x06, 0x47, 0x72, - 0x76, 0x4e, 0x8c, 0xa4, 0x82, 0x09, 0x29, 0x0f, 0x51, 0x20, 0x15, 0x40, 0x64, 0x3a, 0x35, 0x7f, - 0xf5, 0x38, 0x38, 0x55, 0x72, 0x6a, 0x15, 0x2a, 0xe5, 0x27, 0xb6, 0x6a, 0x3a, 0x3b, 0x02, 0x35, - 0xbe, 0x0e, 0xc6, 0x1d, 0xab, 0x65, 0x6b, 0xb0, 0xca, 0x5a, 0x2f, 0x19, 0xf7, 0x55, 0x82, 0xab, - 0x86, 0x76, 0xdc, 0x8e, 0x6b, 0x98, 0xf8, 0x8e, 0x9b, 0xa5, 0xe7, 0x67, 0x02, 0x00, 0x15, 0x76, - 0xc1, 0x68, 0x77, 0xb6, 0x82, 0xd1, 0xc5, 0x88, 0x7c, 0xa7, 0x83, 0xf2, 0x8d, 0xb3, 0xab, 0xcc, - 0xa0, 0x8c, 0x77, 0xbc, 0x83, 0xea, 0xf2, 0x57, 0x8e, 0xa3, 0xa2, 0xd2, 0x07, 0xcf, 0x5c, 0x68, - 0x9b, 0x6a, 0xfd, 0xa7, 0x45, 0x4e, 0xd7, 0x22, 0x72, 0x0a, 0xbd, 0x5f, 0x88, 0x32, 0x4b, 0xde, - 0x2f, 0x44, 0x9b, 0xa9, 0x8c, 0x3e, 0x92, 0x50, 0x0e, 0xe6, 0xa1, 0xf1, 0x4e, 0xcb, 0x40, 0x25, - 0xd1, 0x64, 0x87, 0xf0, 0x72, 0x39, 0x98, 0x90, 0xdf, 0xe8, 0x8a, 0xf8, 0x0d, 0x1a, 0xf1, 0xbb, - 0x33, 0x47, 0x7c, 0xc9, 0x8f, 0xf8, 0x0b, 0xa2, 0x23, 0x69, 0x8c, 0x19, 0x65, 0x1a, 0x9d, 0x48, - 0x63, 0xed, 0x54, 0x0a, 0x7f, 0x8c, 0x43, 0xe8, 0x83, 0x06, 0xb4, 0x6b, 0xd0, 0xd4, 0x0e, 0x2a, - 0xa8, 0x20, 0x83, 0x3c, 0xe2, 0x38, 0x32, 0x49, 0x14, 0x97, 0x44, 0xe1, 0x8e, 0x39, 0x19, 0x12, - 0xee, 0x98, 0x7d, 0xed, 0x3a, 0xf6, 0xe3, 0xe8, 0x4d, 0xca, 0xa6, 0xe9, 0x9d, 0x78, 0x1c, 0xca, - 0x2d, 0xbe, 0xd8, 0xfc, 0x84, 0x68, 0x7f, 0x48, 0x2e, 0xdd, 0x11, 0x0d, 0x59, 0xa1, 0xa6, 0x91, - 0x65, 0x63, 0x4a, 0xcc, 0x63, 0x39, 0x22, 0x54, 0x25, 0x7c, 0x57, 0xcb, 0x92, 0x09, 0x79, 0xef, - 0xc0, 0xee, 0x8c, 0x8a, 0x75, 0x1d, 0xfe, 0x4c, 0xac, 0x51, 0xb1, 0xb2, 0x65, 0x42, 0xc4, 0xca, - 0xee, 0xa4, 0x62, 0xfd, 0x47, 0x09, 0x19, 0xe7, 0x96, 0x6d, 0xec, 0x1b, 0x75, 0x58, 0x83, 0xfa, - 0x83, 0x67, 0x50, 0x6b, 0xb9, 0xf0, 0xbe, 0x65, 0xba, 0xb6, 0xaa, 0xf1, 0xed, 0x6f, 0x1c, 0xf4, - 0xec, 0xb4, 0x4c, 0xdd, 0x21, 0xa2, 0xc4, 0x1f, 0xf2, 0x15, 0x70, 0x52, 0x23, 0x98, 0x55, 0x15, - 0x3f, 0x37, 0x21, 0x42, 0x3b, 0xe1, 0xb7, 0x93, 0x57, 0x28, 0xb2, 0x4c, 0x36, 0x04, 0x58, 0x4e, - 0x38, 0xd0, 0xdf, 0xe1, 0xdc, 0x84, 0x5f, 0x08, 0xb2, 0xcb, 0x9d, 0xab, 0xe7, 0x48, 0xce, 0x8b, - 0x00, 0x68, 0xa4, 0xff, 0x22, 0x00, 0x68, 0xbe, 0x55, 0xdd, 0xd8, 0xd9, 0x41, 0xc1, 0x5e, 0x18, - 0x01, 0xae, 0x7b, 0x4b, 0xf5, 0xad, 0xff, 0x9c, 0xb9, 0x5c, 0x33, 0xdc, 0xdd, 0xd6, 0xf6, 0xa2, - 0x66, 0x35, 0xc8, 0x7b, 0x49, 0xf2, 0xbf, 0x05, 0x47, 0xdf, 0x2b, 0xb8, 0x07, 0x4d, 0xe8, 0x20, - 0x04, 0xa7, 0x3c, 0x80, 0xc8, 0xaf, 0x1b, 0x3b, 0x3b, 0xc5, 0x31, 0x06, 0x4f, 0xca, 0x17, 0xc0, - 0xc9, 0x92, 0x53, 0x2b, 0xc3, 0xa7, 0xaa, 0xad, 0x3b, 0x8f, 0x9a, 0xee, 0xa3, 0x16, 0x57, 0xd2, - 0x38, 0x09, 0xc8, 0x10, 0xca, 0xd9, 0xa0, 0x50, 0x42, 0xa4, 0x94, 0x3c, 0x72, 0xa8, 0xa1, 0xb6, - 0xe0, 0x3b, 0x9b, 0x53, 0xa8, 0x53, 0xab, 0xab, 0x46, 0xe3, 0xa1, 0xa5, 0xed, 0x41, 0x7d, 0x03, - 0x2d, 0x1e, 0xdf, 0x88, 0xc6, 0xea, 0x08, 0x6c, 0x15, 0x6b, 0xfa, 0x56, 0x6b, 0xfb, 0x4d, 0x78, - 0x80, 0x16, 0x7e, 0xa8, 0xcc, 0xea, 0x92, 0x27, 0xc1, 0x80, 0x63, 0xd4, 0x4c, 0xd5, 0x6d, 0xd9, - 0xf8, 0xac, 0x3d, 0x54, 0x6e, 0x37, 0x88, 0xb7, 0x1a, 0xf1, 0x79, 0x91, 0xad, 0x46, 0xbc, 0x83, - 0xb2, 0xf4, 0x25, 0xfc, 0xe4, 0xa6, 0x62, 0xd4, 0x4c, 0xb4, 0x71, 0xae, 0x80, 0x5e, 0xef, 0x6f, - 0xc2, 0xc8, 0xd0, 0xda, 0xca, 0x0f, 0x5f, 0xcc, 0xf4, 0x3a, 0xa8, 0xe5, 0x7f, 0x5f, 0xcc, 0x2c, - 0xa4, 0x58, 0xc5, 0x55, 0x4d, 0x23, 0x7a, 0x5a, 0x26, 0xa4, 0xe4, 0x49, 0xd0, 0xbd, 0x8e, 0x37, - 0xb0, 0x1e, 0xc9, 0xfe, 0x1f, 0xbe, 0x98, 0x41, 0x3a, 0x5b, 0x46, 0xad, 0x8a, 0x83, 0x1e, 0x2f, - 0xa1, 0x19, 0x58, 0x9a, 0x7c, 0x01, 0xf3, 0x8f, 0xab, 0xbb, 0x70, 0x8a, 0x03, 0x21, 0x78, 0xdf, - 0xe5, 0x7e, 0xaf, 0x0b, 0xd5, 0x6f, 0xdd, 0x05, 0x3d, 0xfb, 0x6a, 0xbd, 0x05, 0xc9, 0x51, 0x55, - 0xe1, 0xc4, 0xe2, 0x00, 0x6b, 0xfe, 0xc9, 0x1b, 0xa1, 0x29, 0x5f, 0xeb, 0x42, 0x26, 0xbe, 0xaa, - 0x37, 0x0c, 0x13, 0xe7, 0x7a, 0x19, 0xc7, 0xe7, 0xce, 0xce, 0x57, 0x9f, 0x01, 0x27, 0x03, 0x35, - 0x93, 0x38, 0xdb, 0xd2, 0x4e, 0x9a, 0x48, 0x49, 0x7e, 0xeb, 0x44, 0x1b, 0x19, 0x95, 0x32, 0x71, - 0xcb, 0x36, 0xbb, 0xb3, 0x97, 0x6d, 0xf6, 0xf0, 0xcb, 0x36, 0x57, 0x40, 0xaf, 0xe3, 0xaa, 0x6e, - 0xcb, 0x21, 0x25, 0x75, 0x73, 0x3c, 0x89, 0x22, 0x36, 0x2b, 0x08, 0xb4, 0x4c, 0x50, 0x8a, 0x45, - 0x51, 0x0e, 0x43, 0x2c, 0x63, 0xe5, 0x2a, 0x4a, 0x61, 0x88, 0x81, 0xda, 0xa5, 0x8b, 0xf8, 0x59, - 0xd5, 0x2a, 0x7e, 0x32, 0xf7, 0x2e, 0xac, 0xb8, 0xea, 0x1e, 0xfc, 0x39, 0x5b, 0x35, 0x5d, 0xbe, - 0x0d, 0xae, 0x82, 0xde, 0x1a, 0x82, 0x20, 0x07, 0xa8, 0x2b, 0x1c, 0xce, 0x10, 0x19, 0x9f, 0x32, - 0x12, 0x68, 0x99, 0x20, 0x16, 0xaf, 0x8b, 0xde, 0x54, 0xb1, 0x26, 0xa3, 0xcc, 0xa2, 0x17, 0x15, - 0xac, 0x2e, 0xca, 0xcb, 0x01, 0x72, 0x26, 0xab, 0xde, 0x44, 0x54, 0x37, 0x00, 0xc1, 0x65, 0x24, - 0x07, 0xfa, 0xd0, 0x7c, 0x68, 0xe1, 0xa5, 0xff, 0x29, 0x76, 0x0b, 0xf1, 0x11, 0x88, 0x5b, 0x88, - 0x77, 0xd0, 0xb9, 0xfd, 0x93, 0xd4, 0xbe, 0x0a, 0x79, 0x40, 0x68, 0x95, 0x2c, 0xdd, 0xd8, 0x31, - 0x34, 0x55, 0xb8, 0xcb, 0x7e, 0x02, 0xfa, 0xfd, 0x77, 0xe6, 0xc4, 0x34, 0x6f, 0x73, 0xc4, 0xcd, - 0xa5, 0xbd, 0x45, 0xf0, 0xcb, 0x94, 0x52, 0xba, 0xe0, 0xc6, 0x25, 0xa8, 0x5c, 0x44, 0xb1, 0x8d, - 0xdb, 0x4f, 0xb9, 0x7e, 0x4f, 0x42, 0xe7, 0xae, 0xd4, 0x8f, 0xa6, 0xde, 0x8c, 0x31, 0x5b, 0x48, - 0xac, 0xff, 0xc2, 0x24, 0x19, 0x3c, 0xde, 0xe0, 0xf0, 0x18, 0x3a, 0x25, 0xc5, 0x1e, 0xf8, 0xe0, - 0x53, 0x12, 0xf7, 0x65, 0xcf, 0x77, 0xf1, 0xf9, 0x20, 0xdb, 0x93, 0x9e, 0xad, 0x18, 0x5b, 0x37, - 0x78, 0xb9, 0x5a, 0x16, 0x5d, 0x06, 0x6f, 0xa9, 0xca, 0xf4, 0xd8, 0x4f, 0x12, 0xf0, 0xb9, 0x41, - 0xfc, 0x16, 0x81, 0x68, 0x6b, 0xf6, 0x4a, 0xe6, 0xf4, 0xda, 0xca, 0xa5, 0xdd, 0xa9, 0xb6, 0xf2, - 0xab, 0x2e, 0xb1, 0xb6, 0x26, 0x97, 0x5b, 0xfa, 0x36, 0x9a, 0xf9, 0xe9, 0x45, 0x06, 0x1b, 0xe5, - 0xd1, 0xee, 0xd8, 0x46, 0xb9, 0x35, 0xec, 0xc4, 0x46, 0x13, 0x8b, 0xd7, 0xbf, 0x27, 0xa1, 0xaa, - 0x1c, 0x9c, 0x94, 0xb2, 0x1a, 0x8d, 0x96, 0x69, 0xb8, 0x07, 0x5b, 0x96, 0x55, 0xaf, 0x34, 0xa1, - 0xa9, 0x73, 0x79, 0x2e, 0xc7, 0x78, 0xbe, 0x25, 0xf2, 0x4b, 0x71, 0xca, 0x0c, 0x8e, 0x53, 0xbd, - 0xcc, 0xe3, 0x90, 0x23, 0x2f, 0xf3, 0x38, 0xbd, 0x51, 0xfb, 0x6d, 0xdb, 0x37, 0x7a, 0xf9, 0x8d, - 0xe3, 0xe4, 0x21, 0xd8, 0x2f, 0x93, 0x6e, 0xa7, 0xf6, 0xcb, 0x24, 0x46, 0xec, 0x97, 0xd9, 0x47, - 0xb9, 0xfc, 0x67, 0x9c, 0x1b, 0x8d, 0xde, 0x2b, 0xa4, 0xe1, 0xf5, 0xe7, 0x63, 0xbc, 0x16, 0x53, - 0xde, 0x5a, 0x88, 0x39, 0xbe, 0xc7, 0xe1, 0xf8, 0x52, 0xf8, 0xf4, 0xc8, 0x25, 0xa9, 0x5c, 0x46, - 0xb9, 0x53, 0x01, 0x04, 0xe5, 0xfe, 0x03, 0x52, 0x58, 0x15, 0x57, 0xfd, 0x34, 0x02, 0x78, 0x2b, - 0x26, 0x80, 0x3b, 0xe9, 0x8d, 0x59, 0x2c, 0x83, 0x35, 0x8e, 0x0c, 0xe6, 0x13, 0x2c, 0x3a, 0x28, - 0x06, 0xbc, 0xbb, 0x13, 0x03, 0x51, 0x49, 0xfc, 0x83, 0x84, 0x12, 0x15, 0x18, 0x60, 0xc3, 0xb2, - 0x35, 0xa8, 0x57, 0xe8, 0x56, 0x95, 0x2b, 0x81, 0xc7, 0x31, 0x09, 0xdc, 0x14, 0xee, 0x5d, 0xa3, - 0x84, 0x19, 0x9c, 0x17, 0x39, 0x9c, 0x87, 0x72, 0x07, 0x6c, 0x6a, 0x24, 0x77, 0xc0, 0xee, 0x8c, - 0x6a, 0xfc, 0x13, 0x5b, 0xd5, 0x0d, 0x93, 0x9c, 0x36, 0xef, 0xab, 0x8d, 0xa6, 0x6a, 0xd4, 0xcc, - 0x04, 0xef, 0x9d, 0x5e, 0xe3, 0x05, 0xd4, 0x3b, 0xd5, 0x78, 0x01, 0x49, 0xa2, 0xf1, 0x02, 0x08, - 0xca, 0xfd, 0xb7, 0x24, 0x30, 0x8a, 0x42, 0x1c, 0x26, 0xfc, 0xc0, 0x54, 0xb7, 0xeb, 0x7c, 0x0d, - 0xdf, 0x8c, 0x31, 0xbc, 0xc0, 0x0d, 0xd2, 0x41, 0x82, 0x0c, 0x1e, 0x97, 0x39, 0x3c, 0xe6, 0xc3, - 0x91, 0x39, 0x48, 0x45, 0x99, 0x40, 0x3a, 0x19, 0x6e, 0x4c, 0xb5, 0x8e, 0x87, 0xe6, 0xb9, 0x04, - 0xd4, 0x0f, 0x75, 0x1d, 0x43, 0x9e, 0x4b, 0x00, 0x41, 0xb9, 0xff, 0x01, 0x2e, 0xbb, 0x0e, 0x81, - 0x6e, 0x41, 0xd3, 0xfb, 0xd8, 0xb2, 0x0c, 0xd3, 0x75, 0x12, 0x44, 0xf0, 0x8b, 0x31, 0x11, 0xdc, - 0x4b, 0x23, 0x02, 0xc6, 0x10, 0x0c, 0x39, 0xa4, 0x7a, 0x02, 0x93, 0x44, 0x97, 0x3c, 0x81, 0x49, - 0x02, 0xa3, 0x12, 0xf9, 0x3d, 0x09, 0x8c, 0x94, 0x9c, 0xda, 0x06, 0x84, 0xeb, 0x86, 0x83, 0xd2, - 0x3a, 0x5c, 0xe6, 0x37, 0x62, 0xcc, 0xcf, 0x73, 0x98, 0x0f, 0x50, 0x63, 0xf0, 0x59, 0xe0, 0xf0, - 0x79, 0x26, 0xc8, 0x67, 0x80, 0x84, 0x92, 0x03, 0xa7, 0xc3, 0x2d, 0x74, 0xf6, 0xff, 0x83, 0xcb, - 0x09, 0x56, 0x5d, 0xab, 0x61, 0x68, 0x81, 0xbb, 0xfd, 0x0d, 0x08, 0x4b, 0xad, 0xba, 0x6b, 0x34, - 0xeb, 0x06, 0xb4, 0x2b, 0xda, 0x2e, 0xd4, 0x5b, 0x02, 0x7b, 0x55, 0x63, 0x8c, 0x3d, 0xe0, 0x30, - 0x96, 0x6e, 0x20, 0x06, 0xcf, 0x9f, 0xe6, 0xf0, 0xbc, 0x1c, 0x3a, 0xf7, 0xa6, 0xa2, 0xae, 0xbc, - 0x02, 0x96, 0x52, 0x03, 0x53, 0x49, 0xfd, 0x26, 0x8e, 0xd9, 0x15, 0xe8, 0xae, 0xc3, 0x3a, 0xac, - 0xe1, 0xf4, 0x0b, 0xbd, 0xa2, 0xd2, 0xa0, 0xb1, 0x2f, 0xba, 0xd0, 0x9d, 0x04, 0x03, 0xb6, 0x0f, - 0x44, 0x2a, 0xf1, 0xdb, 0x0d, 0xe2, 0x64, 0x8a, 0x78, 0x44, 0x12, 0x6e, 0xc5, 0x40, 0x94, 0x89, - 0x2a, 0x4a, 0x40, 0xe0, 0x9b, 0xdd, 0x2d, 0xcb, 0x71, 0x1f, 0x99, 0xf5, 0x83, 0x92, 0xa5, 0x73, - 0x57, 0x56, 0x9c, 0x66, 0x88, 0xd3, 0x21, 0x69, 0x86, 0x78, 0x87, 0x3f, 0x83, 0xe5, 0x0f, 0x6e, - 0x83, 0xae, 0x92, 0x53, 0x93, 0x3f, 0x07, 0xfa, 0xfc, 0x1f, 0x2f, 0x9a, 0xe5, 0x67, 0xf2, 0x08, - 0x48, 0xfe, 0x4a, 0x22, 0x08, 0xcd, 0x56, 0xbf, 0x0d, 0xfa, 0xe9, 0xaf, 0x09, 0x09, 0x72, 0x84, - 0x3e, 0x4c, 0x7e, 0x3e, 0x19, 0x86, 0xd2, 0xfe, 0x9a, 0x04, 0xce, 0xf0, 0x7e, 0x66, 0x65, 0x89, - 0x4f, 0x87, 0x83, 0x92, 0x7f, 0x2d, 0x33, 0x0a, 0x9d, 0xc9, 0x6f, 0x49, 0x60, 0x52, 0xf8, 0xe3, - 0x1d, 0xb7, 0x12, 0x69, 0x33, 0xf1, 0xf2, 0x77, 0x3b, 0xc3, 0xa3, 0x13, 0xfb, 0x7d, 0x09, 0x9c, - 0x4b, 0x7c, 0x66, 0x5c, 0x4c, 0x1c, 0x84, 0x8b, 0x9b, 0x5f, 0xeb, 0x1c, 0x97, 0x4e, 0xf2, 0x97, - 0xc0, 0x38, 0xf3, 0x67, 0x9a, 0x16, 0xf9, 0xb4, 0x59, 0xf0, 0xf9, 0x5b, 0xd9, 0xe0, 0xe9, 0xf8, - 0xdf, 0x90, 0x40, 0x5e, 0xf0, 0xeb, 0x48, 0x37, 0xf8, 0x64, 0xf9, 0x58, 0xf9, 0x4f, 0x75, 0x82, - 0x45, 0xa7, 0xf4, 0x65, 0x09, 0x9c, 0x62, 0x3f, 0xe3, 0x2c, 0xa4, 0x61, 0x32, 0x80, 0x90, 0x7f, - 0x35, 0x23, 0x02, 0x9d, 0x83, 0x05, 0x4e, 0x44, 0x1f, 0x13, 0x09, 0x0c, 0x3f, 0x02, 0x9a, 0x5f, - 0x4a, 0x0d, 0x1a, 0x62, 0x9a, 0xfd, 0x9a, 0xa7, 0x90, 0x24, 0xcc, 0x08, 0x82, 0x88, 0x69, 0xf1, - 0x43, 0x9c, 0x16, 0x18, 0x8d, 0xbf, 0x2a, 0xb9, 0x9a, 0x40, 0x2d, 0x08, 0x9c, 0x7f, 0x25, 0x03, - 0x30, 0x1d, 0xf6, 0xd7, 0x25, 0x70, 0x96, 0x7f, 0x8f, 0x29, 0x20, 0xc9, 0x45, 0xca, 0xaf, 0x74, - 0x80, 0x14, 0x32, 0x09, 0xc1, 0x8b, 0xd0, 0x1b, 0x49, 0x3a, 0xc5, 0xc2, 0x12, 0x99, 0x44, 0x8a, - 0x47, 0x9c, 0x9e, 0x2b, 0x4b, 0x7c, 0x5f, 0x58, 0x4c, 0x65, 0x75, 0x4c, 0x5c, 0x91, 0x2b, 0x4b, - 0xfd, 0x1e, 0xf0, 0x37, 0x24, 0x30, 0x21, 0xaa, 0xd9, 0xbe, 0x99, 0x5e, 0x04, 0x41, 0x1b, 0xbe, - 0xd3, 0x11, 0x5a, 0xd8, 0x9b, 0x30, 0x8b, 0x3c, 0x0b, 0x49, 0x56, 0x1a, 0x41, 0x10, 0x7a, 0x13, - 0x51, 0x25, 0x25, 0x92, 0x8c, 0xa8, 0xf6, 0xee, 0x66, 0x2a, 0x8b, 0x8d, 0xa2, 0x89, 0x24, 0x93, - 0xa6, 0x6c, 0x2e, 0x10, 0x1f, 0xf9, 0x69, 0xdc, 0xe4, 0xf8, 0xc8, 0xc5, 0x4d, 0x11, 0x1f, 0x13, - 0x33, 0xae, 0xf2, 0x6f, 0x4b, 0x60, 0x4a, 0xfc, 0x00, 0x39, 0xd1, 0xc7, 0x73, 0x10, 0xf3, 0xf7, - 0x3a, 0x44, 0xa4, 0x73, 0xfb, 0x1d, 0x09, 0x4c, 0x27, 0xd4, 0x6f, 0xdf, 0xce, 0x34, 0x46, 0x50, - 0xed, 0x5f, 0xef, 0x14, 0x93, 0x4e, 0xef, 0xeb, 0x12, 0xc8, 0x71, 0x8b, 0x77, 0x97, 0x93, 0x74, - 0x39, 0x8e, 0x93, 0x2f, 0x66, 0xc7, 0x09, 0xc9, 0x2a, 0xe1, 0xf5, 0xe6, 0xed, 0x54, 0xea, 0xcc, - 0xc0, 0x14, 0xc9, 0x2a, 0xe5, 0xc3, 0xcb, 0x67, 0x40, 0x66, 0x94, 0x86, 0x5e, 0x13, 0x5c, 0xec, - 0xc7, 0xa0, 0xf3, 0x37, 0xb2, 0x40, 0xd3, 0x91, 0x6d, 0x70, 0x32, 0x56, 0x6a, 0x29, 0x38, 0x08, - 0x44, 0x61, 0xf3, 0xcb, 0xe9, 0x61, 0x83, 0x81, 0x3e, 0x5e, 0xba, 0x28, 0x08, 0xf4, 0x31, 0x60, - 0x51, 0xa0, 0xe7, 0xd6, 0x0b, 0x22, 0x57, 0xcc, 0x2e, 0x16, 0x14, 0xb8, 0x62, 0x26, 0x82, 0xc8, - 0x15, 0x0b, 0xab, 0xfc, 0xe4, 0x5f, 0x91, 0xc0, 0x69, 0x4e, 0x89, 0xdf, 0x75, 0x91, 0xbb, 0x62, - 0x61, 0xe4, 0x6f, 0x67, 0xc5, 0x08, 0x4d, 0x83, 0x53, 0x12, 0x77, 0x5d, 0x74, 0xc0, 0xcc, 0x3a, - 0x0d, 0x71, 0x15, 0x99, 0x6c, 0x80, 0xe1, 0x70, 0x2d, 0xd3, 0x25, 0x3e, 0xa9, 0x10, 0x60, 0xbe, - 0x90, 0x12, 0x30, 0xe4, 0x00, 0x12, 0x0a, 0x5e, 0x04, 0x7c, 0x88, 0x31, 0x45, 0x0e, 0x20, 0x5d, - 0x6d, 0x87, 0xbc, 0x03, 0x86, 0x42, 0x3f, 0xc9, 0x7c, 0x91, 0x4f, 0x31, 0x08, 0x97, 0x5f, 0x4c, - 0x07, 0x17, 0x34, 0xf7, 0xd8, 0x4f, 0xd7, 0xcf, 0x27, 0xd1, 0x68, 0xc3, 0x8a, 0xcc, 0x9d, 0xf7, - 0x6b, 0xeb, 0x48, 0xd9, 0x38, 0x3f, 0xb5, 0x7e, 0x3d, 0x89, 0x5c, 0x14, 0x43, 0xa4, 0x6c, 0xe2, - 0x5f, 0xbe, 0xf6, 0x8e, 0xba, 0xcc, 0xd2, 0x19, 0x81, 0x08, 0x59, 0xf0, 0xa2, 0xa3, 0xae, 0xa8, - 0xe4, 0xc5, 0xf3, 0xf1, 0x8c, 0x7a, 0x17, 0x81, 0x8f, 0x8f, 0x43, 0x8b, 0x7c, 0x3c, 0xbf, 0xa0, - 0x05, 0x9d, 0x70, 0xf8, 0xd5, 0x2c, 0x49, 0x87, 0x26, 0x16, 0x92, 0xe8, 0x84, 0x93, 0x58, 0x6a, - 0xe2, 0x29, 0x21, 0xde, 0x66, 0xa5, 0x53, 0xc2, 0x58, 0xb6, 0x68, 0x39, 0x3d, 0x6c, 0xc8, 0xf9, - 0x93, 0xeb, 0x9f, 0x70, 0xd6, 0x46, 0xe4, 0xfc, 0xd9, 0x89, 0xa1, 0x57, 0x33, 0x22, 0x84, 0xd6, - 0x01, 0x37, 0x31, 0x12, 0x33, 0xa2, 0x75, 0xe0, 0xe7, 0x80, 0x56, 0x3a, 0x40, 0x62, 0xcc, 0x87, - 0xe5, 0x0e, 0x45, 0x7a, 0xc1, 0xdd, 0x73, 0xaf, 0x74, 0x80, 0x14, 0x4a, 0x2a, 0x22, 0xed, 0x41, - 0x75, 0x00, 0xa1, 0xca, 0x00, 0x51, 0x52, 0x91, 0x53, 0x47, 0x20, 0x4a, 0x2a, 0x26, 0x94, 0x1e, - 0x20, 0x6d, 0x61, 0xd7, 0x1d, 0x14, 0xd2, 0xe8, 0x5e, 0x00, 0x41, 0xa4, 0x2d, 0xc2, 0xc2, 0x00, - 0x74, 0x6a, 0x13, 0x55, 0x05, 0xdc, 0x14, 0x85, 0x5d, 0x2e, 0x9a, 0xe8, 0xd4, 0x96, 0xe2, 0xc2, - 0x1e, 0x6f, 0xa4, 0xc5, 0xb7, 0xf5, 0xb7, 0x33, 0xe9, 0x40, 0x70, 0x6e, 0xaf, 0x77, 0x8a, 0x49, - 0xa7, 0xf7, 0xcb, 0x60, 0x14, 0xdd, 0x3b, 0x87, 0xb6, 0x77, 0x82, 0x28, 0xc3, 0xbe, 0xaa, 0x16, - 0x45, 0x19, 0xf1, 0xe5, 0x36, 0x5a, 0x35, 0xac, 0xd6, 0xcc, 0x4b, 0x44, 0xd1, 0xaa, 0x09, 0x6e, - 0x8f, 0x45, 0xab, 0x96, 0xe2, 0xd2, 0x59, 0xae, 0x83, 0x11, 0x7c, 0x79, 0xeb, 0xfb, 0x65, 0xf9, - 0xb2, 0xc8, 0x71, 0x04, 0xaf, 0x7b, 0xf3, 0xd7, 0xd3, 0x42, 0x86, 0x64, 0x80, 0xd7, 0xe5, 0x70, - 0x64, 0x90, 0xac, 0xb9, 0x29, 0x2e, 0x6c, 0x51, 0xbe, 0x81, 0x31, 0xab, 0xd0, 0x8d, 0xa6, 0x28, - 0xdf, 0x90, 0x74, 0x0f, 0x2a, 0xca, 0x37, 0xa4, 0xbd, 0x43, 0x95, 0x0d, 0x30, 0x8a, 0x5b, 0x82, - 0xb7, 0xa8, 0x17, 0xf8, 0x84, 0x03, 0x60, 0xf9, 0x85, 0x54, 0x60, 0x74, 0xa8, 0xbf, 0x95, 0xc0, - 0x35, 0x3c, 0x56, 0xca, 0x3b, 0x4f, 0xd1, 0x2e, 0x37, 0x15, 0x85, 0xfc, 0x1b, 0x2f, 0x4b, 0x21, - 0xe4, 0x86, 0x12, 0x2e, 0x20, 0x05, 0x36, 0x2c, 0xc6, 0x14, 0xb9, 0xa1, 0x74, 0xb7, 0x8b, 0xde, - 0x5e, 0x8f, 0x71, 0xb5, 0x78, 0x2d, 0x29, 0x81, 0x11, 0x84, 0x16, 0xed, 0xf5, 0xf8, 0xb7, 0x8a, - 0xf9, 0x9e, 0x2f, 0x7d, 0xfc, 0xde, 0xbc, 0xb4, 0xb6, 0xf7, 0xfd, 0x0f, 0xa7, 0xa5, 0xf7, 0x3f, - 0x9c, 0x96, 0x7e, 0xf0, 0xe1, 0xb4, 0xf4, 0x8d, 0x8f, 0xa6, 0x8f, 0xbd, 0xff, 0xd1, 0xf4, 0xb1, - 0xff, 0xf8, 0x68, 0xfa, 0xd8, 0xdb, 0x8f, 0x03, 0xcf, 0x18, 0x36, 0xfd, 0x01, 0x1e, 0xaa, 0xdb, - 0x4e, 0x81, 0x0e, 0xb7, 0xa0, 0x59, 0x36, 0x0c, 0x7e, 0xee, 0xaa, 0x86, 0x59, 0x68, 0x58, 0xde, - 0x0a, 0x38, 0xed, 0x7f, 0x56, 0x0b, 0x3d, 0x79, 0x28, 0xec, 0x2f, 0x6f, 0xf7, 0xa2, 0x7f, 0x1a, - 0xeb, 0x95, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x53, 0x72, 0x3d, 0xcc, 0xba, 0x6c, 0x00, 0x00, + // 5243 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x1c, 0xc9, + 0x71, 0xb0, 0x46, 0xfc, 0x2f, 0xfe, 0x0f, 0x29, 0x71, 0xb5, 0x94, 0x48, 0x69, 0xa8, 0x5f, 0x9e, + 0xc4, 0x95, 0x78, 0xfa, 0xbb, 0x95, 0x25, 0x1d, 0x29, 0x8a, 0xdf, 0xe9, 0x4e, 0x3c, 0x51, 0x4b, + 0xdd, 0x77, 0xbe, 0x8b, 0x8d, 0xc5, 0x70, 0xb6, 0xb9, 0x1c, 0x73, 0x77, 0x66, 0x6f, 0x66, 0x96, + 0x12, 0xef, 0x21, 0xfe, 0x41, 0x10, 0x1f, 0x1c, 0x04, 0x30, 0x10, 0x20, 0x40, 0x80, 0x04, 0x70, + 0x12, 0x24, 0x81, 0x9d, 0x20, 0x39, 0x27, 0x06, 0xe2, 0x24, 0x08, 0x0c, 0x04, 0x30, 0x60, 0x24, + 0x2f, 0x97, 0x00, 0x06, 0x02, 0x3f, 0x28, 0xc6, 0xdd, 0xc3, 0x05, 0xce, 0x5b, 0x1e, 0x93, 0x97, + 0x60, 0xba, 0x7b, 0x7a, 0xe7, 0xa7, 0xbb, 0x67, 0x76, 0x8f, 0x3c, 0x9f, 0x0d, 0xbf, 0xdc, 0x69, + 0xba, 0xab, 0xaa, 0xab, 0xaa, 0xab, 0xab, 0xab, 0xab, 0xab, 0x97, 0x30, 0x63, 0x5a, 0x5f, 0x42, + 0x86, 0x67, 0xee, 0xa2, 0x02, 0x7a, 0x66, 0x6c, 0xeb, 0x56, 0x15, 0x15, 0x76, 0x17, 0x0b, 0xde, + 0xb3, 0x85, 0x86, 0x63, 0x7b, 0xb6, 0x7a, 0x84, 0xf5, 0x2f, 0x04, 0xfd, 0x0b, 0xbb, 0x8b, 0xf9, + 0x19, 0xc3, 0x76, 0xeb, 0xb6, 0x5b, 0xd8, 0xd4, 0x5d, 0x54, 0xd8, 0xbd, 0xb2, 0x89, 0x3c, 0xfd, + 0x4a, 0xc1, 0xb0, 0x4d, 0x8b, 0xa0, 0xe5, 0x17, 0x68, 0x7f, 0xc5, 0x74, 0x3d, 0xc7, 0xdc, 0x6c, + 0x7a, 0xa6, 0x6d, 0x31, 0xb8, 0x70, 0x23, 0x85, 0x9f, 0xa2, 0xf0, 0x75, 0xb7, 0x5a, 0xd8, 0xbd, + 0xe2, 0xff, 0x8f, 0x76, 0x1c, 0x23, 0x1d, 0x65, 0xfc, 0x55, 0x20, 0x1f, 0xb4, 0x6b, 0xb2, 0x6a, + 0x57, 0x6d, 0xd2, 0xee, 0xff, 0x8b, 0xb6, 0x9e, 0xe6, 0x0b, 0xc4, 0x98, 0x27, 0x50, 0xa7, 0xf8, + 0x50, 0xb6, 0x53, 0x41, 0x0e, 0x05, 0xd1, 0xf8, 0x20, 0x75, 0xdd, 0xd9, 0x41, 0x9e, 0x7c, 0xb0, + 0x86, 0x63, 0x37, 0x6c, 0x57, 0xaf, 0x51, 0xa8, 0x33, 0x2d, 0x28, 0xdb, 0xd1, 0x8d, 0x5a, 0x4b, + 0x63, 0xe4, 0x93, 0x82, 0x8d, 0xeb, 0x75, 0xd3, 0xb2, 0x0b, 0xf8, 0xbf, 0xa4, 0x49, 0xfb, 0xe3, + 0x2e, 0x98, 0x58, 0x73, 0xab, 0x6f, 0x34, 0x2a, 0xba, 0x87, 0x36, 0x1a, 0xb6, 0xb7, 0x86, 0x47, + 0x57, 0x27, 0xa1, 0x47, 0xaf, 0xd4, 0x4d, 0x2b, 0xa7, 0x9c, 0x54, 0xce, 0x0f, 0x94, 0xc8, 0x87, + 0x3a, 0x0d, 0x03, 0x84, 0xbb, 0xb2, 0x59, 0xc9, 0x1d, 0xc6, 0x3d, 0xfd, 0xa4, 0xe1, 0x41, 0x45, + 0x3d, 0x01, 0x60, 0xa1, 0xa7, 0x65, 0xcf, 0x34, 0x76, 0x90, 0x93, 0xeb, 0xc2, 0xbd, 0x03, 0x16, + 0x7a, 0xfa, 0x04, 0x37, 0xa8, 0x6f, 0xc1, 0x94, 0xdf, 0x5d, 0x37, 0xad, 0x72, 0xc3, 0x31, 0x0d, + 0x84, 0x01, 0xcb, 0xae, 0xf9, 0x2e, 0xca, 0x75, 0xfb, 0xb0, 0xcb, 0x73, 0x3f, 0x7a, 0x3e, 0x7b, + 0xe8, 0x27, 0xcf, 0x67, 0xa7, 0xc9, 0x1c, 0xb8, 0x95, 0x9d, 0x05, 0xd3, 0x2e, 0xd4, 0x75, 0x6f, + 0x7b, 0xe1, 0x21, 0xaa, 0xea, 0xc6, 0xde, 0x0a, 0x32, 0x4a, 0x13, 0x16, 0x7a, 0xba, 0x66, 0x5a, + 0xeb, 0x3e, 0x05, 0x9f, 0xf0, 0x86, 0xf9, 0x2e, 0x52, 0xcb, 0x90, 0x0f, 0x48, 0xbf, 0xd3, 0xd4, + 0x2d, 0xcf, 0xf4, 0xf6, 0x42, 0xd4, 0x7b, 0xb2, 0x53, 0x3f, 0x4a, 0xa8, 0x3f, 0xa6, 0x44, 0xd8, + 0x00, 0x6b, 0x30, 0x16, 0x0c, 0x60, 0xd9, 0xbe, 0x51, 0xe9, 0xb5, 0x5c, 0x6f, 0x76, 0xb2, 0x23, + 0x84, 0xec, 0xeb, 0x14, 0xb5, 0x58, 0xf8, 0xcf, 0x6f, 0xcd, 0x1e, 0xfa, 0xda, 0xc7, 0xef, 0xcf, + 0x13, 0xb5, 0x7e, 0xe3, 0xe3, 0xf7, 0xe7, 0x8f, 0xb3, 0xd9, 0xe5, 0xcc, 0x86, 0x76, 0x02, 0xa6, + 0x39, 0xcd, 0x25, 0xe4, 0x36, 0x6c, 0xcb, 0x45, 0xda, 0xf7, 0x7a, 0xe1, 0x18, 0xeb, 0x5f, 0x41, + 0x8e, 0xb9, 0xab, 0xfb, 0xb6, 0xf0, 0xab, 0xa9, 0x3c, 0xf0, 0xa9, 0x54, 0xbf, 0x00, 0x39, 0x9f, + 0x9c, 0x69, 0x99, 0x9e, 0xa9, 0xd7, 0xca, 0x75, 0xdd, 0xa9, 0x9a, 0x56, 0xd9, 0xd1, 0x3d, 0xd3, + 0xce, 0xf5, 0x65, 0x27, 0x7b, 0xc4, 0x42, 0x4f, 0x1f, 0x10, 0x1a, 0x6b, 0x98, 0x44, 0xc9, 0xa7, + 0xa0, 0x56, 0xe0, 0x38, 0x66, 0x56, 0x37, 0x2d, 0x0f, 0x59, 0xba, 0x65, 0xa0, 0xe8, 0x08, 0xfd, + 0xd9, 0x47, 0x38, 0xe6, 0x33, 0xde, 0xa2, 0x13, 0x1e, 0xe5, 0x6d, 0x32, 0x9d, 0x0e, 0xaa, 0x34, + 0xe3, 0x03, 0x0c, 0x64, 0x1f, 0x60, 0xd2, 0x42, 0x4f, 0x4b, 0x98, 0x44, 0x98, 0x76, 0x19, 0x7c, + 0xd1, 0xca, 0x76, 0x03, 0xb5, 0xf4, 0x5d, 0x36, 0xf4, 0x46, 0x0e, 0x4e, 0x2a, 0xe7, 0x07, 0x17, + 0xcf, 0x2e, 0x70, 0xbd, 0xff, 0xc2, 0xa3, 0x06, 0x62, 0x3a, 0xbe, 0xa7, 0x37, 0x96, 0xbb, 0x7d, + 0x0e, 0x4a, 0xaa, 0x85, 0x9e, 0xc6, 0x7a, 0x8a, 0x2f, 0xbd, 0xf7, 0xad, 0xd9, 0x43, 0xc9, 0xf5, + 0xa4, 0x25, 0xd7, 0x53, 0x7c, 0x61, 0x68, 0x73, 0x70, 0x4a, 0xd8, 0xc9, 0xd6, 0xd6, 0xdf, 0x28, + 0x30, 0xca, 0xa0, 0xd6, 0x75, 0x47, 0xaf, 0xbb, 0xea, 0x75, 0x18, 0xd0, 0x9b, 0xde, 0xb6, 0xed, + 0x98, 0xde, 0x1e, 0x59, 0x55, 0xcb, 0xb9, 0x7f, 0xfb, 0xde, 0xa5, 0x49, 0xba, 0x79, 0x2c, 0x55, + 0x2a, 0x0e, 0x72, 0xdd, 0x0d, 0xcf, 0x31, 0xad, 0x6a, 0xa9, 0x05, 0xaa, 0xde, 0x82, 0xde, 0x06, + 0xa6, 0x80, 0x17, 0xdc, 0xe0, 0xe2, 0x09, 0x81, 0xf4, 0x64, 0x18, 0x2a, 0x34, 0x45, 0x29, 0xbe, + 0xe0, 0x0b, 0xd8, 0x22, 0xe6, 0x0b, 0x99, 0x4b, 0x0a, 0x49, 0x50, 0xb5, 0x63, 0x30, 0x15, 0x6b, + 0x62, 0x02, 0xfd, 0x95, 0x02, 0xb0, 0xe6, 0x56, 0x57, 0x50, 0xc3, 0x76, 0x4d, 0x4f, 0x3d, 0x0a, + 0xbd, 0x2e, 0xb2, 0x2a, 0xc8, 0xa1, 0xee, 0x81, 0x7e, 0xa9, 0x73, 0x30, 0xec, 0x36, 0x37, 0x75, + 0xc3, 0xb0, 0x9b, 0x56, 0xc8, 0x47, 0x0c, 0xb5, 0x1a, 0x1f, 0x54, 0xd4, 0x1b, 0xd0, 0xab, 0xd7, + 0xfd, 0x7f, 0x63, 0x1f, 0x31, 0xb8, 0x78, 0x8c, 0xee, 0xca, 0x0b, 0xfe, 0xae, 0xbd, 0x40, 0xf7, + 0xa0, 0x85, 0x7b, 0xb6, 0x69, 0x05, 0xc2, 0x10, 0xf0, 0xe2, 0x0b, 0xe1, 0x59, 0xa3, 0x43, 0xfa, + 0x12, 0x4d, 0x84, 0x25, 0xa2, 0x2c, 0x6a, 0x93, 0xa0, 0xb6, 0xbe, 0x98, 0x1c, 0xdf, 0x55, 0x60, + 0x70, 0xcd, 0xad, 0xbe, 0x69, 0x7a, 0xdb, 0x15, 0x47, 0x7f, 0xfa, 0x73, 0x12, 0xe4, 0xa2, 0x40, + 0x90, 0xc9, 0xb0, 0x20, 0x01, 0x8f, 0xda, 0x11, 0xbc, 0xd9, 0x06, 0x9f, 0x4c, 0x94, 0x6f, 0x2b, + 0x78, 0xba, 0xee, 0x39, 0x88, 0xfa, 0xf7, 0x87, 0x66, 0xdd, 0xf4, 0x1e, 0xf9, 0xa1, 0x82, 0x50, + 0xac, 0xcf, 0x41, 0x0f, 0x8e, 0x25, 0xa8, 0x29, 0x9d, 0x14, 0x98, 0x92, 0x4f, 0x0d, 0x13, 0xa2, + 0x7c, 0x13, 0xa4, 0xe2, 0x4d, 0x01, 0xdb, 0x27, 0xc3, 0x6c, 0xf3, 0xf8, 0xd1, 0xbe, 0x00, 0xb3, + 0x82, 0xae, 0x40, 0x1c, 0x7f, 0xf7, 0xc0, 0xa3, 0x94, 0xb7, 0x75, 0x77, 0x9b, 0xb2, 0x3d, 0x80, + 0x5b, 0x5e, 0xd1, 0xdd, 0x6d, 0x75, 0x0c, 0xba, 0x0c, 0x36, 0x0d, 0xfe, 0x3f, 0x8b, 0xfd, 0x01, + 0x37, 0xda, 0xdf, 0x2a, 0x70, 0x62, 0xcd, 0xad, 0x2e, 0xeb, 0x9e, 0xb1, 0xcd, 0x1b, 0xc3, 0x15, + 0xea, 0xe3, 0x0e, 0xf4, 0xe2, 0x21, 0xfc, 0xb5, 0xd5, 0xd5, 0x86, 0x42, 0x28, 0x56, 0xf1, 0x8e, + 0x40, 0x23, 0x67, 0xc3, 0x1a, 0x11, 0xf3, 0xa5, 0xfd, 0xb5, 0x02, 0x67, 0xa4, 0x10, 0x4c, 0x3d, + 0xa7, 0x60, 0xa8, 0xa5, 0x1e, 0xe4, 0xe6, 0x94, 0x93, 0x5d, 0xe7, 0x07, 0x4a, 0x83, 0x4c, 0x41, + 0xc8, 0x55, 0x17, 0x60, 0xc2, 0xc0, 0x34, 0x2a, 0x65, 0xc2, 0x5e, 0xd9, 0x30, 0x2b, 0x44, 0xb2, + 0x81, 0xd2, 0x38, 0xed, 0x22, 0x64, 0xef, 0x99, 0x15, 0x57, 0xbd, 0x08, 0xea, 0x96, 0x6e, 0xd6, + 0x62, 0xe0, 0x5d, 0x18, 0x7c, 0x8c, 0xf4, 0xb4, 0xa0, 0x43, 0xea, 0xfe, 0xad, 0x6e, 0xc8, 0xaf, + 0xb9, 0xd5, 0x07, 0x96, 0xeb, 0xe9, 0x96, 0xd7, 0x8a, 0x2c, 0x1e, 0xea, 0x4d, 0xcb, 0xd8, 0x16, + 0xea, 0xfa, 0x28, 0xf4, 0xd2, 0xd0, 0x80, 0x4c, 0x22, 0xfd, 0xf2, 0x27, 0xde, 0x5f, 0x2f, 0xe5, + 0x0a, 0xb2, 0xec, 0x7a, 0x10, 0x36, 0xf8, 0x2d, 0x2b, 0x7e, 0x83, 0x3a, 0x0b, 0x83, 0xef, 0x34, + 0x6d, 0x2f, 0xe8, 0xc7, 0xa1, 0x42, 0x09, 0x70, 0x13, 0x01, 0x28, 0xc1, 0x04, 0x2f, 0xa6, 0x68, + 0x63, 0xd7, 0x1f, 0xab, 0xc7, 0x03, 0x8a, 0xcf, 0xc3, 0x51, 0x41, 0x30, 0xd1, 0xc6, 0xae, 0xef, + 0xb3, 0x95, 0x88, 0x24, 0x56, 0x61, 0x28, 0x12, 0x45, 0xb4, 0xb1, 0xdd, 0x0f, 0xd6, 0x43, 0x21, + 0xc4, 0x1c, 0x0c, 0x53, 0xad, 0x19, 0x66, 0x5d, 0xaf, 0xb9, 0x78, 0x57, 0x1f, 0x2e, 0x0d, 0x11, + 0xc5, 0x91, 0x36, 0xf5, 0x0c, 0x8c, 0x04, 0xba, 0xa3, 0x50, 0x03, 0x18, 0x6a, 0x98, 0xaa, 0x8f, + 0x34, 0x16, 0x6f, 0x09, 0xac, 0x78, 0x2e, 0x6c, 0xc5, 0x82, 0xe9, 0xd6, 0x4e, 0x83, 0x26, 0xee, + 0x65, 0xce, 0xea, 0xa7, 0xfd, 0xd8, 0x03, 0x50, 0xb0, 0x75, 0xe4, 0x34, 0x90, 0xd7, 0xc4, 0x61, + 0x4b, 0xe7, 0x86, 0x13, 0xb3, 0x8c, 0xae, 0x84, 0x65, 0xcc, 0xc2, 0x20, 0x39, 0xc9, 0x94, 0x7d, + 0xad, 0x04, 0xa6, 0x43, 0x9a, 0x96, 0xf5, 0x60, 0x51, 0x61, 0x00, 0x8c, 0x45, 0x6c, 0xa6, 0x44, + 0x91, 0x1e, 0xfb, 0x4d, 0xfe, 0xa2, 0xa2, 0x20, 0xae, 0xa1, 0xd7, 0x50, 0x79, 0x4b, 0x37, 0x3c, + 0xdb, 0xc1, 0x66, 0x30, 0x5c, 0x1a, 0x27, 0x5d, 0x1b, 0x7e, 0xcf, 0x2a, 0xee, 0x50, 0xef, 0xb3, + 0x31, 0xbd, 0xbd, 0x06, 0xc2, 0xd3, 0x3b, 0xb2, 0x78, 0x3a, 0xe4, 0x56, 0xe8, 0xd9, 0x2a, 0xd8, + 0x1d, 0x1e, 0xe1, 0xcf, 0x27, 0x7b, 0x0d, 0x14, 0x70, 0xe6, 0xff, 0x5b, 0x7d, 0x00, 0x23, 0x75, + 0x7d, 0x07, 0x39, 0xe5, 0x2d, 0x84, 0xfc, 0xa8, 0x0a, 0xb5, 0x13, 0xb5, 0x0d, 0x61, 0xd4, 0x55, + 0x84, 0x4a, 0xba, 0x87, 0x49, 0x79, 0x51, 0x52, 0x6d, 0xc4, 0x67, 0x43, 0x5e, 0x98, 0xd4, 0x1b, + 0x30, 0xc9, 0x8d, 0x59, 0x21, 0x3b, 0x41, 0xd5, 0x4c, 0x06, 0xac, 0x5f, 0x84, 0x9c, 0x30, 0x58, + 0x1d, 0x6c, 0x23, 0x78, 0xaf, 0xf3, 0x23, 0x55, 0x81, 0x83, 0x18, 0x3a, 0x18, 0x07, 0x31, 0xbc, + 0xcf, 0x0e, 0x62, 0xa4, 0x43, 0x07, 0xb1, 0x01, 0x13, 0xbc, 0xd8, 0x7c, 0x34, 0x3b, 0xb9, 0x71, + 0x27, 0x11, 0x98, 0x7f, 0x1e, 0xc6, 0x93, 0x41, 0xf9, 0x58, 0x07, 0x41, 0xf9, 0xa8, 0x1d, 0x8b, + 0xc8, 0x5f, 0x16, 0xf8, 0xa0, 0xf3, 0x1c, 0x1f, 0xc4, 0x75, 0x1f, 0xda, 0x05, 0x38, 0x97, 0x02, + 0xc2, 0xbc, 0xd1, 0x47, 0x7d, 0x30, 0xd7, 0x82, 0x5d, 0x36, 0x2d, 0xdd, 0xd9, 0x7b, 0xd4, 0xf0, + 0x99, 0x71, 0x3f, 0x91, 0x47, 0x9a, 0x83, 0xe1, 0xc0, 0x59, 0xec, 0xd5, 0x37, 0xed, 0x1a, 0xf5, + 0x49, 0xd4, 0xc9, 0x6c, 0xe0, 0x36, 0xf5, 0x1c, 0x8c, 0x52, 0xa0, 0x86, 0x63, 0xef, 0x9a, 0x3e, + 0x75, 0xe2, 0x99, 0x46, 0x48, 0xf3, 0x3a, 0x6d, 0x8d, 0xbb, 0x92, 0x9e, 0x0e, 0x5d, 0x49, 0xbb, + 0x1e, 0x2c, 0xe9, 0x7a, 0xfa, 0xf6, 0xcf, 0xf5, 0xf4, 0x77, 0xea, 0x7a, 0xae, 0xc0, 0x24, 0x7a, + 0xd6, 0x30, 0xb1, 0x11, 0x5b, 0x65, 0xcf, 0xac, 0x23, 0xd7, 0xd3, 0xeb, 0x0d, 0xec, 0xcb, 0xba, + 0x4a, 0x13, 0xad, 0xbe, 0x27, 0x41, 0x97, 0x8f, 0xe2, 0x22, 0xcf, 0xab, 0xa1, 0x3a, 0xb2, 0xbc, + 0x10, 0x0a, 0x10, 0x94, 0x56, 0x5f, 0x0b, 0x85, 0x65, 0x3d, 0x06, 0xc3, 0x59, 0x8f, 0xd8, 0x46, + 0x33, 0x94, 0x35, 0x04, 0x19, 0x3e, 0x18, 0x0f, 0x33, 0xb2, 0xcf, 0x1e, 0x66, 0xb4, 0x43, 0x0f, + 0x73, 0x70, 0xce, 0x60, 0x45, 0xe0, 0x0c, 0x2e, 0x72, 0x9c, 0x81, 0x70, 0xf5, 0x6a, 0x97, 0xe0, + 0x85, 0x0c, 0x60, 0xcc, 0x29, 0x7c, 0x65, 0x20, 0xec, 0x14, 0xee, 0xfb, 0x06, 0xb5, 0xb7, 0xda, + 0xf4, 0x9a, 0x0e, 0x72, 0x3f, 0xfb, 0x61, 0x4a, 0xcc, 0x57, 0xf4, 0xee, 0xaf, 0xaf, 0xe8, 0x13, + 0xf9, 0x8a, 0xa3, 0xd0, 0x8b, 0x57, 0xde, 0x1e, 0x5e, 0xd8, 0x5d, 0x25, 0xfa, 0xc5, 0xf1, 0x21, + 0x03, 0xfb, 0xe7, 0x43, 0x60, 0xbf, 0xc3, 0x97, 0xc1, 0x83, 0x0b, 0x5f, 0x86, 0x0e, 0x2c, 0x7c, + 0xf9, 0x25, 0x77, 0x2e, 0x82, 0xf0, 0x65, 0x6c, 0xff, 0xc3, 0x97, 0xf1, 0x4f, 0xdb, 0x63, 0x09, + 0x5d, 0x4b, 0xd4, 0x63, 0x09, 0xc1, 0x98, 0xc7, 0xfa, 0x73, 0x05, 0x72, 0x91, 0xb4, 0x0a, 0x81, + 0x3a, 0xc8, 0x14, 0xd0, 0x4b, 0x02, 0x39, 0x4f, 0xf1, 0x53, 0x40, 0x21, 0x86, 0xb4, 0xbf, 0x50, + 0xe0, 0xa4, 0xa8, 0x33, 0x6b, 0x16, 0x68, 0x0d, 0xfa, 0x1c, 0xe4, 0x36, 0x6b, 0x5e, 0x90, 0x0c, + 0xbd, 0x24, 0x61, 0x3f, 0x4a, 0xdf, 0x47, 0xc2, 0xb2, 0x28, 0xa5, 0x80, 0x46, 0x90, 0x54, 0xea, + 0xe2, 0x25, 0x95, 0x7e, 0xac, 0xc0, 0x51, 0x3e, 0x15, 0xf5, 0x2e, 0xf4, 0x07, 0x2b, 0x87, 0x26, + 0x72, 0x33, 0x19, 0x24, 0x43, 0x52, 0x5f, 0x82, 0x1e, 0xbc, 0x9c, 0xc9, 0x4e, 0x91, 0x0d, 0x9b, + 0x60, 0xa8, 0xd7, 0xa0, 0x6b, 0x0b, 0x21, 0xc2, 0x72, 0x36, 0x44, 0x1f, 0x3e, 0x99, 0x2c, 0x23, + 0xd3, 0xd0, 0x4a, 0x60, 0x67, 0x48, 0x1e, 0x2e, 0x47, 0x2d, 0x47, 0xb4, 0x62, 0x5a, 0x34, 0x39, + 0xf6, 0x53, 0x7c, 0x2f, 0x25, 0x59, 0x26, 0xe6, 0x4b, 0xdb, 0xc4, 0xb9, 0x32, 0x31, 0xc0, 0x7e, + 0xa4, 0x12, 0xff, 0x31, 0x6c, 0xa4, 0x91, 0x98, 0xe1, 0x53, 0x52, 0xd0, 0x6d, 0x8e, 0x82, 0x2e, + 0x24, 0x15, 0x24, 0x60, 0x4d, 0x43, 0x70, 0x3e, 0x0d, 0x66, 0x3f, 0xd4, 0xf4, 0x43, 0x05, 0xc7, + 0x4a, 0xa1, 0xbc, 0x25, 0x6f, 0x42, 0xc4, 0x79, 0xd7, 0x95, 0x58, 0xde, 0xb5, 0x3d, 0x55, 0x05, + 0xd9, 0xd7, 0x97, 0xdf, 0x4b, 0x71, 0xb8, 0x69, 0xfc, 0x69, 0xdf, 0x57, 0xb0, 0xc7, 0x4d, 0x83, + 0xfb, 0x2c, 0x66, 0x61, 0x3f, 0x50, 0xf0, 0x05, 0xc7, 0x3d, 0x3f, 0x5c, 0xa8, 0x31, 0x6f, 0x2d, + 0xd4, 0xb8, 0xf4, 0xe6, 0x36, 0x71, 0xdb, 0xd1, 0xc5, 0xb9, 0xed, 0x88, 0x9a, 0x4b, 0xb7, 0xc0, + 0x5c, 0x7a, 0x5a, 0xe6, 0x52, 0xe0, 0x4c, 0xcf, 0x74, 0xc4, 0x94, 0xa3, 0xbc, 0x6b, 0xc7, 0x71, + 0x5e, 0x39, 0xd6, 0xca, 0x76, 0xbb, 0x3f, 0x21, 0xbb, 0x1d, 0x99, 0xab, 0x28, 0x8c, 0xd8, 0xd0, + 0x8a, 0xd0, 0x5d, 0xd1, 0x3d, 0x3d, 0x25, 0xbd, 0x8f, 0x89, 0xac, 0xe8, 0x9e, 0x4e, 0x0d, 0x0c, + 0xe3, 0x14, 0xaf, 0xbd, 0x97, 0xb2, 0xcf, 0x71, 0x59, 0xd1, 0x56, 0xb1, 0x07, 0xe1, 0xf6, 0x31, + 0x3b, 0xca, 0x41, 0x9f, 0xdb, 0x34, 0x0c, 0xe4, 0x12, 0x13, 0xea, 0x2f, 0x05, 0x9f, 0x51, 0x47, + 0x7d, 0x2a, 0x4a, 0x28, 0xb2, 0xa0, 0x0f, 0x50, 0xf0, 0x3b, 0x1c, 0xc1, 0xe7, 0x05, 0x82, 0x73, + 0x78, 0xd2, 0x1e, 0xc1, 0x85, 0x54, 0xa0, 0xf6, 0x54, 0x01, 0x30, 0x19, 0x50, 0x24, 0xd7, 0x93, + 0x29, 0xd2, 0x67, 0xba, 0xbe, 0xbb, 0x0b, 0x27, 0xdc, 0x86, 0xed, 0x95, 0xd9, 0xba, 0x70, 0xcb, + 0x9e, 0x5d, 0x36, 0x30, 0xc7, 0x65, 0xbd, 0x56, 0xa3, 0x8b, 0x30, 0xe7, 0xb2, 0x28, 0xe0, 0x41, + 0xc5, 0x7d, 0x62, 0x13, 0x91, 0x96, 0x6a, 0x35, 0xf5, 0x35, 0x98, 0xab, 0x30, 0x77, 0x21, 0x26, + 0xd3, 0x8d, 0xc9, 0xcc, 0x54, 0x62, 0x97, 0xc5, 0x31, 0x62, 0x6f, 0xc1, 0x11, 0xcc, 0x0d, 0xf5, + 0x02, 0x8c, 0x44, 0xae, 0xa7, 0x8d, 0x19, 0x54, 0x4a, 0xaa, 0xcb, 0xac, 0x2d, 0xa0, 0xae, 0x22, + 0x98, 0x0e, 0xf1, 0x99, 0x18, 0xa0, 0xb7, 0xad, 0x01, 0x72, 0x95, 0xa8, 0x4f, 0x6e, 0x0d, 0xc3, + 0x91, 0x00, 0x7b, 0xbb, 0x5c, 0x5f, 0x1b, 0x77, 0x6b, 0x71, 0x09, 0x30, 0x05, 0x75, 0x47, 0x24, + 0x01, 0x19, 0xa0, 0xbf, 0xed, 0x4d, 0x84, 0x2f, 0x07, 0x19, 0xac, 0x06, 0xb3, 0x9b, 0xd8, 0x60, + 0xcb, 0x36, 0xb1, 0xd8, 0xa4, 0xca, 0x06, 0xda, 0x52, 0xd9, 0xf4, 0x66, 0xd2, 0xfe, 0x99, 0xd6, + 0x4a, 0x70, 0x2e, 0x36, 0x9a, 0xd0, 0x90, 0x00, 0x1b, 0xd2, 0xa9, 0xcd, 0x64, 0x2a, 0x23, 0x66, + 0x4b, 0x8e, 0x4c, 0x02, 0xa2, 0xb2, 0xc1, 0x0e, 0x54, 0x26, 0x90, 0x83, 0x68, 0x6d, 0x0b, 0x8e, + 0x87, 0x57, 0x53, 0x62, 0xc0, 0xa1, 0xb6, 0x8c, 0x20, 0xb4, 0xe8, 0x62, 0xe3, 0x3c, 0x03, 0x2d, + 0xb9, 0xe8, 0x12, 0xa3, 0x0d, 0x77, 0x20, 0x5e, 0x62, 0x85, 0xc6, 0x46, 0xfe, 0x32, 0x9c, 0xe5, + 0xcf, 0x54, 0x62, 0xf4, 0x91, 0x0e, 0x46, 0xe7, 0x4d, 0x6b, 0x94, 0x81, 0xe2, 0x15, 0x8e, 0x5f, + 0x3e, 0x91, 0xf0, 0xcb, 0x61, 0x07, 0xa9, 0xfd, 0xe5, 0x20, 0x1c, 0xe7, 0x75, 0x30, 0xf7, 0xbb, + 0x00, 0x13, 0x78, 0xda, 0xa8, 0x99, 0x45, 0x5d, 0xf1, 0xb8, 0xdf, 0x45, 0x37, 0x31, 0xd2, 0xa1, + 0x16, 0xe1, 0x58, 0x48, 0xfd, 0x31, 0xac, 0xc3, 0x18, 0x6b, 0xaa, 0x05, 0x10, 0xc5, 0x9d, 0x87, + 0xf1, 0x96, 0x83, 0x08, 0x42, 0x28, 0xe2, 0x64, 0x47, 0xd9, 0xa2, 0xa7, 0x61, 0xd4, 0x75, 0x98, + 0x8a, 0xaf, 0xf8, 0x00, 0x83, 0xf8, 0xd3, 0x23, 0xb1, 0xf5, 0x4b, 0xf1, 0x96, 0xe0, 0x44, 0x6c, + 0x92, 0x62, 0x3c, 0xf6, 0x60, 0x1e, 0xf3, 0x11, 0x6d, 0x47, 0xd9, 0xbc, 0x0d, 0xd3, 0xbc, 0xd5, + 0x13, 0x0c, 0xdf, 0x4b, 0x76, 0x85, 0xe4, 0x5a, 0xa0, 0x1c, 0xdc, 0x80, 0x5c, 0x10, 0x00, 0x86, + 0xdd, 0x21, 0x0e, 0xeb, 0xfa, 0x08, 0xeb, 0xb4, 0xbf, 0x15, 0x18, 0xe0, 0x48, 0xf0, 0x1a, 0x4c, + 0xd1, 0x48, 0x30, 0x81, 0xd7, 0x8f, 0xf1, 0x26, 0x49, 0x77, 0x0c, 0xed, 0x1e, 0xcc, 0x04, 0xe3, + 0x25, 0x7d, 0x24, 0xc6, 0x1e, 0xc0, 0xd8, 0xd3, 0x14, 0x2a, 0x66, 0x7e, 0x84, 0xc8, 0x12, 0x9c, + 0xa0, 0x63, 0x0b, 0x68, 0x10, 0xdf, 0x93, 0x27, 0x40, 0x5c, 0x12, 0xaf, 0x82, 0x16, 0xf0, 0xc1, + 0x77, 0x3e, 0x98, 0xce, 0x20, 0xd9, 0x0c, 0x29, 0x24, 0x27, 0x30, 0xc0, 0xb4, 0x5e, 0x81, 0x53, + 0x94, 0x1d, 0x09, 0xa9, 0x21, 0x4c, 0x8a, 0xf2, 0x2d, 0xa2, 0x74, 0x03, 0x72, 0x09, 0xb7, 0x14, + 0xcc, 0xe4, 0x30, 0x99, 0x8d, 0x98, 0xab, 0xa1, 0xd3, 0xb8, 0x02, 0xb3, 0x91, 0x69, 0x8c, 0xae, + 0x75, 0xcc, 0xc0, 0x48, 0x44, 0xaf, 0xb1, 0x64, 0x01, 0x19, 0x7e, 0x19, 0x66, 0xc2, 0x73, 0xca, + 0x21, 0x32, 0x1a, 0x56, 0x2c, 0x97, 0xc6, 0x3d, 0x98, 0x11, 0x78, 0xbc, 0x40, 0x90, 0x31, 0xc2, + 0x08, 0xd7, 0x7f, 0x51, 0x71, 0xd6, 0xe1, 0x0c, 0xc7, 0x4a, 0x38, 0xfc, 0x8c, 0x93, 0x4d, 0x26, + 0x61, 0x2c, 0x09, 0xb6, 0x5e, 0x87, 0xd3, 0x49, 0x93, 0xe1, 0x10, 0x54, 0x31, 0xc1, 0x93, 0x71, + 0xcb, 0x49, 0xd0, 0x7b, 0x15, 0x34, 0x89, 0x7b, 0x0d, 0x44, 0x9d, 0x20, 0xf6, 0x23, 0x72, 0x96, + 0x54, 0xda, 0x37, 0xe1, 0x82, 0xc0, 0x16, 0x39, 0x0c, 0x4e, 0x62, 0x92, 0xa7, 0x79, 0x26, 0x99, + 0x60, 0xf2, 0x0d, 0x38, 0xcf, 0x37, 0x4c, 0x0e, 0xdd, 0x23, 0x98, 0xee, 0x1c, 0xc7, 0x3e, 0xe3, + 0x64, 0x43, 0xa1, 0xee, 0xdf, 0x29, 0x30, 0xc3, 0xc9, 0x72, 0x64, 0xc9, 0xec, 0xed, 0x47, 0xfa, + 0xe1, 0x16, 0x67, 0x8b, 0x39, 0x27, 0xcb, 0xcf, 0x84, 0x33, 0x7c, 0xdf, 0x57, 0xe0, 0xac, 0x1c, + 0x24, 0x6b, 0xee, 0x61, 0x23, 0x9e, 0xe7, 0x7b, 0x31, 0x55, 0x98, 0x4f, 0x96, 0xed, 0xfb, 0xaf, + 0xc3, 0x70, 0x5c, 0x46, 0xeb, 0x17, 0x30, 0xe7, 0xa7, 0x3e, 0x86, 0x11, 0x5c, 0xfc, 0x68, 0xda, + 0x56, 0xb9, 0x82, 0x6a, 0x9e, 0x8e, 0x0f, 0xed, 0x83, 0x91, 0x6b, 0xa1, 0x48, 0x01, 0x29, 0x05, + 0x5e, 0xf1, 0x61, 0xa9, 0x59, 0x0c, 0x37, 0xc2, 0x8d, 0xa4, 0x16, 0x75, 0xcf, 0x6e, 0x7a, 0xed, + 0x94, 0x57, 0x51, 0x94, 0x90, 0xb6, 0x7f, 0x40, 0x8e, 0xb6, 0x9c, 0x34, 0xd5, 0xa7, 0x65, 0xe7, + 0xa9, 0x47, 0x5c, 0x39, 0x6f, 0xda, 0x3f, 0x28, 0xf8, 0x8c, 0x2b, 0x87, 0xfa, 0xcc, 0x5a, 0xfb, + 0xff, 0xd2, 0x8b, 0x03, 0x1c, 0xf6, 0xc4, 0xf4, 0xf4, 0xf3, 0xcb, 0x20, 0xb1, 0xee, 0xba, 0xee, + 0xee, 0x60, 0x03, 0xeb, 0xa1, 0xdd, 0x6b, 0xba, 0xbb, 0x13, 0x08, 0xd4, 0xdb, 0x12, 0x28, 0x35, + 0x41, 0xc3, 0x15, 0x50, 0xd3, 0x48, 0x8a, 0x97, 0xd7, 0xc7, 0x92, 0x4d, 0x5f, 0x3d, 0x8c, 0x1f, + 0x4f, 0x88, 0xd2, 0x17, 0xbf, 0x40, 0x4a, 0xba, 0xc9, 0x51, 0xd2, 0xe9, 0xa4, 0x92, 0x92, 0x32, + 0x6a, 0x67, 0x70, 0x8e, 0x57, 0xd4, 0xcd, 0x54, 0xf5, 0x07, 0x0a, 0x0c, 0xb0, 0x13, 0x6f, 0x54, + 0x01, 0x4a, 0x9a, 0x02, 0x0e, 0xa7, 0x2a, 0xa0, 0x4b, 0xae, 0x80, 0x6e, 0x81, 0x02, 0x5a, 0x69, + 0x48, 0xed, 0xbb, 0x64, 0x47, 0x0d, 0xa5, 0xa3, 0xe2, 0xe1, 0xeb, 0x81, 0x24, 0xd1, 0x52, 0x77, + 0x52, 0x09, 0x43, 0xda, 0x43, 0xbc, 0x91, 0x4a, 0x20, 0xda, 0x4a, 0x9f, 0xfd, 0xe6, 0x61, 0x38, + 0xb2, 0xe6, 0x56, 0x37, 0x98, 0x96, 0x9f, 0x38, 0xba, 0xe5, 0x6e, 0x49, 0xcc, 0xf8, 0x32, 0x4c, + 0xba, 0x76, 0xd3, 0x31, 0x50, 0x99, 0x37, 0x5f, 0x2a, 0xe9, 0xdb, 0x08, 0xcf, 0x1a, 0x3e, 0x17, + 0xba, 0x9e, 0x69, 0x91, 0x02, 0x1d, 0x9e, 0x9d, 0x4f, 0x85, 0x00, 0x36, 0xf8, 0x75, 0xf4, 0xdd, + 0xed, 0xd5, 0xd1, 0x2f, 0xc4, 0xf4, 0x3b, 0x13, 0xd6, 0x6f, 0x52, 0x5c, 0x6d, 0x16, 0x5f, 0x7d, + 0x25, 0x3b, 0x98, 0x2d, 0x7f, 0xed, 0x30, 0xae, 0xb5, 0xbf, 0xff, 0xcc, 0x43, 0x8e, 0xa5, 0xd7, + 0x7e, 0x59, 0xf4, 0x74, 0x31, 0xa6, 0xa7, 0xc8, 0xbb, 0xb1, 0xb8, 0xb0, 0xf4, 0xdd, 0x58, 0xbc, + 0xb9, 0x55, 0x3c, 0xa7, 0xe0, 0x64, 0xec, 0x43, 0xf3, 0x9d, 0xa6, 0x89, 0x5f, 0x8a, 0xd0, 0x08, + 0xe1, 0x93, 0x25, 0x63, 0x23, 0x7e, 0xa3, 0x2b, 0xe6, 0x37, 0xd8, 0x8e, 0xdf, 0xdd, 0xf6, 0x8e, + 0xaf, 0x04, 0x3b, 0xfe, 0x25, 0x59, 0xe2, 0x24, 0x21, 0x8c, 0x36, 0x83, 0xf3, 0x26, 0x89, 0x76, + 0xa6, 0x85, 0x1f, 0x2b, 0x30, 0xbe, 0xe6, 0x56, 0x1f, 0x6d, 0x6d, 0xb9, 0xc8, 0xfb, 0x14, 0x54, + 0x50, 0x84, 0x63, 0x36, 0x1e, 0xcb, 0x33, 0xad, 0x6a, 0xd4, 0x6c, 0x82, 0x8c, 0xc8, 0x54, 0x0b, + 0x20, 0x6c, 0x36, 0x6e, 0x71, 0x3e, 0x26, 0x7a, 0x3e, 0x2c, 0x7a, 0x54, 0x02, 0x6d, 0x1a, 0x3f, + 0x0a, 0x8c, 0x36, 0x32, 0xa1, 0xff, 0x8c, 0xc4, 0x0d, 0xf7, 0xeb, 0xc8, 0xa9, 0x22, 0xcb, 0xd8, + 0xdb, 0xc0, 0x25, 0x74, 0xf4, 0xc5, 0xe0, 0x81, 0xc9, 0x5e, 0xbc, 0x22, 0xdb, 0xe3, 0xb9, 0xcc, + 0xd0, 0x3d, 0x9e, 0xdb, 0xd7, 0x7a, 0xd3, 0x74, 0x18, 0xcb, 0xfa, 0xc0, 0xf2, 0x4f, 0x7e, 0x2e, + 0x9b, 0x62, 0x52, 0x30, 0xf2, 0x19, 0x59, 0xf2, 0x11, 0xbd, 0x74, 0xc7, 0x6c, 0xe2, 0x16, 0xf3, + 0x07, 0xed, 0x44, 0xe3, 0xd4, 0x27, 0x2c, 0xc6, 0x94, 0xaa, 0x45, 0x2b, 0x55, 0x78, 0x3a, 0xa1, + 0x6f, 0xdf, 0xf8, 0x9d, 0x71, 0xb5, 0xae, 0xa0, 0x5f, 0xa9, 0x35, 0xae, 0x56, 0xbe, 0x4e, 0xa8, + 0x5a, 0xf9, 0x9d, 0x4c, 0xad, 0xff, 0xac, 0x60, 0x8f, 0xb4, 0xee, 0x98, 0xbb, 0x66, 0x0d, 0x55, + 0x51, 0xe5, 0xfe, 0x33, 0x64, 0x34, 0x3d, 0x74, 0xcf, 0xb6, 0x3c, 0x47, 0x37, 0xc4, 0xeb, 0x6f, + 0x12, 0x7a, 0xb6, 0x9a, 0x56, 0xc5, 0xa5, 0xaa, 0x24, 0x1f, 0xea, 0x05, 0x18, 0x33, 0x28, 0x66, + 0x59, 0x27, 0x4f, 0x0f, 0xa9, 0xd2, 0x46, 0x83, 0x76, 0xfa, 0x22, 0x51, 0x55, 0x69, 0x14, 0x44, + 0xf4, 0x44, 0xa2, 0x9b, 0xdb, 0x82, 0x3a, 0xa0, 0x33, 0x61, 0x71, 0x85, 0xbc, 0xfa, 0x8e, 0xe4, + 0xb4, 0x0c, 0x80, 0x85, 0x37, 0x5f, 0x02, 0xc0, 0xfc, 0x96, 0x2b, 0xe6, 0xd6, 0x16, 0x8e, 0x70, + 0xa4, 0xdb, 0xde, 0x65, 0x7f, 0xaa, 0xbe, 0xf3, 0x1f, 0xb3, 0xe7, 0xab, 0xa6, 0xb7, 0xdd, 0xdc, + 0x5c, 0x30, 0xec, 0x3a, 0x7d, 0x9c, 0x4f, 0xff, 0x77, 0xc9, 0xad, 0xec, 0x14, 0xbc, 0xbd, 0x06, + 0x72, 0x31, 0x82, 0x5b, 0x1a, 0xc0, 0xe4, 0x57, 0xcc, 0xad, 0xad, 0xe2, 0x04, 0x47, 0x26, 0xed, + 0x8b, 0x30, 0xb6, 0xe6, 0x56, 0x4b, 0xe8, 0xa9, 0xee, 0x54, 0xdc, 0x47, 0x0d, 0xef, 0x51, 0x53, + 0xa8, 0x69, 0x92, 0x9f, 0xe7, 0x28, 0xe5, 0x58, 0x58, 0x29, 0x11, 0x52, 0x5a, 0x1e, 0x3b, 0xd4, + 0x48, 0x5b, 0xf8, 0xcd, 0xe5, 0x11, 0xdc, 0x69, 0xd4, 0x74, 0xb3, 0xfe, 0xd0, 0x36, 0x76, 0x50, + 0x65, 0x15, 0x4f, 0x9e, 0x78, 0x11, 0x4d, 0xd4, 0x30, 0xd8, 0x12, 0xb1, 0xf4, 0xf5, 0xe6, 0xe6, + 0x6b, 0x68, 0x0f, 0x4f, 0xfc, 0x50, 0x89, 0xd7, 0xa5, 0x1e, 0x87, 0x01, 0xd7, 0xac, 0x5a, 0xba, + 0xd7, 0x74, 0x48, 0x82, 0x61, 0xa8, 0xd4, 0x6a, 0x90, 0xc7, 0x57, 0x49, 0xbe, 0x68, 0x7c, 0x95, + 0xec, 0x68, 0xd5, 0xd8, 0x92, 0xe7, 0x97, 0x1b, 0x66, 0xd5, 0xc2, 0xa7, 0x85, 0x0d, 0xe8, 0xf5, + 0xff, 0x4d, 0x05, 0x19, 0x5a, 0xbe, 0xf5, 0xb3, 0xe7, 0xb3, 0xbd, 0x2e, 0x6e, 0xf9, 0x9f, 0xe7, + 0xb3, 0x97, 0x32, 0xcc, 0xe2, 0x92, 0x61, 0x50, 0x3b, 0x2d, 0x51, 0x52, 0xea, 0x71, 0xe8, 0x5e, + 0x21, 0x51, 0xbb, 0x4f, 0xb2, 0xff, 0x67, 0xcf, 0x67, 0xb1, 0xcd, 0x96, 0x70, 0xab, 0xe6, 0xe2, + 0x87, 0xac, 0x98, 0x03, 0xdb, 0x50, 0xcf, 0x10, 0xf9, 0x49, 0xd5, 0x2c, 0xc9, 0xeb, 0x60, 0x04, + 0xff, 0xbb, 0xd4, 0xef, 0x77, 0xe1, 0xba, 0xd8, 0x3b, 0xd0, 0xb3, 0xab, 0xd7, 0x9a, 0x88, 0x9e, + 0xcf, 0x35, 0x41, 0x00, 0x12, 0x12, 0x2d, 0x48, 0x37, 0x60, 0x34, 0xed, 0xeb, 0x5d, 0x78, 0x89, + 0x2f, 0x55, 0xea, 0xa6, 0x45, 0xae, 0x61, 0x38, 0x39, 0x83, 0xce, 0x0e, 0x95, 0xaf, 0xc3, 0x58, + 0xa8, 0xca, 0x9d, 0xa4, 0x98, 0x5a, 0x99, 0x22, 0x25, 0xcd, 0x6f, 0x8d, 0xb6, 0x90, 0x71, 0x89, + 0xa8, 0xb0, 0xd0, 0xbe, 0xbb, 0xfd, 0x42, 0xfb, 0x1e, 0x71, 0xa1, 0xfd, 0x2d, 0xe8, 0x75, 0x3d, + 0xdd, 0x6b, 0xba, 0xb4, 0x54, 0x79, 0x4e, 0xa4, 0x51, 0x2c, 0xe6, 0x06, 0x06, 0x2d, 0x51, 0x94, + 0x62, 0x51, 0x96, 0xb8, 0x91, 0xeb, 0x58, 0x7b, 0x01, 0xe7, 0x6d, 0xe4, 0x40, 0xcc, 0x5c, 0xff, + 0x94, 0x3c, 0xb1, 0x5d, 0x22, 0xcf, 0xa7, 0xdf, 0x45, 0x1b, 0x9e, 0xbe, 0x83, 0xfe, 0x9f, 0xa3, + 0x5b, 0x9e, 0x78, 0x0d, 0x2e, 0x41, 0x6f, 0x15, 0x43, 0xd0, 0x53, 0xe3, 0x05, 0x81, 0x64, 0x98, + 0x4c, 0x40, 0x19, 0x2b, 0xb4, 0x44, 0x11, 0x8b, 0x97, 0x65, 0xef, 0x6b, 0x79, 0xcc, 0x68, 0xa7, + 0xf0, 0xeb, 0x3a, 0x5e, 0x17, 0x93, 0x65, 0x0f, 0x3b, 0x93, 0x25, 0x9f, 0x11, 0xdd, 0x0b, 0x41, + 0x08, 0x05, 0xc9, 0x41, 0x1f, 0xe6, 0x87, 0x15, 0xb4, 0x07, 0x9f, 0x72, 0xb7, 0x90, 0x1c, 0x81, + 0xba, 0x85, 0x64, 0x07, 0xe3, 0xed, 0x5f, 0x94, 0xd6, 0x2d, 0xe5, 0x7d, 0x4a, 0x6b, 0xcd, 0xae, + 0x98, 0x5b, 0xa6, 0xa1, 0x4b, 0xe3, 0xea, 0x27, 0xd0, 0x1f, 0xfc, 0xa8, 0x09, 0x5d, 0x9a, 0x37, + 0x05, 0xea, 0x16, 0xd2, 0x5e, 0xa7, 0xf8, 0x25, 0x46, 0x29, 0xdb, 0xe6, 0x26, 0x24, 0xa8, 0x9d, + 0xc5, 0x7b, 0x9b, 0xb0, 0x9f, 0x49, 0xfd, 0xbe, 0x82, 0x0f, 0x9b, 0x99, 0x1f, 0xd0, 0xbe, 0x96, + 0x10, 0xb6, 0x90, 0x5a, 0xfd, 0x4a, 0x48, 0x72, 0x64, 0xbc, 0x2a, 0x90, 0x31, 0x72, 0x34, 0x4c, + 0x3c, 0xf6, 0x24, 0x47, 0x43, 0xe1, 0x2b, 0xcf, 0x1f, 0x90, 0xf3, 0x41, 0x7b, 0xcf, 0x3b, 0xd7, + 0x13, 0x62, 0x5d, 0x15, 0x25, 0xa8, 0x79, 0x74, 0x39, 0xb2, 0x65, 0x2a, 0x52, 0xe6, 0x3f, 0x22, + 0x23, 0xe7, 0x06, 0xf9, 0xeb, 0x31, 0x6a, 0xad, 0xed, 0xbf, 0x10, 0xc9, 0x6e, 0xad, 0x42, 0xda, + 0x9d, 0x5a, 0xab, 0xb8, 0xe6, 0x9c, 0x58, 0x6b, 0x7a, 0xb1, 0x79, 0xb0, 0x46, 0xdb, 0x7e, 0x2c, + 0xd7, 0xc6, 0x1a, 0x15, 0xd1, 0xee, 0x78, 0x8d, 0x0a, 0xdf, 0x06, 0xd1, 0x35, 0x9a, 0xfa, 0x28, + 0xe8, 0x87, 0x0a, 0xae, 0x49, 0x24, 0x99, 0x38, 0xbb, 0x5e, 0x6f, 0x5a, 0xa6, 0xb7, 0xb7, 0x6e, + 0xdb, 0xb5, 0x8d, 0x06, 0xb2, 0x2a, 0x42, 0x99, 0x4b, 0x09, 0x99, 0xaf, 0xcb, 0xfc, 0x52, 0x92, + 0x32, 0x47, 0xe2, 0x4c, 0xaf, 0xb4, 0x05, 0xe4, 0xe8, 0x2b, 0x6d, 0x41, 0x6f, 0x7c, 0xfd, 0xb6, + 0xd6, 0x37, 0xfe, 0x15, 0x10, 0xb2, 0x4f, 0xee, 0xc3, 0xfa, 0xe5, 0xd2, 0xed, 0x74, 0xfd, 0x72, + 0x89, 0xd1, 0xf5, 0xcb, 0xed, 0x63, 0x52, 0xfe, 0x2b, 0x49, 0x08, 0xc7, 0x2f, 0x53, 0xb2, 0xc8, + 0xfa, 0xff, 0x13, 0xb2, 0x16, 0x33, 0x5e, 0xd5, 0xc8, 0x25, 0xbe, 0x2b, 0x90, 0xf8, 0x5c, 0xf4, + 0xf4, 0x28, 0x24, 0xa9, 0x9d, 0xc7, 0x09, 0x63, 0x09, 0x04, 0x93, 0xfe, 0x27, 0xb4, 0xac, 0x34, + 0x69, 0xfa, 0x59, 0x14, 0xf0, 0x56, 0x42, 0x01, 0xb7, 0xb3, 0x2f, 0x66, 0xb9, 0x0e, 0x96, 0x05, + 0x3a, 0x98, 0x4f, 0x59, 0xd1, 0x61, 0x35, 0x90, 0xe8, 0x4e, 0x0e, 0xc4, 0x34, 0xf1, 0x4f, 0x0a, + 0x4e, 0x54, 0x10, 0x80, 0x55, 0xdb, 0x31, 0x50, 0x65, 0x83, 0x85, 0xaa, 0x42, 0x0d, 0x3c, 0x4e, + 0x68, 0xe0, 0x9a, 0x34, 0x76, 0x8d, 0x13, 0xe6, 0x48, 0x5e, 0x14, 0x48, 0x1e, 0xc9, 0x1d, 0xf0, + 0xa9, 0xd1, 0xdc, 0x01, 0xbf, 0x33, 0x6e, 0xf1, 0x4f, 0x1c, 0xbd, 0x62, 0x5a, 0xf4, 0xb4, 0x79, + 0x4f, 0xaf, 0x37, 0x74, 0xb3, 0x6a, 0xa5, 0x78, 0xef, 0xec, 0x16, 0x2f, 0xa1, 0xde, 0xa9, 0xc5, + 0x4b, 0x48, 0x52, 0x8b, 0x97, 0x40, 0x30, 0xe9, 0xbf, 0x43, 0x52, 0xb5, 0x41, 0x2c, 0x76, 0xdf, + 0xd2, 0x37, 0x6b, 0x62, 0x0b, 0x7f, 0x90, 0x10, 0xf8, 0x92, 0x70, 0x93, 0x0e, 0x13, 0xe4, 0xc8, + 0xb8, 0x28, 0x90, 0x31, 0x1f, 0xdd, 0x99, 0xc3, 0x54, 0x68, 0xfe, 0x35, 0xda, 0x98, 0x69, 0x1e, + 0xf7, 0xcd, 0x73, 0x49, 0xa8, 0xef, 0xeb, 0x3c, 0x46, 0x3c, 0x97, 0x04, 0xa2, 0xf5, 0x1b, 0x22, + 0xe4, 0xd1, 0x49, 0x04, 0x74, 0x1d, 0x59, 0xfe, 0xc7, 0xba, 0x6d, 0x5a, 0x9e, 0x9b, 0xa2, 0x82, + 0x5f, 0x4b, 0xa8, 0xe0, 0x6e, 0x16, 0x15, 0x70, 0x86, 0xe0, 0xe8, 0x21, 0xd3, 0x03, 0xc0, 0x34, + 0xba, 0xf4, 0x01, 0x60, 0x1a, 0x18, 0xd3, 0xc8, 0x1f, 0x2a, 0x30, 0xb2, 0xe6, 0x56, 0x57, 0x11, + 0x5a, 0x31, 0x5d, 0x9c, 0xd6, 0x11, 0x0a, 0xbf, 0x9a, 0x10, 0x7e, 0x5e, 0x20, 0x7c, 0x88, 0x1a, + 0x47, 0xce, 0x82, 0x40, 0xce, 0xa9, 0xb0, 0x9c, 0x21, 0x12, 0x5a, 0x0e, 0x8e, 0x46, 0x5b, 0x18, + 0xf7, 0xff, 0x4d, 0x6a, 0x28, 0x96, 0x3c, 0xbb, 0x6e, 0x1a, 0xa1, 0x82, 0x86, 0x55, 0x84, 0xd6, + 0x9a, 0x35, 0xcf, 0x6c, 0xd4, 0x4c, 0xe4, 0x6c, 0x18, 0xdb, 0xa8, 0xd2, 0x94, 0xac, 0x57, 0x3d, + 0x21, 0xd8, 0x7d, 0x81, 0x60, 0xd9, 0x06, 0xe2, 0xc8, 0xfc, 0xaa, 0x40, 0xe6, 0xc5, 0xc8, 0xb9, + 0x37, 0x13, 0x75, 0xed, 0x45, 0xb8, 0x92, 0x19, 0x98, 0x69, 0xaa, 0x8c, 0xcf, 0xee, 0xe4, 0x26, + 0x78, 0xdd, 0x76, 0xbd, 0x47, 0x56, 0x6d, 0x6f, 0xcd, 0xae, 0x08, 0x95, 0x22, 0x3f, 0xa1, 0x27, + 0xe9, 0xd0, 0x13, 0x7a, 0xb2, 0x23, 0xe0, 0x60, 0xf1, 0xdb, 0x37, 0xa1, 0x6b, 0xcd, 0xad, 0xaa, + 0x6f, 0x42, 0x5f, 0xf0, 0x1b, 0x70, 0xa7, 0xc4, 0x49, 0x30, 0x0a, 0x92, 0xbf, 0x90, 0x0a, 0xc2, + 0x12, 0xbd, 0x6f, 0x43, 0x3f, 0xfb, 0x51, 0x36, 0x49, 0x7a, 0x2d, 0x80, 0xc9, 0xcf, 0xa7, 0xc3, + 0x30, 0xda, 0x5f, 0x57, 0x60, 0x4a, 0xf4, 0x6b, 0x55, 0x57, 0xc4, 0x74, 0x04, 0x28, 0xf9, 0x97, + 0xda, 0x46, 0x61, 0x9c, 0xfc, 0xae, 0x02, 0xc7, 0xa5, 0xbf, 0x81, 0x74, 0x3d, 0x95, 0x36, 0x17, + 0x2f, 0x7f, 0xa7, 0x33, 0x3c, 0xc6, 0xd8, 0x1f, 0x29, 0x70, 0x32, 0xf5, 0x97, 0x0f, 0x8a, 0xa9, + 0x83, 0x08, 0x71, 0xf3, 0xcb, 0x9d, 0xe3, 0x32, 0x26, 0x7f, 0x1d, 0x26, 0xb9, 0xbf, 0x76, 0xb7, + 0x20, 0xa6, 0xcd, 0x83, 0xcf, 0x5f, 0x6f, 0x0f, 0x9e, 0x8d, 0xff, 0x4d, 0x05, 0xf2, 0x92, 0x1f, + 0x99, 0xbb, 0x2a, 0x26, 0x2b, 0xc6, 0xca, 0x7f, 0xae, 0x13, 0x2c, 0xc6, 0xd2, 0x57, 0x15, 0x38, + 0xc2, 0x7f, 0xff, 0x5d, 0xc8, 0x22, 0x64, 0x08, 0x21, 0x7f, 0xa3, 0x4d, 0x04, 0xc6, 0x83, 0x0d, + 0xa3, 0xf1, 0x57, 0x88, 0x92, 0x85, 0x1f, 0x03, 0xcd, 0x5f, 0xc9, 0x0c, 0x1a, 0x11, 0x9a, 0xff, + 0x0c, 0xb0, 0x90, 0xa6, 0xcc, 0x18, 0x82, 0x4c, 0x68, 0xf9, 0x0b, 0xbe, 0x26, 0x8c, 0x27, 0x9f, + 0xa3, 0xbd, 0x90, 0x42, 0x2d, 0x0c, 0x9c, 0x7f, 0xb1, 0x0d, 0x60, 0x36, 0xec, 0x6f, 0x2b, 0x70, + 0x4c, 0x7c, 0x05, 0x28, 0x21, 0x29, 0x44, 0xca, 0xdf, 0xea, 0x00, 0x29, 0xb2, 0x24, 0x24, 0x4f, + 0xc9, 0xaf, 0xa6, 0xd9, 0x14, 0x0f, 0x4b, 0xb6, 0x24, 0x32, 0xbc, 0xfe, 0xf6, 0x5d, 0x59, 0xea, + 0xc3, 0xe4, 0x62, 0xa6, 0x55, 0xc7, 0xc5, 0x95, 0xb9, 0xb2, 0xcc, 0x0f, 0x89, 0x7f, 0x47, 0x81, + 0x69, 0x59, 0x8d, 0xf7, 0xb5, 0xec, 0x2a, 0x08, 0xaf, 0xe1, 0xdb, 0x1d, 0xa1, 0x45, 0xbd, 0x09, + 0xb7, 0x28, 0xb4, 0x90, 0xb6, 0x4a, 0x63, 0x08, 0x52, 0x6f, 0x22, 0xab, 0xbc, 0xc4, 0x9a, 0x91, + 0xd5, 0xea, 0x5d, 0xcb, 0xb4, 0x62, 0xe3, 0x68, 0x32, 0xcd, 0x64, 0x29, 0xb3, 0x0b, 0xed, 0x8f, + 0xe2, 0x0c, 0x68, 0xfa, 0xfe, 0x28, 0xc4, 0xcd, 0xb0, 0x3f, 0xa6, 0x26, 0x2b, 0xd5, 0xdf, 0x53, + 0xe0, 0x84, 0xfc, 0x97, 0x0b, 0x52, 0x7d, 0xbc, 0x00, 0x31, 0x7f, 0xb7, 0x43, 0x44, 0xc6, 0xdb, + 0xef, 0x2b, 0x30, 0x93, 0x52, 0xef, 0x7d, 0xb3, 0xad, 0x31, 0xc2, 0x66, 0xff, 0x72, 0xa7, 0x98, + 0x8c, 0xbd, 0x6f, 0x28, 0x90, 0x13, 0x16, 0xfb, 0x2e, 0xa6, 0xd9, 0x72, 0x12, 0x27, 0x5f, 0x6c, + 0x1f, 0x27, 0xa2, 0xab, 0x94, 0x67, 0xdf, 0x37, 0x33, 0x99, 0x33, 0x07, 0x53, 0xa6, 0xab, 0x8c, + 0x2f, 0xb6, 0x9f, 0x81, 0xca, 0x29, 0x25, 0xbd, 0x28, 0xb9, 0x13, 0x4f, 0x40, 0xe7, 0xaf, 0xb6, + 0x03, 0xcd, 0x46, 0x76, 0x60, 0x2c, 0x51, 0x9a, 0x29, 0x39, 0x08, 0xc4, 0x61, 0xf3, 0x8b, 0xd9, + 0x61, 0xc3, 0x1b, 0x7d, 0xb2, 0xd4, 0x51, 0xb2, 0xd1, 0x27, 0x80, 0x65, 0x1b, 0xbd, 0xb0, 0xbe, + 0x10, 0xbb, 0x62, 0x7e, 0x9d, 0x9d, 0xc4, 0x15, 0x73, 0x11, 0x64, 0xae, 0x58, 0x5a, 0x20, 0xa7, + 0xd6, 0x60, 0x24, 0x56, 0xdf, 0x78, 0x5e, 0x4c, 0x2a, 0x0a, 0x99, 0xbf, 0x9c, 0x15, 0x92, 0x8d, + 0xf6, 0x1b, 0x0a, 0x1c, 0x15, 0xd4, 0xe2, 0x5d, 0x96, 0x39, 0x47, 0x1e, 0x46, 0xfe, 0x66, 0xbb, + 0x18, 0x11, 0x36, 0x04, 0xb5, 0x6b, 0x97, 0x65, 0xc7, 0xd9, 0x76, 0xd9, 0x90, 0x97, 0x7b, 0xa9, + 0x26, 0x0c, 0x47, 0x8b, 0x8e, 0xce, 0x89, 0x49, 0x45, 0x00, 0xf3, 0x85, 0x8c, 0x80, 0x11, 0x77, + 0x93, 0x52, 0x99, 0x22, 0x91, 0x43, 0x8e, 0x29, 0x73, 0x37, 0xd9, 0x8a, 0x30, 0xd4, 0x2d, 0x18, + 0x8a, 0xfc, 0x8e, 0xfe, 0x59, 0x31, 0xc5, 0x30, 0x5c, 0x7e, 0x21, 0x1b, 0x5c, 0xd8, 0xb9, 0x24, + 0xfe, 0xa0, 0xc9, 0x7c, 0x1a, 0x8d, 0x16, 0xac, 0xcc, 0xb9, 0x88, 0xfe, 0x06, 0x07, 0x36, 0x36, + 0xc1, 0x1f, 0xe0, 0xb8, 0x9c, 0x46, 0x2e, 0x8e, 0x21, 0x33, 0x36, 0xf9, 0x9f, 0x2b, 0xf0, 0x0f, + 0xd6, 0xdc, 0x1a, 0x17, 0x89, 0x0a, 0x79, 0xf0, 0xb2, 0x83, 0xb5, 0xac, 0x36, 0xc5, 0xdf, 0x51, + 0x38, 0x85, 0x29, 0x92, 0x1d, 0x25, 0x09, 0x2d, 0xdb, 0x51, 0xc4, 0x95, 0x27, 0xf8, 0x3c, 0x25, + 0x2e, 0x3b, 0x49, 0x3b, 0xa2, 0xf1, 0x90, 0x64, 0xe7, 0xa9, 0xd4, 0x9a, 0x10, 0xdf, 0x08, 0x49, + 0x50, 0x97, 0xcd, 0x08, 0x13, 0xb9, 0xa9, 0xc5, 0xec, 0xb0, 0x91, 0xad, 0x86, 0xde, 0xd3, 0x44, + 0x73, 0x44, 0xb2, 0xad, 0x86, 0x9f, 0x86, 0xba, 0xd1, 0x26, 0x42, 0x64, 0x1e, 0x48, 0x13, 0x27, + 0x0d, 0x24, 0x9b, 0x07, 0x71, 0xc6, 0xe9, 0x56, 0x07, 0x48, 0x1c, 0x7e, 0x78, 0xee, 0x50, 0x66, + 0x17, 0xc2, 0x08, 0xff, 0x56, 0x07, 0x48, 0x91, 0x14, 0x26, 0xb6, 0x1e, 0x7c, 0x61, 0x1f, 0xb9, + 0xc2, 0x97, 0xa5, 0x30, 0x05, 0x17, 0xfe, 0xb2, 0x14, 0x66, 0x4a, 0x8d, 0x00, 0xb6, 0x16, 0x7e, + 0x81, 0x40, 0x21, 0x8b, 0xed, 0x85, 0x10, 0x64, 0xd6, 0x22, 0xbd, 0xc1, 0xc7, 0x67, 0x44, 0xd9, + 0xf5, 0xfd, 0x35, 0xd9, 0xb6, 0x2b, 0x44, 0x93, 0x9d, 0x11, 0x33, 0xdc, 0xac, 0x93, 0xb0, 0x5d, + 0x7e, 0xad, 0x7e, 0xb3, 0x2d, 0x1b, 0x08, 0xf3, 0xf6, 0x72, 0xa7, 0x98, 0x8c, 0xbd, 0x2f, 0xc3, + 0x38, 0xbe, 0x20, 0x8e, 0x04, 0x93, 0x92, 0x5d, 0x86, 0x7f, 0xa7, 0x2c, 0xdb, 0x65, 0xe4, 0xb7, + 0xd0, 0x78, 0xd6, 0x88, 0x59, 0x73, 0x6f, 0xfb, 0x64, 0xb3, 0x26, 0xb9, 0xe6, 0x95, 0xcd, 0x5a, + 0x86, 0xdb, 0x61, 0x3f, 0xc8, 0x25, 0xb7, 0xac, 0x81, 0x5f, 0x96, 0x05, 0xb9, 0xd1, 0x7b, 0x59, + 0x59, 0x90, 0xcb, 0xbf, 0xc1, 0xc5, 0x3a, 0x20, 0xf3, 0xb2, 0x3f, 0x3a, 0x48, 0xb7, 0xdc, 0x0c, + 0x37, 0xab, 0x38, 0xbb, 0xc1, 0xe1, 0x2a, 0x72, 0xf5, 0x28, 0xcb, 0x6e, 0xa4, 0x5d, 0x58, 0xca, + 0xb2, 0x1b, 0x59, 0x2f, 0x3b, 0x55, 0x13, 0xc6, 0x49, 0x4b, 0xf8, 0xba, 0xf3, 0x8c, 0x98, 0x70, + 0x08, 0x2c, 0x7f, 0x29, 0x13, 0x18, 0x1b, 0xea, 0xef, 0x15, 0xb8, 0x48, 0xc6, 0xca, 0x78, 0x39, + 0x29, 0x8b, 0x72, 0x33, 0x51, 0xc8, 0xbf, 0xf2, 0x49, 0x29, 0x84, 0x83, 0x29, 0xce, 0x4d, 0xe1, + 0xc5, 0xb4, 0x7c, 0x44, 0x18, 0x5a, 0x16, 0x4c, 0x89, 0x2f, 0x09, 0xf3, 0x3d, 0x5f, 0xf9, 0xf8, + 0xfd, 0x79, 0x65, 0x79, 0xe7, 0x47, 0x1f, 0xce, 0x28, 0x1f, 0x7c, 0x38, 0xa3, 0xfc, 0xf4, 0xc3, + 0x19, 0xe5, 0x9b, 0x1f, 0xcd, 0x1c, 0xfa, 0xe0, 0xa3, 0x99, 0x43, 0xff, 0xfe, 0xd1, 0xcc, 0xa1, + 0xb7, 0x1f, 0x87, 0x0a, 0xfa, 0x1f, 0x04, 0x03, 0x3c, 0xd4, 0x37, 0xdd, 0x02, 0x1b, 0xee, 0x92, + 0x61, 0x3b, 0x28, 0xfc, 0xb9, 0xad, 0x9b, 0x56, 0xa1, 0x6e, 0xfb, 0x22, 0xba, 0xad, 0xbf, 0x66, + 0x88, 0x8b, 0xff, 0x0b, 0xbb, 0x8b, 0x9b, 0xbd, 0xf8, 0x2f, 0x12, 0xbe, 0xf8, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xc3, 0x40, 0x50, 0x62, 0x31, 0x72, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5626,6 +5674,8 @@ type MsgClient interface { LiquidatePosition(ctx context.Context, in *MsgLiquidatePosition, opts ...grpc.CallOption) (*MsgLiquidatePositionResponse, error) // EmergencySettleMarket defines a method for emergency settling a market EmergencySettleMarket(ctx context.Context, in *MsgEmergencySettleMarket, opts ...grpc.CallOption) (*MsgEmergencySettleMarketResponse, error) + // OffsetPosition defines a method for offsetting a position + OffsetPosition(ctx context.Context, in *MsgOffsetPosition, opts ...grpc.CallOption) (*MsgOffsetPositionResponse, error) // IncreasePositionMargin defines a method for increasing margin of a position IncreasePositionMargin(ctx context.Context, in *MsgIncreasePositionMargin, opts ...grpc.CallOption) (*MsgIncreasePositionMarginResponse, error) // DecreasePositionMargin defines a method for decreasing margin of a position @@ -5659,7 +5709,6 @@ type MsgClient interface { UpdateTradingRewardPendingPoints(ctx context.Context, in *MsgTradingRewardPendingPointsUpdate, opts ...grpc.CallOption) (*MsgTradingRewardPendingPointsUpdateResponse, error) UpdateFeeDiscount(ctx context.Context, in *MsgFeeDiscount, opts ...grpc.CallOption) (*MsgFeeDiscountResponse, error) UpdateAtomicMarketOrderFeeMultiplierSchedule(ctx context.Context, in *MsgAtomicMarketOrderFeeMultiplierSchedule, opts ...grpc.CallOption) (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse, error) - SetDelegationTransferReceivers(ctx context.Context, in *MsgSetDelegationTransferReceivers, opts ...grpc.CallOption) (*MsgSetDelegationTransferReceiversResponse, error) CancelPostOnlyMode(ctx context.Context, in *MsgCancelPostOnlyMode, opts ...grpc.CallOption) (*MsgCancelPostOnlyModeResponse, error) } @@ -5905,6 +5954,15 @@ func (c *msgClient) EmergencySettleMarket(ctx context.Context, in *MsgEmergencyS return out, nil } +func (c *msgClient) OffsetPosition(ctx context.Context, in *MsgOffsetPosition, opts ...grpc.CallOption) (*MsgOffsetPositionResponse, error) { + out := new(MsgOffsetPositionResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v2.Msg/OffsetPosition", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) IncreasePositionMargin(ctx context.Context, in *MsgIncreasePositionMargin, opts ...grpc.CallOption) (*MsgIncreasePositionMarginResponse, error) { out := new(MsgIncreasePositionMarginResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v2.Msg/IncreasePositionMargin", in, out, opts...) @@ -6130,15 +6188,6 @@ func (c *msgClient) UpdateAtomicMarketOrderFeeMultiplierSchedule(ctx context.Con return out, nil } -func (c *msgClient) SetDelegationTransferReceivers(ctx context.Context, in *MsgSetDelegationTransferReceivers, opts ...grpc.CallOption) (*MsgSetDelegationTransferReceiversResponse, error) { - out := new(MsgSetDelegationTransferReceiversResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v2.Msg/SetDelegationTransferReceivers", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) CancelPostOnlyMode(ctx context.Context, in *MsgCancelPostOnlyMode, opts ...grpc.CallOption) (*MsgCancelPostOnlyModeResponse, error) { out := new(MsgCancelPostOnlyModeResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v2.Msg/CancelPostOnlyMode", in, out, opts...) @@ -6221,6 +6270,8 @@ type MsgServer interface { LiquidatePosition(context.Context, *MsgLiquidatePosition) (*MsgLiquidatePositionResponse, error) // EmergencySettleMarket defines a method for emergency settling a market EmergencySettleMarket(context.Context, *MsgEmergencySettleMarket) (*MsgEmergencySettleMarketResponse, error) + // OffsetPosition defines a method for offsetting a position + OffsetPosition(context.Context, *MsgOffsetPosition) (*MsgOffsetPositionResponse, error) // IncreasePositionMargin defines a method for increasing margin of a position IncreasePositionMargin(context.Context, *MsgIncreasePositionMargin) (*MsgIncreasePositionMarginResponse, error) // DecreasePositionMargin defines a method for decreasing margin of a position @@ -6254,7 +6305,6 @@ type MsgServer interface { UpdateTradingRewardPendingPoints(context.Context, *MsgTradingRewardPendingPointsUpdate) (*MsgTradingRewardPendingPointsUpdateResponse, error) UpdateFeeDiscount(context.Context, *MsgFeeDiscount) (*MsgFeeDiscountResponse, error) UpdateAtomicMarketOrderFeeMultiplierSchedule(context.Context, *MsgAtomicMarketOrderFeeMultiplierSchedule) (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse, error) - SetDelegationTransferReceivers(context.Context, *MsgSetDelegationTransferReceivers) (*MsgSetDelegationTransferReceiversResponse, error) CancelPostOnlyMode(context.Context, *MsgCancelPostOnlyMode) (*MsgCancelPostOnlyModeResponse, error) } @@ -6340,6 +6390,9 @@ func (*UnimplementedMsgServer) LiquidatePosition(ctx context.Context, req *MsgLi func (*UnimplementedMsgServer) EmergencySettleMarket(ctx context.Context, req *MsgEmergencySettleMarket) (*MsgEmergencySettleMarketResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EmergencySettleMarket not implemented") } +func (*UnimplementedMsgServer) OffsetPosition(ctx context.Context, req *MsgOffsetPosition) (*MsgOffsetPositionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OffsetPosition not implemented") +} func (*UnimplementedMsgServer) IncreasePositionMargin(ctx context.Context, req *MsgIncreasePositionMargin) (*MsgIncreasePositionMarginResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IncreasePositionMargin not implemented") } @@ -6415,9 +6468,6 @@ func (*UnimplementedMsgServer) UpdateFeeDiscount(ctx context.Context, req *MsgFe func (*UnimplementedMsgServer) UpdateAtomicMarketOrderFeeMultiplierSchedule(ctx context.Context, req *MsgAtomicMarketOrderFeeMultiplierSchedule) (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateAtomicMarketOrderFeeMultiplierSchedule not implemented") } -func (*UnimplementedMsgServer) SetDelegationTransferReceivers(ctx context.Context, req *MsgSetDelegationTransferReceivers) (*MsgSetDelegationTransferReceiversResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetDelegationTransferReceivers not implemented") -} func (*UnimplementedMsgServer) CancelPostOnlyMode(ctx context.Context, req *MsgCancelPostOnlyMode) (*MsgCancelPostOnlyModeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelPostOnlyMode not implemented") } @@ -6894,31 +6944,49 @@ func _Msg_EmergencySettleMarket_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -func _Msg_IncreasePositionMargin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgIncreasePositionMargin) +func _Msg_OffsetPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgOffsetPosition) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).IncreasePositionMargin(ctx, in) + return srv.(MsgServer).OffsetPosition(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.exchange.v2.Msg/IncreasePositionMargin", + FullMethod: "/injective.exchange.v2.Msg/OffsetPosition", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).IncreasePositionMargin(ctx, req.(*MsgIncreasePositionMargin)) + return srv.(MsgServer).OffsetPosition(ctx, req.(*MsgOffsetPosition)) } return interceptor(ctx, in, info, handler) } -func _Msg_DecreasePositionMargin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgDecreasePositionMargin) +func _Msg_IncreasePositionMargin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgIncreasePositionMargin) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).DecreasePositionMargin(ctx, in) + return srv.(MsgServer).IncreasePositionMargin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v2.Msg/IncreasePositionMargin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).IncreasePositionMargin(ctx, req.(*MsgIncreasePositionMargin)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DecreasePositionMargin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDecreasePositionMargin) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DecreasePositionMargin(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, @@ -7344,24 +7412,6 @@ func _Msg_UpdateAtomicMarketOrderFeeMultiplierSchedule_Handler(srv interface{}, return interceptor(ctx, in, info, handler) } -func _Msg_SetDelegationTransferReceivers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgSetDelegationTransferReceivers) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).SetDelegationTransferReceivers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/injective.exchange.v2.Msg/SetDelegationTransferReceivers", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).SetDelegationTransferReceivers(ctx, req.(*MsgSetDelegationTransferReceivers)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_CancelPostOnlyMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgCancelPostOnlyMode) if err := dec(in); err != nil { @@ -7488,6 +7538,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "EmergencySettleMarket", Handler: _Msg_EmergencySettleMarket_Handler, }, + { + MethodName: "OffsetPosition", + Handler: _Msg_OffsetPosition_Handler, + }, { MethodName: "IncreasePositionMargin", Handler: _Msg_IncreasePositionMargin_Handler, @@ -7588,10 +7642,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateAtomicMarketOrderFeeMultiplierSchedule", Handler: _Msg_UpdateAtomicMarketOrderFeeMultiplierSchedule_Handler, }, - { - MethodName: "SetDelegationTransferReceivers", - Handler: _Msg_SetDelegationTransferReceivers_Handler, - }, { MethodName: "CancelPostOnlyMode", Handler: _Msg_CancelPostOnlyMode_Handler, @@ -7718,6 +7768,16 @@ func (m *MsgUpdateDerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, erro _ = i var l int _ = l + { + size, err := m.NewOpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 { size := m.NewReduceMarginRatio.Size() i -= size @@ -8333,6 +8393,18 @@ func (m *MsgInstantPerpetualMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 { size := m.ReduceMarginRatio.Size() i -= size @@ -8504,6 +8576,18 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 { size := m.MinNotional.Size() i -= size @@ -8662,6 +8746,18 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + { + size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a { size := m.ReduceMarginRatio.Size() i -= size @@ -9471,6 +9567,48 @@ func (m *MsgBatchUpdateOrders) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.BinaryOptionsMarketOrdersToCreate) > 0 { + for iNdEx := len(m.BinaryOptionsMarketOrdersToCreate) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.BinaryOptionsMarketOrdersToCreate[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + } + if len(m.DerivativeMarketOrdersToCreate) > 0 { + for iNdEx := len(m.DerivativeMarketOrdersToCreate) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DerivativeMarketOrdersToCreate[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + } + if len(m.SpotMarketOrdersToCreate) > 0 { + for iNdEx := len(m.SpotMarketOrdersToCreate) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SpotMarketOrdersToCreate[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + } if len(m.BinaryOptionsOrdersToCreate) > 0 { for iNdEx := len(m.BinaryOptionsOrdersToCreate) - 1; iNdEx >= 0; iNdEx-- { { @@ -9619,6 +9757,99 @@ func (m *MsgBatchUpdateOrdersResponse) MarshalToSizedBuffer(dAtA []byte) (int, e _ = i var l int _ = l + if len(m.FailedBinaryOptionsMarketOrdersCids) > 0 { + for iNdEx := len(m.FailedBinaryOptionsMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedBinaryOptionsMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedBinaryOptionsMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedBinaryOptionsMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + } + if len(m.CreatedBinaryOptionsMarketOrdersCids) > 0 { + for iNdEx := len(m.CreatedBinaryOptionsMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedBinaryOptionsMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedBinaryOptionsMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedBinaryOptionsMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + } + if len(m.BinaryOptionsMarketOrderHashes) > 0 { + for iNdEx := len(m.BinaryOptionsMarketOrderHashes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.BinaryOptionsMarketOrderHashes[iNdEx]) + copy(dAtA[i:], m.BinaryOptionsMarketOrderHashes[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.BinaryOptionsMarketOrderHashes[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + } + if len(m.FailedDerivativeMarketOrdersCids) > 0 { + for iNdEx := len(m.FailedDerivativeMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedDerivativeMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedDerivativeMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedDerivativeMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + } + if len(m.CreatedDerivativeMarketOrdersCids) > 0 { + for iNdEx := len(m.CreatedDerivativeMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedDerivativeMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedDerivativeMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedDerivativeMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if len(m.DerivativeMarketOrderHashes) > 0 { + for iNdEx := len(m.DerivativeMarketOrderHashes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.DerivativeMarketOrderHashes[iNdEx]) + copy(dAtA[i:], m.DerivativeMarketOrderHashes[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.DerivativeMarketOrderHashes[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + if len(m.FailedSpotMarketOrdersCids) > 0 { + for iNdEx := len(m.FailedSpotMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedSpotMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedSpotMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedSpotMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x7a + } + } + if len(m.CreatedSpotMarketOrdersCids) > 0 { + for iNdEx := len(m.CreatedSpotMarketOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedSpotMarketOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedSpotMarketOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedSpotMarketOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x72 + } + } + if len(m.SpotMarketOrderHashes) > 0 { + for iNdEx := len(m.SpotMarketOrderHashes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.SpotMarketOrderHashes[iNdEx]) + copy(dAtA[i:], m.SpotMarketOrderHashes[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.SpotMarketOrderHashes[iNdEx]))) + i-- + dAtA[i] = 0x6a + } + } if len(m.FailedBinaryOptionsOrdersCids) > 0 { for iNdEx := len(m.FailedBinaryOptionsOrdersCids) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.FailedBinaryOptionsOrdersCids[iNdEx]) @@ -10534,6 +10765,82 @@ func (m *MsgLiquidatePositionResponse) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } +func (m *MsgOffsetPosition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgOffsetPosition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgOffsetPosition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.OffsettingSubaccountIds) > 0 { + for iNdEx := len(m.OffsettingSubaccountIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.OffsettingSubaccountIds[iNdEx]) + copy(dAtA[i:], m.OffsettingSubaccountIds[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.OffsettingSubaccountIds[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintTx(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0x1a + } + if len(m.SubaccountId) > 0 { + i -= len(m.SubaccountId) + copy(dAtA[i:], m.SubaccountId) + i = encodeVarintTx(dAtA, i, uint64(len(m.SubaccountId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgOffsetPositionResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgOffsetPositionResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgOffsetPositionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgEmergencySettleMarket) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -12308,68 +12615,6 @@ func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) MarshalToSizedBuffer return len(dAtA) - i, nil } -func (m *MsgSetDelegationTransferReceivers) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgSetDelegationTransferReceivers) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgSetDelegationTransferReceivers) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Receivers) > 0 { - for iNdEx := len(m.Receivers) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Receivers[iNdEx]) - copy(dAtA[i:], m.Receivers[iNdEx]) - i = encodeVarintTx(dAtA, i, uint64(len(m.Receivers[iNdEx]))) - i-- - dAtA[i] = 0x12 - } - } - if len(m.Sender) > 0 { - i -= len(m.Sender) - copy(dAtA[i:], m.Sender) - i = encodeVarintTx(dAtA, i, uint64(len(m.Sender))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *MsgSetDelegationTransferReceiversResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *MsgSetDelegationTransferReceiversResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgSetDelegationTransferReceiversResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - func (m *MsgCancelPostOnlyMode) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -12500,6 +12745,8 @@ func (m *MsgUpdateDerivativeMarket) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.NewReduceMarginRatio.Size() n += 1 + l + sovTx(uint64(l)) + l = m.NewOpenNotionalCap.Size() + n += 1 + l + sovTx(uint64(l)) return n } @@ -12764,6 +13011,8 @@ func (m *MsgInstantPerpetualMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.ReduceMarginRatio.Size() n += 1 + l + sovTx(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovTx(uint64(l)) return n } @@ -12828,6 +13077,8 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinNotional.Size() n += 1 + l + sovTx(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovTx(uint64(l)) return n } @@ -12891,6 +13142,8 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.ReduceMarginRatio.Size() n += 2 + l + sovTx(uint64(l)) + l = m.OpenNotionalCap.Size() + n += 2 + l + sovTx(uint64(l)) return n } @@ -13232,6 +13485,24 @@ func (m *MsgBatchUpdateOrders) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } + if len(m.SpotMarketOrdersToCreate) > 0 { + for _, e := range m.SpotMarketOrdersToCreate { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.DerivativeMarketOrdersToCreate) > 0 { + for _, e := range m.DerivativeMarketOrdersToCreate { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.BinaryOptionsMarketOrdersToCreate) > 0 { + for _, e := range m.BinaryOptionsMarketOrdersToCreate { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } return n } @@ -13304,6 +13575,60 @@ func (m *MsgBatchUpdateOrdersResponse) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } + if len(m.SpotMarketOrderHashes) > 0 { + for _, s := range m.SpotMarketOrderHashes { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.CreatedSpotMarketOrdersCids) > 0 { + for _, s := range m.CreatedSpotMarketOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedSpotMarketOrdersCids) > 0 { + for _, s := range m.FailedSpotMarketOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.DerivativeMarketOrderHashes) > 0 { + for _, s := range m.DerivativeMarketOrderHashes { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.CreatedDerivativeMarketOrdersCids) > 0 { + for _, s := range m.CreatedDerivativeMarketOrdersCids { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.FailedDerivativeMarketOrdersCids) > 0 { + for _, s := range m.FailedDerivativeMarketOrdersCids { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.BinaryOptionsMarketOrderHashes) > 0 { + for _, s := range m.BinaryOptionsMarketOrderHashes { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.CreatedBinaryOptionsMarketOrdersCids) > 0 { + for _, s := range m.CreatedBinaryOptionsMarketOrdersCids { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.FailedBinaryOptionsMarketOrdersCids) > 0 { + for _, s := range m.FailedBinaryOptionsMarketOrdersCids { + l = len(s) + n += 2 + l + sovTx(uint64(l)) + } + } return n } @@ -13637,6 +13962,42 @@ func (m *MsgLiquidatePositionResponse) Size() (n int) { return n } +func (m *MsgOffsetPosition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.SubaccountId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.OffsettingSubaccountIds) > 0 { + for _, s := range m.OffsettingSubaccountIds { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgOffsetPositionResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgEmergencySettleMarket) Size() (n int) { if m == nil { return 0 @@ -14372,34 +14733,6 @@ func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) Size() (n int) { return n } -func (m *MsgSetDelegationTransferReceivers) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Sender) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - if len(m.Receivers) > 0 { - for _, s := range m.Receivers { - l = len(s) - n += 1 + l + sovTx(uint64(l)) - } - } - return n -} - -func (m *MsgSetDelegationTransferReceiversResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - func (m *MsgCancelPostOnlyMode) Size() (n int) { if m == nil { return 0 @@ -15055,6 +15388,39 @@ func (m *MsgUpdateDerivativeMarket) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewOpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.NewOpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17043,6 +17409,39 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17581,6 +17980,39 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -18170,6 +18602,39 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OpenNotionalCap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OpenNotionalCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -20503,19 +20968,121 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpotMarketOrdersToCreate", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthTx } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy + m.SpotMarketOrdersToCreate = append(m.SpotMarketOrdersToCreate, &SpotOrder{}) + if err := m.SpotMarketOrdersToCreate[len(m.SpotMarketOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeMarketOrdersToCreate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DerivativeMarketOrdersToCreate = append(m.DerivativeMarketOrdersToCreate, &DerivativeOrder{}) + if err := m.DerivativeMarketOrdersToCreate[len(m.DerivativeMarketOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsMarketOrdersToCreate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BinaryOptionsMarketOrdersToCreate = append(m.BinaryOptionsMarketOrdersToCreate, &DerivativeOrder{}) + if err := m.BinaryOptionsMarketOrdersToCreate[len(m.BinaryOptionsMarketOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -20798,38 +21365,326 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex < 0 { return ErrInvalidLengthTx } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.BinaryOptionsCancelSuccess) == 0 { + m.BinaryOptionsCancelSuccess = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsCancelSuccess", wireType) + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrderHashes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BinaryOptionsOrderHashes = append(m.BinaryOptionsOrderHashes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedSpotOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedSpotOrdersCids = append(m.CreatedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedSpotOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailedSpotOrdersCids = append(m.FailedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDerivativeOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedDerivativeOrdersCids = append(m.CreatedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedDerivativeOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailedDerivativeOrdersCids = append(m.FailedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedBinaryOptionsOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedBinaryOptionsOrdersCids = append(m.CreatedBinaryOptionsOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedBinaryOptionsOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailedBinaryOptionsOrdersCids = append(m.FailedBinaryOptionsOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpotMarketOrderHashes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpotMarketOrderHashes = append(m.SpotMarketOrderHashes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedSpotMarketOrdersCids", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - var elementCount int - elementCount = packedLen - if elementCount != 0 && len(m.BinaryOptionsCancelSuccess) == 0 { - m.BinaryOptionsCancelSuccess = make([]bool, 0, elementCount) - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsCancelSuccess", wireType) } - case 6: + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CreatedSpotMarketOrdersCids = append(m.CreatedSpotMarketOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrderHashes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailedSpotMarketOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20857,11 +21712,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BinaryOptionsOrderHashes = append(m.BinaryOptionsOrderHashes, string(dAtA[iNdEx:postIndex])) + m.FailedSpotMarketOrdersCids = append(m.FailedSpotMarketOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 7: + case 16: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedSpotOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeMarketOrderHashes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20889,11 +21744,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedSpotOrdersCids = append(m.CreatedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + m.DerivativeMarketOrderHashes = append(m.DerivativeMarketOrderHashes, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 8: + case 17: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedSpotOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDerivativeMarketOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20921,11 +21776,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FailedSpotOrdersCids = append(m.FailedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + m.CreatedDerivativeMarketOrdersCids = append(m.CreatedDerivativeMarketOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 9: + case 18: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedDerivativeOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailedDerivativeMarketOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20953,11 +21808,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedDerivativeOrdersCids = append(m.CreatedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) + m.FailedDerivativeMarketOrdersCids = append(m.FailedDerivativeMarketOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 10: + case 19: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedDerivativeOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsMarketOrderHashes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -20985,11 +21840,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FailedDerivativeOrdersCids = append(m.FailedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) + m.BinaryOptionsMarketOrderHashes = append(m.BinaryOptionsMarketOrderHashes, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 11: + case 20: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreatedBinaryOptionsOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedBinaryOptionsMarketOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21017,11 +21872,11 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CreatedBinaryOptionsOrdersCids = append(m.CreatedBinaryOptionsOrdersCids, string(dAtA[iNdEx:postIndex])) + m.CreatedBinaryOptionsMarketOrdersCids = append(m.CreatedBinaryOptionsMarketOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 12: + case 21: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailedBinaryOptionsOrdersCids", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailedBinaryOptionsMarketOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -21049,7 +21904,7 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FailedBinaryOptionsOrdersCids = append(m.FailedBinaryOptionsOrdersCids, string(dAtA[iNdEx:postIndex])) + m.FailedBinaryOptionsMarketOrdersCids = append(m.FailedBinaryOptionsMarketOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -22812,7 +23667,236 @@ func (m *MsgBatchCancelDerivativeOrdersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { +func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgSubaccountTransfer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSubaccountTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgSubaccountTransferResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSubaccountTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -22835,10 +23919,10 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSubaccountTransfer: wiretype end group for non-group") + return fmt.Errorf("proto: MsgExternalTransfer: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSubaccountTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgExternalTransfer: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -22991,7 +24075,7 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { +func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23014,10 +24098,10 @@ func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSubaccountTransferResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgExternalTransferResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSubaccountTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgExternalTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -23041,7 +24125,7 @@ func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { +func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23064,10 +24148,10 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgExternalTransfer: wiretype end group for non-group") + return fmt.Errorf("proto: MsgLiquidatePosition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgExternalTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgLiquidatePosition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -23104,7 +24188,7 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23132,11 +24216,11 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -23164,11 +24248,11 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -23195,7 +24279,10 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Order == nil { + m.Order = &DerivativeOrder{} + } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -23220,7 +24307,7 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { +func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23243,10 +24330,10 @@ func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgExternalTransferResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgLiquidatePositionResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgExternalTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgLiquidatePositionResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -23270,7 +24357,7 @@ func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { +func (m *MsgOffsetPosition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23293,10 +24380,10 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgLiquidatePosition: wiretype end group for non-group") + return fmt.Errorf("proto: MsgOffsetPosition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLiquidatePosition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgOffsetPosition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -23397,9 +24484,9 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OffsettingSubaccountIds", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -23409,27 +24496,23 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Order == nil { - m.Order = &DerivativeOrder{} - } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OffsettingSubaccountIds = append(m.OffsettingSubaccountIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -23452,7 +24535,7 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { +func (m *MsgOffsetPositionResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -23475,10 +24558,10 @@ func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgLiquidatePositionResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgOffsetPositionResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLiquidatePositionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgOffsetPositionResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -28324,170 +29407,6 @@ func (m *MsgAtomicMarketOrderFeeMultiplierScheduleResponse) Unmarshal(dAtA []byt } return nil } -func (m *MsgSetDelegationTransferReceivers) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetDelegationTransferReceivers: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetDelegationTransferReceivers: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Sender = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Receivers", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Receivers = append(m.Receivers, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgSetDelegationTransferReceiversResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetDelegationTransferReceiversResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetDelegationTransferReceiversResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *MsgCancelPostOnlyMode) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/codec.go b/chain/peggy/types/codec.go index bead1936..381cd75f 100644 --- a/chain/peggy/types/codec.go +++ b/chain/peggy/types/codec.go @@ -37,6 +37,9 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUpdateParams{}, &MsgBlacklistEthereumAddresses{}, &MsgRevokeEthereumBlacklist{}, + &MsgCreateRateLimit{}, + &MsgUpdateRateLimit{}, + &MsgRemoveRateLimit{}, ) registry.RegisterInterface( @@ -74,4 +77,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgBlacklistEthereumAddresses{}, "peggy/MsgBlacklistEthereumAddresses", nil) cdc.RegisterConcrete(&MsgRevokeEthereumBlacklist{}, "peggy/MsgRevokeEthereumBlacklist", nil) cdc.RegisterConcrete(&Params{}, "peggy/Params", nil) + cdc.RegisterConcrete(&MsgCreateRateLimit{}, "peggy/MsgCreateRateLimit", nil) + cdc.RegisterConcrete(&MsgUpdateRateLimit{}, "peggy/MsgUpdateRateLimit", nil) + cdc.RegisterConcrete(&MsgRemoveRateLimit{}, "peggy/MsgRemoveRateLimit", nil) + cdc.RegisterConcrete(&RateLimit{}, "peggy/RateLimit", nil) } diff --git a/chain/peggy/types/events.pb.go b/chain/peggy/types/events.pb.go index 179da07d..f9badc10 100644 --- a/chain/peggy/types/events.pb.go +++ b/chain/peggy/types/events.pb.go @@ -25,6 +25,31 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type JailReason int32 + +const ( + JailReason_MissingValsetConfirm JailReason = 0 + JailReason_MissingBatchConfirm JailReason = 1 +) + +var JailReason_name = map[int32]string{ + 0: "MissingValsetConfirm", + 1: "MissingBatchConfirm", +} + +var JailReason_value = map[string]int32{ + "MissingValsetConfirm": 0, + "MissingBatchConfirm": 1, +} + +func (x JailReason) String() string { + return proto.EnumName(JailReason_name, int32(x)) +} + +func (JailReason) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_95f217691d2f42c2, []int{0} +} + type EventAttestationObserved struct { AttestationType ClaimType `protobuf:"varint,1,opt,name=attestation_type,json=attestationType,proto3,enum=injective.peggy.v1.ClaimType" json:"attestation_type,omitempty"` BridgeContract string `protobuf:"bytes,2,opt,name=bridge_contract,json=bridgeContract,proto3" json:"bridge_contract,omitempty"` @@ -1376,7 +1401,84 @@ func (m *Withdrawal) GetReceiver() string { return "" } +type EventValidatorJailed struct { + Reason JailReason `protobuf:"varint,1,opt,name=reason,proto3,enum=injective.peggy.v1.JailReason" json:"reason,omitempty"` + Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` + ConsensusAddress string `protobuf:"bytes,3,opt,name=consensus_address,json=consensusAddress,proto3" json:"consensus_address,omitempty"` + OperatorAddress string `protobuf:"bytes,4,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"` + Moniker string `protobuf:"bytes,5,opt,name=moniker,proto3" json:"moniker,omitempty"` +} + +func (m *EventValidatorJailed) Reset() { *m = EventValidatorJailed{} } +func (m *EventValidatorJailed) String() string { return proto.CompactTextString(m) } +func (*EventValidatorJailed) ProtoMessage() {} +func (*EventValidatorJailed) Descriptor() ([]byte, []int) { + return fileDescriptor_95f217691d2f42c2, []int{20} +} +func (m *EventValidatorJailed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventValidatorJailed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventValidatorJailed.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventValidatorJailed) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventValidatorJailed.Merge(m, src) +} +func (m *EventValidatorJailed) XXX_Size() int { + return m.Size() +} +func (m *EventValidatorJailed) XXX_DiscardUnknown() { + xxx_messageInfo_EventValidatorJailed.DiscardUnknown(m) +} + +var xxx_messageInfo_EventValidatorJailed proto.InternalMessageInfo + +func (m *EventValidatorJailed) GetReason() JailReason { + if m != nil { + return m.Reason + } + return JailReason_MissingValsetConfirm +} + +func (m *EventValidatorJailed) GetPower() int64 { + if m != nil { + return m.Power + } + return 0 +} + +func (m *EventValidatorJailed) GetConsensusAddress() string { + if m != nil { + return m.ConsensusAddress + } + return "" +} + +func (m *EventValidatorJailed) GetOperatorAddress() string { + if m != nil { + return m.OperatorAddress + } + return "" +} + +func (m *EventValidatorJailed) GetMoniker() string { + if m != nil { + return m.Moniker + } + return "" +} + func init() { + proto.RegisterEnum("injective.peggy.v1.JailReason", JailReason_name, JailReason_value) proto.RegisterType((*EventAttestationObserved)(nil), "injective.peggy.v1.EventAttestationObserved") proto.RegisterType((*EventBridgeWithdrawCanceled)(nil), "injective.peggy.v1.EventBridgeWithdrawCanceled") proto.RegisterType((*EventOutgoingBatch)(nil), "injective.peggy.v1.EventOutgoingBatch") @@ -1397,96 +1499,101 @@ func init() { proto.RegisterType((*EventDepositReceived)(nil), "injective.peggy.v1.EventDepositReceived") proto.RegisterType((*EventWithdrawalsCompleted)(nil), "injective.peggy.v1.EventWithdrawalsCompleted") proto.RegisterType((*Withdrawal)(nil), "injective.peggy.v1.Withdrawal") + proto.RegisterType((*EventValidatorJailed)(nil), "injective.peggy.v1.EventValidatorJailed") } func init() { proto.RegisterFile("injective/peggy/v1/events.proto", fileDescriptor_95f217691d2f42c2) } var fileDescriptor_95f217691d2f42c2 = []byte{ - // 1340 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x6f, 0x1b, 0xc5, - 0x17, 0xcf, 0xda, 0x4e, 0xd2, 0xbc, 0x38, 0x4e, 0x3a, 0xcd, 0xb7, 0x5f, 0x37, 0xa8, 0x8e, 0xbb, - 0x6d, 0x49, 0x00, 0xd5, 0x6e, 0x8b, 0x7a, 0x40, 0xe2, 0x40, 0xe3, 0x06, 0x1a, 0x7e, 0xb4, 0xd2, - 0x26, 0x14, 0x89, 0x8b, 0x35, 0xde, 0x79, 0xf5, 0x4e, 0xe3, 0xdd, 0x31, 0x3b, 0x63, 0xa7, 0x39, - 0x73, 0xe1, 0xc0, 0x01, 0x09, 0x71, 0xe5, 0x7f, 0xe0, 0xc0, 0x9f, 0x80, 0x54, 0x6e, 0x3d, 0x22, - 0x0e, 0x15, 0x6a, 0xfe, 0x03, 0x24, 0x2e, 0x9c, 0xd0, 0xce, 0xcc, 0x6e, 0x9c, 0xac, 0x2d, 0xd2, - 0x14, 0xca, 0xc9, 0x9e, 0x37, 0xef, 0xbd, 0x79, 0xf3, 0x79, 0x9f, 0x79, 0xef, 0x2d, 0xac, 0xf2, - 0xe8, 0x11, 0xfa, 0x8a, 0x0f, 0xb1, 0xd9, 0xc7, 0x6e, 0x77, 0xbf, 0x39, 0xbc, 0xd1, 0xc4, 0x21, - 0x46, 0x4a, 0x36, 0xfa, 0xb1, 0x50, 0x82, 0x90, 0x4c, 0xa1, 0xa1, 0x15, 0x1a, 0xc3, 0x1b, 0x2b, - 0xcb, 0x5d, 0xd1, 0x15, 0x7a, 0xbb, 0x99, 0xfc, 0x33, 0x9a, 0x2b, 0x57, 0xc6, 0xb8, 0xa2, 0x4a, - 0xa1, 0x54, 0x54, 0x71, 0x11, 0x59, 0xad, 0xda, 0x18, 0x2d, 0xb5, 0xdf, 0x47, 0x7b, 0x9e, 0xfb, - 0xbb, 0x03, 0xd5, 0xcd, 0x24, 0x80, 0xdb, 0x87, 0xa6, 0xf7, 0x3b, 0x12, 0xe3, 0x21, 0x32, 0x72, - 0x17, 0x96, 0x46, 0x3c, 0xb6, 0x13, 0xbb, 0xaa, 0x53, 0x77, 0xd6, 0x2b, 0x37, 0x2f, 0x36, 0xf2, - 0x71, 0x36, 0x5a, 0x3d, 0xca, 0xc3, 0x9d, 0xfd, 0x3e, 0x7a, 0x8b, 0x23, 0x66, 0x89, 0x80, 0xac, - 0xc1, 0x62, 0x27, 0xe6, 0xac, 0x8b, 0x6d, 0x5f, 0x44, 0x2a, 0xa6, 0xbe, 0xaa, 0x16, 0xea, 0xce, - 0xfa, 0x9c, 0x57, 0x31, 0xe2, 0x96, 0x95, 0x92, 0xd7, 0x0f, 0x15, 0x03, 0xca, 0xa3, 0x36, 0x67, - 0xd5, 0x62, 0xdd, 0x59, 0x2f, 0x79, 0x0b, 0x56, 0x31, 0x91, 0x6e, 0x31, 0x72, 0x15, 0x2a, 0xa3, - 0xa1, 0x71, 0x56, 0x2d, 0xd5, 0x9d, 0xf5, 0xb2, 0xb7, 0x30, 0x22, 0xdd, 0x62, 0x64, 0x19, 0xa6, - 0x23, 0x11, 0xf9, 0x58, 0x9d, 0xd6, 0x4e, 0xcc, 0xc2, 0x8d, 0xe0, 0x35, 0x7d, 0xe7, 0x0d, 0xed, - 0xf2, 0x33, 0xae, 0x02, 0x16, 0xd3, 0xbd, 0x16, 0x8d, 0x7c, 0xec, 0x21, 0x1b, 0x17, 0xac, 0x73, - 0xd2, 0x60, 0x0b, 0x63, 0x82, 0x75, 0x7f, 0x72, 0x80, 0xe8, 0x03, 0xef, 0x0f, 0x54, 0x57, 0xf0, - 0xa8, 0xbb, 0x41, 0x95, 0x1f, 0x24, 0xc1, 0x31, 0x8c, 0x44, 0x68, 0xbd, 0x9b, 0x05, 0xb9, 0x01, - 0xcb, 0x22, 0xf6, 0x03, 0x94, 0x2a, 0xa6, 0x4a, 0xc4, 0x6d, 0xca, 0x58, 0x8c, 0x52, 0x5a, 0xbc, - 0xce, 0x8d, 0xee, 0xdd, 0x36, 0x5b, 0x64, 0x15, 0xe6, 0x3b, 0x89, 0xc7, 0xb6, 0xb9, 0xab, 0x01, - 0x0c, 0xb4, 0xe8, 0x5e, 0x22, 0x21, 0x97, 0x61, 0xc1, 0x28, 0x28, 0x1e, 0xa2, 0x18, 0x28, 0x0d, - 0x56, 0xc9, 0x2b, 0x6b, 0xe1, 0x8e, 0x91, 0x91, 0x3a, 0x94, 0xad, 0xd2, 0xe3, 0x36, 0x67, 0xb2, - 0x3a, 0x5d, 0x2f, 0x66, 0x6e, 0x76, 0x1e, 0x6f, 0x31, 0xe9, 0x7e, 0xef, 0xc0, 0x4a, 0xfe, 0x1e, - 0xff, 0x1a, 0x6e, 0xe4, 0x02, 0x9c, 0x31, 0x11, 0x65, 0x2c, 0x98, 0xd5, 0xeb, 0xd1, 0xc4, 0x96, - 0x46, 0x13, 0xfb, 0x5d, 0xc1, 0xb2, 0xf9, 0x01, 0xed, 0x49, 0x54, 0x9f, 0xf6, 0x19, 0x55, 0xe8, - 0xe1, 0x17, 0x03, 0x94, 0x8a, 0x5c, 0x82, 0xf2, 0x50, 0x8b, 0x2d, 0x4c, 0x8e, 0xb6, 0x9c, 0x37, - 0xb2, 0x0c, 0x27, 0xab, 0x12, 0x20, 0xef, 0x06, 0xca, 0x86, 0x65, 0xed, 0xee, 0x6a, 0x19, 0xf9, - 0x10, 0x2a, 0x56, 0x29, 0xc4, 0xb0, 0x83, 0xb1, 0xac, 0x16, 0xeb, 0xc5, 0xf5, 0xf9, 0x9b, 0x97, - 0xc7, 0xbd, 0x09, 0x43, 0xb1, 0x07, 0xb4, 0xc7, 0x59, 0x92, 0x31, 0xcf, 0xfa, 0xff, 0xc4, 0x58, - 0x92, 0x0d, 0x58, 0x88, 0x71, 0x8f, 0xc6, 0xac, 0x4d, 0x43, 0x31, 0x88, 0x4c, 0x62, 0xe6, 0x36, - 0x2e, 0x3e, 0x79, 0xb6, 0x3a, 0xf5, 0xeb, 0xb3, 0xd5, 0xff, 0xf9, 0x42, 0x86, 0x42, 0x4a, 0xb6, - 0xdb, 0xe0, 0xa2, 0x19, 0x52, 0x15, 0x34, 0xb6, 0x22, 0xe5, 0x95, 0x8d, 0xcd, 0x6d, 0x6d, 0x92, - 0xdc, 0xcb, 0xfa, 0x50, 0x62, 0x17, 0x23, 0x4d, 0xf5, 0x39, 0x6f, 0xde, 0xc8, 0x76, 0x12, 0x91, - 0xfb, 0x83, 0x03, 0x17, 0x35, 0x2e, 0xdb, 0xa8, 0xee, 0xe7, 0x09, 0x84, 0x92, 0xbc, 0x05, 0x67, - 0x87, 0x69, 0x90, 0x19, 0xe5, 0x4c, 0xf6, 0x96, 0xb2, 0x8d, 0x94, 0x6f, 0xa7, 0xa0, 0xe8, 0x75, - 0x58, 0x16, 0x7d, 0x34, 0xea, 0xa8, 0x82, 0xcc, 0xa4, 0xa8, 0x4d, 0x48, 0xba, 0xb7, 0xa9, 0x02, - 0x6b, 0xe1, 0x3e, 0xb2, 0x6f, 0xc6, 0xa4, 0xb2, 0x25, 0xa2, 0x87, 0x3c, 0x0e, 0x4f, 0x92, 0xc4, - 0x17, 0x8f, 0xce, 0xfd, 0xb2, 0x00, 0x15, 0x8b, 0x4f, 0xc4, 0x76, 0xc4, 0xa6, 0x0a, 0xc8, 0x15, - 0xa8, 0x08, 0xcb, 0x72, 0xf3, 0x20, 0xec, 0x51, 0xe5, 0x54, 0x9a, 0x3c, 0x09, 0x72, 0x1e, 0x66, - 0x24, 0x46, 0x0c, 0x63, 0xeb, 0xdd, 0xae, 0xc8, 0x0a, 0x9c, 0x89, 0xd1, 0x47, 0x3e, 0xc4, 0xd8, - 0x5e, 0x31, 0x5b, 0x93, 0x0f, 0x60, 0xe6, 0x48, 0xb2, 0x9b, 0x36, 0xd9, 0x6b, 0x5d, 0xae, 0x82, - 0x41, 0xa7, 0xe1, 0x8b, 0xb0, 0x69, 0xf2, 0x6e, 0x7f, 0xae, 0x49, 0xb6, 0x6b, 0x8b, 0x76, 0x4b, - 0xf0, 0xc8, 0xb3, 0xe6, 0xe4, 0x1e, 0x80, 0x7d, 0x46, 0x0f, 0xd1, 0x54, 0xb8, 0x53, 0x38, 0x9b, - 0x33, 0x2e, 0xde, 0x47, 0x74, 0xbb, 0x70, 0x56, 0x83, 0x60, 0xb1, 0x36, 0x45, 0xea, 0x58, 0x6d, - 0x71, 0x72, 0xb5, 0xe5, 0x14, 0x70, 0x2b, 0x58, 0x3e, 0xde, 0x73, 0x1e, 0x08, 0x85, 0xc9, 0x59, - 0xba, 0x19, 0x1e, 0x3d, 0x4b, 0x8b, 0xcc, 0x59, 0xf9, 0xaa, 0x5f, 0x98, 0x50, 0xf5, 0x87, 0x42, - 0x65, 0xd0, 0x9b, 0x85, 0xfb, 0x47, 0xc1, 0xde, 0xef, 0x0e, 0xf6, 0x85, 0xe4, 0x4a, 0xb7, 0xab, - 0xbf, 0x3f, 0xf3, 0x12, 0x94, 0x8d, 0xc2, 0x91, 0x92, 0x60, 0x8c, 0x6c, 0x45, 0xc8, 0x87, 0x55, - 0x1c, 0x17, 0xd6, 0x1a, 0x2c, 0xa2, 0x0a, 0x30, 0xc6, 0x41, 0xd8, 0xb6, 0xac, 0x29, 0x99, 0xfa, - 0x98, 0x8a, 0xb7, 0x0d, 0x7b, 0xd6, 0x60, 0xd1, 0x24, 0xab, 0x9d, 0x91, 0xc8, 0x3c, 0xea, 0x8a, - 0x11, 0x7b, 0x29, 0x95, 0xae, 0x42, 0x45, 0xbf, 0xf9, 0xc3, 0x82, 0x3b, 0xa3, 0xf5, 0x16, 0xb4, - 0x34, 0xab, 0xb7, 0xb7, 0x32, 0xc6, 0xcd, 0x9e, 0xa4, 0xbc, 0xa4, 0xfc, 0x9a, 0x94, 0xd9, 0x33, - 0x93, 0x9f, 0x39, 0x81, 0x12, 0xa3, 0x8a, 0x56, 0xe7, 0xb4, 0x8a, 0xfe, 0xef, 0xfe, 0x99, 0x76, - 0xbf, 0xac, 0xd1, 0xbe, 0x6a, 0xe0, 0x8f, 0x71, 0xb8, 0x94, 0xe3, 0x70, 0x1e, 0xc7, 0xe9, 0x71, - 0x38, 0x4e, 0x02, 0x64, 0x66, 0x32, 0xd5, 0x7f, 0x2e, 0xc0, 0xff, 0xf5, 0xe5, 0x37, 0xbd, 0xd6, - 0xcd, 0xeb, 0x77, 0xb0, 0xdf, 0x13, 0xfb, 0xc8, 0x5e, 0x39, 0x02, 0x97, 0xa0, 0x6c, 0x19, 0x65, - 0x26, 0x0e, 0xc3, 0xbb, 0x79, 0x23, 0xbb, 0xa3, 0xe7, 0x8e, 0x13, 0x62, 0x40, 0xa0, 0x14, 0xd1, - 0x10, 0xed, 0x9d, 0xf5, 0x7f, 0x5d, 0x05, 0xf7, 0xc3, 0x8e, 0xe8, 0x19, 0x7e, 0x79, 0x76, 0x95, - 0x54, 0x41, 0x86, 0x3e, 0x0f, 0x69, 0xcf, 0x90, 0xa6, 0xe4, 0x65, 0xeb, 0x89, 0x58, 0xce, 0x4d, - 0xc6, 0xf2, 0xeb, 0x22, 0x9c, 0xcf, 0x75, 0xf7, 0xff, 0x02, 0xca, 0x23, 0x1d, 0xa8, 0x94, 0xef, - 0x40, 0xf9, 0x09, 0x61, 0xfa, 0x9f, 0x9b, 0x10, 0x66, 0x5e, 0x7e, 0x42, 0x98, 0xcd, 0x4d, 0x08, - 0xa7, 0x78, 0xeb, 0xee, 0xbb, 0xb6, 0x8a, 0x9b, 0xf9, 0xef, 0x05, 0x3b, 0xa7, 0xfb, 0x95, 0x03, - 0xab, 0xa6, 0xe5, 0x0e, 0x3a, 0x21, 0x57, 0x1b, 0x94, 0x6d, 0xf3, 0x6e, 0x44, 0xd5, 0x20, 0xc6, - 0xcd, 0x21, 0x67, 0x98, 0xe0, 0xf8, 0x26, 0x9c, 0xed, 0x50, 0xa6, 0xe7, 0x05, 0x99, 0x6e, 0xda, - 0xa1, 0x64, 0xb1, 0x43, 0xd9, 0xa6, 0x0a, 0x32, 0x1b, 0xf2, 0x0e, 0x5c, 0xc8, 0xe9, 0xb6, 0xe5, - 0xa0, 0x93, 0xe0, 0x6d, 0x7b, 0xd1, 0xf9, 0x63, 0x36, 0xdb, 0x66, 0xd7, 0xfd, 0xd1, 0x81, 0x73, - 0x29, 0xaf, 0x4c, 0x12, 0xb6, 0x7b, 0x54, 0xea, 0xf9, 0xbc, 0x2f, 0xf6, 0x30, 0xd6, 0x47, 0x16, - 0x3d, 0xb3, 0x48, 0xc8, 0x1e, 0x23, 0x95, 0x22, 0x4a, 0x5b, 0xbe, 0x59, 0x25, 0x13, 0x94, 0x2f, - 0x22, 0x89, 0x91, 0x1c, 0xc8, 0x63, 0xe3, 0xcd, 0x52, 0xb6, 0x91, 0xd6, 0xc9, 0x37, 0x60, 0x29, - 0x1b, 0x87, 0x52, 0x5d, 0xf3, 0x26, 0x17, 0x53, 0x79, 0xaa, 0x5a, 0x85, 0xd9, 0x50, 0x44, 0x7c, - 0x37, 0x6b, 0x02, 0xe9, 0xd2, 0xfd, 0xd6, 0xb1, 0x19, 0xb0, 0x0d, 0xcd, 0xb6, 0x85, 0xd1, 0xa9, - 0xc4, 0x99, 0x38, 0x95, 0x14, 0x26, 0x4e, 0x25, 0xc5, 0x97, 0x9a, 0x4a, 0x5c, 0x09, 0x17, 0x8e, - 0x54, 0x7b, 0xda, 0x93, 0x2d, 0x11, 0xf6, 0x7b, 0xa8, 0x90, 0x4d, 0xf8, 0xe4, 0x79, 0x0f, 0xe6, - 0xf7, 0x0e, 0xb5, 0xab, 0x05, 0xfd, 0x58, 0x6a, 0xe3, 0x1e, 0xcb, 0xa1, 0x53, 0x6f, 0xd4, 0xc4, - 0xdd, 0x03, 0x38, 0xdc, 0x3a, 0xd5, 0xfd, 0x6f, 0x1d, 0xbb, 0xff, 0xc9, 0x7a, 0xe4, 0x06, 0x3e, - 0x79, 0x5e, 0x73, 0x9e, 0x3e, 0xaf, 0x39, 0xbf, 0x3d, 0xaf, 0x39, 0xdf, 0x1c, 0xd4, 0xa6, 0x9e, - 0x1e, 0xd4, 0xa6, 0x7e, 0x39, 0xa8, 0x4d, 0x7d, 0xfe, 0xd1, 0x08, 0x70, 0x5b, 0xe9, 0x4d, 0x3e, - 0xa6, 0x1d, 0xd9, 0xcc, 0xee, 0x75, 0xcd, 0x17, 0x31, 0x8e, 0x2e, 0x93, 0xef, 0x9e, 0x66, 0x28, - 0xd8, 0xa0, 0x87, 0xd2, 0x7e, 0xaf, 0x6b, 0x84, 0x3b, 0x33, 0xfa, 0x6b, 0xfd, 0xed, 0xbf, 0x02, - 0x00, 0x00, 0xff, 0xff, 0xb0, 0x7a, 0xbb, 0x0c, 0x40, 0x10, 0x00, 0x00, + // 1407 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xc1, 0x6f, 0x1b, 0x45, + 0x17, 0xcf, 0xda, 0x4e, 0xd2, 0xbc, 0x38, 0x4e, 0x3a, 0xcd, 0xd7, 0xba, 0xf9, 0x54, 0xc7, 0xdd, + 0xb6, 0x5f, 0xf2, 0x15, 0xd5, 0x6e, 0x8b, 0x8a, 0x84, 0x84, 0x04, 0x8d, 0x1b, 0x68, 0x0a, 0x6d, + 0xa5, 0x4d, 0x28, 0x12, 0x17, 0x6b, 0xec, 0x79, 0xf5, 0x4e, 0xe3, 0xdd, 0x31, 0x3b, 0x63, 0xa7, + 0x39, 0x73, 0xe1, 0xc0, 0x01, 0x09, 0x71, 0xe5, 0x7f, 0xe0, 0xc0, 0x9f, 0x80, 0x54, 0x6e, 0x3d, + 0x21, 0xc4, 0xa1, 0x42, 0xed, 0x7f, 0x80, 0xc4, 0x85, 0x13, 0xda, 0x99, 0xd9, 0xb5, 0x93, 0xb5, + 0x45, 0x9a, 0x42, 0x39, 0xc5, 0xf3, 0xe6, 0xbd, 0x37, 0x6f, 0x7e, 0xef, 0x37, 0xef, 0xbd, 0x0d, + 0xac, 0xf2, 0xf0, 0x11, 0xb6, 0x15, 0x1f, 0x60, 0xbd, 0x87, 0x9d, 0xce, 0x7e, 0x7d, 0x70, 0xad, + 0x8e, 0x03, 0x0c, 0x95, 0xac, 0xf5, 0x22, 0xa1, 0x04, 0x21, 0xa9, 0x42, 0x4d, 0x2b, 0xd4, 0x06, + 0xd7, 0x56, 0x96, 0x3b, 0xa2, 0x23, 0xf4, 0x76, 0x3d, 0xfe, 0x65, 0x34, 0x57, 0x2e, 0x8e, 0x71, + 0x45, 0x95, 0x42, 0xa9, 0xa8, 0xe2, 0x22, 0xb4, 0x5a, 0x95, 0x31, 0x5a, 0x6a, 0xbf, 0x87, 0xf6, + 0x3c, 0xf7, 0x37, 0x07, 0xca, 0x9b, 0x71, 0x00, 0x37, 0x87, 0xa6, 0xf7, 0x5b, 0x12, 0xa3, 0x01, + 0x32, 0x72, 0x1b, 0x96, 0x46, 0x3c, 0x36, 0x63, 0xbb, 0xb2, 0x53, 0x75, 0xd6, 0x4b, 0xd7, 0xcf, + 0xd5, 0xb2, 0x71, 0xd6, 0x1a, 0x5d, 0xca, 0x83, 0x9d, 0xfd, 0x1e, 0x7a, 0x8b, 0x23, 0x66, 0xb1, + 0x80, 0xac, 0xc1, 0x62, 0x2b, 0xe2, 0xac, 0x83, 0xcd, 0xb6, 0x08, 0x55, 0x44, 0xdb, 0xaa, 0x9c, + 0xab, 0x3a, 0xeb, 0x73, 0x5e, 0xc9, 0x88, 0x1b, 0x56, 0x4a, 0xfe, 0x37, 0x54, 0xf4, 0x29, 0x0f, + 0x9b, 0x9c, 0x95, 0xf3, 0x55, 0x67, 0xbd, 0xe0, 0x2d, 0x58, 0xc5, 0x58, 0xba, 0xc5, 0xc8, 0x25, + 0x28, 0x8d, 0x86, 0xc6, 0x59, 0xb9, 0x50, 0x75, 0xd6, 0x8b, 0xde, 0xc2, 0x88, 0x74, 0x8b, 0x91, + 0x65, 0x98, 0x0e, 0x45, 0xd8, 0xc6, 0xf2, 0xb4, 0x76, 0x62, 0x16, 0x6e, 0x08, 0xff, 0xd5, 0x77, + 0xde, 0xd0, 0x2e, 0x3f, 0xe1, 0xca, 0x67, 0x11, 0xdd, 0x6b, 0xd0, 0xb0, 0x8d, 0x5d, 0x64, 0xe3, + 0x82, 0x75, 0x8e, 0x1a, 0x6c, 0x6e, 0x4c, 0xb0, 0xee, 0x0f, 0x0e, 0x10, 0x7d, 0xe0, 0xfd, 0xbe, + 0xea, 0x08, 0x1e, 0x76, 0x36, 0xa8, 0x6a, 0xfb, 0x71, 0x70, 0x0c, 0x43, 0x11, 0x58, 0xef, 0x66, + 0x41, 0xae, 0xc1, 0xb2, 0x88, 0xda, 0x3e, 0x4a, 0x15, 0x51, 0x25, 0xa2, 0x26, 0x65, 0x2c, 0x42, + 0x29, 0x2d, 0x5e, 0xa7, 0x46, 0xf7, 0x6e, 0x9a, 0x2d, 0xb2, 0x0a, 0xf3, 0xad, 0xd8, 0x63, 0xd3, + 0xdc, 0xd5, 0x00, 0x06, 0x5a, 0x74, 0x2f, 0x96, 0x90, 0x0b, 0xb0, 0x60, 0x14, 0x14, 0x0f, 0x50, + 0xf4, 0x95, 0x06, 0xab, 0xe0, 0x15, 0xb5, 0x70, 0xc7, 0xc8, 0x48, 0x15, 0x8a, 0x56, 0xe9, 0x71, + 0x93, 0x33, 0x59, 0x9e, 0xae, 0xe6, 0x53, 0x37, 0x3b, 0x8f, 0xb7, 0x98, 0x74, 0xbf, 0x75, 0x60, + 0x25, 0x7b, 0x8f, 0x7f, 0x0c, 0x37, 0x72, 0x16, 0x4e, 0x98, 0x88, 0x52, 0x16, 0xcc, 0xea, 0xf5, + 0x68, 0x62, 0x0b, 0xa3, 0x89, 0xfd, 0x26, 0x67, 0xd9, 0xfc, 0x80, 0x76, 0x25, 0xaa, 0x8f, 0x7b, + 0x8c, 0x2a, 0xf4, 0xf0, 0xb3, 0x3e, 0x4a, 0x45, 0xce, 0x43, 0x71, 0xa0, 0xc5, 0x16, 0x26, 0x47, + 0x5b, 0xce, 0x1b, 0x59, 0x8a, 0x93, 0x55, 0xf1, 0x91, 0x77, 0x7c, 0x65, 0xc3, 0xb2, 0x76, 0xb7, + 0xb5, 0x8c, 0xdc, 0x81, 0x92, 0x55, 0x0a, 0x30, 0x68, 0x61, 0x24, 0xcb, 0xf9, 0x6a, 0x7e, 0x7d, + 0xfe, 0xfa, 0x85, 0x71, 0x6f, 0xc2, 0x50, 0xec, 0x01, 0xed, 0x72, 0x16, 0x67, 0xcc, 0xb3, 0xfe, + 0xef, 0x1a, 0x4b, 0xb2, 0x01, 0x0b, 0x11, 0xee, 0xd1, 0x88, 0x35, 0x69, 0x20, 0xfa, 0xa1, 0x49, + 0xcc, 0xdc, 0xc6, 0xb9, 0x27, 0xcf, 0x56, 0xa7, 0x7e, 0x79, 0xb6, 0xfa, 0x9f, 0xb6, 0x90, 0x81, + 0x90, 0x92, 0xed, 0xd6, 0xb8, 0xa8, 0x07, 0x54, 0xf9, 0xb5, 0xad, 0x50, 0x79, 0x45, 0x63, 0x73, + 0x53, 0x9b, 0xc4, 0xf7, 0xb2, 0x3e, 0x94, 0xd8, 0xc5, 0x50, 0x53, 0x7d, 0xce, 0x9b, 0x37, 0xb2, + 0x9d, 0x58, 0xe4, 0x7e, 0xe7, 0xc0, 0x39, 0x8d, 0xcb, 0x36, 0xaa, 0xfb, 0x59, 0x02, 0xa1, 0x24, + 0x6f, 0xc0, 0xc9, 0x41, 0x12, 0x64, 0x4a, 0x39, 0x93, 0xbd, 0xa5, 0x74, 0x23, 0xe1, 0xdb, 0x31, + 0x28, 0x7a, 0x15, 0x96, 0x45, 0x0f, 0x8d, 0x3a, 0x2a, 0x3f, 0x35, 0xc9, 0x6b, 0x13, 0x92, 0xec, + 0x6d, 0x2a, 0xdf, 0x5a, 0xb8, 0x8f, 0xec, 0x9b, 0x31, 0xa9, 0x6c, 0x88, 0xf0, 0x21, 0x8f, 0x82, + 0xa3, 0x24, 0xf1, 0xe5, 0xa3, 0x73, 0x3f, 0xcf, 0x41, 0xc9, 0xe2, 0x13, 0xb2, 0x1d, 0xb1, 0xa9, + 0x7c, 0x72, 0x11, 0x4a, 0xc2, 0xb2, 0xdc, 0x3c, 0x08, 0x7b, 0x54, 0x31, 0x91, 0xc6, 0x4f, 0x82, + 0x9c, 0x86, 0x19, 0x89, 0x21, 0xc3, 0xc8, 0x7a, 0xb7, 0x2b, 0xb2, 0x02, 0x27, 0x22, 0x6c, 0x23, + 0x1f, 0x60, 0x64, 0xaf, 0x98, 0xae, 0xc9, 0x07, 0x30, 0x73, 0x20, 0xd9, 0x75, 0x9b, 0xec, 0xb5, + 0x0e, 0x57, 0x7e, 0xbf, 0x55, 0x6b, 0x8b, 0xa0, 0x6e, 0xf2, 0x6e, 0xff, 0x5c, 0x91, 0x6c, 0xd7, + 0x16, 0xed, 0x86, 0xe0, 0xa1, 0x67, 0xcd, 0xc9, 0x3d, 0x00, 0xfb, 0x8c, 0x1e, 0xa2, 0xa9, 0x70, + 0xc7, 0x70, 0x36, 0x67, 0x5c, 0xbc, 0x8f, 0xe8, 0x76, 0xe0, 0xa4, 0x06, 0xc1, 0x62, 0x6d, 0x8a, + 0xd4, 0xa1, 0xda, 0xe2, 0x64, 0x6a, 0xcb, 0x31, 0xe0, 0x56, 0xb0, 0x7c, 0xb8, 0xe7, 0x3c, 0x10, + 0x0a, 0xe3, 0xb3, 0x74, 0x33, 0x3c, 0x78, 0x96, 0x16, 0x99, 0xb3, 0xb2, 0x55, 0x3f, 0x37, 0xa1, + 0xea, 0x0f, 0x84, 0x4a, 0xa1, 0x37, 0x0b, 0xf7, 0xf7, 0x9c, 0xbd, 0xdf, 0x2d, 0xec, 0x09, 0xc9, + 0x95, 0x6e, 0x57, 0x7f, 0x7d, 0xe6, 0x79, 0x28, 0x1a, 0x85, 0x03, 0x25, 0xc1, 0x18, 0xd9, 0x8a, + 0x90, 0x0d, 0x2b, 0x3f, 0x2e, 0xac, 0x35, 0x58, 0x44, 0xe5, 0x63, 0x84, 0xfd, 0xa0, 0x69, 0x59, + 0x53, 0x30, 0xf5, 0x31, 0x11, 0x6f, 0x1b, 0xf6, 0xac, 0xc1, 0xa2, 0x49, 0x56, 0x33, 0x25, 0x91, + 0x79, 0xd4, 0x25, 0x23, 0xf6, 0x12, 0x2a, 0x5d, 0x82, 0x92, 0x7e, 0xf3, 0xc3, 0x82, 0x3b, 0xa3, + 0xf5, 0x16, 0xb4, 0x34, 0xad, 0xb7, 0x37, 0x52, 0xc6, 0xcd, 0x1e, 0xa5, 0xbc, 0x24, 0xfc, 0x9a, + 0x94, 0xd9, 0x13, 0x93, 0x9f, 0x39, 0x81, 0x02, 0xa3, 0x8a, 0x96, 0xe7, 0xb4, 0x8a, 0xfe, 0xed, + 0xfe, 0x91, 0x74, 0xbf, 0xb4, 0xd1, 0xbe, 0x6e, 0xe0, 0x0f, 0x71, 0xb8, 0x90, 0xe1, 0x70, 0x16, + 0xc7, 0xe9, 0x71, 0x38, 0x4e, 0x02, 0x64, 0x66, 0x32, 0xd5, 0x7f, 0xcc, 0xc1, 0x19, 0x7d, 0xf9, + 0x4d, 0xaf, 0x71, 0xfd, 0xea, 0x2d, 0xec, 0x75, 0xc5, 0x3e, 0xb2, 0xd7, 0x8e, 0xc0, 0x79, 0x28, + 0x5a, 0x46, 0x99, 0x89, 0xc3, 0xf0, 0x6e, 0xde, 0xc8, 0x6e, 0xe9, 0xb9, 0xe3, 0x88, 0x18, 0x10, + 0x28, 0x84, 0x34, 0x40, 0x7b, 0x67, 0xfd, 0x5b, 0x57, 0xc1, 0xfd, 0xa0, 0x25, 0xba, 0x86, 0x5f, + 0x9e, 0x5d, 0xc5, 0x55, 0x90, 0x61, 0x9b, 0x07, 0xb4, 0x6b, 0x48, 0x53, 0xf0, 0xd2, 0xf5, 0x44, + 0x2c, 0xe7, 0x26, 0x63, 0xf9, 0x65, 0x1e, 0x4e, 0x67, 0xba, 0xfb, 0xbf, 0x01, 0xe5, 0x81, 0x0e, + 0x54, 0xc8, 0x76, 0xa0, 0xec, 0x84, 0x30, 0xfd, 0xf7, 0x4d, 0x08, 0x33, 0xaf, 0x3e, 0x21, 0xcc, + 0x66, 0x26, 0x84, 0x63, 0xbc, 0x75, 0xf7, 0x1d, 0x5b, 0xc5, 0xcd, 0xfc, 0xf7, 0x92, 0x9d, 0xd3, + 0xfd, 0xc2, 0x81, 0x55, 0xd3, 0x72, 0xfb, 0xad, 0x80, 0xab, 0x0d, 0xca, 0xb6, 0x79, 0x27, 0xa4, + 0xaa, 0x1f, 0xe1, 0xe6, 0x80, 0x33, 0x8c, 0x71, 0xbc, 0x0c, 0x27, 0x5b, 0x94, 0xe9, 0x79, 0x41, + 0x26, 0x9b, 0x76, 0x28, 0x59, 0x6c, 0x51, 0xb6, 0xa9, 0xfc, 0xd4, 0x86, 0xbc, 0x0d, 0x67, 0x33, + 0xba, 0x4d, 0xd9, 0x6f, 0xc5, 0x78, 0xdb, 0x5e, 0x74, 0xfa, 0x90, 0xcd, 0xb6, 0xd9, 0x75, 0xbf, + 0x77, 0xe0, 0x54, 0xc2, 0x2b, 0x93, 0x84, 0xed, 0x2e, 0x95, 0x7a, 0x3e, 0xef, 0x89, 0x3d, 0x8c, + 0xf4, 0x91, 0x79, 0xcf, 0x2c, 0x62, 0xb2, 0x47, 0x48, 0xa5, 0x08, 0x93, 0x96, 0x6f, 0x56, 0xf1, + 0x04, 0xd5, 0x16, 0xa1, 0xc4, 0x50, 0xf6, 0xe5, 0xa1, 0xf1, 0x66, 0x29, 0xdd, 0x48, 0xea, 0xe4, + 0xff, 0x61, 0x29, 0x1d, 0x87, 0x12, 0x5d, 0xf3, 0x26, 0x17, 0x13, 0x79, 0xa2, 0x5a, 0x86, 0xd9, + 0x40, 0x84, 0x7c, 0x37, 0x6d, 0x02, 0xc9, 0xd2, 0xfd, 0xda, 0xb1, 0x19, 0xb0, 0x0d, 0xcd, 0xb6, + 0x85, 0xd1, 0xa9, 0xc4, 0x99, 0x38, 0x95, 0xe4, 0x26, 0x4e, 0x25, 0xf9, 0x57, 0x9a, 0x4a, 0x5c, + 0x09, 0x67, 0x0f, 0x54, 0x7b, 0xda, 0x95, 0x0d, 0x11, 0xf4, 0xba, 0xa8, 0x90, 0x4d, 0xf8, 0xe4, + 0x79, 0x0f, 0xe6, 0xf7, 0x86, 0xda, 0xe5, 0x9c, 0x7e, 0x2c, 0x95, 0x71, 0x8f, 0x65, 0xe8, 0xd4, + 0x1b, 0x35, 0x71, 0xf7, 0x00, 0x86, 0x5b, 0xc7, 0xba, 0xff, 0x8d, 0x43, 0xf7, 0x3f, 0x5a, 0x8f, + 0x74, 0x7f, 0x4a, 0x72, 0x90, 0x72, 0xe7, 0x0e, 0xe5, 0xf1, 0xc7, 0xd0, 0x5b, 0x29, 0x4d, 0xcc, + 0x17, 0xf3, 0xd8, 0xeb, 0xc4, 0xba, 0x9e, 0xd6, 0x4a, 0x69, 0x94, 0x92, 0x2e, 0x37, 0x4a, 0xba, + 0xd7, 0x4e, 0xae, 0xcb, 0xef, 0x02, 0x0c, 0xa3, 0x23, 0x65, 0x58, 0xbe, 0xcb, 0xa5, 0xe4, 0x61, + 0xe7, 0xc0, 0x38, 0xbe, 0x34, 0x45, 0xce, 0xc0, 0x29, 0xbb, 0x63, 0x3e, 0x06, 0xed, 0x86, 0xb3, + 0x81, 0x4f, 0x9e, 0x57, 0x9c, 0xa7, 0xcf, 0x2b, 0xce, 0xaf, 0xcf, 0x2b, 0xce, 0x57, 0x2f, 0x2a, + 0x53, 0x4f, 0x5f, 0x54, 0xa6, 0x7e, 0x7e, 0x51, 0x99, 0xfa, 0xf4, 0xc3, 0x11, 0x4a, 0x6d, 0x25, + 0xa0, 0x7c, 0x44, 0x5b, 0xb2, 0x9e, 0x42, 0x74, 0xa5, 0x2d, 0x22, 0x1c, 0x5d, 0xc6, 0x5f, 0x84, + 0xf5, 0x40, 0xb0, 0x7e, 0x17, 0xa5, 0xfd, 0x4f, 0x86, 0xe6, 0x5e, 0x6b, 0x46, 0xff, 0x1f, 0xe3, + 0xcd, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x16, 0xfe, 0x9f, 0x5a, 0x11, 0x00, 0x00, } func (m *EventAttestationObserved) Marshal() (dAtA []byte, err error) { @@ -2534,6 +2641,60 @@ func (m *Withdrawal) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventValidatorJailed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventValidatorJailed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventValidatorJailed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Moniker) > 0 { + i -= len(m.Moniker) + copy(dAtA[i:], m.Moniker) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Moniker))) + i-- + dAtA[i] = 0x2a + } + if len(m.OperatorAddress) > 0 { + i -= len(m.OperatorAddress) + copy(dAtA[i:], m.OperatorAddress) + i = encodeVarintEvents(dAtA, i, uint64(len(m.OperatorAddress))) + i-- + dAtA[i] = 0x22 + } + if len(m.ConsensusAddress) > 0 { + i -= len(m.ConsensusAddress) + copy(dAtA[i:], m.ConsensusAddress) + i = encodeVarintEvents(dAtA, i, uint64(len(m.ConsensusAddress))) + i-- + dAtA[i] = 0x1a + } + if m.Power != 0 { + i = encodeVarintEvents(dAtA, i, uint64(m.Power)) + i-- + dAtA[i] = 0x10 + } + if m.Reason != 0 { + i = encodeVarintEvents(dAtA, i, uint64(m.Reason)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { offset -= sovEvents(v) base := offset @@ -3028,6 +3189,33 @@ func (m *Withdrawal) Size() (n int) { return n } +func (m *EventValidatorJailed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Reason != 0 { + n += 1 + sovEvents(uint64(m.Reason)) + } + if m.Power != 0 { + n += 1 + sovEvents(uint64(m.Power)) + } + l = len(m.ConsensusAddress) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.OperatorAddress) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Moniker) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func sovEvents(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -6434,6 +6622,190 @@ func (m *Withdrawal) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventValidatorJailed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EventValidatorJailed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventValidatorJailed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + m.Reason = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Reason |= JailReason(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Power", wireType) + } + m.Power = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Power |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConsensusAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OperatorAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OperatorAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Moniker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvents + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Moniker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvents(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/genesis.pb.go b/chain/peggy/types/genesis.pb.go index 197630ab..f64d7186 100644 --- a/chain/peggy/types/genesis.pb.go +++ b/chain/peggy/types/genesis.pb.go @@ -41,6 +41,7 @@ type GenesisState struct { LastOutgoingPoolId uint64 `protobuf:"varint,13,opt,name=last_outgoing_pool_id,json=lastOutgoingPoolId,proto3" json:"last_outgoing_pool_id,omitempty"` LastObservedValset Valset `protobuf:"bytes,14,opt,name=last_observed_valset,json=lastObservedValset,proto3" json:"last_observed_valset"` EthereumBlacklist []string `protobuf:"bytes,15,rep,name=ethereum_blacklist,json=ethereumBlacklist,proto3" json:"ethereum_blacklist,omitempty"` + RateLimits []*RateLimit `protobuf:"bytes,16,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -181,6 +182,13 @@ func (m *GenesisState) GetEthereumBlacklist() []string { return nil } +func (m *GenesisState) GetRateLimits() []*RateLimit { + if m != nil { + return m.RateLimits + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.peggy.v1.GenesisState") } @@ -188,48 +196,51 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/genesis.proto", fileDescriptor_3b8a70f18b346efa) } var fileDescriptor_3b8a70f18b346efa = []byte{ - // 655 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x94, 0xcb, 0x4e, 0xdb, 0x4e, - 0x14, 0xc6, 0x93, 0x3f, 0xfc, 0xb9, 0x0c, 0x37, 0x31, 0x5c, 0x64, 0x45, 0x22, 0x44, 0x2d, 0xaa, - 0xd8, 0x60, 0x93, 0xd0, 0x6d, 0x17, 0x84, 0xa2, 0x42, 0x5b, 0x0a, 0x32, 0xa8, 0x95, 0xba, 0xb1, - 0xc6, 0xf6, 0xc1, 0x71, 0x6b, 0x7b, 0xa2, 0x39, 0x13, 0x0b, 0x76, 0x7d, 0x84, 0x3e, 0x16, 0x4b, - 0x96, 0x5d, 0x55, 0x15, 0xbc, 0x48, 0xe5, 0x99, 0x71, 0x48, 0x54, 0x87, 0xdd, 0x8c, 0xbf, 0xef, - 0xfb, 0x9d, 0x93, 0x99, 0x93, 0x21, 0xad, 0x38, 0xfb, 0x06, 0x81, 0x8c, 0x73, 0x70, 0xfa, 0x10, - 0x45, 0xb7, 0x4e, 0xde, 0x76, 0x22, 0xc8, 0x00, 0x63, 0xb4, 0xfb, 0x82, 0x4b, 0x4e, 0xe9, 0xd0, - 0x61, 0x2b, 0x87, 0x9d, 0xb7, 0x1b, 0xeb, 0x11, 0x8f, 0xb8, 0x92, 0x9d, 0x62, 0xa5, 0x9d, 0x8d, - 0x66, 0x05, 0x4b, 0xde, 0xf6, 0xc1, 0x90, 0x1a, 0x5b, 0x15, 0x7a, 0x8a, 0x11, 0x3e, 0x13, 0xf7, - 0x99, 0x0c, 0x7a, 0x46, 0xdf, 0xa9, 0xd0, 0x99, 0x94, 0x80, 0x92, 0xc9, 0x98, 0x67, 0xc6, 0xb5, - 0x5d, 0xe1, 0xea, 0x33, 0xc1, 0xd2, 0x61, 0x99, 0x80, 0x63, 0xca, 0xd1, 0xf1, 0x19, 0x82, 0x93, - 0xb7, 0x7d, 0x90, 0xac, 0xed, 0x04, 0x3c, 0x36, 0x80, 0x17, 0x3f, 0xe6, 0xc8, 0xe2, 0x3b, 0x7d, - 0x02, 0x97, 0x92, 0x49, 0xa0, 0x1d, 0x32, 0xa3, 0x01, 0x56, 0xbd, 0x55, 0xdf, 0x5d, 0xe8, 0x34, - 0xec, 0x7f, 0x4f, 0xc4, 0xbe, 0x50, 0x0e, 0xd7, 0x38, 0xa9, 0x4d, 0xd6, 0x12, 0x86, 0xd2, 0xe3, - 0x3e, 0x82, 0xc8, 0x21, 0xf4, 0x32, 0x9e, 0x05, 0x60, 0xfd, 0xd7, 0xaa, 0xef, 0x4e, 0xbb, 0xab, - 0x85, 0x74, 0x6e, 0x94, 0x4f, 0x85, 0x40, 0x5f, 0x93, 0xd9, 0x9c, 0x25, 0x08, 0x12, 0xad, 0xa9, - 0xd6, 0xd4, 0xa4, 0x22, 0x9f, 0x95, 0xc5, 0x2d, 0xad, 0xf4, 0x8c, 0xac, 0xe8, 0xa5, 0x17, 0xf0, - 0xec, 0x3a, 0x16, 0x29, 0x5a, 0xd3, 0x2a, 0xbd, 0x53, 0x95, 0x3e, 0xc3, 0x48, 0x03, 0x8e, 0xb4, - 0xd9, 0x5d, 0xce, 0x47, 0xb7, 0x48, 0xdf, 0x90, 0x59, 0x75, 0xde, 0x80, 0xd6, 0xff, 0x0a, 0xf3, - 0xb2, 0x0a, 0x73, 0x3e, 0x90, 0x11, 0x8f, 0xb3, 0xe8, 0xea, 0xa6, 0x5b, 0x98, 0xdd, 0x32, 0x43, - 0xdf, 0x93, 0x65, 0xb5, 0x7c, 0x6a, 0x66, 0x66, 0x32, 0xe5, 0x0c, 0x23, 0x53, 0x57, 0x53, 0x96, - 0x54, 0x74, 0xd8, 0xca, 0x11, 0x59, 0x1c, 0xb9, 0x5a, 0xb4, 0x66, 0x15, 0x69, 0xbb, 0x8a, 0x74, - 0xf8, 0xe4, 0x73, 0xc7, 0x42, 0xf4, 0x9a, 0x6c, 0x72, 0x51, 0xb4, 0x26, 0x05, 0x93, 0x5c, 0x78, - 0x2c, 0x0c, 0x05, 0x20, 0x02, 0x5a, 0x73, 0x0a, 0xe7, 0x4c, 0x68, 0xec, 0x12, 0xe4, 0xf9, 0x48, - 0xee, 0xb0, 0x8c, 0xb9, 0x1b, 0xbc, 0xea, 0x33, 0x3d, 0x21, 0x2b, 0x20, 0x82, 0xce, 0xbe, 0x27, - 0xb9, 0x17, 0x42, 0xc6, 0x53, 0xb4, 0xe6, 0x55, 0x81, 0x56, 0x55, 0x81, 0x63, 0xf7, 0xa8, 0xb3, - 0x7f, 0xc5, 0xdf, 0x16, 0x46, 0x77, 0x49, 0x05, 0xcd, 0x0e, 0xe9, 0x17, 0xb2, 0x36, 0xc8, 0xf4, - 0x79, 0x86, 0x9e, 0x14, 0x2c, 0xc3, 0x6b, 0x10, 0x68, 0x11, 0x45, 0x7b, 0xf5, 0xec, 0x6d, 0x18, - 0xf3, 0xd5, 0x8d, 0x4b, 0x87, 0x88, 0xf2, 0x23, 0xd2, 0x43, 0xb2, 0x35, 0x3e, 0x8f, 0x20, 0x7b, - 0x20, 0x60, 0x90, 0x7a, 0x3d, 0x88, 0xa3, 0x9e, 0xb4, 0x16, 0xd4, 0x64, 0x36, 0x46, 0x27, 0xf3, - 0xd8, 0x58, 0x4e, 0x94, 0x83, 0x1e, 0x90, 0x4d, 0x8d, 0x30, 0x15, 0x3d, 0x7d, 0xd9, 0x71, 0x68, - 0x2d, 0xaa, 0xac, 0x1a, 0xf8, 0xb2, 0x1d, 0x75, 0xa9, 0xa7, 0x21, 0x6d, 0x93, 0x8d, 0xf1, 0x50, - 0x9f, 0xf3, 0xa4, 0xc8, 0x2c, 0xa9, 0x0c, 0x1d, 0xcd, 0x5c, 0x70, 0x9e, 0x9c, 0x86, 0xd4, 0x25, - 0xeb, 0xe3, 0xad, 0xea, 0x29, 0xb5, 0x96, 0x27, 0xff, 0xf9, 0xf4, 0x58, 0x77, 0xa7, 0xef, 0x7e, - 0x6f, 0xd7, 0x0c, 0xd3, 0x84, 0xb5, 0x42, 0xf7, 0x08, 0x1d, 0xfe, 0x60, 0x3f, 0x61, 0xc1, 0xf7, - 0x24, 0x46, 0x69, 0xad, 0xb4, 0xa6, 0x76, 0xe7, 0xdd, 0xd5, 0x52, 0xe9, 0x96, 0x42, 0x17, 0xee, - 0x1e, 0x9a, 0xf5, 0xfb, 0x87, 0x66, 0xfd, 0xcf, 0x43, 0xb3, 0xfe, 0xf3, 0xb1, 0x59, 0xbb, 0x7f, - 0x6c, 0xd6, 0x7e, 0x3d, 0x36, 0x6b, 0x5f, 0x3f, 0x44, 0xb1, 0xec, 0x0d, 0x7c, 0x3b, 0xe0, 0xa9, - 0x73, 0x5a, 0x36, 0xf2, 0x91, 0xf9, 0xe8, 0x0c, 0xdb, 0xda, 0x0b, 0xb8, 0x80, 0xd1, 0x6d, 0x8f, - 0xc5, 0x99, 0x93, 0xf2, 0x70, 0x90, 0x00, 0x9a, 0x37, 0x49, 0xbd, 0x8a, 0xfe, 0x8c, 0x7a, 0x70, - 0x0e, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0xed, 0x3d, 0xb9, 0x4e, 0x84, 0x05, 0x00, 0x00, + // 690 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x94, 0x5d, 0x4f, 0xdb, 0x3e, + 0x14, 0xc6, 0xdb, 0x3f, 0xfc, 0x79, 0x31, 0x6f, 0xc3, 0xbc, 0x28, 0xaa, 0x44, 0xa9, 0x06, 0x9a, + 0xb8, 0xa1, 0xa1, 0x65, 0xb7, 0x9b, 0x44, 0x19, 0x1a, 0x6c, 0x30, 0x50, 0x40, 0x9b, 0xb4, 0x9b, + 0xc8, 0x49, 0x0e, 0xa9, 0xb7, 0x24, 0xae, 0x7c, 0xdc, 0x08, 0xbe, 0xc5, 0x3e, 0xd2, 0x2e, 0xb9, + 0xe4, 0x72, 0x57, 0xd3, 0x04, 0x5f, 0x64, 0x8a, 0xe3, 0x94, 0x56, 0x4b, 0xb9, 0xb3, 0xf3, 0xfc, + 0x9e, 0xe7, 0x9c, 0xda, 0xa7, 0x26, 0x0d, 0x9e, 0x7c, 0x03, 0x5f, 0xf1, 0x14, 0xec, 0x1e, 0x84, + 0xe1, 0xad, 0x9d, 0xb6, 0xec, 0x10, 0x12, 0x40, 0x8e, 0xcd, 0x9e, 0x14, 0x4a, 0x50, 0x3a, 0x20, + 0x9a, 0x9a, 0x68, 0xa6, 0xad, 0xda, 0x6a, 0x28, 0x42, 0xa1, 0x65, 0x3b, 0x5b, 0xe5, 0x64, 0xad, + 0x5e, 0x92, 0xa5, 0x6e, 0x7b, 0x60, 0x92, 0x6a, 0x1b, 0x25, 0x7a, 0x8c, 0x21, 0x3e, 0x63, 0xf7, + 0x98, 0xf2, 0xbb, 0x46, 0xdf, 0x2e, 0xd1, 0x99, 0x52, 0x80, 0x8a, 0x29, 0x2e, 0x12, 0x43, 0x6d, + 0x96, 0x50, 0x3d, 0x26, 0x59, 0x5c, 0x94, 0xd9, 0x2a, 0x01, 0x24, 0x53, 0xe0, 0x46, 0x3c, 0xe6, + 0xaa, 0xe8, 0xc5, 0x17, 0x18, 0x0b, 0xb4, 0x3d, 0x86, 0x60, 0xa7, 0x2d, 0x0f, 0x14, 0x6b, 0xd9, + 0xbe, 0xe0, 0xa6, 0xca, 0xcb, 0x9f, 0x33, 0x64, 0xfe, 0x7d, 0x7e, 0x4c, 0x97, 0x8a, 0x29, 0xa0, + 0x6d, 0x32, 0x95, 0x57, 0xb1, 0xaa, 0x8d, 0xea, 0xce, 0x5c, 0xbb, 0xd6, 0xfc, 0xf7, 0xd8, 0x9a, + 0x17, 0x9a, 0x70, 0x0c, 0x49, 0x9b, 0x64, 0x25, 0x62, 0xa8, 0x5c, 0xe1, 0x21, 0xc8, 0x14, 0x02, + 0x37, 0x11, 0x89, 0x0f, 0xd6, 0x7f, 0x8d, 0xea, 0xce, 0xa4, 0xb3, 0x9c, 0x49, 0xe7, 0x46, 0xf9, + 0x94, 0x09, 0xf4, 0x35, 0x99, 0x4e, 0x59, 0x84, 0xa0, 0xd0, 0x9a, 0x68, 0x4c, 0x8c, 0x2b, 0xf2, + 0x59, 0x23, 0x4e, 0x81, 0xd2, 0x33, 0xb2, 0x94, 0x2f, 0x5d, 0x5f, 0x24, 0xd7, 0x5c, 0xc6, 0x68, + 0x4d, 0x6a, 0xf7, 0x76, 0x99, 0xfb, 0x0c, 0xc3, 0x3c, 0xe0, 0x30, 0x87, 0x9d, 0xc5, 0x74, 0x78, + 0x8b, 0xf4, 0x0d, 0x99, 0xd6, 0x97, 0x02, 0x68, 0xfd, 0xaf, 0x63, 0xb6, 0xca, 0x62, 0xce, 0xfb, + 0x2a, 0x14, 0x3c, 0x09, 0xaf, 0x6e, 0x3a, 0x19, 0xec, 0x14, 0x1e, 0xfa, 0x81, 0x2c, 0xea, 0xe5, + 0x53, 0x33, 0x53, 0xe3, 0x53, 0xce, 0x30, 0x34, 0x75, 0xf3, 0x94, 0x05, 0x6d, 0x1d, 0xb4, 0x72, + 0x48, 0xe6, 0x87, 0xee, 0x1f, 0xad, 0x69, 0x9d, 0xb4, 0x59, 0x96, 0x74, 0xf0, 0xc4, 0x39, 0x23, + 0x26, 0x7a, 0x4d, 0xd6, 0x85, 0xcc, 0x5a, 0x53, 0x92, 0x29, 0x21, 0x5d, 0x16, 0x04, 0x12, 0x10, + 0x01, 0xad, 0x19, 0x1d, 0x67, 0x8f, 0x69, 0xec, 0x12, 0xd4, 0xf9, 0x90, 0xef, 0xa0, 0xb0, 0x39, + 0x6b, 0xa2, 0xec, 0x33, 0x3d, 0x26, 0x4b, 0x20, 0xfd, 0xf6, 0x9e, 0xab, 0x84, 0x1b, 0x40, 0x22, + 0x62, 0xb4, 0x66, 0x75, 0x81, 0x46, 0x59, 0x81, 0x23, 0xe7, 0xb0, 0xbd, 0x77, 0x25, 0xde, 0x65, + 0xa0, 0xb3, 0xa0, 0x8d, 0x66, 0x87, 0xf4, 0x0b, 0x59, 0xe9, 0x27, 0xf9, 0x79, 0x06, 0xae, 0x92, + 0x2c, 0xc1, 0x6b, 0x90, 0x68, 0x11, 0x9d, 0xf6, 0xea, 0xd9, 0xdb, 0x30, 0xf0, 0xd5, 0x8d, 0x43, + 0x07, 0x11, 0xc5, 0x47, 0xa4, 0x07, 0x64, 0x63, 0x74, 0x1e, 0x41, 0x75, 0x41, 0x42, 0x3f, 0x76, + 0xbb, 0xc0, 0xc3, 0xae, 0xb2, 0xe6, 0xf4, 0x64, 0xd6, 0x86, 0x27, 0xf3, 0xc8, 0x20, 0xc7, 0x9a, + 0xa0, 0xfb, 0x64, 0x3d, 0x8f, 0x30, 0x15, 0xdd, 0xfc, 0xb2, 0x79, 0x60, 0xcd, 0x6b, 0xaf, 0x1e, + 0xf8, 0xa2, 0x1d, 0x7d, 0xa9, 0x27, 0x01, 0x6d, 0x91, 0xb5, 0x51, 0x53, 0x4f, 0x88, 0x28, 0xf3, + 0x2c, 0x68, 0x0f, 0x1d, 0xf6, 0x5c, 0x08, 0x11, 0x9d, 0x04, 0xd4, 0x21, 0xab, 0xa3, 0xad, 0xe6, + 0x53, 0x6a, 0x2d, 0x8e, 0xff, 0xf3, 0xe5, 0x63, 0xdd, 0x99, 0xbc, 0xfb, 0xbd, 0x59, 0x31, 0x99, + 0xc6, 0x9c, 0x2b, 0x74, 0x97, 0xd0, 0xc1, 0x0f, 0xf6, 0x22, 0xe6, 0x7f, 0x8f, 0x38, 0x2a, 0x6b, + 0xa9, 0x31, 0xb1, 0x33, 0xeb, 0x2c, 0x17, 0x4a, 0xa7, 0x10, 0xe8, 0x5b, 0x32, 0xf7, 0xf4, 0x6c, + 0xa0, 0xf5, 0x42, 0x1f, 0xff, 0x46, 0x59, 0x65, 0x87, 0x29, 0x38, 0xcd, 0x28, 0x87, 0xc8, 0x62, + 0x89, 0x1d, 0xb8, 0x7b, 0xa8, 0x57, 0xef, 0x1f, 0xea, 0xd5, 0x3f, 0x0f, 0xf5, 0xea, 0x8f, 0xc7, + 0x7a, 0xe5, 0xfe, 0xb1, 0x5e, 0xf9, 0xf5, 0x58, 0xaf, 0x7c, 0xfd, 0x18, 0x72, 0xd5, 0xed, 0x7b, + 0x4d, 0x5f, 0xc4, 0xf6, 0x49, 0x11, 0x77, 0xca, 0x3c, 0xb4, 0x07, 0xe1, 0xbb, 0xbe, 0x90, 0x30, + 0xbc, 0xed, 0x32, 0x9e, 0xd8, 0xb1, 0x08, 0xfa, 0x11, 0xa0, 0x79, 0xd7, 0xf4, 0xd3, 0xeb, 0x4d, + 0xe9, 0x07, 0x6b, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x8f, 0x99, 0x54, 0xe9, 0x05, + 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -252,6 +263,22 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.RateLimits) > 0 { + for iNdEx := len(m.RateLimits) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RateLimits[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } if len(m.EthereumBlacklist) > 0 { for iNdEx := len(m.EthereumBlacklist) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.EthereumBlacklist[iNdEx]) @@ -507,6 +534,12 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } + if len(m.RateLimits) > 0 { + for _, e := range m.RateLimits { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -994,6 +1027,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } m.EthereumBlacklist = append(m.EthereumBlacklist, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RateLimits", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RateLimits = append(m.RateLimits, &RateLimit{}) + if err := m.RateLimits[len(m.RateLimits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/peggy/types/key.go b/chain/peggy/types/key.go index c6091c9d..43a6457f 100644 --- a/chain/peggy/types/key.go +++ b/chain/peggy/types/key.go @@ -116,6 +116,9 @@ var ( // FakeCheckpointKey indexes eth signature checkpoints that never existed FakeCheckpointKey = []byte{0x1d} + + RateLimitsKey = []byte{0x1e} + MintAmountsERC20Key = []byte{0x1f} ) func GetEthereumBlacklistStoreKey(addr common.Address) []byte { @@ -299,3 +302,11 @@ func GetPastEthSignatureCheckpointKey(checkpoint common.Hash) []byte { func GetFakeCheckpointKey(signature []byte) []byte { return append(FakeCheckpointKey, signature...) } + +func GetMintAmountERC20Key(erc20 []byte) []byte { + k := make([]byte, 0, len(MintAmountsERC20Key)+len(erc20)) + k = append(k, MintAmountsERC20Key...) + k = append(k, erc20...) + + return k +} diff --git a/chain/peggy/types/msgs.pb.go b/chain/peggy/types/msgs.pb.go index b9928aab..7c6413e8 100644 --- a/chain/peggy/types/msgs.pb.go +++ b/chain/peggy/types/msgs.pb.go @@ -276,9 +276,15 @@ var xxx_messageInfo_MsgValsetConfirmResponse proto.InternalMessageInfo // actually send this message in the first place. So a successful send has // two layers of fees for the user type MsgSendToEth struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - EthDest string `protobuf:"bytes,2,opt,name=eth_dest,json=ethDest,proto3" json:"eth_dest,omitempty"` - Amount types.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // The Ethereum address to send the tokens to + EthDest string `protobuf:"bytes,2,opt,name=eth_dest,json=ethDest,proto3" json:"eth_dest,omitempty"` + // The amount of tokens to send + Amount types.Coin `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount"` + // The fee paid for the bridge, distinct from the fee paid to the chain to + // actually send this message in the first place. So a successful send has + // two layers of fees for the user BridgeFee types.Coin `protobuf:"bytes,4,opt,name=bridge_fee,json=bridgeFee,proto3" json:"bridge_fee"` } @@ -1576,6 +1582,330 @@ func (m *MsgRevokeEthereumBlacklistResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRevokeEthereumBlacklistResponse proto.InternalMessageInfo +// MsgCreateRateLimit is used to impose a (withdrawal) limit for specific ERC20 +// token within a sliding window +type MsgCreateRateLimit struct { + // address of peggy admin or governance account + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // address of the ERC20 token + TokenAddress string `protobuf:"bytes,2,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"` + // decimals of the ERC20 token + TokenDecimals uint32 `protobuf:"varint,3,opt,name=token_decimals,json=tokenDecimals,proto3" json:"token_decimals,omitempty"` + // a Pyth-specific ID used to obtain USD price of the ERC20 token + TokenPriceId string `protobuf:"bytes,4,opt,name=token_price_id,json=tokenPriceId,proto3" json:"token_price_id,omitempty"` + // the notional USD limit imposed on all outgoing traffic (per token) + RateLimitUsd cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=rate_limit_usd,json=rateLimitUsd,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"rate_limit_usd"` + // the absolute amount of tokens that can be minted on Injective + AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` + // length of the sliding window in which inbound (outbound) traffic is + // measured + RateLimitWindow uint64 `protobuf:"varint,7,opt,name=rate_limit_window,json=rateLimitWindow,proto3" json:"rate_limit_window,omitempty"` +} + +func (m *MsgCreateRateLimit) Reset() { *m = MsgCreateRateLimit{} } +func (m *MsgCreateRateLimit) String() string { return proto.CompactTextString(m) } +func (*MsgCreateRateLimit) ProtoMessage() {} +func (*MsgCreateRateLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{28} +} +func (m *MsgCreateRateLimit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateRateLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateRateLimit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateRateLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateRateLimit.Merge(m, src) +} +func (m *MsgCreateRateLimit) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateRateLimit) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateRateLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateRateLimit proto.InternalMessageInfo + +func (m *MsgCreateRateLimit) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgCreateRateLimit) GetTokenAddress() string { + if m != nil { + return m.TokenAddress + } + return "" +} + +func (m *MsgCreateRateLimit) GetTokenDecimals() uint32 { + if m != nil { + return m.TokenDecimals + } + return 0 +} + +func (m *MsgCreateRateLimit) GetTokenPriceId() string { + if m != nil { + return m.TokenPriceId + } + return "" +} + +func (m *MsgCreateRateLimit) GetRateLimitWindow() uint64 { + if m != nil { + return m.RateLimitWindow + } + return 0 +} + +type MsgCreateRateLimitResponse struct { +} + +func (m *MsgCreateRateLimitResponse) Reset() { *m = MsgCreateRateLimitResponse{} } +func (m *MsgCreateRateLimitResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCreateRateLimitResponse) ProtoMessage() {} +func (*MsgCreateRateLimitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{29} +} +func (m *MsgCreateRateLimitResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateRateLimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateRateLimitResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateRateLimitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateRateLimitResponse.Merge(m, src) +} +func (m *MsgCreateRateLimitResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateRateLimitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateRateLimitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateRateLimitResponse proto.InternalMessageInfo + +type MsgUpdateRateLimit struct { + // authority is the address of peggy admin or governance account + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // token_address is the address of rate limited token + TokenAddress string `protobuf:"bytes,2,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"` + // new_token_price_id is the new Pyth price ID of the rate limited token + NewTokenPriceId string `protobuf:"bytes,3,opt,name=new_token_price_id,json=newTokenPriceId,proto3" json:"new_token_price_id,omitempty"` + // new_rate_limit_usd is the new notional limit (on withdrawals) in USD + NewRateLimitUsd cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=new_rate_limit_usd,json=newRateLimitUsd,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_rate_limit_usd"` + // new_rate_limit_window is the new length of the sliding window + NewRateLimitWindow uint64 `protobuf:"varint,5,opt,name=new_rate_limit_window,json=newRateLimitWindow,proto3" json:"new_rate_limit_window,omitempty"` +} + +func (m *MsgUpdateRateLimit) Reset() { *m = MsgUpdateRateLimit{} } +func (m *MsgUpdateRateLimit) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateRateLimit) ProtoMessage() {} +func (*MsgUpdateRateLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{30} +} +func (m *MsgUpdateRateLimit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateRateLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateRateLimit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateRateLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateRateLimit.Merge(m, src) +} +func (m *MsgUpdateRateLimit) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateRateLimit) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateRateLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateRateLimit proto.InternalMessageInfo + +func (m *MsgUpdateRateLimit) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateRateLimit) GetTokenAddress() string { + if m != nil { + return m.TokenAddress + } + return "" +} + +func (m *MsgUpdateRateLimit) GetNewTokenPriceId() string { + if m != nil { + return m.NewTokenPriceId + } + return "" +} + +func (m *MsgUpdateRateLimit) GetNewRateLimitWindow() uint64 { + if m != nil { + return m.NewRateLimitWindow + } + return 0 +} + +type MsgUpdateRateLimitResponse struct { +} + +func (m *MsgUpdateRateLimitResponse) Reset() { *m = MsgUpdateRateLimitResponse{} } +func (m *MsgUpdateRateLimitResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateRateLimitResponse) ProtoMessage() {} +func (*MsgUpdateRateLimitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{31} +} +func (m *MsgUpdateRateLimitResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateRateLimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateRateLimitResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateRateLimitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateRateLimitResponse.Merge(m, src) +} +func (m *MsgUpdateRateLimitResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateRateLimitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateRateLimitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateRateLimitResponse proto.InternalMessageInfo + +type MsgRemoveRateLimit struct { + // authority is the address of peggy admin or governance account + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // token_address is the address of rate limited token + TokenAddress string `protobuf:"bytes,2,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"` +} + +func (m *MsgRemoveRateLimit) Reset() { *m = MsgRemoveRateLimit{} } +func (m *MsgRemoveRateLimit) String() string { return proto.CompactTextString(m) } +func (*MsgRemoveRateLimit) ProtoMessage() {} +func (*MsgRemoveRateLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{32} +} +func (m *MsgRemoveRateLimit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRemoveRateLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRemoveRateLimit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRemoveRateLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRemoveRateLimit.Merge(m, src) +} +func (m *MsgRemoveRateLimit) XXX_Size() int { + return m.Size() +} +func (m *MsgRemoveRateLimit) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRemoveRateLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRemoveRateLimit proto.InternalMessageInfo + +func (m *MsgRemoveRateLimit) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgRemoveRateLimit) GetTokenAddress() string { + if m != nil { + return m.TokenAddress + } + return "" +} + +type MsgRemoveRateLimitResponse struct { +} + +func (m *MsgRemoveRateLimitResponse) Reset() { *m = MsgRemoveRateLimitResponse{} } +func (m *MsgRemoveRateLimitResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRemoveRateLimitResponse) ProtoMessage() {} +func (*MsgRemoveRateLimitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{33} +} +func (m *MsgRemoveRateLimitResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRemoveRateLimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRemoveRateLimitResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRemoveRateLimitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRemoveRateLimitResponse.Merge(m, src) +} +func (m *MsgRemoveRateLimitResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRemoveRateLimitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRemoveRateLimitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRemoveRateLimitResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgSetOrchestratorAddresses)(nil), "injective.peggy.v1.MsgSetOrchestratorAddresses") proto.RegisterType((*MsgSetOrchestratorAddressesResponse)(nil), "injective.peggy.v1.MsgSetOrchestratorAddressesResponse") @@ -1605,123 +1935,148 @@ func init() { proto.RegisterType((*MsgBlacklistEthereumAddressesResponse)(nil), "injective.peggy.v1.MsgBlacklistEthereumAddressesResponse") proto.RegisterType((*MsgRevokeEthereumBlacklist)(nil), "injective.peggy.v1.MsgRevokeEthereumBlacklist") proto.RegisterType((*MsgRevokeEthereumBlacklistResponse)(nil), "injective.peggy.v1.MsgRevokeEthereumBlacklistResponse") + proto.RegisterType((*MsgCreateRateLimit)(nil), "injective.peggy.v1.MsgCreateRateLimit") + proto.RegisterType((*MsgCreateRateLimitResponse)(nil), "injective.peggy.v1.MsgCreateRateLimitResponse") + proto.RegisterType((*MsgUpdateRateLimit)(nil), "injective.peggy.v1.MsgUpdateRateLimit") + proto.RegisterType((*MsgUpdateRateLimitResponse)(nil), "injective.peggy.v1.MsgUpdateRateLimitResponse") + proto.RegisterType((*MsgRemoveRateLimit)(nil), "injective.peggy.v1.MsgRemoveRateLimit") + proto.RegisterType((*MsgRemoveRateLimitResponse)(nil), "injective.peggy.v1.MsgRemoveRateLimitResponse") } func init() { proto.RegisterFile("injective/peggy/v1/msgs.proto", fileDescriptor_751daa04abed7ef4) } var fileDescriptor_751daa04abed7ef4 = []byte{ - // 1776 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6c, 0xdb, 0xc8, - 0x15, 0x36, 0x2d, 0xf9, 0x6f, 0x64, 0xc7, 0x09, 0xeb, 0x24, 0x32, 0x13, 0xcb, 0x36, 0x9d, 0xc4, - 0x8e, 0x93, 0x90, 0x96, 0xd3, 0x26, 0x8d, 0x81, 0x16, 0x88, 0x6c, 0x17, 0x0d, 0x5a, 0xa7, 0x85, - 0x9c, 0xa6, 0x40, 0x2f, 0xec, 0x88, 0x9c, 0x90, 0xac, 0x45, 0x8e, 0xca, 0x19, 0x29, 0xf5, 0xa1, - 0x40, 0x9a, 0x63, 0x7a, 0x68, 0x81, 0x1e, 0x8a, 0x1e, 0x7a, 0xda, 0xbd, 0x06, 0xc8, 0x61, 0x2f, - 0x9b, 0xc3, 0x9e, 0x76, 0x81, 0x1c, 0x83, 0xdd, 0xcb, 0x62, 0xb1, 0x08, 0x16, 0xc9, 0x02, 0x01, - 0xf6, 0xb4, 0xf7, 0xbd, 0x2c, 0x38, 0x33, 0xa4, 0x48, 0x89, 0x94, 0x65, 0xc0, 0x17, 0x43, 0xf3, - 0xe6, 0xbd, 0x99, 0xef, 0xfd, 0xce, 0x47, 0x83, 0x05, 0xd7, 0xff, 0x0b, 0x32, 0xa9, 0xdb, 0x41, - 0x7a, 0x0b, 0xd9, 0xf6, 0xa1, 0xde, 0xa9, 0xea, 0x1e, 0xb1, 0x89, 0xd6, 0x0a, 0x30, 0xc5, 0xb2, - 0x1c, 0x6f, 0x6b, 0x6c, 0x5b, 0xeb, 0x54, 0x95, 0x8a, 0x89, 0x89, 0x87, 0x89, 0xde, 0x80, 0x04, - 0xe9, 0x9d, 0x6a, 0x03, 0x51, 0x58, 0xd5, 0x4d, 0xec, 0xfa, 0xdc, 0x46, 0x99, 0xb3, 0xb1, 0x8d, - 0xd9, 0x4f, 0x3d, 0xfc, 0x25, 0xa4, 0x17, 0x6d, 0x8c, 0xed, 0x26, 0xd2, 0x61, 0xcb, 0xd5, 0xa1, - 0xef, 0x63, 0x0a, 0xa9, 0x8b, 0x7d, 0x71, 0x8f, 0x52, 0xc9, 0x80, 0x41, 0x0f, 0x5b, 0x28, 0xda, - 0x5f, 0xcc, 0xd8, 0x6f, 0xc1, 0x00, 0x7a, 0x91, 0xc2, 0xbc, 0x38, 0x9e, 0xad, 0x1a, 0xed, 0x47, - 0x3a, 0xf4, 0x0f, 0xc5, 0xd6, 0x79, 0x81, 0xd7, 0x23, 0xb6, 0xf0, 0x2e, 0xb2, 0xe1, 0x1b, 0x06, - 0xc7, 0xca, 0x17, 0x62, 0xeb, 0x0c, 0xf4, 0x5c, 0x1f, 0xeb, 0xec, 0x2f, 0x17, 0xa9, 0xcf, 0x25, - 0x70, 0x61, 0x8f, 0xd8, 0xfb, 0x88, 0xfe, 0x2e, 0x30, 0x1d, 0x44, 0x68, 0x00, 0x29, 0x0e, 0xee, - 0x5a, 0x56, 0x80, 0x08, 0x41, 0x44, 0x3e, 0x07, 0xc6, 0x09, 0xf2, 0x2d, 0x14, 0x94, 0xa5, 0x25, - 0x69, 0x6d, 0xaa, 0x2e, 0x56, 0xb2, 0x0a, 0xa6, 0x71, 0xc2, 0xa0, 0x3c, 0xca, 0x76, 0x53, 0x32, - 0x79, 0x11, 0x94, 0x10, 0x75, 0x0c, 0xc8, 0x0f, 0x2b, 0x17, 0x98, 0x0a, 0x40, 0xd4, 0x11, 0xc7, - 0x6f, 0x55, 0x9f, 0xbe, 0x7f, 0xb1, 0x2e, 0x4e, 0x7c, 0xf6, 0xfe, 0xc5, 0xfa, 0x32, 0x8f, 0xc2, - 0x00, 0x3c, 0xea, 0x65, 0xb0, 0x32, 0x60, 0xbb, 0x8e, 0x48, 0x0b, 0xfb, 0x04, 0xa9, 0x1f, 0x4b, - 0xe0, 0xf4, 0x1e, 0xb1, 0x1f, 0xc2, 0x26, 0x41, 0x74, 0x1b, 0xfb, 0x8f, 0xdc, 0xc0, 0x93, 0xe7, - 0xc0, 0x98, 0x8f, 0x7d, 0x13, 0x31, 0x57, 0x8a, 0x75, 0xbe, 0x38, 0x11, 0x4f, 0xe4, 0x8b, 0x60, - 0x8a, 0xb8, 0xb6, 0x0f, 0x69, 0x3b, 0x40, 0xe5, 0x22, 0xdb, 0xee, 0x0a, 0xb6, 0xae, 0x87, 0x7e, - 0xa6, 0x4e, 0x0c, 0xbd, 0x3d, 0x17, 0x7b, 0x9b, 0x82, 0xa9, 0x2a, 0xa0, 0xdc, 0x2b, 0x8b, 0xfd, - 0x7a, 0x23, 0x81, 0x69, 0xe6, 0xbf, 0x6f, 0x3d, 0xc0, 0xbb, 0xd4, 0xc9, 0xcd, 0xcf, 0x3c, 0x98, - 0x0c, 0x11, 0x5b, 0x88, 0x50, 0xe1, 0xd1, 0x04, 0xa2, 0xce, 0x0e, 0x22, 0x54, 0xbe, 0x0d, 0xc6, - 0xa1, 0x87, 0xdb, 0x3e, 0x65, 0x7e, 0x94, 0x36, 0xe7, 0x35, 0x51, 0x24, 0x61, 0xe9, 0x6b, 0xa2, - 0xf4, 0xb5, 0x6d, 0xec, 0xfa, 0xb5, 0xe2, 0xab, 0x37, 0x8b, 0x23, 0x75, 0xa1, 0x2e, 0xff, 0x12, - 0x80, 0x46, 0xe0, 0x5a, 0x36, 0x32, 0x1e, 0x21, 0xee, 0xe5, 0x10, 0xc6, 0x53, 0xdc, 0xe4, 0x57, - 0x08, 0x6d, 0xa9, 0x3d, 0xe9, 0x96, 0x13, 0xe9, 0x16, 0xfe, 0xa8, 0xe7, 0xc0, 0x5c, 0x72, 0x1d, - 0x3b, 0xfe, 0x37, 0x30, 0xbb, 0x47, 0xec, 0x3a, 0xfa, 0x6b, 0x1b, 0x11, 0x5a, 0x83, 0xd4, 0x74, - 0xfa, 0x12, 0x27, 0x65, 0x24, 0x6e, 0x0e, 0x8c, 0x59, 0xc8, 0xc7, 0x9e, 0x88, 0x01, 0x5f, 0x6c, - 0x5d, 0xcb, 0xcc, 0xc7, 0xd9, 0x18, 0x4e, 0xf2, 0x1a, 0x75, 0x1e, 0x9c, 0xef, 0x11, 0xc5, 0xa0, - 0xbe, 0x96, 0x18, 0x2a, 0x91, 0x24, 0x8e, 0x2a, 0xbb, 0xc8, 0x2e, 0x83, 0x53, 0x14, 0x1f, 0x20, - 0xdf, 0x30, 0xb1, 0x4f, 0x03, 0x68, 0x46, 0x49, 0x99, 0x61, 0xd2, 0x6d, 0x21, 0x94, 0x17, 0x40, - 0x58, 0x54, 0x46, 0x58, 0x39, 0x28, 0x10, 0x65, 0x36, 0x85, 0xa8, 0xb3, 0xcf, 0x04, 0x7d, 0x1e, - 0x17, 0x33, 0x3c, 0x4e, 0x55, 0xe2, 0x58, 0x6f, 0x25, 0x1e, 0xe5, 0x79, 0xd2, 0x15, 0xe1, 0x79, - 0x52, 0x14, 0x7b, 0xfe, 0xdd, 0x28, 0xf3, 0x7c, 0x07, 0xb5, 0x30, 0x71, 0xe9, 0x76, 0x13, 0xba, - 0x1e, 0x6b, 0x92, 0x0e, 0xf2, 0xa9, 0x91, 0xf4, 0x1f, 0x30, 0xd1, 0x7d, 0x16, 0x84, 0x65, 0x30, - 0xdd, 0x68, 0x62, 0xf3, 0xc0, 0x70, 0x90, 0x6b, 0x3b, 0x3c, 0x04, 0xc5, 0x7a, 0x89, 0xc9, 0x7e, - 0xcd, 0x44, 0x19, 0x71, 0x2a, 0x64, 0xc5, 0xe9, 0x67, 0x71, 0x09, 0xb3, 0x10, 0xd4, 0x16, 0xc2, - 0x52, 0xfb, 0xea, 0xcd, 0xe2, 0x59, 0x5e, 0x8c, 0xc4, 0x3a, 0xd0, 0x5c, 0xac, 0x7b, 0x90, 0x3a, - 0xda, 0x3d, 0x9f, 0xc6, 0x05, 0xbc, 0x0a, 0x66, 0x11, 0x75, 0x50, 0x80, 0xda, 0x9e, 0x21, 0xba, - 0x86, 0x47, 0xe8, 0x54, 0x24, 0xde, 0xe7, 0xdd, 0xb3, 0x0a, 0x66, 0xc5, 0x14, 0x0d, 0x90, 0x89, - 0xdc, 0x0e, 0x0a, 0xca, 0xe3, 0x5c, 0x91, 0x8b, 0xeb, 0x42, 0xda, 0x97, 0x91, 0x89, 0x8c, 0x8c, - 0xc8, 0xa0, 0x68, 0x41, 0x0a, 0xcb, 0x93, 0x6c, 0x8f, 0xfd, 0x3e, 0x32, 0x0f, 0xc9, 0xc0, 0x8a, - 0x3c, 0x24, 0x45, 0x71, 0x1e, 0xbe, 0xe7, 0x73, 0xee, 0x8f, 0x2e, 0x75, 0xac, 0x00, 0x3e, 0x3e, - 0xb9, 0x44, 0x2c, 0x82, 0x52, 0x23, 0xcc, 0xb8, 0x38, 0xa3, 0xc0, 0xcf, 0x60, 0xa2, 0xfb, 0x39, - 0x15, 0x5d, 0xcc, 0xca, 0x54, 0x6f, 0x80, 0xc6, 0xfa, 0x03, 0x74, 0xe4, 0x78, 0x4c, 0x79, 0x27, - 0xc6, 0x63, 0x4a, 0x16, 0x87, 0xe3, 0xd3, 0x51, 0x70, 0x76, 0x8f, 0xd8, 0xbb, 0xf5, 0xed, 0xcd, - 0x8d, 0x1d, 0xd4, 0x6a, 0xe2, 0x43, 0x64, 0x9d, 0x5c, 0x4c, 0x96, 0xc1, 0xb4, 0xa8, 0x0a, 0x3e, - 0x53, 0x78, 0x69, 0x96, 0xb8, 0x6c, 0x27, 0x14, 0x0d, 0x1b, 0x15, 0x19, 0x14, 0x7d, 0xe8, 0x45, - 0xfd, 0xc9, 0x7e, 0xb3, 0x49, 0x7e, 0xe8, 0x35, 0x70, 0x53, 0x94, 0x9a, 0x58, 0xc9, 0x0a, 0x98, - 0xb4, 0x90, 0xe9, 0x7a, 0xb0, 0x49, 0x58, 0x79, 0x15, 0xeb, 0xf1, 0xba, 0x2f, 0xba, 0x93, 0x19, - 0xd1, 0xad, 0x66, 0x46, 0xf7, 0x42, 0x1c, 0xdd, 0xfe, 0x60, 0xa9, 0x8b, 0x60, 0x21, 0x73, 0x23, - 0x8e, 0xf3, 0xdf, 0x81, 0x1c, 0x4e, 0x06, 0xe8, 0x9b, 0xa8, 0xd9, 0x7d, 0x8b, 0x42, 0xe7, 0x03, - 0xe8, 0x13, 0x68, 0x86, 0x24, 0xc8, 0x70, 0x2d, 0x11, 0xe6, 0x99, 0x84, 0xf4, 0x9e, 0x95, 0x78, - 0xb2, 0x46, 0x93, 0x4f, 0xd6, 0xd6, 0x5a, 0xcf, 0xf3, 0x50, 0xee, 0x4e, 0xa5, 0xf4, 0x45, 0xea, - 0x45, 0xa0, 0xf4, 0x4b, 0x63, 0x70, 0x2f, 0x25, 0x06, 0x7f, 0xbf, 0xdd, 0xf0, 0x5c, 0x5a, 0x83, - 0xd6, 0x7e, 0x34, 0xfd, 0x76, 0x3b, 0xae, 0x85, 0xc2, 0x5c, 0x6b, 0x60, 0x82, 0xb4, 0x1b, 0x21, - 0xf5, 0x62, 0x08, 0x4b, 0x9b, 0x73, 0x1a, 0x27, 0x5a, 0x5a, 0x44, 0xb4, 0xb4, 0xbb, 0xfe, 0x61, - 0x3d, 0x52, 0x4a, 0xcf, 0xd4, 0xd1, 0x9e, 0x99, 0x9a, 0xf0, 0xa7, 0x90, 0xf2, 0xe7, 0x66, 0x8f, - 0x3f, 0x2b, 0xdd, 0xe7, 0x2e, 0x17, 0x9a, 0xba, 0x0a, 0x2e, 0x0f, 0x54, 0x88, 0xbd, 0xfc, 0x81, - 0x97, 0x3a, 0xa7, 0x09, 0x7f, 0x68, 0x59, 0x90, 0x1e, 0xa7, 0xd4, 0x3b, 0xcc, 0x4c, 0x68, 0x88, - 0x52, 0xe7, 0xb2, 0xec, 0x6e, 0x28, 0xf4, 0x77, 0xc3, 0x2f, 0xc0, 0x84, 0x87, 0xbc, 0x06, 0x0a, - 0x48, 0xb9, 0xb8, 0x54, 0x58, 0x2b, 0x6d, 0xae, 0x68, 0xfd, 0xb4, 0x5a, 0xab, 0xb1, 0xd7, 0xff, - 0x21, 0x6c, 0xba, 0x56, 0x58, 0x7a, 0xf5, 0xc8, 0x46, 0xae, 0x81, 0x99, 0x00, 0x3d, 0x86, 0x81, - 0x65, 0x88, 0x49, 0x3e, 0x36, 0xcc, 0x24, 0x9f, 0xe6, 0x36, 0x77, 0xf9, 0x3c, 0x5f, 0x06, 0x62, - 0x6d, 0xb0, 0xf6, 0x12, 0x8d, 0x53, 0xe2, 0xb2, 0x07, 0xa1, 0x68, 0x98, 0x01, 0x7d, 0x64, 0x87, - 0xf4, 0xc7, 0x58, 0x74, 0x48, 0xff, 0x46, 0x9c, 0x9e, 0xe7, 0x9c, 0x1a, 0xf0, 0xbd, 0xdf, 0x33, - 0x4e, 0x2f, 0xdf, 0x02, 0x53, 0xb0, 0x4d, 0x1d, 0x1c, 0xb8, 0xf4, 0x90, 0xb3, 0x95, 0x5a, 0xf9, - 0xf3, 0x8f, 0x6e, 0xcc, 0x09, 0x06, 0x25, 0xb8, 0xe4, 0x3e, 0x0d, 0x5c, 0xdf, 0xae, 0x77, 0x55, - 0xe5, 0x9f, 0x83, 0x71, 0xfe, 0x55, 0xc0, 0x32, 0x55, 0xda, 0x54, 0xb2, 0x02, 0xcd, 0xef, 0x88, - 0x18, 0x1b, 0xd7, 0xe7, 0x2d, 0xd5, 0x3d, 0x29, 0xfd, 0xc6, 0x24, 0xb1, 0x89, 0x37, 0x26, 0x29, - 0x8a, 0x5d, 0xf9, 0x3f, 0xef, 0xa7, 0x5a, 0x13, 0x9a, 0x07, 0x4d, 0x97, 0xd0, 0x5d, 0xf1, 0x56, - 0xa6, 0x3f, 0x12, 0x38, 0x65, 0x89, 0x48, 0x28, 0xe7, 0x2b, 0x3a, 0xf8, 0x49, 0x23, 0xb2, 0x8a, - 0xc8, 0x33, 0x0a, 0xbd, 0x28, 0xac, 0x4d, 0xd5, 0xe5, 0x78, 0x2b, 0x3e, 0x28, 0x6a, 0x19, 0x66, - 0x9d, 0x6e, 0x99, 0xfc, 0xdb, 0x45, 0xcb, 0xe4, 0x2b, 0xc4, 0x8e, 0xfc, 0x57, 0x62, 0x73, 0xa3, - 0x8e, 0x3a, 0xf8, 0x00, 0x45, 0x6a, 0xb1, 0xdd, 0xc9, 0x79, 0xb1, 0xd1, 0xe3, 0xc5, 0x52, 0x82, - 0x58, 0x66, 0x5e, 0xad, 0x5e, 0x02, 0x6a, 0xfe, 0x6e, 0x84, 0x7f, 0xf3, 0x93, 0xd3, 0xa0, 0xb0, - 0x47, 0x6c, 0xf9, 0x5f, 0x12, 0x98, 0x49, 0x7f, 0xd9, 0x5c, 0xca, 0xaa, 0x88, 0xde, 0x8f, 0x08, - 0xe5, 0xfa, 0x30, 0x5a, 0x71, 0xb4, 0xd6, 0x9f, 0x7e, 0xf1, 0xed, 0x7f, 0x46, 0x2f, 0xa9, 0xaa, - 0x9e, 0xf1, 0x95, 0x2a, 0xe6, 0x87, 0x29, 0xee, 0x7f, 0x22, 0x81, 0xa9, 0xee, 0x3b, 0xb0, 0x94, - 0x73, 0x4f, 0xac, 0xa1, 0xac, 0x1d, 0xa5, 0x11, 0xa3, 0x58, 0x65, 0x28, 0x96, 0xd5, 0xc5, 0x2c, - 0x14, 0xe1, 0x6c, 0x35, 0x28, 0x36, 0x10, 0x75, 0xe4, 0x7f, 0x4a, 0x60, 0x3a, 0xf5, 0x79, 0xb0, - 0x92, 0x73, 0x47, 0x52, 0x49, 0xb9, 0x36, 0x84, 0x52, 0x8c, 0xe5, 0x2a, 0xc3, 0xb2, 0xa2, 0x2e, - 0x67, 0x61, 0x09, 0xb8, 0x85, 0xc1, 0x28, 0x12, 0x43, 0x93, 0xfa, 0x2c, 0xc8, 0x43, 0x93, 0x54, - 0xca, 0x45, 0x93, 0x49, 0xc1, 0x07, 0xa2, 0x11, 0x89, 0x49, 0xa0, 0x49, 0x51, 0xf5, 0x3c, 0x34, - 0x49, 0xa5, 0x5c, 0x34, 0x99, 0x44, 0x74, 0x20, 0x1a, 0x8b, 0x5b, 0x18, 0x26, 0xbb, 0x3c, 0x2c, - 0xdf, 0x34, 0x61, 0xcd, 0x2b, 0xdf, 0x94, 0x56, 0x6e, 0xf9, 0x66, 0x53, 0xc1, 0x81, 0xe5, 0xfb, - 0x58, 0x98, 0x08, 0x44, 0x1f, 0x48, 0xe0, 0x4c, 0x72, 0x96, 0x73, 0x54, 0x57, 0x07, 0xb6, 0x4b, - 0x72, 0xea, 0x2b, 0xd5, 0xa1, 0x55, 0x63, 0x7c, 0x1b, 0x0c, 0xdf, 0xba, 0xba, 0x36, 0xa0, 0xbd, - 0xda, 0xdc, 0x50, 0xa0, 0xfc, 0x50, 0x02, 0x72, 0x06, 0xb3, 0xcd, 0x83, 0xd9, 0xaf, 0x9a, 0x0b, - 0x73, 0x00, 0xd3, 0x1b, 0x08, 0x13, 0x05, 0xe6, 0xe6, 0x86, 0x61, 0x09, 0x43, 0x01, 0xf3, 0xa5, - 0x04, 0xca, 0xb9, 0xff, 0x4e, 0xd2, 0x73, 0x1b, 0x3f, 0xdb, 0x40, 0xb9, 0x7d, 0x4c, 0x83, 0x18, - 0xf8, 0x4f, 0x19, 0x70, 0x4d, 0xbd, 0x9e, 0x3d, 0x38, 0xa8, 0x91, 0x7c, 0xef, 0xa3, 0xb1, 0x2e, - 0xff, 0x4f, 0x02, 0xb3, 0xbd, 0xb4, 0xf6, 0x4a, 0x5e, 0x57, 0xa6, 0xf5, 0x14, 0x6d, 0x38, 0xbd, - 0x18, 0xa1, 0xc6, 0x10, 0xae, 0xa9, 0x57, 0x32, 0x1b, 0x98, 0x19, 0x19, 0xc9, 0x09, 0xf7, 0x99, - 0x04, 0x94, 0x01, 0xa4, 0x36, 0x2f, 0xb9, 0xf9, 0x26, 0xca, 0x9d, 0x63, 0x9b, 0xc4, 0xe0, 0xef, - 0x30, 0xf0, 0x37, 0xd5, 0x6a, 0x66, 0x78, 0x99, 0xbd, 0xd1, 0x80, 0x96, 0x11, 0xd3, 0x64, 0x03, - 0x45, 0x40, 0xff, 0x0c, 0xa6, 0x53, 0xb4, 0x28, 0x6f, 0x18, 0x25, 0x95, 0x72, 0x87, 0x51, 0x16, - 0x63, 0x91, 0x9f, 0x49, 0x40, 0x19, 0x40, 0x57, 0xf2, 0x22, 0x95, 0x6f, 0x92, 0x1b, 0xa9, 0xa3, - 0x59, 0x87, 0xfc, 0x0f, 0x09, 0x9c, 0xcf, 0xa3, 0x1c, 0x5a, 0xee, 0xf3, 0x93, 0xa9, 0xaf, 0xdc, - 0x3a, 0x9e, 0x7e, 0x84, 0x41, 0x19, 0x7b, 0xf2, 0xfe, 0xc5, 0xba, 0x54, 0x43, 0xaf, 0xde, 0x56, - 0xa4, 0xd7, 0x6f, 0x2b, 0xd2, 0x37, 0x6f, 0x2b, 0xd2, 0xbf, 0xdf, 0x55, 0x46, 0x5e, 0xbf, 0xab, - 0x8c, 0x7c, 0xf9, 0xae, 0x32, 0xf2, 0xa7, 0xdf, 0xd8, 0x2e, 0x75, 0xda, 0x0d, 0xcd, 0xc4, 0x9e, - 0x7e, 0x2f, 0xba, 0xe2, 0xb7, 0xb0, 0x41, 0xba, 0xe9, 0xbd, 0x61, 0xe2, 0x00, 0x25, 0x97, 0x0e, - 0x74, 0x7d, 0xdd, 0xc3, 0x56, 0xbb, 0x89, 0x88, 0xc8, 0x3d, 0xfb, 0xe7, 0x76, 0x63, 0x9c, 0x7d, - 0x45, 0xdd, 0xfc, 0x31, 0x00, 0x00, 0xff, 0xff, 0x97, 0x47, 0xe3, 0xea, 0x86, 0x17, 0x00, 0x00, + // 2076 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x4d, 0x6c, 0x1c, 0x49, + 0x15, 0x4e, 0xdb, 0xe3, 0x24, 0x2e, 0xdb, 0x31, 0xe9, 0x75, 0x92, 0x49, 0x27, 0xb1, 0xe3, 0x76, + 0x7e, 0xbc, 0x4e, 0xb6, 0x27, 0xe3, 0xc0, 0x2e, 0x6b, 0x09, 0xa4, 0x8c, 0x1d, 0x84, 0x45, 0xbc, + 0x44, 0xed, 0xec, 0xae, 0xc4, 0xa5, 0xa9, 0xe9, 0x7e, 0xe9, 0x69, 0x3c, 0xdd, 0x35, 0x74, 0xd5, + 0x8c, 0xf1, 0x01, 0x69, 0xd9, 0xe3, 0x72, 0x00, 0x89, 0x03, 0xe2, 0x00, 0x17, 0xb8, 0xae, 0x14, + 0x24, 0x2e, 0xec, 0x19, 0xa4, 0x3d, 0x46, 0x70, 0x41, 0x08, 0x45, 0x28, 0x41, 0x8a, 0xc4, 0x89, + 0x3b, 0x07, 0x50, 0x57, 0x55, 0xd7, 0x74, 0xf7, 0x74, 0x8f, 0x27, 0xab, 0x68, 0x2f, 0xd6, 0xd4, + 0xab, 0xf7, 0xaa, 0xbe, 0xf7, 0x5b, 0xef, 0xb5, 0xd1, 0x95, 0x20, 0xfa, 0x01, 0xb8, 0x2c, 0x18, + 0x40, 0xa3, 0x07, 0xbe, 0x7f, 0xd4, 0x18, 0x34, 0x1b, 0x21, 0xf5, 0xa9, 0xd5, 0x8b, 0x09, 0x23, + 0xba, 0xae, 0xb6, 0x2d, 0xbe, 0x6d, 0x0d, 0x9a, 0xc6, 0x92, 0x4f, 0x7c, 0xc2, 0xb7, 0x1b, 0xc9, + 0x2f, 0xc1, 0x69, 0x5c, 0xf6, 0x09, 0xf1, 0xbb, 0xd0, 0xc0, 0xbd, 0xa0, 0x81, 0xa3, 0x88, 0x30, + 0xcc, 0x02, 0x12, 0xc9, 0x73, 0x8c, 0x8b, 0x72, 0x97, 0xaf, 0xda, 0xfd, 0xc7, 0x0d, 0x1c, 0x1d, + 0xc9, 0xad, 0xb3, 0x38, 0x0c, 0x22, 0xd2, 0xe0, 0x7f, 0x25, 0x69, 0xd9, 0x25, 0x34, 0x24, 0xb4, + 0xd1, 0xc6, 0x14, 0x1a, 0x83, 0x66, 0x1b, 0x18, 0x6e, 0x36, 0x5c, 0x12, 0x44, 0x72, 0xff, 0x82, + 0xdc, 0x0f, 0xa9, 0x2f, 0xf1, 0xa6, 0xd7, 0x88, 0x0d, 0x47, 0xa0, 0x13, 0x8b, 0xf4, 0xcc, 0x12, + 0x45, 0xd9, 0x51, 0x0f, 0xd2, 0xfd, 0x95, 0x92, 0xfd, 0x1e, 0x8e, 0x71, 0x98, 0x32, 0xac, 0x95, + 0x30, 0xc4, 0x98, 0x81, 0xd3, 0x0d, 0xc2, 0x80, 0x09, 0x26, 0xf3, 0x53, 0x0d, 0x5d, 0xda, 0xa3, + 0xfe, 0x3e, 0xb0, 0xef, 0xc6, 0x6e, 0x07, 0x28, 0x8b, 0x31, 0x23, 0xf1, 0x3d, 0xcf, 0x8b, 0x81, + 0x52, 0xa0, 0xfa, 0x79, 0x74, 0x92, 0x42, 0xe4, 0x41, 0x5c, 0xd7, 0xae, 0x6a, 0xeb, 0xb3, 0xb6, + 0x5c, 0xe9, 0x26, 0x9a, 0x27, 0x19, 0x81, 0xfa, 0x14, 0xdf, 0xcd, 0xd1, 0xf4, 0x15, 0x34, 0x07, + 0xac, 0xe3, 0x60, 0x71, 0x58, 0x7d, 0x9a, 0xb3, 0x20, 0x60, 0x1d, 0x79, 0xfc, 0x56, 0xf3, 0xe3, + 0x97, 0x4f, 0x36, 0xe4, 0x89, 0x9f, 0xbc, 0x7c, 0xb2, 0xb1, 0x2a, 0x70, 0x8e, 0xc1, 0x63, 0x5e, + 0x47, 0x6b, 0x63, 0xb6, 0x6d, 0xa0, 0x3d, 0x12, 0x51, 0x30, 0xff, 0xa8, 0xa1, 0xaf, 0xec, 0x51, + 0xff, 0x03, 0xdc, 0xa5, 0xc0, 0xb6, 0x49, 0xf4, 0x38, 0x88, 0x43, 0x7d, 0x09, 0xcd, 0x44, 0x24, + 0x72, 0x81, 0xab, 0x52, 0xb3, 0xc5, 0xe2, 0xb5, 0x68, 0xa2, 0x5f, 0x46, 0xb3, 0x34, 0xf0, 0x23, + 0xcc, 0xfa, 0x31, 0xd4, 0x6b, 0x7c, 0x7b, 0x48, 0xd8, 0xba, 0x9d, 0xe8, 0x99, 0x3b, 0x31, 0xd1, + 0xf6, 0xbc, 0xd2, 0x36, 0x07, 0xd3, 0x34, 0x50, 0xbd, 0x48, 0x53, 0x7a, 0x3d, 0xd3, 0xd0, 0x3c, + 0xd7, 0x3f, 0xf2, 0x1e, 0x91, 0xfb, 0xac, 0x53, 0xe9, 0x9f, 0x8b, 0xe8, 0x74, 0x82, 0xd8, 0x03, + 0xca, 0xa4, 0x46, 0xa7, 0x80, 0x75, 0x76, 0x80, 0x32, 0xfd, 0x1d, 0x74, 0x12, 0x87, 0xa4, 0x1f, + 0x31, 0xae, 0xc7, 0xdc, 0xe6, 0x45, 0x4b, 0xc6, 0x5d, 0x12, 0xbd, 0x96, 0x8c, 0x5e, 0x6b, 0x9b, + 0x04, 0x51, 0xab, 0xf6, 0xf9, 0xb3, 0x95, 0x13, 0xb6, 0x64, 0xd7, 0xbf, 0x89, 0x50, 0x3b, 0x0e, + 0x3c, 0x1f, 0x9c, 0xc7, 0x20, 0xb4, 0x9c, 0x40, 0x78, 0x56, 0x88, 0x7c, 0x0b, 0x60, 0xcb, 0x2c, + 0xb8, 0x5b, 0xcf, 0xb8, 0x5b, 0xea, 0x63, 0x9e, 0x47, 0x4b, 0xd9, 0xb5, 0x52, 0xfc, 0x47, 0x68, + 0x71, 0x8f, 0xfa, 0x36, 0xfc, 0xb0, 0x0f, 0x94, 0xb5, 0x30, 0x73, 0x3b, 0x23, 0x8e, 0xd3, 0x4a, + 0x1c, 0xb7, 0x84, 0x66, 0x3c, 0x88, 0x48, 0x28, 0x6d, 0x20, 0x16, 0x5b, 0xb7, 0x4a, 0xfd, 0x71, + 0x4e, 0xc1, 0xc9, 0x5e, 0x63, 0x5e, 0x44, 0x17, 0x0a, 0x24, 0x05, 0xea, 0x1f, 0x1a, 0x47, 0x25, + 0x9d, 0x24, 0x50, 0x95, 0x07, 0xd9, 0x75, 0x74, 0x86, 0x91, 0x03, 0x88, 0x1c, 0x97, 0x44, 0x2c, + 0xc6, 0x6e, 0xea, 0x94, 0x05, 0x4e, 0xdd, 0x96, 0x44, 0xfd, 0x0a, 0x4a, 0x82, 0xca, 0x49, 0x22, + 0x07, 0x62, 0x19, 0x66, 0xb3, 0xc0, 0x3a, 0xfb, 0x9c, 0x30, 0xa2, 0x71, 0xad, 0x44, 0xe3, 0x5c, + 0x24, 0xce, 0x14, 0x23, 0xf1, 0x38, 0xcd, 0xb3, 0xaa, 0x48, 0xcd, 0xb3, 0x24, 0xa5, 0xf9, 0xbf, + 0xa7, 0xb8, 0xe6, 0x3b, 0xd0, 0x23, 0x34, 0x60, 0xdb, 0x5d, 0x1c, 0x84, 0x3c, 0x49, 0x06, 0x10, + 0x31, 0x27, 0xab, 0x3f, 0xe2, 0xa4, 0xf7, 0xb8, 0x11, 0x56, 0xd1, 0x7c, 0xbb, 0x4b, 0xdc, 0x03, + 0xa7, 0x03, 0x81, 0xdf, 0x11, 0x26, 0xa8, 0xd9, 0x73, 0x9c, 0xf6, 0x6d, 0x4e, 0x2a, 0xb1, 0xd3, + 0x74, 0x99, 0x9d, 0xbe, 0xa6, 0x42, 0x98, 0x9b, 0xa0, 0x75, 0x25, 0x09, 0xb5, 0xbf, 0x3f, 0x5b, + 0x39, 0x27, 0x82, 0x91, 0x7a, 0x07, 0x56, 0x40, 0x1a, 0x21, 0x66, 0x1d, 0x6b, 0x37, 0x62, 0x2a, + 0x80, 0x6f, 0xa2, 0x45, 0x60, 0x1d, 0x88, 0xa1, 0x1f, 0x3a, 0x32, 0x6b, 0x84, 0x85, 0xce, 0xa4, + 0xe4, 0x7d, 0x91, 0x3d, 0x37, 0xd1, 0xa2, 0x2c, 0xcc, 0x31, 0xb8, 0x10, 0x0c, 0x20, 0xae, 0x9f, + 0x14, 0x8c, 0x82, 0x6c, 0x4b, 0xea, 0x88, 0x47, 0x4e, 0x95, 0x78, 0x44, 0x47, 0x35, 0x0f, 0x33, + 0x5c, 0x3f, 0xcd, 0xf7, 0xf8, 0xef, 0x63, 0xfd, 0x90, 0x35, 0xac, 0xf4, 0x43, 0x96, 0xa4, 0xfc, + 0xf0, 0x1f, 0x51, 0xe7, 0x3e, 0x0c, 0x58, 0xc7, 0x8b, 0xf1, 0xe1, 0xeb, 0x73, 0xc4, 0x0a, 0x9a, + 0x6b, 0x27, 0x1e, 0x97, 0x67, 0x4c, 0x8b, 0x33, 0x38, 0xe9, 0xbd, 0x8a, 0x88, 0xae, 0x95, 0x79, + 0xaa, 0x68, 0xa0, 0x99, 0x51, 0x03, 0x1d, 0x5b, 0x1e, 0x73, 0xda, 0xc9, 0xf2, 0x98, 0xa3, 0x29, + 0x73, 0xfc, 0x69, 0x0a, 0x9d, 0xdb, 0xa3, 0xfe, 0x7d, 0x7b, 0x7b, 0xf3, 0xce, 0x0e, 0xf4, 0xba, + 0xe4, 0x08, 0xbc, 0xd7, 0x67, 0x93, 0x55, 0x34, 0x2f, 0xa3, 0x42, 0xd4, 0x14, 0x11, 0x9a, 0x73, + 0x82, 0xb6, 0x93, 0x90, 0x26, 0xb5, 0x8a, 0x8e, 0x6a, 0x11, 0x0e, 0xd3, 0xfc, 0xe4, 0xbf, 0x79, + 0x25, 0x3f, 0x0a, 0xdb, 0xa4, 0x2b, 0x43, 0x4d, 0xae, 0x74, 0x03, 0x9d, 0xf6, 0xc0, 0x0d, 0x42, + 0xdc, 0xa5, 0x3c, 0xbc, 0x6a, 0xb6, 0x5a, 0x8f, 0x58, 0xf7, 0x74, 0x89, 0x75, 0x9b, 0xa5, 0xd6, + 0xbd, 0xa4, 0xac, 0x3b, 0x6a, 0x2c, 0x73, 0x05, 0x5d, 0x29, 0xdd, 0x50, 0x76, 0xfe, 0x31, 0xd2, + 0x93, 0xca, 0x80, 0x23, 0x17, 0xba, 0xc3, 0xb7, 0x28, 0x51, 0x3e, 0xc6, 0x11, 0xc5, 0x6e, 0xd2, + 0x49, 0x39, 0x81, 0x27, 0xcd, 0xbc, 0x90, 0xa1, 0xee, 0x7a, 0x99, 0x27, 0x6b, 0x2a, 0xfb, 0x64, + 0x6d, 0xad, 0x17, 0x9e, 0x87, 0xfa, 0xb0, 0x2a, 0xe5, 0x2f, 0x32, 0x2f, 0x23, 0x63, 0x94, 0xaa, + 0xc0, 0x7d, 0xa6, 0x71, 0xf8, 0xfb, 0xfd, 0x76, 0x18, 0xb0, 0x16, 0xf6, 0xf6, 0xd3, 0xea, 0x77, + 0x7f, 0x10, 0x78, 0x90, 0xf8, 0xda, 0x42, 0xa7, 0x68, 0xbf, 0x9d, 0x34, 0x47, 0x1c, 0xe1, 0xdc, + 0xe6, 0x92, 0x25, 0xda, 0x3d, 0x2b, 0x6d, 0xf7, 0xac, 0x7b, 0xd1, 0x91, 0x9d, 0x32, 0xe5, 0x6b, + 0xea, 0x54, 0xa1, 0xa6, 0x66, 0xf4, 0x99, 0xce, 0xe9, 0x73, 0xb7, 0xa0, 0xcf, 0xda, 0xf0, 0xb9, + 0xab, 0x84, 0x66, 0xde, 0x44, 0xd7, 0xc7, 0x32, 0x28, 0x2d, 0xff, 0x2b, 0x42, 0x5d, 0xb4, 0x09, + 0xef, 0xf7, 0x3c, 0xcc, 0x5e, 0x25, 0xd4, 0x07, 0x5c, 0x4c, 0x72, 0xc8, 0x50, 0x17, 0xb4, 0xf2, + 0x6c, 0x98, 0x1e, 0xcd, 0x86, 0x6f, 0xa0, 0x53, 0x21, 0x84, 0x6d, 0x88, 0x69, 0xbd, 0x76, 0x75, + 0x7a, 0x7d, 0x6e, 0x73, 0xcd, 0x1a, 0xed, 0xbd, 0xad, 0x16, 0x7f, 0xfd, 0x3f, 0xc0, 0xdd, 0xc0, + 0x4b, 0x42, 0xcf, 0x4e, 0x65, 0xf4, 0x16, 0x5a, 0x88, 0xe1, 0x10, 0xc7, 0x9e, 0x23, 0x2b, 0xf9, + 0xcc, 0x24, 0x95, 0x7c, 0x5e, 0xc8, 0xdc, 0x13, 0xf5, 0x7c, 0x15, 0xc9, 0xb5, 0xc3, 0xd3, 0x4b, + 0x26, 0xce, 0x9c, 0xa0, 0x3d, 0x4a, 0x48, 0x93, 0x14, 0xe8, 0x63, 0x33, 0x64, 0xd4, 0xc6, 0x32, + 0x43, 0x46, 0x37, 0x94, 0x7b, 0x3e, 0x15, 0xad, 0x81, 0xd8, 0x7b, 0xc8, 0xdb, 0x72, 0xfd, 0x6d, + 0x34, 0x8b, 0xfb, 0xac, 0x43, 0xe2, 0x80, 0x1d, 0x89, 0x6e, 0xa5, 0x55, 0xff, 0xcb, 0x1f, 0xde, + 0x5a, 0x92, 0x1d, 0x94, 0xec, 0x25, 0xf7, 0x59, 0x1c, 0x44, 0xbe, 0x3d, 0x64, 0xd5, 0xbf, 0x8e, + 0x4e, 0x8a, 0xc6, 0x9e, 0x7b, 0x6a, 0x6e, 0xd3, 0x28, 0x33, 0xb4, 0xb8, 0x23, 0xed, 0xd8, 0x04, + 0xbf, 0x48, 0xa9, 0xe1, 0x49, 0xf9, 0x37, 0x26, 0x8b, 0x4d, 0xbe, 0x31, 0x59, 0x92, 0x52, 0xe5, + 0xd7, 0x22, 0x9f, 0x5a, 0x5d, 0xec, 0x1e, 0x74, 0x03, 0xca, 0xee, 0xcb, 0xb7, 0x32, 0x3f, 0x24, + 0x88, 0x96, 0x25, 0x6d, 0x42, 0x45, 0xbf, 0xd2, 0x40, 0x6f, 0xb4, 0x53, 0xa9, 0xb4, 0x79, 0x86, + 0x44, 0x8b, 0xe9, 0xf5, 0x59, 0x5b, 0x57, 0x5b, 0xea, 0xa0, 0x34, 0x65, 0xb8, 0x74, 0x3e, 0x65, + 0xaa, 0x6f, 0x97, 0x29, 0x53, 0xcd, 0xa0, 0x14, 0xf9, 0xa5, 0xc6, 0xeb, 0x86, 0x0d, 0x03, 0x72, + 0x00, 0x29, 0x9b, 0x92, 0x7b, 0x7d, 0x5a, 0xdc, 0x29, 0x68, 0x71, 0x35, 0xd3, 0x58, 0x96, 0x5e, + 0x6d, 0x5e, 0x43, 0x66, 0xf5, 0xae, 0xc2, 0xff, 0xfb, 0x69, 0x51, 0x76, 0x63, 0xc0, 0x0c, 0x6c, + 0xcc, 0xe0, 0x41, 0x32, 0xc8, 0x7d, 0xe1, 0xb0, 0x5a, 0x43, 0xe2, 0x55, 0x52, 0x63, 0x8d, 0x9c, + 0x7c, 0x38, 0x31, 0x1d, 0x6c, 0xd4, 0x83, 0xa6, 0xde, 0xa0, 0xa4, 0x14, 0x2c, 0xc8, 0x07, 0x6d, + 0x27, 0x7d, 0x88, 0xae, 0xa5, 0x6c, 0xbd, 0x38, 0x70, 0x21, 0x29, 0xfd, 0xb5, 0xcc, 0x61, 0x0f, + 0x13, 0xe2, 0xae, 0xa7, 0xef, 0xa2, 0x33, 0xc3, 0x01, 0xd4, 0xe9, 0x53, 0x4f, 0x26, 0xfd, 0x9a, + 0x4c, 0xfa, 0x4b, 0xa3, 0x49, 0xff, 0x00, 0x7c, 0xec, 0x1e, 0xed, 0x80, 0x6b, 0xcf, 0xc7, 0xa9, + 0xc6, 0xef, 0x53, 0x4f, 0xdf, 0x43, 0x6f, 0xe0, 0x36, 0x25, 0xdd, 0x3e, 0x03, 0x27, 0x0c, 0x22, + 0x26, 0xce, 0x14, 0x15, 0xe0, 0xb8, 0x22, 0x72, 0x36, 0x95, 0xdc, 0x0b, 0x22, 0x26, 0x6c, 0xb8, + 0x81, 0xce, 0x66, 0x90, 0x1d, 0x06, 0x91, 0x47, 0x0e, 0xe5, 0x6b, 0xbb, 0xa8, 0xee, 0xfd, 0x90, + 0x93, 0x45, 0xef, 0x96, 0x4f, 0xaa, 0xcc, 0x53, 0x95, 0x77, 0x4e, 0xfa, 0x54, 0xe5, 0xa9, 0xca, + 0xa3, 0x4f, 0xa7, 0xb8, 0x47, 0x45, 0xda, 0x7d, 0x49, 0x1e, 0xbd, 0x85, 0xf4, 0x08, 0x0e, 0x9d, + 0x82, 0xbb, 0xc4, 0xd3, 0xb5, 0x18, 0xc1, 0xe1, 0xa3, 0xac, 0xc7, 0x1e, 0x0a, 0xe6, 0x82, 0xd7, + 0x6a, 0x93, 0x7b, 0x2d, 0x39, 0xd1, 0xce, 0x3a, 0xae, 0x89, 0xce, 0x15, 0x4e, 0x94, 0xd6, 0x9e, + 0xe1, 0xd6, 0xd6, 0xb3, 0xfc, 0x93, 0x18, 0xbc, 0x60, 0x3b, 0x69, 0xf0, 0x02, 0x55, 0x19, 0xfc, + 0x37, 0x1a, 0x37, 0xb8, 0x0d, 0x21, 0x19, 0x7c, 0x49, 0x06, 0x1f, 0x0f, 0xbf, 0x80, 0x44, 0xc2, + 0x2f, 0x50, 0x53, 0xf8, 0x9b, 0xff, 0xd3, 0xd1, 0xf4, 0x1e, 0xf5, 0xf5, 0x9f, 0x69, 0x68, 0x21, + 0xff, 0x6d, 0xe3, 0x5a, 0xd9, 0x9b, 0x50, 0xfc, 0x8c, 0x60, 0xdc, 0x9e, 0x84, 0x4b, 0x19, 0x6b, + 0xe3, 0xe3, 0xbf, 0xfe, 0xeb, 0x17, 0x53, 0xd7, 0x4c, 0xb3, 0x51, 0xf2, 0x25, 0x49, 0x76, 0x10, + 0xae, 0xbc, 0xff, 0x23, 0x0d, 0xcd, 0x0e, 0x3b, 0xc1, 0xab, 0x15, 0xf7, 0x28, 0x0e, 0x63, 0xfd, + 0x38, 0x0e, 0x85, 0xe2, 0x26, 0x47, 0xb1, 0x6a, 0xae, 0x94, 0xa1, 0x48, 0xba, 0x2b, 0x87, 0x11, + 0x07, 0x58, 0x47, 0xff, 0xa9, 0x86, 0xe6, 0x73, 0x1f, 0x08, 0xd6, 0x2a, 0xee, 0xc8, 0x32, 0x19, + 0xb7, 0x26, 0x60, 0x52, 0x58, 0xde, 0xe4, 0x58, 0xd6, 0xcc, 0xd5, 0x32, 0x2c, 0xb1, 0x90, 0x70, + 0xf8, 0x90, 0xc4, 0xd1, 0xe4, 0x3e, 0x0c, 0x54, 0xa1, 0xc9, 0x32, 0x55, 0xa2, 0x29, 0x1d, 0xc2, + 0xc7, 0xa2, 0x91, 0x8e, 0xc9, 0xa0, 0xc9, 0x0d, 0xeb, 0x55, 0x68, 0xb2, 0x4c, 0x95, 0x68, 0x4a, + 0x47, 0xd1, 0xb1, 0x68, 0x3c, 0x21, 0xe1, 0xb8, 0xfc, 0xf2, 0x24, 0x7c, 0xf3, 0x23, 0x6b, 0x55, + 0xf8, 0xe6, 0xb8, 0x2a, 0xc3, 0xb7, 0x7c, 0x18, 0x1c, 0x1b, 0xbe, 0x87, 0x52, 0x44, 0x22, 0xfa, + 0xad, 0x86, 0xce, 0x66, 0xbb, 0x39, 0x81, 0xea, 0xcd, 0xb1, 0xe9, 0x92, 0xed, 0xfb, 0x8c, 0xe6, + 0xc4, 0xac, 0x0a, 0xdf, 0x1d, 0x8e, 0x6f, 0xc3, 0x5c, 0x1f, 0x93, 0x5e, 0x7d, 0x21, 0x28, 0x51, + 0xfe, 0x4e, 0x43, 0x7a, 0xc9, 0x6c, 0x5b, 0x05, 0x73, 0x94, 0xb5, 0x12, 0xe6, 0x98, 0x59, 0x6f, + 0x2c, 0x4c, 0x88, 0xdd, 0xcd, 0x3b, 0x8e, 0x27, 0x05, 0x25, 0xcc, 0xcf, 0x34, 0x54, 0xaf, 0xfc, + 0xa0, 0xdc, 0xa8, 0x4c, 0xfc, 0x72, 0x01, 0xe3, 0x9d, 0x57, 0x14, 0x50, 0xc0, 0xbf, 0xca, 0x81, + 0x5b, 0xe6, 0xed, 0xf2, 0xc2, 0xc1, 0x9c, 0x6c, 0xc7, 0x9f, 0x56, 0x70, 0xfd, 0x57, 0x1a, 0x5a, + 0x2c, 0x0e, 0xb6, 0x37, 0xaa, 0xb2, 0x32, 0xcf, 0x67, 0x58, 0x93, 0xf1, 0x29, 0x84, 0x16, 0x47, + 0xb8, 0x6e, 0xde, 0x28, 0x4d, 0x60, 0x2e, 0xe4, 0x64, 0x2b, 0xdc, 0x9f, 0x35, 0x64, 0x8c, 0x19, + 0x6b, 0xab, 0x9c, 0x5b, 0x2d, 0x62, 0xbc, 0xfb, 0xca, 0x22, 0x0a, 0xfc, 0xbb, 0x1c, 0xfc, 0x5d, + 0xb3, 0x59, 0x6a, 0x5e, 0x2e, 0xef, 0xb4, 0xb1, 0xe7, 0xa8, 0x41, 0xd9, 0x81, 0x14, 0xe8, 0xf7, + 0xd1, 0x7c, 0x6e, 0x30, 0xaa, 0x2a, 0x46, 0x59, 0xa6, 0xca, 0x62, 0x54, 0x36, 0xb3, 0xe8, 0x9f, + 0x68, 0xc8, 0x18, 0x33, 0xb0, 0x54, 0x59, 0xaa, 0x5a, 0xa4, 0xd2, 0x52, 0xc7, 0xcf, 0x1d, 0xfa, + 0x4f, 0x34, 0x74, 0xa1, 0x6a, 0xe8, 0xb0, 0x2a, 0x9f, 0x9f, 0x52, 0x7e, 0xe3, 0xed, 0x57, 0xe3, + 0x57, 0x18, 0x02, 0xb4, 0x58, 0x9c, 0x1b, 0x2a, 0xa3, 0x3a, 0xcf, 0x57, 0x1d, 0xd5, 0xe5, 0x4d, + 0x6d, 0x72, 0x55, 0xb1, 0xa1, 0xbd, 0x31, 0xd6, 0x77, 0xc7, 0x5f, 0x55, 0xd1, 0xce, 0x25, 0x57, + 0x15, 0x5b, 0xb9, 0x1b, 0x95, 0x06, 0xca, 0xf1, 0x19, 0xd6, 0x64, 0x7c, 0xe9, 0x55, 0xc6, 0xcc, + 0x47, 0x2f, 0x9f, 0x6c, 0x68, 0x2d, 0xf8, 0xfc, 0xf9, 0xb2, 0xf6, 0xf4, 0xf9, 0xb2, 0xf6, 0xcf, + 0xe7, 0xcb, 0xda, 0xcf, 0x5f, 0x2c, 0x9f, 0x78, 0xfa, 0x62, 0xf9, 0xc4, 0xdf, 0x5e, 0x2c, 0x9f, + 0xf8, 0xde, 0x77, 0xfc, 0x80, 0x75, 0xfa, 0x6d, 0xcb, 0x25, 0x61, 0x63, 0x37, 0x3d, 0xfa, 0x01, + 0x6e, 0xd3, 0x61, 0x7e, 0xbc, 0xe5, 0x92, 0x18, 0xb2, 0xcb, 0x0e, 0x0e, 0xa2, 0x46, 0x48, 0xbc, + 0x7e, 0x17, 0xa8, 0x4c, 0x1e, 0xfe, 0x2f, 0xbe, 0xf6, 0x49, 0xfe, 0x21, 0xea, 0xee, 0xff, 0x03, + 0x00, 0x00, 0xff, 0xff, 0xad, 0x9f, 0x5c, 0x78, 0xee, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1753,6 +2108,14 @@ type MsgClient interface { // RevokeEthereumBlacklist removes Ethereum addresses from the peggy // blacklist. RevokeEthereumBlacklist(ctx context.Context, in *MsgRevokeEthereumBlacklist, opts ...grpc.CallOption) (*MsgRevokeEthereumBlacklistResponse, error) + // CreateRateLimit imposes a (notional) limit on withdrawals for a particular + // Peggy asset + CreateRateLimit(ctx context.Context, in *MsgCreateRateLimit, opts ...grpc.CallOption) (*MsgCreateRateLimitResponse, error) + // UpdateRateLimit updates the rate limit's metadata for a particular Peggy + // asset + UpdateRateLimit(ctx context.Context, in *MsgUpdateRateLimit, opts ...grpc.CallOption) (*MsgUpdateRateLimitResponse, error) + // RemoveRateLimit lifts the rate limit for a particular Peggy asset + RemoveRateLimit(ctx context.Context, in *MsgRemoveRateLimit, opts ...grpc.CallOption) (*MsgRemoveRateLimitResponse, error) } type msgClient struct { @@ -1889,6 +2252,33 @@ func (c *msgClient) RevokeEthereumBlacklist(ctx context.Context, in *MsgRevokeEt return out, nil } +func (c *msgClient) CreateRateLimit(ctx context.Context, in *MsgCreateRateLimit, opts ...grpc.CallOption) (*MsgCreateRateLimitResponse, error) { + out := new(MsgCreateRateLimitResponse) + err := c.cc.Invoke(ctx, "/injective.peggy.v1.Msg/CreateRateLimit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateRateLimit(ctx context.Context, in *MsgUpdateRateLimit, opts ...grpc.CallOption) (*MsgUpdateRateLimitResponse, error) { + out := new(MsgUpdateRateLimitResponse) + err := c.cc.Invoke(ctx, "/injective.peggy.v1.Msg/UpdateRateLimit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) RemoveRateLimit(ctx context.Context, in *MsgRemoveRateLimit, opts ...grpc.CallOption) (*MsgRemoveRateLimitResponse, error) { + out := new(MsgRemoveRateLimitResponse) + err := c.cc.Invoke(ctx, "/injective.peggy.v1.Msg/RemoveRateLimit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { ValsetConfirm(context.Context, *MsgValsetConfirm) (*MsgValsetConfirmResponse, error) @@ -1908,6 +2298,14 @@ type MsgServer interface { // RevokeEthereumBlacklist removes Ethereum addresses from the peggy // blacklist. RevokeEthereumBlacklist(context.Context, *MsgRevokeEthereumBlacklist) (*MsgRevokeEthereumBlacklistResponse, error) + // CreateRateLimit imposes a (notional) limit on withdrawals for a particular + // Peggy asset + CreateRateLimit(context.Context, *MsgCreateRateLimit) (*MsgCreateRateLimitResponse, error) + // UpdateRateLimit updates the rate limit's metadata for a particular Peggy + // asset + UpdateRateLimit(context.Context, *MsgUpdateRateLimit) (*MsgUpdateRateLimitResponse, error) + // RemoveRateLimit lifts the rate limit for a particular Peggy asset + RemoveRateLimit(context.Context, *MsgRemoveRateLimit) (*MsgRemoveRateLimitResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -1956,6 +2354,15 @@ func (*UnimplementedMsgServer) BlacklistEthereumAddresses(ctx context.Context, r func (*UnimplementedMsgServer) RevokeEthereumBlacklist(ctx context.Context, req *MsgRevokeEthereumBlacklist) (*MsgRevokeEthereumBlacklistResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RevokeEthereumBlacklist not implemented") } +func (*UnimplementedMsgServer) CreateRateLimit(ctx context.Context, req *MsgCreateRateLimit) (*MsgCreateRateLimitResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRateLimit not implemented") +} +func (*UnimplementedMsgServer) UpdateRateLimit(ctx context.Context, req *MsgUpdateRateLimit) (*MsgUpdateRateLimitResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRateLimit not implemented") +} +func (*UnimplementedMsgServer) RemoveRateLimit(ctx context.Context, req *MsgRemoveRateLimit) (*MsgRemoveRateLimitResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveRateLimit not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -2213,6 +2620,60 @@ func _Msg_RevokeEthereumBlacklist_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Msg_CreateRateLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreateRateLimit) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreateRateLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.peggy.v1.Msg/CreateRateLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreateRateLimit(ctx, req.(*MsgCreateRateLimit)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateRateLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateRateLimit) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateRateLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.peggy.v1.Msg/UpdateRateLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateRateLimit(ctx, req.(*MsgUpdateRateLimit)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_RemoveRateLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRemoveRateLimit) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RemoveRateLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.peggy.v1.Msg/RemoveRateLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RemoveRateLimit(ctx, req.(*MsgRemoveRateLimit)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.peggy.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -2273,6 +2734,18 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "RevokeEthereumBlacklist", Handler: _Msg_RevokeEthereumBlacklist_Handler, }, + { + MethodName: "CreateRateLimit", + Handler: _Msg_CreateRateLimit_Handler, + }, + { + MethodName: "UpdateRateLimit", + Handler: _Msg_UpdateRateLimit_Handler, + }, + { + MethodName: "RemoveRateLimit", + Handler: _Msg_RemoveRateLimit_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/peggy/v1/msgs.proto", @@ -3324,15 +3797,254 @@ func (m *MsgRevokeEthereumBlacklistResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } -func encodeVarintMsgs(dAtA []byte, offset int, v uint64) int { - offset -= sovMsgs(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) +func (m *MsgCreateRateLimit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateRateLimit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateRateLimit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RateLimitWindow != 0 { + i = encodeVarintMsgs(dAtA, i, uint64(m.RateLimitWindow)) + i-- + dAtA[i] = 0x38 + } + { + size := m.AbsoluteMintLimit.Size() + i -= size + if _, err := m.AbsoluteMintLimit.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintMsgs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size := m.RateLimitUsd.Size() + i -= size + if _, err := m.RateLimitUsd.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintMsgs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if len(m.TokenPriceId) > 0 { + i -= len(m.TokenPriceId) + copy(dAtA[i:], m.TokenPriceId) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.TokenPriceId))) + i-- + dAtA[i] = 0x22 + } + if m.TokenDecimals != 0 { + i = encodeVarintMsgs(dAtA, i, uint64(m.TokenDecimals)) + i-- + dAtA[i] = 0x18 + } + if len(m.TokenAddress) > 0 { + i -= len(m.TokenAddress) + copy(dAtA[i:], m.TokenAddress) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.TokenAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgCreateRateLimitResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateRateLimitResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateRateLimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgUpdateRateLimit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateRateLimit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateRateLimit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewRateLimitWindow != 0 { + i = encodeVarintMsgs(dAtA, i, uint64(m.NewRateLimitWindow)) + i-- + dAtA[i] = 0x28 + } + { + size := m.NewRateLimitUsd.Size() + i -= size + if _, err := m.NewRateLimitUsd.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintMsgs(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if len(m.NewTokenPriceId) > 0 { + i -= len(m.NewTokenPriceId) + copy(dAtA[i:], m.NewTokenPriceId) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.NewTokenPriceId))) + i-- + dAtA[i] = 0x1a + } + if len(m.TokenAddress) > 0 { + i -= len(m.TokenAddress) + copy(dAtA[i:], m.TokenAddress) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.TokenAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateRateLimitResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateRateLimitResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateRateLimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgRemoveRateLimit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRemoveRateLimit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRemoveRateLimit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TokenAddress) > 0 { + i -= len(m.TokenAddress) + copy(dAtA[i:], m.TokenAddress) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.TokenAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgRemoveRateLimitResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRemoveRateLimitResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRemoveRateLimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func encodeVarintMsgs(dAtA []byte, offset int, v uint64) int { + offset -= sovMsgs(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) return base } func (m *MsgSetOrchestratorAddresses) Size() (n int) { @@ -3797,41 +4509,142 @@ func (m *MsgRevokeEthereumBlacklistResponse) Size() (n int) { return n } -func sovMsgs(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *MsgCreateRateLimit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = len(m.TokenAddress) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + if m.TokenDecimals != 0 { + n += 1 + sovMsgs(uint64(m.TokenDecimals)) + } + l = len(m.TokenPriceId) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = m.RateLimitUsd.Size() + n += 1 + l + sovMsgs(uint64(l)) + l = m.AbsoluteMintLimit.Size() + n += 1 + l + sovMsgs(uint64(l)) + if m.RateLimitWindow != 0 { + n += 1 + sovMsgs(uint64(m.RateLimitWindow)) + } + return n } -func sozMsgs(x uint64) (n int) { - return sovMsgs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *MsgCreateRateLimitResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n } -func (m *MsgSetOrchestratorAddresses) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMsgs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgSetOrchestratorAddresses: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetOrchestratorAddresses: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + +func (m *MsgUpdateRateLimit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = len(m.TokenAddress) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = len(m.NewTokenPriceId) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = m.NewRateLimitUsd.Size() + n += 1 + l + sovMsgs(uint64(l)) + if m.NewRateLimitWindow != 0 { + n += 1 + sovMsgs(uint64(m.NewRateLimitWindow)) + } + return n +} + +func (m *MsgUpdateRateLimitResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgRemoveRateLimit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + l = len(m.TokenAddress) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + return n +} + +func (m *MsgRemoveRateLimitResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func sovMsgs(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozMsgs(x uint64) (n int) { + return sovMsgs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *MsgSetOrchestratorAddresses) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgSetOrchestratorAddresses: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetOrchestratorAddresses: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) @@ -5973,9 +6786,791 @@ func (m *MsgSubmitBadSignatureEvidence) Unmarshal(dAtA []byte) error { } m.Signature = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgSubmitBadSignatureEvidenceResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgSubmitBadSignatureEvidenceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSubmitBadSignatureEvidenceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgValsetUpdatedClaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgValsetUpdatedClaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EventNonce", wireType) + } + m.EventNonce = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.EventNonce |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ValsetNonce", wireType) + } + m.ValsetNonce = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ValsetNonce |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + } + m.BlockHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Members = append(m.Members, &BridgeValidator{}) + if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RewardAmount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RewardAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RewardToken", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RewardToken = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Orchestrator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Orchestrator = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgValsetUpdatedClaimResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgValsetUpdatedClaimResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgValsetUpdatedClaimResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBlacklistEthereumAddressesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6003,7 +7598,7 @@ func (m *MsgSubmitBadSignatureEvidence) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -6026,7 +7621,7 @@ func (m *MsgSubmitBadSignatureEvidence) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSubmitBadSignatureEvidenceResponse) Unmarshal(dAtA []byte) error { +func (m *MsgRevokeEthereumBlacklistResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6049,10 +7644,10 @@ func (m *MsgSubmitBadSignatureEvidenceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSubmitBadSignatureEvidenceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSubmitBadSignatureEvidenceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -6076,7 +7671,7 @@ func (m *MsgSubmitBadSignatureEvidenceResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { +func (m *MsgCreateRateLimit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6099,17 +7694,17 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgValsetUpdatedClaim: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateRateLimit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgValsetUpdatedClaim: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateRateLimit: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field EventNonce", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) } - m.EventNonce = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6119,16 +7714,29 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.EventNonce |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ValsetNonce", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenAddress", wireType) } - m.ValsetNonce = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6138,16 +7746,29 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ValsetNonce |= uint64(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlockHeight", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TokenDecimals", wireType) } - m.BlockHeight = 0 + m.TokenDecimals = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6157,16 +7778,16 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.BlockHeight |= uint64(b&0x7F) << shift + m.TokenDecimals |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TokenPriceId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6176,29 +7797,27 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthMsgs } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthMsgs } if postIndex > l { return io.ErrUnexpectedEOF } - m.Members = append(m.Members, &BridgeValidator{}) - if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.TokenPriceId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RewardAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RateLimitUsd", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6226,13 +7845,13 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.RewardAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.RateLimitUsd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RewardToken", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AbsoluteMintLimit", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6260,13 +7879,15 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.RewardToken = string(dAtA[iNdEx:postIndex]) + if err := m.AbsoluteMintLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Orchestrator", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RateLimitWindow", wireType) } - var stringLen uint64 + m.RateLimitWindow = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6276,24 +7897,11 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.RateLimitWindow |= uint64(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthMsgs - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthMsgs - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Orchestrator = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipMsgs(dAtA[iNdEx:]) @@ -6315,7 +7923,7 @@ func (m *MsgValsetUpdatedClaim) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgValsetUpdatedClaimResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCreateRateLimitResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6338,10 +7946,10 @@ func (m *MsgValsetUpdatedClaimResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgValsetUpdatedClaimResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateRateLimitResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgValsetUpdatedClaimResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateRateLimitResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -6365,7 +7973,7 @@ func (m *MsgValsetUpdatedClaimResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateRateLimit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6388,10 +7996,10 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateParams: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateRateLimit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateRateLimit: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -6428,9 +8036,9 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TokenAddress", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowMsgs @@ -6440,128 +8048,27 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthMsgs } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthMsgs } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.TokenAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipMsgs(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthMsgs - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMsgs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateParamsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipMsgs(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthMsgs - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowMsgs - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewTokenPriceId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6589,11 +8096,11 @@ func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Signer = string(dAtA[iNdEx:postIndex]) + m.NewTokenPriceId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewRateLimitUsd", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6621,8 +8128,29 @@ func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) + if err := m.NewRateLimitUsd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NewRateLimitWindow", wireType) + } + m.NewRateLimitWindow = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NewRateLimitWindow |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipMsgs(dAtA[iNdEx:]) @@ -6644,7 +8172,7 @@ func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBlacklistEthereumAddressesResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateRateLimitResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6667,10 +8195,10 @@ func (m *MsgBlacklistEthereumAddressesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateRateLimitResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateRateLimitResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -6694,7 +8222,7 @@ func (m *MsgBlacklistEthereumAddressesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { +func (m *MsgRemoveRateLimit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6717,15 +8245,15 @@ func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: wiretype end group for non-group") + return fmt.Errorf("proto: MsgRemoveRateLimit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgRemoveRateLimit: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6753,11 +8281,11 @@ func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Signer = string(dAtA[iNdEx:postIndex]) + m.Authority = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TokenAddress", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6785,7 +8313,7 @@ func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) + m.TokenAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -6808,7 +8336,7 @@ func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRevokeEthereumBlacklistResponse) Unmarshal(dAtA []byte) error { +func (m *MsgRemoveRateLimitResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -6831,10 +8359,10 @@ func (m *MsgRevokeEthereumBlacklistResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgRemoveRateLimitResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgRemoveRateLimitResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/chain/peggy/types/rate_limit.pb.go b/chain/peggy/types/rate_limit.pb.go new file mode 100644 index 00000000..d1d88626 --- /dev/null +++ b/chain/peggy/types/rate_limit.pb.go @@ -0,0 +1,867 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/peggy/v1/rate_limit.proto + +package types + +import ( + cosmossdk_io_math "cosmossdk.io/math" + fmt "fmt" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type RateLimit struct { + // address of the ERC20 token + TokenAddress string `protobuf:"bytes,1,opt,name=token_address,json=tokenAddress,proto3" json:"token_address,omitempty"` + // decimals of the ERC20 token + TokenDecimals uint32 `protobuf:"varint,2,opt,name=token_decimals,json=tokenDecimals,proto3" json:"token_decimals,omitempty"` + // a Pyth-specific ID used to obtain USD price of the ERC20 token + TokenPriceId string `protobuf:"bytes,3,opt,name=token_price_id,json=tokenPriceId,proto3" json:"token_price_id,omitempty"` + // length of the sliding window in which inbound (outbound) traffic is + // measured + RateLimitWindow uint64 `protobuf:"varint,4,opt,name=rate_limit_window,json=rateLimitWindow,proto3" json:"rate_limit_window,omitempty"` + // the notional USD limit imposed on all outgoing traffic (per token) + RateLimitUsd cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=rate_limit_usd,json=rateLimitUsd,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"rate_limit_usd"` + // the absolute amount of tokens that can be minted on Injective + AbsoluteMintLimit cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=absolute_mint_limit,json=absoluteMintLimit,proto3,customtype=cosmossdk.io/math.Int" json:"absolute_mint_limit"` + // transfers that occurred within the sliding window + Transfers []*BridgeTransfer `protobuf:"bytes,7,rep,name=transfers,proto3" json:"transfers,omitempty"` +} + +func (m *RateLimit) Reset() { *m = RateLimit{} } +func (m *RateLimit) String() string { return proto.CompactTextString(m) } +func (*RateLimit) ProtoMessage() {} +func (*RateLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_f5e4b49160131e74, []int{0} +} +func (m *RateLimit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RateLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RateLimit.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RateLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_RateLimit.Merge(m, src) +} +func (m *RateLimit) XXX_Size() int { + return m.Size() +} +func (m *RateLimit) XXX_DiscardUnknown() { + xxx_messageInfo_RateLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_RateLimit proto.InternalMessageInfo + +func (m *RateLimit) GetTokenAddress() string { + if m != nil { + return m.TokenAddress + } + return "" +} + +func (m *RateLimit) GetTokenDecimals() uint32 { + if m != nil { + return m.TokenDecimals + } + return 0 +} + +func (m *RateLimit) GetTokenPriceId() string { + if m != nil { + return m.TokenPriceId + } + return "" +} + +func (m *RateLimit) GetRateLimitWindow() uint64 { + if m != nil { + return m.RateLimitWindow + } + return 0 +} + +func (m *RateLimit) GetTransfers() []*BridgeTransfer { + if m != nil { + return m.Transfers + } + return nil +} + +type BridgeTransfer struct { + // quantity that was bridged (chain format) + Amount cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` + // the Injective block at which this amount was bridged + BlockNumber uint64 `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + // type of transfer (withdrawal/deposit) + IsDeposit bool `protobuf:"varint,3,opt,name=is_deposit,json=isDeposit,proto3" json:"is_deposit,omitempty"` +} + +func (m *BridgeTransfer) Reset() { *m = BridgeTransfer{} } +func (m *BridgeTransfer) String() string { return proto.CompactTextString(m) } +func (*BridgeTransfer) ProtoMessage() {} +func (*BridgeTransfer) Descriptor() ([]byte, []int) { + return fileDescriptor_f5e4b49160131e74, []int{1} +} +func (m *BridgeTransfer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BridgeTransfer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_BridgeTransfer.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *BridgeTransfer) XXX_Merge(src proto.Message) { + xxx_messageInfo_BridgeTransfer.Merge(m, src) +} +func (m *BridgeTransfer) XXX_Size() int { + return m.Size() +} +func (m *BridgeTransfer) XXX_DiscardUnknown() { + xxx_messageInfo_BridgeTransfer.DiscardUnknown(m) +} + +var xxx_messageInfo_BridgeTransfer proto.InternalMessageInfo + +func (m *BridgeTransfer) GetBlockNumber() uint64 { + if m != nil { + return m.BlockNumber + } + return 0 +} + +func (m *BridgeTransfer) GetIsDeposit() bool { + if m != nil { + return m.IsDeposit + } + return false +} + +func init() { + proto.RegisterType((*RateLimit)(nil), "injective.peggy.v1.RateLimit") + proto.RegisterType((*BridgeTransfer)(nil), "injective.peggy.v1.BridgeTransfer") +} + +func init() { + proto.RegisterFile("injective/peggy/v1/rate_limit.proto", fileDescriptor_f5e4b49160131e74) +} + +var fileDescriptor_f5e4b49160131e74 = []byte{ + // 463 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x8b, 0x13, 0x31, + 0x14, 0xc7, 0x3b, 0xb6, 0x56, 0x9b, 0xed, 0x56, 0x36, 0x2a, 0x0c, 0xca, 0xce, 0xd6, 0x56, 0xa1, + 0x08, 0xce, 0xb0, 0x8a, 0x77, 0x2d, 0xbd, 0x14, 0xbb, 0x22, 0x83, 0x22, 0x78, 0x19, 0x32, 0xc9, + 0x73, 0x1a, 0xdb, 0x24, 0x43, 0x92, 0xe9, 0xd2, 0x0f, 0xe0, 0xc1, 0x9b, 0x1f, 0x6b, 0x8f, 0x7b, + 0x14, 0x0f, 0x8b, 0xb4, 0x5f, 0x44, 0x9a, 0x99, 0x76, 0x2b, 0x7b, 0xf0, 0x36, 0xf3, 0xcb, 0xef, + 0xfd, 0x79, 0xc9, 0x7b, 0xa8, 0xcf, 0xe5, 0x37, 0xa0, 0x96, 0x2f, 0x20, 0xca, 0x21, 0xcb, 0x96, + 0xd1, 0xe2, 0x34, 0xd2, 0xc4, 0x42, 0x32, 0xe7, 0x82, 0xdb, 0x30, 0xd7, 0xca, 0x2a, 0x8c, 0x77, + 0x52, 0xe8, 0xa4, 0x70, 0x71, 0xfa, 0xe8, 0x41, 0xa6, 0x32, 0xe5, 0x8e, 0xa3, 0xcd, 0x57, 0x69, + 0xf6, 0xbe, 0xd7, 0x51, 0x2b, 0x26, 0x16, 0x26, 0x9b, 0x6a, 0xdc, 0x47, 0x87, 0x56, 0xcd, 0x40, + 0x26, 0x84, 0x31, 0x0d, 0xc6, 0xf8, 0x5e, 0xd7, 0x1b, 0xb4, 0xe2, 0xb6, 0x83, 0x6f, 0x4b, 0x86, + 0x9f, 0xa1, 0x4e, 0x29, 0x31, 0xa0, 0x5c, 0x90, 0xb9, 0xf1, 0x6f, 0x75, 0xbd, 0xc1, 0x61, 0x5c, + 0x96, 0x8e, 0x2a, 0x88, 0x9f, 0x6e, 0xb5, 0x5c, 0x73, 0x0a, 0x09, 0x67, 0x7e, 0x7d, 0x2f, 0xec, + 0xc3, 0x06, 0x8e, 0x19, 0x7e, 0x8e, 0x8e, 0xae, 0xbb, 0x4f, 0xce, 0xb9, 0x64, 0xea, 0xdc, 0x6f, + 0x74, 0xbd, 0x41, 0x23, 0xbe, 0xa7, 0xb7, 0x7d, 0x7d, 0x76, 0x18, 0x8f, 0x51, 0x67, 0xcf, 0x2d, + 0x0c, 0xf3, 0x6f, 0x6f, 0x12, 0x87, 0xfd, 0x8b, 0xab, 0x93, 0xda, 0xef, 0xab, 0x93, 0xc7, 0x54, + 0x19, 0xa1, 0x8c, 0x61, 0xb3, 0x90, 0xab, 0x48, 0x10, 0x3b, 0x0d, 0x27, 0x90, 0x11, 0xba, 0x1c, + 0x01, 0x8d, 0xdb, 0xbb, 0xb4, 0x4f, 0x86, 0xe1, 0x33, 0x74, 0x9f, 0xa4, 0x46, 0xcd, 0x0b, 0x0b, + 0x89, 0xe0, 0xd2, 0x96, 0x99, 0x7e, 0xd3, 0xe5, 0x1d, 0x57, 0x79, 0x0f, 0x6f, 0xe6, 0x8d, 0xa5, + 0x8d, 0x8f, 0xb6, 0x95, 0x67, 0x5c, 0xda, 0xf2, 0xdd, 0xde, 0xa0, 0x96, 0xd5, 0x44, 0x9a, 0xaf, + 0xa0, 0x8d, 0x7f, 0xa7, 0x5b, 0x1f, 0x1c, 0xbc, 0xec, 0x85, 0x37, 0x67, 0x10, 0x0e, 0x35, 0x67, + 0x19, 0x7c, 0xac, 0xd4, 0xf8, 0xba, 0xa8, 0xf7, 0xc3, 0x43, 0x9d, 0x7f, 0x4f, 0xf1, 0x6b, 0xd4, + 0x24, 0x42, 0x15, 0xd2, 0x96, 0x53, 0xf8, 0x5f, 0x5b, 0x95, 0x8c, 0x9f, 0xa0, 0x76, 0x3a, 0x57, + 0x74, 0x96, 0xc8, 0x42, 0xa4, 0xa0, 0xdd, 0x70, 0x1a, 0xf1, 0x81, 0x63, 0xef, 0x1d, 0xc2, 0xc7, + 0x08, 0x71, 0x93, 0x30, 0xc8, 0x95, 0xe1, 0xd6, 0x8d, 0xe5, 0x6e, 0xdc, 0xe2, 0x66, 0x54, 0x82, + 0x21, 0x5c, 0xac, 0x02, 0xef, 0x72, 0x15, 0x78, 0x7f, 0x56, 0x81, 0xf7, 0x73, 0x1d, 0xd4, 0x2e, + 0xd7, 0x41, 0xed, 0xd7, 0x3a, 0xa8, 0x7d, 0x79, 0x97, 0x71, 0x3b, 0x2d, 0xd2, 0x90, 0x2a, 0x11, + 0x8d, 0xb7, 0xd7, 0x9b, 0x90, 0xd4, 0x44, 0xbb, 0xcb, 0xbe, 0xa0, 0x4a, 0xc3, 0xfe, 0xef, 0x94, + 0x70, 0x19, 0x09, 0xc5, 0x8a, 0x39, 0x98, 0x6a, 0x65, 0xed, 0x32, 0x07, 0x93, 0x36, 0xdd, 0x06, + 0xbe, 0xfa, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x98, 0x80, 0xb9, 0xad, 0xd2, 0x02, 0x00, 0x00, +} + +func (m *RateLimit) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RateLimit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RateLimit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Transfers) > 0 { + for iNdEx := len(m.Transfers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Transfers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + { + size := m.AbsoluteMintLimit.Size() + i -= size + if _, err := m.AbsoluteMintLimit.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size := m.RateLimitUsd.Size() + i -= size + if _, err := m.RateLimitUsd.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.RateLimitWindow != 0 { + i = encodeVarintRateLimit(dAtA, i, uint64(m.RateLimitWindow)) + i-- + dAtA[i] = 0x20 + } + if len(m.TokenPriceId) > 0 { + i -= len(m.TokenPriceId) + copy(dAtA[i:], m.TokenPriceId) + i = encodeVarintRateLimit(dAtA, i, uint64(len(m.TokenPriceId))) + i-- + dAtA[i] = 0x1a + } + if m.TokenDecimals != 0 { + i = encodeVarintRateLimit(dAtA, i, uint64(m.TokenDecimals)) + i-- + dAtA[i] = 0x10 + } + if len(m.TokenAddress) > 0 { + i -= len(m.TokenAddress) + copy(dAtA[i:], m.TokenAddress) + i = encodeVarintRateLimit(dAtA, i, uint64(len(m.TokenAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BridgeTransfer) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BridgeTransfer) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BridgeTransfer) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsDeposit { + i-- + if m.IsDeposit { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.BlockNumber != 0 { + i = encodeVarintRateLimit(dAtA, i, uint64(m.BlockNumber)) + i-- + dAtA[i] = 0x10 + } + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRateLimit(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintRateLimit(dAtA []byte, offset int, v uint64) int { + offset -= sovRateLimit(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RateLimit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TokenAddress) + if l > 0 { + n += 1 + l + sovRateLimit(uint64(l)) + } + if m.TokenDecimals != 0 { + n += 1 + sovRateLimit(uint64(m.TokenDecimals)) + } + l = len(m.TokenPriceId) + if l > 0 { + n += 1 + l + sovRateLimit(uint64(l)) + } + if m.RateLimitWindow != 0 { + n += 1 + sovRateLimit(uint64(m.RateLimitWindow)) + } + l = m.RateLimitUsd.Size() + n += 1 + l + sovRateLimit(uint64(l)) + l = m.AbsoluteMintLimit.Size() + n += 1 + l + sovRateLimit(uint64(l)) + if len(m.Transfers) > 0 { + for _, e := range m.Transfers { + l = e.Size() + n += 1 + l + sovRateLimit(uint64(l)) + } + } + return n +} + +func (m *BridgeTransfer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Amount.Size() + n += 1 + l + sovRateLimit(uint64(l)) + if m.BlockNumber != 0 { + n += 1 + sovRateLimit(uint64(m.BlockNumber)) + } + if m.IsDeposit { + n += 2 + } + return n +} + +func sovRateLimit(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozRateLimit(x uint64) (n int) { + return sovRateLimit(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RateLimit) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RateLimit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RateLimit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenDecimals", wireType) + } + m.TokenDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TokenDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TokenPriceId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TokenPriceId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RateLimitWindow", wireType) + } + m.RateLimitWindow = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RateLimitWindow |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RateLimitUsd", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RateLimitUsd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AbsoluteMintLimit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AbsoluteMintLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Transfers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Transfers = append(m.Transfers, &BridgeTransfer{}) + if err := m.Transfers[len(m.Transfers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRateLimit(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRateLimit + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BridgeTransfer) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BridgeTransfer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BridgeTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRateLimit + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRateLimit + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockNumber", wireType) + } + m.BlockNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BlockNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsDeposit", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRateLimit + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsDeposit = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipRateLimit(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRateLimit + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRateLimit(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRateLimit + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRateLimit + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRateLimit + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRateLimit + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupRateLimit + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthRateLimit + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthRateLimit = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRateLimit = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupRateLimit = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/genesis.pb.go b/chain/permissions/types/genesis.pb.go index 580fd4db..74034f9a 100644 --- a/chain/permissions/types/genesis.pb.go +++ b/chain/permissions/types/genesis.pb.go @@ -25,10 +25,12 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the permissions module's genesis state. type GenesisState struct { - // params defines the parameters of the module. - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` - Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` - Vouchers []*AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers,omitempty"` + // params defines the parameters of the module + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + // namespaces defines the namespaces of the module + Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` + // vouchers defines the vouchers of the module + Vouchers []*AddressVoucher `protobuf:"bytes,3,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } diff --git a/chain/permissions/types/params.pb.go b/chain/permissions/types/params.pb.go index 291c992a..977a105d 100644 --- a/chain/permissions/types/params.pb.go +++ b/chain/permissions/types/params.pb.go @@ -28,6 +28,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Params defines the parameters for the permissions module. type Params struct { + // Max amount of gas allowed for wasm hook queries WasmHookQueryMaxGas uint64 `protobuf:"varint,1,opt,name=wasm_hook_query_max_gas,json=wasmHookQueryMaxGas,proto3" json:"wasm_hook_query_max_gas,omitempty"` } diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go index 3d5576c4..147a0aee 100644 --- a/chain/permissions/types/permissions.pb.go +++ b/chain/permissions/types/permissions.pb.go @@ -87,12 +87,19 @@ func (Action) EnumDescriptor() ([]byte, []int) { // Namespace defines a permissions namespace type Namespace struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - ContractHook string `protobuf:"bytes,2,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` - RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - ActorRoles []*ActorRoles `protobuf:"bytes,4,rep,name=actor_roles,json=actorRoles,proto3" json:"actor_roles,omitempty"` - RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` - PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + // The tokenfactory denom to which this namespace applies to + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The address of smart contract to apply code-based restrictions + ContractHook string `protobuf:"bytes,2,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + // permissions for each role + RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + // roles for each actor + ActorRoles []*ActorRoles `protobuf:"bytes,4,rep,name=actor_roles,json=actorRoles,proto3" json:"actor_roles,omitempty"` + // managers for each role + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + // status for each policy + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + // capabilities for each manager for each policy PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } @@ -180,7 +187,9 @@ func (m *Namespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability { // AddressRoles defines roles for an actor type ActorRoles struct { - Actor string `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"` + // The actor name + Actor string `protobuf:"bytes,1,opt,name=actor,proto3" json:"actor,omitempty"` + // The roles for the actor Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } @@ -233,7 +242,9 @@ func (m *ActorRoles) GetRoles() []string { // RoleActors defines actors for a role type RoleActors struct { - Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + // The role name + Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + // List of actor names associated with the role Actors []string `protobuf:"bytes,2,rep,name=actors,proto3" json:"actors,omitempty"` } @@ -286,8 +297,10 @@ func (m *RoleActors) GetActors() []string { // RoleManager defines roles for a manager address type RoleManager struct { - Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` - Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` + // The manager name + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + // List of roles associated with the manager + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` } func (m *RoleManager) Reset() { *m = RoleManager{} } @@ -339,9 +352,12 @@ func (m *RoleManager) GetRoles() []string { // PolicyStatus defines the status of a policy type PolicyStatus struct { - Action Action `protobuf:"varint,1,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` - IsDisabled bool `protobuf:"varint,2,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"` - IsSealed bool `protobuf:"varint,3,opt,name=is_sealed,json=isSealed,proto3" json:"is_sealed,omitempty"` + // The action code number + Action Action `protobuf:"varint,1,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + // Whether the policy is disabled + IsDisabled bool `protobuf:"varint,2,opt,name=is_disabled,json=isDisabled,proto3" json:"is_disabled,omitempty"` + // Whether the policy is sealed + IsSealed bool `protobuf:"varint,3,opt,name=is_sealed,json=isSealed,proto3" json:"is_sealed,omitempty"` } func (m *PolicyStatus) Reset() { *m = PolicyStatus{} } @@ -400,8 +416,12 @@ func (m *PolicyStatus) GetIsSealed() bool { // Role is only used for storage type Role struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - RoleId uint32 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` + // The role name + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The role ID + RoleId uint32 `protobuf:"varint,2,opt,name=role_id,json=roleId,proto3" json:"role_id,omitempty"` + // Integer representing the bitwise combination of all actions assigned to the + // role Permissions uint32 `protobuf:"varint,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } @@ -461,10 +481,14 @@ func (m *Role) GetPermissions() uint32 { // PolicyManagerCapability defines the capabilities of a manager for a policy type PolicyManagerCapability struct { - Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` - Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` - CanDisable bool `protobuf:"varint,3,opt,name=can_disable,json=canDisable,proto3" json:"can_disable,omitempty"` - CanSeal bool `protobuf:"varint,4,opt,name=can_seal,json=canSeal,proto3" json:"can_seal,omitempty"` + // The manager name + Manager string `protobuf:"bytes,1,opt,name=manager,proto3" json:"manager,omitempty"` + // The action code number + Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=injective.permissions.v1beta1.Action" json:"action,omitempty"` + // Whether the manager can disable the policy + CanDisable bool `protobuf:"varint,3,opt,name=can_disable,json=canDisable,proto3" json:"can_disable,omitempty"` + // Whether the manager can seal the policy + CanSeal bool `protobuf:"varint,4,opt,name=can_seal,json=canSeal,proto3" json:"can_seal,omitempty"` } func (m *PolicyManagerCapability) Reset() { *m = PolicyManagerCapability{} } @@ -575,7 +599,9 @@ func (m *RoleIDs) GetRoleIds() []uint32 { // AddressVoucher is used to represent a voucher for a specific address type AddressVoucher struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The Injective address that the voucher is for + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The voucher amount Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } diff --git a/chain/permissions/types/query.pb.go b/chain/permissions/types/query.pb.go index 8ebd9770..636bb128 100644 --- a/chain/permissions/types/query.pb.go +++ b/chain/permissions/types/query.pb.go @@ -156,6 +156,7 @@ var xxx_messageInfo_QueryNamespaceDenomsRequest proto.InternalMessageInfo // QueryNamespaceDenomsResponse is the response type for the // Query/NamespaceDenoms RPC method. type QueryNamespaceDenomsResponse struct { + // List of denoms Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty"` } @@ -240,6 +241,7 @@ var xxx_messageInfo_QueryNamespacesRequest proto.InternalMessageInfo // QueryNamespacesResponse is the response type for the Query/Namespaces // RPC method. type QueryNamespacesResponse struct { + // List of namespaces Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` } @@ -286,6 +288,7 @@ func (m *QueryNamespacesResponse) GetNamespaces() []*Namespace { // QueryNamespaceRequest is the request type for the // Query/Namespace RPC method. type QueryNamespaceRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } @@ -332,6 +335,7 @@ func (m *QueryNamespaceRequest) GetDenom() string { // QueryNamespaceResponse is the response type for the // Query/NamespaceByDenom RPC method. type QueryNamespaceResponse struct { + // The namespace details Namespace *Namespace `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` } @@ -378,8 +382,10 @@ func (m *QueryNamespaceResponse) GetNamespace() *Namespace { // QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole // RPC method. type QueryActorsByRoleRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` + // The role to query actors for + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } func (m *QueryActorsByRoleRequest) Reset() { *m = QueryActorsByRoleRequest{} } @@ -432,6 +438,7 @@ func (m *QueryActorsByRoleRequest) GetRole() string { // QueryAddressesByRoleResponse is the response type for the // Query/AddressesByRole RPC method. type QueryActorsByRoleResponse struct { + // List of actors' Injective addresses Actors []string `protobuf:"bytes,1,rep,name=actors,proto3" json:"actors,omitempty"` } @@ -478,7 +485,9 @@ func (m *QueryActorsByRoleResponse) GetActors() []string { // QueryRolesByActorRequest is the request type for the // Query/RolesByActor RPC method. type QueryRolesByActorRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The actor's Injective address Actor string `protobuf:"bytes,2,opt,name=actor,proto3" json:"actor,omitempty"` } @@ -532,6 +541,7 @@ func (m *QueryRolesByActorRequest) GetActor() string { // QueryRolesByActorResponse is the response type for the // Query/RolesByActor RPC method. type QueryRolesByActorResponse struct { + // List of roles Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` } @@ -578,6 +588,7 @@ func (m *QueryRolesByActorResponse) GetRoles() []string { // QueryRoleManagersRequest is the request type for the Query/RoleManagers // RPC method. type QueryRoleManagersRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } @@ -624,6 +635,7 @@ func (m *QueryRoleManagersRequest) GetDenom() string { // QueryRoleManagersResponse is the response type for the // Query/RoleManagers RPC method. type QueryRoleManagersResponse struct { + // List of role managers RoleManagers []*RoleManager `protobuf:"bytes,1,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` } @@ -670,7 +682,9 @@ func (m *QueryRoleManagersResponse) GetRoleManagers() []*RoleManager { // QueryRoleManagerRequest is the request type for the Query/RoleManager // RPC method. type QueryRoleManagerRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The manager Injective address Manager string `protobuf:"bytes,2,opt,name=manager,proto3" json:"manager,omitempty"` } @@ -724,6 +738,7 @@ func (m *QueryRoleManagerRequest) GetManager() string { // QueryRoleManagerResponse is the response type for the // Query/RoleManager RPC method. type QueryRoleManagerResponse struct { + // The role manager details RoleManager *RoleManager `protobuf:"bytes,1,opt,name=role_manager,json=roleManager,proto3" json:"role_manager,omitempty"` } @@ -770,6 +785,7 @@ func (m *QueryRoleManagerResponse) GetRoleManager() *RoleManager { // QueryPolicyStatusesRequest is the request type for the Query/PolicyStatuses // RPC method. type QueryPolicyStatusesRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } @@ -816,6 +832,7 @@ func (m *QueryPolicyStatusesRequest) GetDenom() string { // QueryRoleManagerResponse is the response type for the // Query/RoleManager RPC method. type QueryPolicyStatusesResponse struct { + // List of policy statuses PolicyStatuses []*PolicyStatus `protobuf:"bytes,1,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` } @@ -862,6 +879,7 @@ func (m *QueryPolicyStatusesResponse) GetPolicyStatuses() []*PolicyStatus { // QueryPolicyManagerCapabilitiesRequest is the request type for the // Query/PolicyManagerCapabilities RPC method. type QueryPolicyManagerCapabilitiesRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } @@ -908,6 +926,7 @@ func (m *QueryPolicyManagerCapabilitiesRequest) GetDenom() string { // QueryPolicyManagerCapabilitiesResponse is the response type for the // Query/PolicyManagerCapabilities RPC method. type QueryPolicyManagerCapabilitiesResponse struct { + // List of policy manager capabilities PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,1,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } @@ -954,6 +973,7 @@ func (m *QueryPolicyManagerCapabilitiesResponse) GetPolicyManagerCapabilities() } type QueryVouchersRequest struct { + // The token denom Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` } @@ -998,6 +1018,7 @@ func (m *QueryVouchersRequest) GetDenom() string { } type QueryVouchersResponse struct { + // List of vouchers Vouchers []*AddressVoucher `protobuf:"bytes,1,rep,name=vouchers,proto3" json:"vouchers,omitempty"` } @@ -1042,7 +1063,9 @@ func (m *QueryVouchersResponse) GetVouchers() []*AddressVoucher { } type QueryVoucherRequest struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The token denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // The Injective address of the receiver Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } @@ -1094,6 +1117,7 @@ func (m *QueryVoucherRequest) GetAddress() string { } type QueryVoucherResponse struct { + // The voucher amount Voucher github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,1,opt,name=voucher,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"voucher,omitempty"` } @@ -1171,6 +1195,7 @@ var xxx_messageInfo_QueryModuleStateRequest proto.InternalMessageInfo // QueryModuleStateResponse is the response type for the // Query/PermissionsModuleState RPC method. type QueryModuleStateResponse struct { + // The module state State *GenesisState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` } diff --git a/chain/permissions/types/tx.pb.go b/chain/permissions/types/tx.pb.go index cdeff028..bce548ce 100644 --- a/chain/permissions/types/tx.pb.go +++ b/chain/permissions/types/tx.pb.go @@ -126,7 +126,9 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo type MsgCreateNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The namespace information Namespace Namespace `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace"` } @@ -214,13 +216,20 @@ func (m *MsgCreateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgCreateNamespaceResponse proto.InternalMessageInfo type MsgUpdateNamespace struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - ContractHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` - RolePermissions []*Role `protobuf:"bytes,4,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` - RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` - PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` - PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // denom whose namespace updates are to be applied + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // address of smart contract to apply code-based restrictions + ContractHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"` + // role permissions to update + RolePermissions []*Role `protobuf:"bytes,4,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + // role managers to update + RoleManagers []*RoleManager `protobuf:"bytes,5,rep,name=role_managers,json=roleManagers,proto3" json:"role_managers,omitempty"` + // policy statuses to update + PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"` + // policy manager capabilities to update + PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"` } func (m *MsgUpdateNamespace) Reset() { *m = MsgUpdateNamespace{} } @@ -386,9 +395,13 @@ func (m *MsgUpdateNamespaceResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateNamespaceResponse proto.InternalMessageInfo type MsgUpdateActorRoles struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - RoleActorsToAdd []*RoleActors `protobuf:"bytes,3,rep,name=role_actors_to_add,json=roleActorsToAdd,proto3" json:"role_actors_to_add,omitempty"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The namespace denom to which this updates are applied + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // The roles to add for given actors + RoleActorsToAdd []*RoleActors `protobuf:"bytes,3,rep,name=role_actors_to_add,json=roleActorsToAdd,proto3" json:"role_actors_to_add,omitempty"` + // The roles to revoke from given actors RoleActorsToRevoke []*RoleActors `protobuf:"bytes,5,rep,name=role_actors_to_revoke,json=roleActorsToRevoke,proto3" json:"role_actors_to_revoke,omitempty"` } @@ -490,8 +503,10 @@ func (m *MsgUpdateActorRolesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateActorRolesResponse proto.InternalMessageInfo type MsgClaimVoucher struct { + // The sender's Injective address Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // The token denom of the voucher to claim + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` } func (m *MsgClaimVoucher) Reset() { *m = MsgClaimVoucher{} } diff --git a/chain/stream/types/v2/query.pb.go b/chain/stream/types/v2/query.pb.go index 0a1b7062..2220f08e 100644 --- a/chain/stream/types/v2/query.pb.go +++ b/chain/stream/types/v2/query.pb.go @@ -84,6 +84,10 @@ type StreamRequest struct { PositionsFilter *PositionsFilter `protobuf:"bytes,9,opt,name=positions_filter,json=positionsFilter,proto3" json:"positions_filter,omitempty"` // filter for oracle prices events OraclePriceFilter *OraclePriceFilter `protobuf:"bytes,10,opt,name=oracle_price_filter,json=oraclePriceFilter,proto3" json:"oracle_price_filter,omitempty"` + // filter for order failures events + OrderFailuresFilter *OrderFailuresFilter `protobuf:"bytes,11,opt,name=order_failures_filter,json=orderFailuresFilter,proto3" json:"order_failures_filter,omitempty"` + // filter for conditional order trigger failures events + ConditionalOrderTriggerFailuresFilter *ConditionalOrderTriggerFailuresFilter `protobuf:"bytes,12,opt,name=conditional_order_trigger_failures_filter,json=conditionalOrderTriggerFailuresFilter,proto3" json:"conditional_order_trigger_failures_filter,omitempty"` } func (m *StreamRequest) Reset() { *m = StreamRequest{} } @@ -189,6 +193,20 @@ func (m *StreamRequest) GetOraclePriceFilter() *OraclePriceFilter { return nil } +func (m *StreamRequest) GetOrderFailuresFilter() *OrderFailuresFilter { + if m != nil { + return m.OrderFailuresFilter + } + return nil +} + +func (m *StreamRequest) GetConditionalOrderTriggerFailuresFilter() *ConditionalOrderTriggerFailuresFilter { + if m != nil { + return m.ConditionalOrderTriggerFailuresFilter + } + return nil +} + type StreamResponse struct { // the block height BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` @@ -216,6 +234,10 @@ type StreamResponse struct { OraclePrices []*OraclePrice `protobuf:"bytes,12,rep,name=oracle_prices,json=oraclePrices,proto3" json:"oracle_prices,omitempty"` // the current gas price when the block was processed (in chain format) GasPrice string `protobuf:"bytes,13,opt,name=gas_price,json=gasPrice,proto3" json:"gas_price,omitempty"` + // list of order failures updates + OrderFailures []*OrderFailureUpdate `protobuf:"bytes,14,rep,name=order_failures,json=orderFailures,proto3" json:"order_failures,omitempty"` + // list of conditional order trigger failures updates + ConditionalOrderTriggerFailures []*ConditionalOrderTriggerFailureUpdate `protobuf:"bytes,15,rep,name=conditional_order_trigger_failures,json=conditionalOrderTriggerFailures,proto3" json:"conditional_order_trigger_failures,omitempty"` } func (m *StreamResponse) Reset() { *m = StreamResponse{} } @@ -342,6 +364,20 @@ func (m *StreamResponse) GetGasPrice() string { return "" } +func (m *StreamResponse) GetOrderFailures() []*OrderFailureUpdate { + if m != nil { + return m.OrderFailures + } + return nil +} + +func (m *StreamResponse) GetConditionalOrderTriggerFailures() []*ConditionalOrderTriggerFailureUpdate { + if m != nil { + return m.ConditionalOrderTriggerFailures + } + return nil +} + type OrderbookUpdate struct { // the sequence number of the orderbook update Seq uint64 `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"` @@ -1242,6 +1278,161 @@ func (m *DerivativeTrade) GetTradeId() string { return "" } +type OrderFailureUpdate struct { + // the account address + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + // the order hash + OrderHash string `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // the client order ID + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` + // the error code + ErrorCode uint32 `protobuf:"varint,4,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` +} + +func (m *OrderFailureUpdate) Reset() { *m = OrderFailureUpdate{} } +func (m *OrderFailureUpdate) String() string { return proto.CompactTextString(m) } +func (*OrderFailureUpdate) ProtoMessage() {} +func (*OrderFailureUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_63d15adfde4eb6f9, []int{15} +} +func (m *OrderFailureUpdate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OrderFailureUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OrderFailureUpdate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OrderFailureUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrderFailureUpdate.Merge(m, src) +} +func (m *OrderFailureUpdate) XXX_Size() int { + return m.Size() +} +func (m *OrderFailureUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_OrderFailureUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_OrderFailureUpdate proto.InternalMessageInfo + +func (m *OrderFailureUpdate) GetAccount() string { + if m != nil { + return m.Account + } + return "" +} + +func (m *OrderFailureUpdate) GetOrderHash() string { + if m != nil { + return m.OrderHash + } + return "" +} + +func (m *OrderFailureUpdate) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + +func (m *OrderFailureUpdate) GetErrorCode() uint32 { + if m != nil { + return m.ErrorCode + } + return 0 +} + +type ConditionalOrderTriggerFailureUpdate struct { + // the market ID + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // the subaccount ID + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // the mark price + MarkPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=mark_price,json=markPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price"` + // the order hash + OrderHash string `protobuf:"bytes,4,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // the client order ID + Cid string `protobuf:"bytes,5,opt,name=cid,proto3" json:"cid,omitempty"` + // the error code + ErrorDescription string `protobuf:"bytes,6,opt,name=error_description,json=errorDescription,proto3" json:"error_description,omitempty"` +} + +func (m *ConditionalOrderTriggerFailureUpdate) Reset() { *m = ConditionalOrderTriggerFailureUpdate{} } +func (m *ConditionalOrderTriggerFailureUpdate) String() string { return proto.CompactTextString(m) } +func (*ConditionalOrderTriggerFailureUpdate) ProtoMessage() {} +func (*ConditionalOrderTriggerFailureUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_63d15adfde4eb6f9, []int{16} +} +func (m *ConditionalOrderTriggerFailureUpdate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConditionalOrderTriggerFailureUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConditionalOrderTriggerFailureUpdate.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ConditionalOrderTriggerFailureUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConditionalOrderTriggerFailureUpdate.Merge(m, src) +} +func (m *ConditionalOrderTriggerFailureUpdate) XXX_Size() int { + return m.Size() +} +func (m *ConditionalOrderTriggerFailureUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_ConditionalOrderTriggerFailureUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_ConditionalOrderTriggerFailureUpdate proto.InternalMessageInfo + +func (m *ConditionalOrderTriggerFailureUpdate) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +func (m *ConditionalOrderTriggerFailureUpdate) GetSubaccountId() string { + if m != nil { + return m.SubaccountId + } + return "" +} + +func (m *ConditionalOrderTriggerFailureUpdate) GetOrderHash() string { + if m != nil { + return m.OrderHash + } + return "" +} + +func (m *ConditionalOrderTriggerFailureUpdate) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + +func (m *ConditionalOrderTriggerFailureUpdate) GetErrorDescription() string { + if m != nil { + return m.ErrorDescription + } + return "" +} + type TradesFilter struct { // list of subaccount IDs to filter by SubaccountIds []string `protobuf:"bytes,1,rep,name=subaccount_ids,json=subaccountIds,proto3" json:"subaccount_ids,omitempty"` @@ -1253,7 +1444,7 @@ func (m *TradesFilter) Reset() { *m = TradesFilter{} } func (m *TradesFilter) String() string { return proto.CompactTextString(m) } func (*TradesFilter) ProtoMessage() {} func (*TradesFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{15} + return fileDescriptor_63d15adfde4eb6f9, []int{17} } func (m *TradesFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1307,7 +1498,7 @@ func (m *PositionsFilter) Reset() { *m = PositionsFilter{} } func (m *PositionsFilter) String() string { return proto.CompactTextString(m) } func (*PositionsFilter) ProtoMessage() {} func (*PositionsFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{16} + return fileDescriptor_63d15adfde4eb6f9, []int{18} } func (m *PositionsFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1361,7 +1552,7 @@ func (m *OrdersFilter) Reset() { *m = OrdersFilter{} } func (m *OrdersFilter) String() string { return proto.CompactTextString(m) } func (*OrdersFilter) ProtoMessage() {} func (*OrdersFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{17} + return fileDescriptor_63d15adfde4eb6f9, []int{19} } func (m *OrdersFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1413,7 +1604,7 @@ func (m *OrderbookFilter) Reset() { *m = OrderbookFilter{} } func (m *OrderbookFilter) String() string { return proto.CompactTextString(m) } func (*OrderbookFilter) ProtoMessage() {} func (*OrderbookFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{18} + return fileDescriptor_63d15adfde4eb6f9, []int{20} } func (m *OrderbookFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1458,7 +1649,7 @@ func (m *BankBalancesFilter) Reset() { *m = BankBalancesFilter{} } func (m *BankBalancesFilter) String() string { return proto.CompactTextString(m) } func (*BankBalancesFilter) ProtoMessage() {} func (*BankBalancesFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{19} + return fileDescriptor_63d15adfde4eb6f9, []int{21} } func (m *BankBalancesFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1503,7 +1694,7 @@ func (m *SubaccountDepositsFilter) Reset() { *m = SubaccountDepositsFilt func (m *SubaccountDepositsFilter) String() string { return proto.CompactTextString(m) } func (*SubaccountDepositsFilter) ProtoMessage() {} func (*SubaccountDepositsFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{20} + return fileDescriptor_63d15adfde4eb6f9, []int{22} } func (m *SubaccountDepositsFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1540,7 +1731,7 @@ func (m *SubaccountDepositsFilter) GetSubaccountIds() []string { } type OraclePriceFilter struct { - // list of symbol to filter by + // list of symbols to filter by Symbol []string `protobuf:"bytes,1,rep,name=symbol,proto3" json:"symbol,omitempty"` } @@ -1548,7 +1739,7 @@ func (m *OraclePriceFilter) Reset() { *m = OraclePriceFilter{} } func (m *OraclePriceFilter) String() string { return proto.CompactTextString(m) } func (*OraclePriceFilter) ProtoMessage() {} func (*OraclePriceFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_63d15adfde4eb6f9, []int{21} + return fileDescriptor_63d15adfde4eb6f9, []int{23} } func (m *OraclePriceFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1584,6 +1775,105 @@ func (m *OraclePriceFilter) GetSymbol() []string { return nil } +type OrderFailuresFilter struct { + // list of account addresses to filter by + Accounts []string `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` +} + +func (m *OrderFailuresFilter) Reset() { *m = OrderFailuresFilter{} } +func (m *OrderFailuresFilter) String() string { return proto.CompactTextString(m) } +func (*OrderFailuresFilter) ProtoMessage() {} +func (*OrderFailuresFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_63d15adfde4eb6f9, []int{24} +} +func (m *OrderFailuresFilter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OrderFailuresFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_OrderFailuresFilter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *OrderFailuresFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_OrderFailuresFilter.Merge(m, src) +} +func (m *OrderFailuresFilter) XXX_Size() int { + return m.Size() +} +func (m *OrderFailuresFilter) XXX_DiscardUnknown() { + xxx_messageInfo_OrderFailuresFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_OrderFailuresFilter proto.InternalMessageInfo + +func (m *OrderFailuresFilter) GetAccounts() []string { + if m != nil { + return m.Accounts + } + return nil +} + +type ConditionalOrderTriggerFailuresFilter struct { + // list of subaccount IDs to filter by + SubaccountIds []string `protobuf:"bytes,1,rep,name=subaccount_ids,json=subaccountIds,proto3" json:"subaccount_ids,omitempty"` + // list of market IDs to filter by + MarketIds []string `protobuf:"bytes,2,rep,name=market_ids,json=marketIds,proto3" json:"market_ids,omitempty"` +} + +func (m *ConditionalOrderTriggerFailuresFilter) Reset() { *m = ConditionalOrderTriggerFailuresFilter{} } +func (m *ConditionalOrderTriggerFailuresFilter) String() string { return proto.CompactTextString(m) } +func (*ConditionalOrderTriggerFailuresFilter) ProtoMessage() {} +func (*ConditionalOrderTriggerFailuresFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_63d15adfde4eb6f9, []int{25} +} +func (m *ConditionalOrderTriggerFailuresFilter) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ConditionalOrderTriggerFailuresFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ConditionalOrderTriggerFailuresFilter.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ConditionalOrderTriggerFailuresFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConditionalOrderTriggerFailuresFilter.Merge(m, src) +} +func (m *ConditionalOrderTriggerFailuresFilter) XXX_Size() int { + return m.Size() +} +func (m *ConditionalOrderTriggerFailuresFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ConditionalOrderTriggerFailuresFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ConditionalOrderTriggerFailuresFilter proto.InternalMessageInfo + +func (m *ConditionalOrderTriggerFailuresFilter) GetSubaccountIds() []string { + if m != nil { + return m.SubaccountIds + } + return nil +} + +func (m *ConditionalOrderTriggerFailuresFilter) GetMarketIds() []string { + if m != nil { + return m.MarketIds + } + return nil +} + func init() { proto.RegisterEnum("injective.stream.v2.OrderUpdateStatus", OrderUpdateStatus_name, OrderUpdateStatus_value) proto.RegisterType((*StreamRequest)(nil), "injective.stream.v2.StreamRequest") @@ -1601,6 +1891,8 @@ func init() { proto.RegisterType((*OraclePrice)(nil), "injective.stream.v2.OraclePrice") proto.RegisterType((*SpotTrade)(nil), "injective.stream.v2.SpotTrade") proto.RegisterType((*DerivativeTrade)(nil), "injective.stream.v2.DerivativeTrade") + proto.RegisterType((*OrderFailureUpdate)(nil), "injective.stream.v2.OrderFailureUpdate") + proto.RegisterType((*ConditionalOrderTriggerFailureUpdate)(nil), "injective.stream.v2.ConditionalOrderTriggerFailureUpdate") proto.RegisterType((*TradesFilter)(nil), "injective.stream.v2.TradesFilter") proto.RegisterType((*PositionsFilter)(nil), "injective.stream.v2.PositionsFilter") proto.RegisterType((*OrdersFilter)(nil), "injective.stream.v2.OrdersFilter") @@ -1608,117 +1900,132 @@ func init() { proto.RegisterType((*BankBalancesFilter)(nil), "injective.stream.v2.BankBalancesFilter") proto.RegisterType((*SubaccountDepositsFilter)(nil), "injective.stream.v2.SubaccountDepositsFilter") proto.RegisterType((*OraclePriceFilter)(nil), "injective.stream.v2.OraclePriceFilter") + proto.RegisterType((*OrderFailuresFilter)(nil), "injective.stream.v2.OrderFailuresFilter") + proto.RegisterType((*ConditionalOrderTriggerFailuresFilter)(nil), "injective.stream.v2.ConditionalOrderTriggerFailuresFilter") } func init() { proto.RegisterFile("injective/stream/v2/query.proto", fileDescriptor_63d15adfde4eb6f9) } var fileDescriptor_63d15adfde4eb6f9 = []byte{ - // 1673 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0xdb, 0xca, - 0x11, 0x37, 0x2d, 0x4b, 0x16, 0x47, 0xfe, 0x90, 0xd7, 0x8e, 0xc1, 0x38, 0x89, 0xec, 0x30, 0x4e, - 0x62, 0x24, 0x88, 0x94, 0xa8, 0x2d, 0xd0, 0x36, 0x6d, 0x82, 0x28, 0xce, 0x87, 0x51, 0x07, 0x4d, - 0x69, 0xbb, 0x29, 0x82, 0x16, 0xec, 0x8a, 0x5c, 0x4b, 0xac, 0x24, 0x52, 0xe6, 0x92, 0x42, 0x74, - 0xee, 0xa1, 0x97, 0x1e, 0x72, 0xe8, 0x9f, 0xd0, 0x53, 0xff, 0x82, 0xde, 0xdb, 0x43, 0x8e, 0xb9, - 0xb5, 0x28, 0x8a, 0xbc, 0x87, 0xe4, 0x1f, 0x79, 0xd8, 0x0f, 0x52, 0xa4, 0xbe, 0x22, 0xe3, 0xe5, - 0x3d, 0xe0, 0x9d, 0xb4, 0xbb, 0x9c, 0xf9, 0xfd, 0x66, 0x67, 0x67, 0x66, 0x47, 0x0b, 0xdb, 0x8e, - 0xfb, 0x27, 0x62, 0x05, 0x4e, 0x8f, 0x54, 0x68, 0xe0, 0x13, 0xdc, 0xa9, 0xf4, 0xaa, 0x95, 0xb3, - 0x90, 0xf8, 0xfd, 0x72, 0xd7, 0xf7, 0x02, 0x0f, 0xad, 0xc7, 0x02, 0x65, 0x21, 0x50, 0xee, 0x55, - 0xb7, 0x4a, 0x96, 0x47, 0x3b, 0x1e, 0xad, 0xd4, 0x31, 0x25, 0x95, 0xde, 0xbd, 0x3a, 0x09, 0xf0, - 0xbd, 0x8a, 0xe5, 0x39, 0xae, 0x50, 0xda, 0xda, 0x68, 0x78, 0x0d, 0x8f, 0x0f, 0x2b, 0x6c, 0x24, - 0x57, 0xf5, 0x01, 0x17, 0x79, 0x63, 0x35, 0xb1, 0xdb, 0x20, 0x8c, 0x8d, 0xf4, 0x88, 0x1b, 0x50, - 0x29, 0xb3, 0x3b, 0x41, 0x46, 0x8e, 0xa5, 0xd4, 0xd5, 0xf1, 0x52, 0x9e, 0x6f, 0x13, 0x5f, 0x88, - 0xe8, 0xff, 0x5f, 0x84, 0xe5, 0x23, 0x6e, 0xb0, 0x41, 0xce, 0x42, 0x42, 0x03, 0x64, 0xc2, 0x46, - 0x1d, 0xbb, 0x2d, 0xb3, 0x8e, 0xdb, 0xd8, 0xb5, 0x08, 0x35, 0x4f, 0x9d, 0x76, 0x40, 0x7c, 0x4d, - 0xd9, 0x51, 0xf6, 0x0a, 0xd5, 0x9b, 0xe5, 0x31, 0x1b, 0x2d, 0xd7, 0xb0, 0xdb, 0xaa, 0x49, 0xf9, - 0xa7, 0x5c, 0xbc, 0xb6, 0xf0, 0xee, 0xc3, 0xb6, 0x62, 0xa0, 0xfa, 0xc8, 0x17, 0x74, 0x06, 0x5b, - 0x34, 0xac, 0x63, 0xcb, 0xf2, 0x42, 0x37, 0x30, 0x6d, 0xd2, 0xf5, 0xa8, 0x13, 0xc4, 0x34, 0xf3, - 0x9c, 0xe6, 0xce, 0x58, 0x9a, 0xa3, 0x58, 0x6d, 0x5f, 0x6a, 0xa5, 0xc8, 0x34, 0x3a, 0xe1, 0x3b, - 0x3a, 0x01, 0x44, 0xbb, 0x5e, 0x60, 0x06, 0x3e, 0xb6, 0x07, 0x3b, 0xca, 0x70, 0xaa, 0xab, 0x63, - 0xa9, 0x8e, 0xb9, 0x64, 0x0a, 0xbe, 0xc8, 0x20, 0x92, 0xeb, 0x08, 0x83, 0x66, 0x13, 0xdf, 0xe9, - 0x61, 0xa6, 0x3c, 0x04, 0xbe, 0x70, 0x3e, 0xf0, 0xcd, 0x01, 0x50, 0x8a, 0x22, 0xb2, 0x9c, 0x9f, - 0x59, 0x0c, 0x9e, 0x9d, 0x02, 0xfe, 0x6b, 0x2e, 0x39, 0x6a, 0x79, 0x72, 0x7d, 0xc8, 0xf2, 0x34, - 0x78, 0xee, 0x7c, 0xe0, 0x09, 0xcb, 0x53, 0x14, 0x7f, 0x84, 0xcd, 0x81, 0xe5, 0x75, 0xcf, 0x6b, - 0xc5, 0x04, 0x8b, 0x9c, 0x60, 0x77, 0x32, 0x01, 0x93, 0x4e, 0x71, 0x6c, 0xc4, 0x1b, 0xe0, 0x40, - 0x92, 0xa1, 0x0d, 0x97, 0x87, 0x37, 0x91, 0xe2, 0xc9, 0x9f, 0x9b, 0x67, 0x6b, 0x68, 0x2f, 0x49, - 0xb6, 0x13, 0x28, 0xf2, 0x98, 0x72, 0x3c, 0x37, 0x66, 0x50, 0xa7, 0x30, 0xbc, 0x8c, 0x84, 0x53, - 0x0c, 0xab, 0xdd, 0xf4, 0x32, 0xfa, 0x3d, 0xac, 0x7b, 0x3e, 0xb6, 0xda, 0xc4, 0xec, 0xfa, 0x8e, - 0x45, 0x22, 0x64, 0xe0, 0xc8, 0x37, 0x26, 0xd8, 0xce, 0xe4, 0x5f, 0x32, 0xf1, 0x14, 0xf6, 0x9a, - 0x37, 0xfc, 0x41, 0xff, 0xeb, 0x22, 0xac, 0x44, 0xe9, 0x4d, 0xbb, 0x9e, 0x4b, 0x09, 0xba, 0x0a, - 0x4b, 0xf5, 0xb6, 0x67, 0xb5, 0xcc, 0x26, 0x71, 0x1a, 0xcd, 0x80, 0xe7, 0xf5, 0x82, 0x51, 0xe0, - 0x6b, 0xcf, 0xf9, 0x12, 0xba, 0x02, 0x20, 0x44, 0x02, 0xa7, 0x43, 0x78, 0x46, 0x66, 0x0c, 0x95, - 0xaf, 0x1c, 0x3b, 0x1d, 0x82, 0x9e, 0xc0, 0x72, 0xaa, 0x42, 0x68, 0x99, 0x9d, 0xcc, 0x5e, 0xa1, - 0xba, 0xf3, 0xb9, 0xd2, 0x60, 0x2c, 0x25, 0xab, 0x01, 0xfa, 0x1d, 0xac, 0x8f, 0xa9, 0x03, 0xda, - 0x02, 0x07, 0xbb, 0x39, 0x63, 0x01, 0x30, 0xd0, 0x68, 0xd2, 0xa3, 0x87, 0x50, 0x48, 0xa4, 0xbb, - 0x96, 0xe5, 0x88, 0xa5, 0xf1, 0x88, 0x51, 0x4e, 0x1b, 0x30, 0x48, 0x6f, 0xf4, 0x1b, 0x58, 0x1b, - 0x49, 0x6c, 0x2d, 0xc7, 0x61, 0xc6, 0x1f, 0xf6, 0x7e, 0x3a, 0x7b, 0x8d, 0xe2, 0x70, 0x3a, 0xa3, - 0x27, 0xd2, 0x26, 0x91, 0x6b, 0xda, 0xe2, 0x14, 0xb0, 0xa3, 0x28, 0xd8, 0x4f, 0xba, 0x36, 0x0e, - 0xa4, 0x65, 0x22, 0xb7, 0xd0, 0xab, 0x94, 0x65, 0x12, 0x2c, 0xcf, 0xc1, 0x6e, 0x7d, 0xc6, 0xb2, - 0x24, 0x64, 0x71, 0x38, 0x69, 0xd1, 0xeb, 0xe1, 0x74, 0x35, 0x43, 0x2e, 0x4a, 0x35, 0x75, 0x8a, - 0xa9, 0x71, 0x96, 0x48, 0xdc, 0x74, 0xa2, 0x8a, 0x45, 0x8a, 0x4e, 0xc7, 0x27, 0x6a, 0xcc, 0x00, - 0xe7, 0x60, 0x18, 0x97, 0xa2, 0x11, 0xcf, 0x7d, 0x50, 0xe3, 0xf4, 0xd2, 0x0a, 0x1c, 0xf4, 0xca, - 0xd4, 0xdc, 0x34, 0x06, 0xf2, 0x2c, 0xaa, 0x93, 0x89, 0x48, 0xb5, 0xa5, 0x29, 0x51, 0x9d, 0x48, - 0x41, 0x63, 0x29, 0x91, 0x76, 0x14, 0x5d, 0x02, 0xb5, 0x81, 0xa9, 0xc0, 0xd0, 0x96, 0x77, 0x94, - 0x3d, 0xd5, 0xc8, 0x37, 0x30, 0xe5, 0x5f, 0x75, 0x0c, 0xab, 0x43, 0x46, 0xa3, 0x22, 0x64, 0x28, - 0x39, 0x93, 0x59, 0xc8, 0x86, 0xe8, 0x17, 0xa0, 0xc6, 0x2e, 0x92, 0xd7, 0x61, 0x69, 0xba, 0x6b, - 0x8c, 0x81, 0x82, 0xfe, 0x77, 0x05, 0xd4, 0xf8, 0x03, 0xb3, 0xa6, 0x83, 0xfd, 0x16, 0x09, 0x4c, - 0xc7, 0xe6, 0x1c, 0xaa, 0x91, 0x17, 0x0b, 0x07, 0x36, 0xba, 0x0f, 0x50, 0x0f, 0xfb, 0x66, 0x9b, - 0xf4, 0x48, 0x9b, 0x6a, 0xf3, 0x7c, 0xbb, 0x97, 0x13, 0x4c, 0x71, 0x37, 0xd1, 0xab, 0x96, 0x0f, - 0x99, 0x90, 0xa1, 0xd6, 0xc3, 0x3e, 0x1f, 0x51, 0xf4, 0x4b, 0x28, 0x50, 0xd2, 0x6e, 0x47, 0xda, - 0x99, 0x19, 0xb4, 0x81, 0x29, 0x08, 0x75, 0xfd, 0xad, 0x02, 0x85, 0x44, 0x69, 0x40, 0x1a, 0x2c, - 0xca, 0x2c, 0x96, 0x66, 0x46, 0x53, 0xd4, 0x80, 0x7c, 0x5c, 0x68, 0x84, 0x8d, 0x17, 0xcb, 0xa2, - 0xaf, 0x2a, 0xb3, 0xbe, 0xaa, 0x2c, 0xfb, 0xaa, 0xf2, 0x63, 0xcf, 0x71, 0x6b, 0x77, 0xdf, 0x7d, - 0xd8, 0x9e, 0xfb, 0xc7, 0x57, 0xdb, 0x7b, 0x0d, 0x27, 0x68, 0x86, 0xf5, 0xb2, 0xe5, 0x75, 0x2a, - 0xb2, 0x09, 0x13, 0x3f, 0x77, 0xa8, 0xdd, 0xaa, 0x04, 0xfd, 0x2e, 0xa1, 0x5c, 0x81, 0x1a, 0x31, - 0xb8, 0xfe, 0x67, 0x05, 0xd0, 0x68, 0x81, 0x41, 0xd7, 0x60, 0x39, 0x51, 0xa6, 0x62, 0x37, 0x2e, - 0x0d, 0x16, 0x0f, 0x6c, 0xf4, 0x1c, 0xf2, 0x71, 0x01, 0x13, 0x46, 0xde, 0x98, 0xad, 0x80, 0xf1, - 0xd2, 0x3d, 0x67, 0xc4, 0xda, 0xba, 0x03, 0x6b, 0x23, 0x42, 0x68, 0x03, 0xb2, 0x36, 0x71, 0xbd, - 0x8e, 0xe4, 0x16, 0x13, 0xf4, 0x00, 0x16, 0xa5, 0xda, 0x98, 0x30, 0x49, 0xba, 0x3f, 0xcd, 0x15, - 0x29, 0xe9, 0xff, 0x54, 0x60, 0x75, 0xa8, 0xd6, 0xa0, 0x07, 0x90, 0xa3, 0x01, 0x0e, 0x42, 0xca, - 0xa9, 0x56, 0x26, 0xde, 0x40, 0xb1, 0xc6, 0x11, 0x97, 0x36, 0xa4, 0x16, 0xbb, 0x3a, 0x78, 0x2c, - 0x9a, 0x4d, 0x4c, 0x9b, 0xdc, 0x2c, 0x55, 0x46, 0xe7, 0x73, 0x4c, 0x9b, 0x2c, 0xda, 0x2d, 0xc7, - 0xe6, 0x9d, 0x97, 0x6a, 0xb0, 0x21, 0xfa, 0x31, 0x64, 0xf9, 0x67, 0xd9, 0x30, 0x95, 0xa6, 0x57, - 0x44, 0x43, 0x08, 0xeb, 0x2d, 0x50, 0xe3, 0xb5, 0xe9, 0x41, 0xfe, 0x28, 0xc2, 0x17, 0x2e, 0xba, - 0x3e, 0xc1, 0x45, 0x0c, 0xed, 0xd0, 0xe9, 0x38, 0x02, 0x52, 0x7a, 0x4a, 0x92, 0xfd, 0x5b, 0x81, - 0x0b, 0x63, 0xcb, 0xe8, 0xf7, 0xef, 0xad, 0x9f, 0xa7, 0xbd, 0xb5, 0x3b, 0x4b, 0xc9, 0x8f, 0xb6, - 0xf1, 0x37, 0x05, 0x56, 0x87, 0x3e, 0x4d, 0x77, 0xdd, 0xb3, 0xb4, 0xeb, 0x6e, 0x4f, 0x8c, 0xae, - 0x08, 0x73, 0x82, 0x03, 0x19, 0x8b, 0x43, 0x4d, 0x81, 0xcb, 0x77, 0x93, 0x37, 0xf2, 0x0e, 0x7d, - 0xc1, 0xe7, 0xfa, 0x5f, 0x32, 0x90, 0x8f, 0xea, 0xf1, 0x74, 0x7b, 0x46, 0x32, 0x71, 0x7e, 0x4c, - 0x26, 0x6e, 0x42, 0xce, 0xa1, 0x87, 0x9e, 0xdb, 0x90, 0x44, 0x72, 0x86, 0x1e, 0x42, 0xfe, 0x2c, - 0xc4, 0x6e, 0xe0, 0x04, 0x7d, 0xee, 0x3c, 0xb5, 0x76, 0x8d, 0x99, 0xf8, 0xbf, 0x0f, 0xdb, 0x97, - 0x44, 0x65, 0xa0, 0x76, 0xab, 0xec, 0x78, 0x95, 0x0e, 0x0e, 0x9a, 0xe5, 0x43, 0xd2, 0xc0, 0x56, - 0x7f, 0x9f, 0x58, 0x46, 0xac, 0x84, 0xf6, 0xa1, 0x40, 0xdc, 0xc0, 0xef, 0xcb, 0xd2, 0x9e, 0x9d, - 0x1d, 0x03, 0xb8, 0x1e, 0xbf, 0x01, 0xd0, 0x7d, 0xc8, 0x75, 0xb0, 0xdf, 0x70, 0x5c, 0xde, 0x66, - 0xcf, 0x08, 0x20, 0x55, 0xd0, 0x1f, 0x40, 0xb3, 0xc2, 0x4e, 0xd8, 0x16, 0xf7, 0xe8, 0x69, 0xe8, - 0xda, 0x8e, 0xdb, 0x30, 0x39, 0x3a, 0x6f, 0xaa, 0x67, 0x84, 0xdb, 0x1c, 0x80, 0x3c, 0x15, 0x18, - 0x4f, 0x18, 0x84, 0x1e, 0x40, 0x21, 0x71, 0xaf, 0x31, 0x4f, 0xd2, 0x7e, 0xa7, 0xee, 0xb5, 0xe5, - 0x41, 0xc8, 0x19, 0xfa, 0x19, 0x64, 0x85, 0x0b, 0xe6, 0x67, 0xa7, 0x14, 0x1a, 0x08, 0xc1, 0x02, - 0xab, 0xbd, 0x32, 0xa2, 0xf9, 0x58, 0xff, 0x57, 0x46, 0xe4, 0x32, 0xef, 0x93, 0xa6, 0x07, 0xc0, - 0x05, 0x76, 0xb6, 0x66, 0x3d, 0xec, 0x73, 0xea, 0xbc, 0x91, 0x75, 0x68, 0x2d, 0xec, 0xa3, 0x5d, - 0x58, 0x26, 0x6f, 0x88, 0x15, 0xb2, 0x08, 0x3a, 0x1e, 0xc0, 0xa7, 0x17, 0xbf, 0x7d, 0x00, 0xc4, - 0xfb, 0xce, 0x9e, 0x7b, 0xdf, 0x23, 0x91, 0x9b, 0x1b, 0x13, 0xb9, 0x3f, 0x81, 0xcc, 0x29, 0x21, - 0xe7, 0x39, 0x48, 0x26, 0x3f, 0x54, 0x43, 0xf2, 0xc3, 0x35, 0xe4, 0xa7, 0x70, 0xe1, 0x94, 0x10, - 0xd3, 0x27, 0x96, 0xd3, 0x75, 0x88, 0x1b, 0x98, 0xd8, 0xb6, 0x7d, 0x42, 0x29, 0xff, 0xef, 0xa2, - 0xca, 0x7f, 0x0e, 0xeb, 0xa7, 0x84, 0x18, 0x91, 0xc4, 0x23, 0x21, 0x10, 0x55, 0x1f, 0x18, 0x54, - 0x9f, 0x8b, 0x90, 0xe7, 0xbd, 0x30, 0xdb, 0x41, 0x41, 0xdc, 0xd2, 0x7c, 0x7e, 0x60, 0xeb, 0xff, - 0xc9, 0x24, 0x8b, 0xcb, 0x77, 0x7d, 0x96, 0x23, 0xfe, 0x5c, 0x18, 0xe3, 0xcf, 0x5f, 0xc1, 0x4a, - 0xd4, 0xdd, 0x99, 0x36, 0x69, 0x07, 0x58, 0xfe, 0x6d, 0xde, 0x9d, 0x50, 0xc7, 0xa2, 0x22, 0xb4, - 0xcf, 0x64, 0x8d, 0xe5, 0x6e, 0x72, 0xca, 0xf2, 0xb6, 0x8b, 0xfb, 0x5e, 0x18, 0x9c, 0x2b, 0x6f, - 0x85, 0xca, 0x0f, 0xfb, 0x64, 0x8f, 0x61, 0x29, 0xf5, 0x22, 0x71, 0x1d, 0x56, 0x52, 0xbe, 0x67, - 0x77, 0x5f, 0x86, 0x1d, 0x51, 0xd2, 0xf9, 0xfc, 0x6a, 0x8b, 0x0f, 0x5f, 0xf4, 0x44, 0xaa, 0xa1, - 0x46, 0xa7, 0x4f, 0xf5, 0x57, 0xb0, 0x3a, 0xf4, 0x07, 0xf9, 0x0b, 0x01, 0x1f, 0xc3, 0x52, 0xea, - 0x19, 0xe2, 0xcb, 0xa0, 0xde, 0x4d, 0x34, 0xee, 0x12, 0x38, 0xad, 0xa1, 0x8c, 0x6a, 0xa0, 0xd1, - 0x57, 0x31, 0xb4, 0x05, 0x79, 0x49, 0x1a, 0xa9, 0xc4, 0x73, 0xfd, 0x11, 0x68, 0x93, 0x1e, 0xb8, - 0x66, 0xdc, 0x85, 0x7e, 0x1b, 0xd6, 0x46, 0x1e, 0x07, 0x52, 0x75, 0x3c, 0x33, 0xa8, 0xe3, 0xb7, - 0x0e, 0x99, 0xf0, 0x50, 0x67, 0x82, 0x56, 0xa1, 0x70, 0xe2, 0xd2, 0x2e, 0xb1, 0x9c, 0x53, 0x87, - 0xd8, 0xc5, 0x39, 0x04, 0x90, 0xab, 0x79, 0x5e, 0x8b, 0xd8, 0x45, 0x05, 0x15, 0x60, 0xf1, 0x05, - 0x0e, 0xac, 0x26, 0xb1, 0x8b, 0xf3, 0x68, 0x19, 0xd4, 0xc7, 0x6c, 0x6b, 0xed, 0x36, 0xb1, 0x8b, - 0x99, 0xaa, 0x09, 0x39, 0xf1, 0xd0, 0x80, 0x4e, 0x20, 0x2f, 0x46, 0xbf, 0xad, 0x22, 0x7d, 0x7c, - 0x3b, 0x97, 0x7c, 0x70, 0xdc, 0xba, 0x36, 0x55, 0x46, 0xbc, 0x5a, 0xdc, 0x55, 0x6a, 0xf8, 0xdd, - 0xc7, 0x92, 0xf2, 0xfe, 0x63, 0x49, 0xf9, 0xfa, 0x63, 0x49, 0x79, 0xfb, 0xa9, 0x34, 0xf7, 0xfe, - 0x53, 0x69, 0xee, 0xbf, 0x9f, 0x4a, 0x73, 0xaf, 0x9f, 0x25, 0x9a, 0xfd, 0x83, 0x08, 0xea, 0x10, - 0xd7, 0x69, 0x25, 0x06, 0xbe, 0x63, 0x79, 0x3e, 0x49, 0x4e, 0x9b, 0xd8, 0x71, 0xa3, 0xa7, 0x5c, - 0xfe, 0x77, 0xa0, 0xd2, 0xab, 0xd6, 0x73, 0xfc, 0x4d, 0xf4, 0x47, 0xdf, 0x04, 0x00, 0x00, 0xff, - 0xff, 0x06, 0x95, 0x51, 0x5c, 0xee, 0x15, 0x00, 0x00, + // 1885 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcf, 0x6f, 0xdb, 0xc8, + 0x15, 0x36, 0x2d, 0x4b, 0x16, 0x9f, 0x2c, 0x5b, 0x1e, 0x27, 0x01, 0xd7, 0xbb, 0x91, 0x13, 0xc6, + 0xd9, 0x75, 0x37, 0x88, 0x94, 0xb8, 0x2d, 0xd0, 0xdd, 0xb4, 0xbb, 0x88, 0xe2, 0x64, 0x13, 0xd4, + 0xdb, 0x6e, 0x19, 0xbb, 0x5b, 0x2c, 0x5a, 0xb0, 0x23, 0x72, 0x2c, 0x4d, 0x25, 0x91, 0x32, 0x87, + 0x14, 0x56, 0x97, 0x5e, 0x0a, 0xb4, 0x40, 0x4f, 0x7b, 0xe8, 0xa9, 0xe7, 0x9e, 0xfa, 0x17, 0xf4, + 0xde, 0x1e, 0x72, 0xcc, 0xad, 0x45, 0x81, 0xa6, 0x45, 0x82, 0xfe, 0x1f, 0xc5, 0xfc, 0x20, 0x45, + 0x4a, 0x94, 0x22, 0xb7, 0x69, 0x81, 0x9e, 0x44, 0x0e, 0xdf, 0xfb, 0xbe, 0xf7, 0xde, 0x0c, 0xbf, + 0x79, 0x1c, 0xc1, 0x1e, 0xf5, 0x7e, 0x46, 0x9c, 0x90, 0x8e, 0x48, 0x93, 0x85, 0x01, 0xc1, 0x83, + 0xe6, 0xe8, 0xb0, 0x79, 0x1e, 0x91, 0x60, 0xdc, 0x18, 0x06, 0x7e, 0xe8, 0xa3, 0x9d, 0xc4, 0xa0, + 0x21, 0x0d, 0x1a, 0xa3, 0xc3, 0xdd, 0xba, 0xe3, 0xb3, 0x81, 0xcf, 0x9a, 0x6d, 0xcc, 0x48, 0x73, + 0x74, 0xb7, 0x4d, 0x42, 0x7c, 0xb7, 0xe9, 0xf8, 0xd4, 0x93, 0x4e, 0xbb, 0x97, 0x3a, 0x7e, 0xc7, + 0x17, 0x97, 0x4d, 0x7e, 0xa5, 0x46, 0xcd, 0x09, 0x17, 0xf9, 0xd2, 0xe9, 0x62, 0xaf, 0x43, 0x38, + 0x1b, 0x19, 0x11, 0x2f, 0x64, 0xca, 0x66, 0x7f, 0x8e, 0x8d, 0xba, 0x56, 0x56, 0xd7, 0xf3, 0xad, + 0xfc, 0xc0, 0x25, 0x81, 0x34, 0x31, 0xff, 0xa6, 0x43, 0xf5, 0xa9, 0x08, 0xd8, 0x22, 0xe7, 0x11, + 0x61, 0x21, 0xb2, 0xe1, 0x52, 0x1b, 0x7b, 0x3d, 0xbb, 0x8d, 0xfb, 0xd8, 0x73, 0x08, 0xb3, 0xcf, + 0x68, 0x3f, 0x24, 0x81, 0xa1, 0x5d, 0xd3, 0x0e, 0x2a, 0x87, 0xef, 0x35, 0x72, 0x12, 0x6d, 0xb4, + 0xb0, 0xd7, 0x6b, 0x29, 0xfb, 0x47, 0xc2, 0xbc, 0xb5, 0xf6, 0xec, 0xc5, 0x9e, 0x66, 0xa1, 0xf6, + 0xcc, 0x13, 0x74, 0x0e, 0xbb, 0x2c, 0x6a, 0x63, 0xc7, 0xf1, 0x23, 0x2f, 0xb4, 0x5d, 0x32, 0xf4, + 0x19, 0x0d, 0x13, 0x9a, 0x55, 0x41, 0x73, 0x3b, 0x97, 0xe6, 0x69, 0xe2, 0x76, 0xa4, 0xbc, 0x32, + 0x64, 0x06, 0x9b, 0xf3, 0x1c, 0x9d, 0x02, 0x62, 0x43, 0x3f, 0xb4, 0xc3, 0x00, 0xbb, 0x93, 0x8c, + 0x0a, 0x82, 0xea, 0x7a, 0x2e, 0xd5, 0x89, 0xb0, 0xcc, 0xc0, 0xd7, 0x38, 0x44, 0x7a, 0x1c, 0x61, + 0x30, 0x5c, 0x12, 0xd0, 0x11, 0xe6, 0xce, 0x53, 0xe0, 0x6b, 0x17, 0x03, 0xbf, 0x32, 0x01, 0xca, + 0x50, 0xc4, 0x91, 0x8b, 0x39, 0x4b, 0xc0, 0x8b, 0x0b, 0xc0, 0xbf, 0x2f, 0x2c, 0x67, 0x23, 0x4f, + 0x8f, 0x4f, 0x45, 0x9e, 0x05, 0x2f, 0x5d, 0x0c, 0x3c, 0x15, 0x79, 0x86, 0xe2, 0xa7, 0x70, 0x65, + 0x12, 0x79, 0xdb, 0xf7, 0x7b, 0x09, 0xc1, 0xba, 0x20, 0xd8, 0x9f, 0x4f, 0xc0, 0xad, 0x33, 0x1c, + 0x97, 0x92, 0x04, 0x04, 0x90, 0x62, 0xe8, 0xc3, 0x3b, 0xd3, 0x49, 0x64, 0x78, 0xca, 0x17, 0xe6, + 0xd9, 0x9d, 0xca, 0x25, 0xcd, 0x76, 0x0a, 0x35, 0xb1, 0xa6, 0xa8, 0xef, 0x25, 0x0c, 0xfa, 0x02, + 0x86, 0xcf, 0x62, 0xe3, 0x0c, 0xc3, 0xd6, 0x30, 0x3b, 0x8c, 0x7e, 0x0c, 0x3b, 0x7e, 0x80, 0x9d, + 0x3e, 0xb1, 0x87, 0x01, 0x75, 0x48, 0x8c, 0x0c, 0x02, 0xf9, 0xdd, 0x39, 0xb1, 0x73, 0xfb, 0xcf, + 0xb8, 0x79, 0x06, 0x7b, 0xdb, 0x9f, 0x7e, 0x80, 0xda, 0x70, 0x59, 0xd4, 0xc5, 0x3e, 0xc3, 0xb4, + 0x1f, 0x05, 0x93, 0xe5, 0x59, 0x11, 0xf8, 0x07, 0xf3, 0x6b, 0xf3, 0x48, 0x39, 0x64, 0x18, 0x76, + 0xfc, 0xd9, 0x47, 0xe8, 0xb7, 0x1a, 0x7c, 0xcd, 0xf1, 0x3d, 0x57, 0xa4, 0x85, 0xfb, 0x72, 0x22, + 0xec, 0x30, 0xa0, 0x9d, 0x4e, 0x0e, 0xf1, 0x86, 0x20, 0xfe, 0x30, 0x97, 0xf8, 0xc1, 0x04, 0x45, + 0xc4, 0x70, 0x22, 0x31, 0x72, 0x43, 0xb9, 0xe9, 0x2c, 0x63, 0x6c, 0xfe, 0xb3, 0x0c, 0x9b, 0xb1, + 0xbe, 0xb1, 0xa1, 0xef, 0x31, 0x82, 0xae, 0xc3, 0x46, 0xbb, 0xef, 0x3b, 0x3d, 0xbb, 0x4b, 0x68, + 0xa7, 0x1b, 0x0a, 0x61, 0x5b, 0xb3, 0x2a, 0x62, 0xec, 0xb1, 0x18, 0x42, 0x57, 0x01, 0xa4, 0x49, + 0x48, 0x07, 0x44, 0x48, 0x52, 0xc1, 0xd2, 0xc5, 0xc8, 0x09, 0x1d, 0x10, 0xf4, 0x10, 0xaa, 0x19, + 0x89, 0x34, 0x0a, 0xd7, 0x0a, 0x07, 0x95, 0xc3, 0x6b, 0xaf, 0xd3, 0x46, 0x6b, 0x23, 0x2d, 0x87, + 0xe8, 0x47, 0xb0, 0x93, 0x23, 0x84, 0xc6, 0x9a, 0x00, 0x7b, 0x6f, 0x49, 0x05, 0xb4, 0xd0, 0xac, + 0xea, 0xa1, 0x8f, 0xa1, 0x92, 0xd2, 0x3b, 0xa3, 0x28, 0x10, 0xeb, 0xf9, 0x88, 0xb1, 0xa8, 0x59, + 0x30, 0xd1, 0x37, 0xf4, 0x03, 0xd8, 0x9e, 0x51, 0x36, 0xa3, 0x24, 0x60, 0xf2, 0x57, 0xfb, 0x51, + 0x56, 0xbe, 0xac, 0xda, 0xb4, 0x9e, 0xa1, 0x87, 0x2a, 0x26, 0x29, 0x36, 0xc6, 0xfa, 0x02, 0xb0, + 0xa7, 0xf1, 0xdb, 0x7e, 0x3a, 0x74, 0x71, 0xa8, 0x22, 0x93, 0xe2, 0x82, 0x3e, 0xcf, 0x44, 0xa6, + 0xc0, 0xca, 0x02, 0xec, 0xfd, 0xd7, 0x44, 0x96, 0x86, 0xac, 0x4d, 0xab, 0x16, 0xfa, 0x62, 0x5a, + 0xaf, 0xec, 0x48, 0x98, 0x32, 0x43, 0x5f, 0x10, 0x6a, 0x22, 0x13, 0x0a, 0x37, 0xab, 0x54, 0x72, + 0x90, 0xa1, 0xb3, 0x7c, 0xa5, 0x4a, 0x18, 0xe0, 0x02, 0x0c, 0x79, 0x1a, 0x15, 0xf3, 0xdc, 0x03, + 0x3d, 0xd1, 0x17, 0xa3, 0x22, 0x40, 0xaf, 0x2e, 0x14, 0x27, 0x6b, 0x62, 0xcf, 0x57, 0x75, 0x5a, + 0x89, 0x98, 0xb1, 0xb1, 0x60, 0x55, 0xa7, 0x34, 0xc8, 0xda, 0x48, 0xe9, 0x0e, 0x43, 0x6f, 0x83, + 0xde, 0xc1, 0x4c, 0x62, 0x18, 0xd5, 0x6b, 0xda, 0x81, 0x6e, 0x95, 0x3b, 0x98, 0x89, 0xa7, 0xe8, + 0x7b, 0xb0, 0x99, 0xd5, 0x23, 0x63, 0x73, 0xc1, 0x6a, 0x4f, 0x0b, 0x91, 0xca, 0xbe, 0x9a, 0x51, + 0x20, 0xf4, 0x4b, 0x0d, 0xcc, 0xd7, 0x6b, 0x8f, 0xb1, 0x25, 0x48, 0x3e, 0xf8, 0x37, 0x44, 0x47, + 0xd1, 0xee, 0xbd, 0x46, 0x6d, 0x4c, 0x0c, 0x5b, 0x53, 0xb3, 0x81, 0x6a, 0x50, 0x60, 0xe4, 0x5c, + 0xc9, 0x0b, 0xbf, 0x44, 0xdf, 0x06, 0x3d, 0x99, 0x7b, 0xd5, 0xe8, 0xd4, 0x17, 0xcf, 0xb9, 0x35, + 0x71, 0x30, 0x7f, 0xa7, 0x81, 0x9e, 0x3c, 0xe0, 0x65, 0x1e, 0xe0, 0xa0, 0x47, 0x42, 0x9b, 0xba, + 0x82, 0x43, 0xb7, 0xca, 0x72, 0xe0, 0x89, 0x8b, 0xee, 0x01, 0xb4, 0xa3, 0xb1, 0xdd, 0x27, 0x23, + 0xd2, 0x67, 0xc6, 0xaa, 0xc8, 0xfe, 0x9d, 0x14, 0x53, 0xd2, 0x27, 0x8e, 0x0e, 0x1b, 0xc7, 0xdc, + 0xc8, 0xd2, 0xdb, 0xd1, 0x58, 0x5c, 0x31, 0xf4, 0x1d, 0xa8, 0x30, 0xd2, 0xef, 0xc7, 0xde, 0x85, + 0x25, 0xbc, 0x81, 0x3b, 0x48, 0x77, 0xf3, 0x2b, 0x0d, 0x2a, 0x29, 0xcd, 0x43, 0x06, 0xac, 0x2b, + 0x79, 0x52, 0x61, 0xc6, 0xb7, 0xa8, 0x03, 0xe5, 0x44, 0x41, 0x65, 0x8c, 0x6f, 0x35, 0x64, 0xc7, + 0xdc, 0xe0, 0x1d, 0x73, 0x43, 0x75, 0xcc, 0x8d, 0x07, 0x3e, 0xf5, 0x5a, 0x77, 0x9e, 0xbd, 0xd8, + 0x5b, 0xf9, 0xfd, 0xdf, 0xf7, 0x0e, 0x3a, 0x34, 0xec, 0x46, 0xed, 0x86, 0xe3, 0x0f, 0x9a, 0xaa, + 0xbd, 0x96, 0x3f, 0xb7, 0x99, 0xdb, 0x6b, 0x86, 0xe3, 0x21, 0x61, 0xc2, 0x81, 0x59, 0x09, 0xb8, + 0xf9, 0x0b, 0x0d, 0xd0, 0xac, 0x72, 0xa2, 0x1b, 0x50, 0x4d, 0xe9, 0x6f, 0x52, 0xc6, 0x8d, 0xc9, + 0xe0, 0x13, 0x17, 0x3d, 0x86, 0x72, 0xa2, 0xcc, 0x32, 0xc8, 0x77, 0x97, 0x53, 0x66, 0xb1, 0x4f, + 0xad, 0x58, 0x89, 0xb7, 0x49, 0x61, 0x7b, 0xc6, 0x08, 0x5d, 0x82, 0xa2, 0x4b, 0x3c, 0x7f, 0xa0, + 0xb8, 0xe5, 0x0d, 0xfa, 0x08, 0xd6, 0x95, 0x5b, 0xce, 0x32, 0x49, 0x97, 0x3f, 0xcb, 0x15, 0x3b, + 0x99, 0x7f, 0xd0, 0x60, 0x6b, 0x4a, 0x44, 0xd1, 0x47, 0x50, 0x62, 0x21, 0x0e, 0x23, 0x26, 0xa8, + 0x36, 0xe7, 0xf6, 0x16, 0x89, 0xc7, 0x53, 0x61, 0x6d, 0x29, 0x2f, 0xbe, 0x27, 0xca, 0xb7, 0xab, + 0x8b, 0x59, 0x57, 0x84, 0xa5, 0xab, 0xd5, 0xf9, 0x18, 0xb3, 0x2e, 0x5f, 0xed, 0x0e, 0x75, 0x45, + 0x4f, 0xad, 0x5b, 0xfc, 0x12, 0x7d, 0x03, 0x8a, 0xe2, 0xb1, 0x6a, 0x85, 0xeb, 0x8b, 0xa5, 0xde, + 0x92, 0xc6, 0x66, 0x0f, 0xf4, 0x64, 0x6c, 0xf1, 0x22, 0xbf, 0x1f, 0xe3, 0xcb, 0x12, 0xdd, 0x9c, + 0x53, 0x22, 0x8e, 0x76, 0x4c, 0x07, 0x54, 0x42, 0xaa, 0x4a, 0x29, 0xb2, 0x3f, 0x69, 0x70, 0x39, + 0x77, 0x7f, 0xf8, 0xdf, 0x57, 0xeb, 0xc3, 0x6c, 0xb5, 0xf6, 0x97, 0xd9, 0xcb, 0xe2, 0x34, 0x7e, + 0xa3, 0xc1, 0xd6, 0xd4, 0xa3, 0xc5, 0xa5, 0xfb, 0x24, 0x5b, 0xba, 0x5b, 0x73, 0x57, 0x57, 0x8c, + 0x39, 0xa7, 0x80, 0x9c, 0x85, 0x32, 0x5b, 0xe2, 0x8a, 0x6c, 0xca, 0x56, 0x99, 0xb2, 0x4f, 0xc5, + 0xbd, 0xf9, 0xab, 0x02, 0x94, 0xe3, 0x8d, 0x66, 0x71, 0x3c, 0x33, 0x6f, 0xe2, 0x6a, 0xce, 0x9b, + 0x78, 0x05, 0x4a, 0x94, 0x1d, 0xfb, 0x5e, 0x47, 0x11, 0xa9, 0x3b, 0xf4, 0x31, 0x94, 0xcf, 0x23, + 0xec, 0x85, 0x34, 0x1c, 0x8b, 0xe2, 0xe9, 0xad, 0x1b, 0x3c, 0xc4, 0xbf, 0xbe, 0xd8, 0x7b, 0x5b, + 0x2a, 0x03, 0x73, 0x7b, 0x0d, 0xea, 0x37, 0x07, 0x38, 0xec, 0x36, 0x8e, 0x49, 0x07, 0x3b, 0xe3, + 0x23, 0xe2, 0x58, 0x89, 0x13, 0x3a, 0x82, 0x0a, 0xf1, 0xc2, 0x60, 0xac, 0xf6, 0xac, 0xe2, 0xf2, + 0x18, 0x20, 0xfc, 0xe4, 0xd6, 0x76, 0x0f, 0x4a, 0x03, 0x1c, 0x74, 0xa8, 0x27, 0x3e, 0xa0, 0x96, + 0x04, 0x50, 0x2e, 0xe8, 0x27, 0x60, 0x38, 0xd1, 0x20, 0xea, 0xcb, 0x06, 0xe1, 0x2c, 0xf2, 0x5c, + 0xea, 0x75, 0x6c, 0x81, 0x2e, 0x3e, 0x97, 0x96, 0x84, 0xbb, 0x32, 0x01, 0x79, 0x24, 0x31, 0x1e, + 0x72, 0x08, 0x33, 0x84, 0x4a, 0x6a, 0xc3, 0xe6, 0x95, 0x64, 0xe3, 0x41, 0xdb, 0xef, 0xab, 0x89, + 0x50, 0x77, 0xe8, 0x03, 0x28, 0xca, 0x12, 0xac, 0x2e, 0x4f, 0x29, 0x3d, 0x10, 0x82, 0x35, 0xae, + 0xbd, 0x6a, 0x45, 0x8b, 0x6b, 0xf3, 0x8f, 0x05, 0xf9, 0x2e, 0x8b, 0x06, 0x70, 0xf1, 0x02, 0xb8, + 0xcc, 0xe7, 0xd6, 0x6e, 0x47, 0x63, 0x41, 0x5d, 0xb6, 0x8a, 0x94, 0xb5, 0xa2, 0x31, 0xda, 0x87, + 0x2a, 0xf9, 0x92, 0x38, 0x11, 0x5f, 0x41, 0x27, 0x13, 0xf8, 0xec, 0xe0, 0x7f, 0xbe, 0x00, 0x92, + 0xbc, 0x8b, 0x17, 0xce, 0x7b, 0x66, 0xe5, 0x96, 0x72, 0x56, 0xee, 0x37, 0xa1, 0x70, 0x46, 0xc8, + 0x45, 0x26, 0x92, 0xdb, 0x4f, 0x69, 0x48, 0x79, 0x5a, 0x43, 0xbe, 0x05, 0x97, 0xcf, 0x08, 0xb1, + 0x03, 0xe2, 0xd0, 0x21, 0x25, 0x5e, 0x68, 0x63, 0xd7, 0x0d, 0x08, 0x63, 0xe2, 0xab, 0x54, 0x8f, + 0xbf, 0xd8, 0xce, 0x08, 0xb1, 0x62, 0x8b, 0xfb, 0xd2, 0x20, 0x56, 0x1f, 0x98, 0xa8, 0xcf, 0x5b, + 0x50, 0x16, 0x4d, 0x3e, 0xcf, 0xa0, 0x22, 0x77, 0x69, 0x71, 0xff, 0xc4, 0x35, 0xff, 0x5c, 0x48, + 0x8b, 0xcb, 0x7f, 0x7b, 0x2e, 0x67, 0xea, 0xb9, 0x96, 0x53, 0xcf, 0xef, 0xc2, 0x66, 0xdc, 0xb6, + 0xda, 0x2e, 0xe9, 0x87, 0x58, 0x1d, 0x88, 0xec, 0xcf, 0xd1, 0xb1, 0x58, 0x84, 0x8e, 0xb8, 0xad, + 0x55, 0x1d, 0xa6, 0x6f, 0xf9, 0x7b, 0x3b, 0xc4, 0x63, 0x3f, 0x0a, 0x2f, 0xf4, 0xde, 0x4a, 0x97, + 0xff, 0xef, 0x99, 0xfd, 0x39, 0xa0, 0xd9, 0x0e, 0x7b, 0x41, 0xbf, 0x76, 0xe1, 0x3d, 0xed, 0x2a, + 0x00, 0x09, 0x02, 0x3f, 0xb0, 0x1d, 0xdf, 0x25, 0x62, 0x26, 0xab, 0x96, 0x2e, 0x46, 0x1e, 0xf8, + 0x2e, 0x31, 0x7f, 0xbd, 0x0a, 0xfb, 0xcb, 0x74, 0xdf, 0x6f, 0x60, 0xef, 0x68, 0x01, 0x70, 0x07, + 0xa5, 0xf0, 0x85, 0xe5, 0xa7, 0x4b, 0x10, 0x4b, 0xd5, 0xcc, 0xa6, 0xbf, 0x36, 0x27, 0xfd, 0xe2, + 0x24, 0xfd, 0x5b, 0xb0, 0x2d, 0xd3, 0x77, 0x09, 0x73, 0x02, 0x3a, 0xe4, 0x69, 0x2a, 0x7d, 0xa8, + 0x89, 0x07, 0x47, 0x93, 0x71, 0xf3, 0x04, 0x36, 0x32, 0x07, 0x7f, 0x37, 0x61, 0x33, 0x93, 0x16, + 0x6f, 0x44, 0x0a, 0xfc, 0x7d, 0x49, 0xe7, 0x25, 0xfa, 0x8c, 0xa4, 0x34, 0xb2, 0x41, 0xd5, 0x2d, + 0x3d, 0xae, 0x0d, 0x33, 0x3f, 0x87, 0xad, 0xa9, 0x73, 0xa8, 0x37, 0x04, 0x7c, 0x02, 0x1b, 0x99, + 0xd3, 0xbe, 0x37, 0x83, 0x7a, 0x27, 0xf5, 0x15, 0xa5, 0x80, 0xb3, 0x1e, 0xda, 0xac, 0x07, 0x9a, + 0x3d, 0x7c, 0x46, 0xbb, 0x50, 0x56, 0xa4, 0xb1, 0x4b, 0x72, 0x6f, 0xde, 0x07, 0x63, 0xde, 0x39, + 0xf2, 0x92, 0x59, 0x98, 0xb7, 0x60, 0x7b, 0xe6, 0x0c, 0x2e, 0xb3, 0xa9, 0x16, 0x26, 0x9b, 0xaa, + 0x79, 0x17, 0x76, 0x72, 0x0e, 0xd4, 0x16, 0x86, 0x38, 0x80, 0x9b, 0x4b, 0x1d, 0x85, 0xbd, 0x99, + 0xaa, 0xbf, 0x7f, 0xcc, 0xd3, 0x99, 0x6a, 0x64, 0xd1, 0x16, 0x54, 0x4e, 0x3d, 0x36, 0x24, 0x0e, + 0x3d, 0xa3, 0xc4, 0xad, 0xad, 0x20, 0x80, 0x52, 0xcb, 0xf7, 0x7b, 0xc4, 0xad, 0x69, 0xa8, 0x02, + 0xeb, 0x9f, 0xe2, 0xd0, 0xe9, 0x12, 0xb7, 0xb6, 0x8a, 0xaa, 0xa0, 0x3f, 0xe0, 0xc5, 0xef, 0xf7, + 0x89, 0x5b, 0x2b, 0x1c, 0xda, 0x50, 0x92, 0x07, 0x6e, 0xe8, 0x14, 0xca, 0xf2, 0xea, 0x87, 0x87, + 0xc8, 0xcc, 0xef, 0xfe, 0xd3, 0xff, 0x3c, 0xec, 0xde, 0x58, 0x68, 0x23, 0x4f, 0xef, 0xee, 0x68, + 0x2d, 0xfc, 0xec, 0x65, 0x5d, 0x7b, 0xfe, 0xb2, 0xae, 0xfd, 0xe3, 0x65, 0x5d, 0xfb, 0xea, 0x55, + 0x7d, 0xe5, 0xf9, 0xab, 0xfa, 0xca, 0x5f, 0x5e, 0xd5, 0x57, 0xbe, 0xf8, 0x24, 0xf5, 0x6d, 0xf8, + 0x24, 0x86, 0x3a, 0xc6, 0x6d, 0xd6, 0x4c, 0x80, 0x6f, 0x3b, 0x7e, 0x40, 0xd2, 0xb7, 0x5d, 0x4c, + 0xbd, 0xf8, 0x3f, 0x1d, 0xf1, 0xf5, 0xd8, 0x1c, 0x1d, 0xb6, 0x4b, 0xe2, 0xcf, 0x91, 0xaf, 0xff, + 0x2b, 0x00, 0x00, 0xff, 0xff, 0x35, 0x65, 0x15, 0x4d, 0xf7, 0x19, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1848,6 +2155,30 @@ func (m *StreamRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.ConditionalOrderTriggerFailuresFilter != nil { + { + size, err := m.ConditionalOrderTriggerFailuresFilter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.OrderFailuresFilter != nil { + { + size, err := m.OrderFailuresFilter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } if m.OraclePriceFilter != nil { { size, err := m.OraclePriceFilter.MarshalToSizedBuffer(dAtA[:i]) @@ -1991,6 +2322,34 @@ func (m *StreamResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ConditionalOrderTriggerFailures) > 0 { + for iNdEx := len(m.ConditionalOrderTriggerFailures) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ConditionalOrderTriggerFailures[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + } + if len(m.OrderFailures) > 0 { + for iNdEx := len(m.OrderFailures) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.OrderFailures[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + } if len(m.GasPrice) > 0 { i -= len(m.GasPrice) copy(dAtA[i:], m.GasPrice) @@ -2935,7 +3294,7 @@ func (m *DerivativeTrade) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *TradesFilter) Marshal() (dAtA []byte, err error) { +func (m *OrderFailureUpdate) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2945,24 +3304,141 @@ func (m *TradesFilter) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *TradesFilter) MarshalTo(dAtA []byte) (int, error) { +func (m *OrderFailureUpdate) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *TradesFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *OrderFailureUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.MarketIds) > 0 { - for iNdEx := len(m.MarketIds) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.MarketIds[iNdEx]) - copy(dAtA[i:], m.MarketIds[iNdEx]) - i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketIds[iNdEx]))) - i-- - dAtA[i] = 0x12 - } + if m.ErrorCode != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.ErrorCode)) + i-- + dAtA[i] = 0x20 + } + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x1a + } + if len(m.OrderHash) > 0 { + i -= len(m.OrderHash) + copy(dAtA[i:], m.OrderHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.OrderHash))) + i-- + dAtA[i] = 0x12 + } + if len(m.Account) > 0 { + i -= len(m.Account) + copy(dAtA[i:], m.Account) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Account))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ConditionalOrderTriggerFailureUpdate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConditionalOrderTriggerFailureUpdate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConditionalOrderTriggerFailureUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ErrorDescription) > 0 { + i -= len(m.ErrorDescription) + copy(dAtA[i:], m.ErrorDescription) + i = encodeVarintQuery(dAtA, i, uint64(len(m.ErrorDescription))) + i-- + dAtA[i] = 0x32 + } + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x2a + } + if len(m.OrderHash) > 0 { + i -= len(m.OrderHash) + copy(dAtA[i:], m.OrderHash) + i = encodeVarintQuery(dAtA, i, uint64(len(m.OrderHash))) + i-- + dAtA[i] = 0x22 + } + { + size := m.MarkPrice.Size() + i -= size + if _, err := m.MarkPrice.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.SubaccountId) > 0 { + i -= len(m.SubaccountId) + copy(dAtA[i:], m.SubaccountId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.SubaccountId))) + i-- + dAtA[i] = 0x12 + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TradesFilter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TradesFilter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TradesFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MarketIds) > 0 { + for iNdEx := len(m.MarketIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MarketIds[iNdEx]) + copy(dAtA[i:], m.MarketIds[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketIds[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } if len(m.SubaccountIds) > 0 { for iNdEx := len(m.SubaccountIds) - 1; iNdEx >= 0; iNdEx-- { @@ -3186,6 +3662,79 @@ func (m *OraclePriceFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *OrderFailuresFilter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OrderFailuresFilter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OrderFailuresFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Accounts) > 0 { + for iNdEx := len(m.Accounts) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Accounts[iNdEx]) + copy(dAtA[i:], m.Accounts[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Accounts[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ConditionalOrderTriggerFailuresFilter) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConditionalOrderTriggerFailuresFilter) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ConditionalOrderTriggerFailuresFilter) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MarketIds) > 0 { + for iNdEx := len(m.MarketIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.MarketIds[iNdEx]) + copy(dAtA[i:], m.MarketIds[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.MarketIds[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.SubaccountIds) > 0 { + for iNdEx := len(m.SubaccountIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.SubaccountIds[iNdEx]) + copy(dAtA[i:], m.SubaccountIds[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.SubaccountIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -3243,6 +3792,14 @@ func (m *StreamRequest) Size() (n int) { l = m.OraclePriceFilter.Size() n += 1 + l + sovQuery(uint64(l)) } + if m.OrderFailuresFilter != nil { + l = m.OrderFailuresFilter.Size() + n += 1 + l + sovQuery(uint64(l)) + } + if m.ConditionalOrderTriggerFailuresFilter != nil { + l = m.ConditionalOrderTriggerFailuresFilter.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -3322,6 +3879,18 @@ func (m *StreamResponse) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + if len(m.OrderFailures) > 0 { + for _, e := range m.OrderFailures { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if len(m.ConditionalOrderTriggerFailures) > 0 { + for _, e := range m.ConditionalOrderTriggerFailures { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } return n } @@ -3641,6 +4210,61 @@ func (m *DerivativeTrade) Size() (n int) { return n } +func (m *OrderFailureUpdate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Account) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.OrderHash) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.ErrorCode != 0 { + n += 1 + sovQuery(uint64(m.ErrorCode)) + } + return n +} + +func (m *ConditionalOrderTriggerFailureUpdate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.SubaccountId) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = m.MarkPrice.Size() + n += 1 + l + sovQuery(uint64(l)) + l = len(m.OrderHash) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.ErrorDescription) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func (m *TradesFilter) Size() (n int) { if m == nil { return 0 @@ -3764,11 +4388,47 @@ func (m *OraclePriceFilter) Size() (n int) { return n } -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *OrderFailuresFilter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Accounts) > 0 { + for _, s := range m.Accounts { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n } -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *ConditionalOrderTriggerFailuresFilter) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.SubaccountIds) > 0 { + for _, s := range m.SubaccountIds { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + if len(m.MarketIds) > 0 { + for _, s := range m.MarketIds { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *StreamRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -4159,6 +4819,78 @@ func (m *StreamRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderFailuresFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OrderFailuresFilter == nil { + m.OrderFailuresFilter = &OrderFailuresFilter{} + } + if err := m.OrderFailuresFilter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConditionalOrderTriggerFailuresFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConditionalOrderTriggerFailuresFilter == nil { + m.ConditionalOrderTriggerFailuresFilter = &ConditionalOrderTriggerFailuresFilter{} + } + if err := m.ConditionalOrderTriggerFailuresFilter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -4619,6 +5351,74 @@ func (m *StreamResponse) Unmarshal(dAtA []byte) error { } m.GasPrice = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderFailures", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderFailures = append(m.OrderFailures, &OrderFailureUpdate{}) + if err := m.OrderFailures[len(m.OrderFailures)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConditionalOrderTriggerFailures", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConditionalOrderTriggerFailures = append(m.ConditionalOrderTriggerFailures, &ConditionalOrderTriggerFailureUpdate{}) + if err := m.ConditionalOrderTriggerFailures[len(m.ConditionalOrderTriggerFailures)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -6759,7 +7559,486 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionDelta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PositionDelta == nil { + m.PositionDelta = &v2.PositionDelta{} + } + if err := m.PositionDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Payout", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Payout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeeRecipientAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FeeRecipientAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TradeId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TradeId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OrderFailureUpdate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OrderFailureUpdate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OrderFailureUpdate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Account", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Account = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ErrorCode", wireType) + } + m.ErrorCode = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ErrorCode |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ConditionalOrderTriggerFailureUpdate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConditionalOrderTriggerFailureUpdate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConditionalOrderTriggerFailureUpdate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6787,13 +8066,13 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PositionDelta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -6803,31 +8082,27 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.PositionDelta == nil { - m.PositionDelta = &v2.PositionDelta{} - } - if err := m.PositionDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Payout", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarkPrice", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6855,13 +8130,13 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Payout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MarkPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 7: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6889,13 +8164,11 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 8: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6923,11 +8196,11 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FeeRecipientAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ErrorDescription", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6955,11 +8228,61 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FeeRecipientAddress = string(dAtA[iNdEx:postIndex]) + m.ErrorDescription = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 10: + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TradesFilter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TradesFilter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TradesFilter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -6987,11 +8310,11 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Cid = string(dAtA[iNdEx:postIndex]) + m.SubaccountIds = append(m.SubaccountIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 11: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TradeId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7019,7 +8342,7 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TradeId = string(dAtA[iNdEx:postIndex]) + m.MarketIds = append(m.MarketIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -7042,7 +8365,7 @@ func (m *DerivativeTrade) Unmarshal(dAtA []byte) error { } return nil } -func (m *TradesFilter) Unmarshal(dAtA []byte) error { +func (m *PositionsFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7065,10 +8388,10 @@ func (m *TradesFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: TradesFilter: wiretype end group for non-group") + return fmt.Errorf("proto: PositionsFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: TradesFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PositionsFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -7156,7 +8479,7 @@ func (m *TradesFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *PositionsFilter) Unmarshal(dAtA []byte) error { +func (m *OrdersFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7179,10 +8502,10 @@ func (m *PositionsFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PositionsFilter: wiretype end group for non-group") + return fmt.Errorf("proto: OrdersFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PositionsFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OrdersFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -7270,7 +8593,7 @@ func (m *PositionsFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *OrdersFilter) Unmarshal(dAtA []byte) error { +func (m *OrderbookFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7293,15 +8616,15 @@ func (m *OrdersFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: OrdersFilter: wiretype end group for non-group") + return fmt.Errorf("proto: OrderbookFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: OrdersFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OrderbookFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7329,11 +8652,61 @@ func (m *OrdersFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountIds = append(m.SubaccountIds, string(dAtA[iNdEx:postIndex])) + m.MarketIds = append(m.MarketIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BankBalancesFilter) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BankBalancesFilter: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BankBalancesFilter: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7361,7 +8734,7 @@ func (m *OrdersFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketIds = append(m.MarketIds, string(dAtA[iNdEx:postIndex])) + m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -7384,7 +8757,7 @@ func (m *OrdersFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *OrderbookFilter) Unmarshal(dAtA []byte) error { +func (m *SubaccountDepositsFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7407,15 +8780,15 @@ func (m *OrderbookFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: OrderbookFilter: wiretype end group for non-group") + return fmt.Errorf("proto: SubaccountDepositsFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: OrderbookFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: SubaccountDepositsFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7443,7 +8816,7 @@ func (m *OrderbookFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketIds = append(m.MarketIds, string(dAtA[iNdEx:postIndex])) + m.SubaccountIds = append(m.SubaccountIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -7466,7 +8839,7 @@ func (m *OrderbookFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *BankBalancesFilter) Unmarshal(dAtA []byte) error { +func (m *OraclePriceFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7489,15 +8862,15 @@ func (m *BankBalancesFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BankBalancesFilter: wiretype end group for non-group") + return fmt.Errorf("proto: OraclePriceFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BankBalancesFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OraclePriceFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7525,7 +8898,7 @@ func (m *BankBalancesFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) + m.Symbol = append(m.Symbol, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -7548,7 +8921,7 @@ func (m *BankBalancesFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *SubaccountDepositsFilter) Unmarshal(dAtA []byte) error { +func (m *OrderFailuresFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7571,15 +8944,15 @@ func (m *SubaccountDepositsFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: SubaccountDepositsFilter: wiretype end group for non-group") + return fmt.Errorf("proto: OrderFailuresFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: SubaccountDepositsFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OrderFailuresFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountIds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7607,7 +8980,7 @@ func (m *SubaccountDepositsFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountIds = append(m.SubaccountIds, string(dAtA[iNdEx:postIndex])) + m.Accounts = append(m.Accounts, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -7630,7 +9003,7 @@ func (m *SubaccountDepositsFilter) Unmarshal(dAtA []byte) error { } return nil } -func (m *OraclePriceFilter) Unmarshal(dAtA []byte) error { +func (m *ConditionalOrderTriggerFailuresFilter) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -7653,15 +9026,15 @@ func (m *OraclePriceFilter) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: OraclePriceFilter: wiretype end group for non-group") + return fmt.Errorf("proto: ConditionalOrderTriggerFailuresFilter: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: OraclePriceFilter: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ConditionalOrderTriggerFailuresFilter: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountIds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -7689,7 +9062,39 @@ func (m *OraclePriceFilter) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Symbol = append(m.Symbol, string(dAtA[iNdEx:postIndex])) + m.SubaccountIds = append(m.SubaccountIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MarketIds = append(m.MarketIds, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex diff --git a/chain/tokenfactory/types/genesis.pb.go b/chain/tokenfactory/types/genesis.pb.go index bf6e4160..4856904e 100644 --- a/chain/tokenfactory/types/genesis.pb.go +++ b/chain/tokenfactory/types/genesis.pb.go @@ -81,11 +81,16 @@ func (m *GenesisState) GetFactoryDenoms() []GenesisDenom { // state. The structure contains DenomAuthorityMetadata which defines the // denom's admin. type GenesisDenom struct { - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty" yaml:"denom"` + // The denom + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty" yaml:"denom"` + // The authority metadata AuthorityMetadata DenomAuthorityMetadata `protobuf:"bytes,2,opt,name=authority_metadata,json=authorityMetadata,proto3" json:"authority_metadata" yaml:"authority_metadata"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` - Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` - Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` + // The name + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` + // The symbol + Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` + // The number of decimals + Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` } func (m *GenesisDenom) Reset() { *m = GenesisDenom{} } diff --git a/chain/tokenfactory/types/params.pb.go b/chain/tokenfactory/types/params.pb.go index ff3228f9..cb315c47 100644 --- a/chain/tokenfactory/types/params.pb.go +++ b/chain/tokenfactory/types/params.pb.go @@ -29,6 +29,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Params defines the parameters for the tokenfactory module. type Params struct { + // The denom creation fee DenomCreationFee github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=denom_creation_fee,json=denomCreationFee,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"denom_creation_fee" yaml:"denom_creation_fee"` } diff --git a/chain/tokenfactory/types/query.pb.go b/chain/tokenfactory/types/query.pb.go index 9d7f5742..d5812bed 100644 --- a/chain/tokenfactory/types/query.pb.go +++ b/chain/tokenfactory/types/query.pb.go @@ -116,7 +116,9 @@ func (m *QueryParamsResponse) GetParams() Params { // QueryDenomAuthorityMetadataRequest defines the request structure for the // DenomAuthorityMetadata gRPC query. type QueryDenomAuthorityMetadataRequest struct { - Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty" yaml:"denom"` + // The creator's Injective address + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty" yaml:"denom"` + // The sub-denom SubDenom string `protobuf:"bytes,2,opt,name=sub_denom,json=subDenom,proto3" json:"sub_denom,omitempty" yaml:"sub_denom"` } @@ -170,6 +172,7 @@ func (m *QueryDenomAuthorityMetadataRequest) GetSubDenom() string { // QueryDenomAuthorityMetadataResponse defines the response structure for the // DenomAuthorityMetadata gRPC query. type QueryDenomAuthorityMetadataResponse struct { + // The authority metadata AuthorityMetadata DenomAuthorityMetadata `protobuf:"bytes,1,opt,name=authority_metadata,json=authorityMetadata,proto3" json:"authority_metadata" yaml:"authority_metadata"` } @@ -216,6 +219,7 @@ func (m *QueryDenomAuthorityMetadataResponse) GetAuthorityMetadata() DenomAuthor // QueryDenomsFromCreatorRequest defines the request structure for the // DenomsFromCreator gRPC query. type QueryDenomsFromCreatorRequest struct { + // The creator's Injective address Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty" yaml:"creator"` } @@ -262,6 +266,7 @@ func (m *QueryDenomsFromCreatorRequest) GetCreator() string { // QueryDenomsFromCreatorRequest defines the response structure for the // DenomsFromCreator gRPC query. type QueryDenomsFromCreatorResponse struct { + // The list of denoms Denoms []string `protobuf:"bytes,1,rep,name=denoms,proto3" json:"denoms,omitempty" yaml:"denoms"` } @@ -346,6 +351,7 @@ var xxx_messageInfo_QueryModuleStateRequest proto.InternalMessageInfo // QueryModuleStateResponse is the response type for the // Query/TokenfactoryModuleState RPC method. type QueryModuleStateResponse struct { + // The module state State *GenesisState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` } diff --git a/chain/tokenfactory/types/tx.pb.go b/chain/tokenfactory/types/tx.pb.go index 3d14f747..088b07ab 100644 --- a/chain/tokenfactory/types/tx.pb.go +++ b/chain/tokenfactory/types/tx.pb.go @@ -43,11 +43,15 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // originally set to be the creator, but this can be changed later. The token // denom does not indicate the current admin. type MsgCreateDenom struct { + // The sender's Injective address Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` // subdenom can be up to 44 "alphanumeric" characters long. Subdenom string `protobuf:"bytes,2,opt,name=subdenom,proto3" json:"subdenom,omitempty" yaml:"subdenom"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` - Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` + // The name + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` + // The symbol + Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` + // The number of decimals Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` // true if admins are allowed to burn tokens from other addresses AllowAdminBurn bool `protobuf:"varint,6,opt,name=allow_admin_burn,json=allowAdminBurn,proto3" json:"allow_admin_burn,omitempty" yaml:"allow_admin_burn"` @@ -177,9 +181,12 @@ func (m *MsgCreateDenomResponse) GetNewTokenDenom() string { // MsgMint is the sdk.Msg type for allowing an admin account or other permitted // accounts to mint more of a token. type MsgMint struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` - Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The amount of tokens to mint + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + // The Injective address to receive the tokens + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty" yaml:"receiver"` } func (m *MsgMint) Reset() { *m = MsgMint{} } @@ -275,9 +282,12 @@ var xxx_messageInfo_MsgMintResponse proto.InternalMessageInfo // MsgBurn is the sdk.Msg type for allowing an admin account to burn // a token. type MsgBurn struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` - BurnFromAddress string `protobuf:"bytes,3,opt,name=burnFromAddress,proto3" json:"burnFromAddress,omitempty" yaml:"burn_from_address"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The amount of tokens to burn + Amount types.Coin `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount" yaml:"amount"` + // The Injective address to burn the tokens from + BurnFromAddress string `protobuf:"bytes,3,opt,name=burnFromAddress,proto3" json:"burnFromAddress,omitempty" yaml:"burn_from_address"` } func (m *MsgBurn) Reset() { *m = MsgBurn{} } @@ -373,8 +383,11 @@ var xxx_messageInfo_MsgBurnResponse proto.InternalMessageInfo // MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign // adminship of a denom to a new account type MsgChangeAdmin struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty" yaml:"denom"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The denom + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty" yaml:"denom"` + // The new admin's Injective address NewAdmin string `protobuf:"bytes,3,opt,name=new_admin,json=newAdmin,proto3" json:"new_admin,omitempty" yaml:"new_admin"` } @@ -473,7 +486,9 @@ var xxx_messageInfo_MsgChangeAdminResponse proto.InternalMessageInfo // MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set // the denom's bank metadata type MsgSetDenomMetadata struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The sender's Injective address + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + // The metadata Metadata types1.Metadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata" yaml:"metadata"` AdminBurnDisabled *MsgSetDenomMetadata_AdminBurnDisabled `protobuf:"bytes,3,opt,name=admin_burn_disabled,json=adminBurnDisabled,proto3" json:"admin_burn_disabled,omitempty" yaml:"admin_burn_disabled"` } diff --git a/chain/txfees/osmosis/types/query.pb.go b/chain/txfees/osmosis/types/query.pb.go index 222e2aff..330a3dde 100644 --- a/chain/txfees/osmosis/types/query.pb.go +++ b/chain/txfees/osmosis/types/query.pb.go @@ -68,6 +68,7 @@ func (m *QueryEipBaseFeeRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryEipBaseFeeRequest proto.InternalMessageInfo type QueryEipBaseFeeResponse struct { + // The current chain gas price BaseFee cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=base_fee,json=baseFee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"base_fee" yaml:"base_fee"` } diff --git a/chain/txfees/types/query.pb.go b/chain/txfees/types/query.pb.go index 3c6034d7..de5fa0c7 100644 --- a/chain/txfees/types/query.pb.go +++ b/chain/txfees/types/query.pb.go @@ -31,6 +31,7 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type EipBaseFee struct { + // The current chain gas price BaseFee cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=base_fee,json=baseFee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"base_fee" yaml:"base_fee"` } diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index 926a708a..ae1f3bc9 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -383,12 +383,12 @@ func (c *MockChainClientV2) FetchAggregateMarketVolumes(ctx context.Context, mar return &exchangev2types.QueryAggregateMarketVolumesResponse{}, nil } -func (c *MockChainClientV2) FetchDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryDenomDecimalResponse, error) { - return &exchangev2types.QueryDenomDecimalResponse{}, nil +func (c *MockChainClientV2) FetchAuctionExchangeTransferDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalResponse, error) { + return &exchangev2types.QueryAuctionExchangeTransferDenomDecimalResponse{}, nil } -func (c *MockChainClientV2) FetchDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryDenomDecimalsResponse, error) { - return &exchangev2types.QueryDenomDecimalsResponse{}, nil +func (c *MockChainClientV2) FetchAuctionExchangeTransferDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalsResponse, error) { + return &exchangev2types.QueryAuctionExchangeTransferDenomDecimalsResponse{}, nil } func (c *MockChainClientV2) FetchChainSpotMarkets(ctx context.Context, status string, marketIDs []string) (*exchangev2types.QuerySpotMarketsResponse, error) { @@ -648,6 +648,10 @@ func (c *MockChainClientV2) FetchDenomMinNotionals(ctx context.Context) (*exchan return &exchangev2types.QueryDenomMinNotionalsResponse{}, nil } +func (c *MockChainClientV2) FetchOpenInterest(ctx context.Context, marketId string) (*exchangev2types.QueryOpenInterestResponse, error) { + return &exchangev2types.QueryOpenInterestResponse{}, nil +} + // Tendermint module func (c *MockChainClientV2) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { diff --git a/client/chain/chain_v2.go b/client/chain/chain_v2.go index 44af001f..f92066a4 100644 --- a/client/chain/chain_v2.go +++ b/client/chain/chain_v2.go @@ -161,8 +161,8 @@ type ChainClientV2 interface { FetchAggregateVolumes(ctx context.Context, accounts []string, marketIDs []string) (*exchangev2types.QueryAggregateVolumesResponse, error) FetchAggregateMarketVolume(ctx context.Context, marketId string) (*exchangev2types.QueryAggregateMarketVolumeResponse, error) FetchAggregateMarketVolumes(ctx context.Context, marketIDs []string) (*exchangev2types.QueryAggregateMarketVolumesResponse, error) - FetchDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryDenomDecimalResponse, error) - FetchDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryDenomDecimalsResponse, error) + FetchAuctionExchangeTransferDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalResponse, error) + FetchAuctionExchangeTransferDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalsResponse, error) FetchChainSpotMarkets(ctx context.Context, status string, marketIDs []string) (*exchangev2types.QuerySpotMarketsResponse, error) FetchChainSpotMarket(ctx context.Context, marketId string) (*exchangev2types.QuerySpotMarketResponse, error) FetchChainFullSpotMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangev2types.QueryFullSpotMarketsResponse, error) @@ -219,6 +219,7 @@ type ChainClientV2 interface { FetchMarketBalances(ctx context.Context) (*exchangev2types.QueryMarketBalancesResponse, error) FetchDenomMinNotional(ctx context.Context, denom string) (*exchangev2types.QueryDenomMinNotionalResponse, error) FetchDenomMinNotionals(ctx context.Context) (*exchangev2types.QueryDenomMinNotionalsResponse, error) + FetchOpenInterest(ctx context.Context, marketId string) (*exchangev2types.QueryOpenInterestResponse, error) // Tendermint module FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) @@ -1463,20 +1464,20 @@ func (c *chainClientV2) FetchAggregateMarketVolumes(ctx context.Context, marketI return res, err } -func (c *chainClientV2) FetchDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryDenomDecimalResponse, error) { - req := &exchangev2types.QueryDenomDecimalRequest{ +func (c *chainClientV2) FetchAuctionExchangeTransferDenomDecimal(ctx context.Context, denom string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalResponse, error) { + req := &exchangev2types.QueryAuctionExchangeTransferDenomDecimalRequest{ Denom: denom, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeV2QueryClient.DenomDecimal, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeV2QueryClient.AuctionExchangeTransferDenomDecimal, req) return res, err } -func (c *chainClientV2) FetchDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryDenomDecimalsResponse, error) { - req := &exchangev2types.QueryDenomDecimalsRequest{ +func (c *chainClientV2) FetchAuctionExchangeTransferDenomDecimals(ctx context.Context, denoms []string) (*exchangev2types.QueryAuctionExchangeTransferDenomDecimalsResponse, error) { + req := &exchangev2types.QueryAuctionExchangeTransferDenomDecimalsRequest{ Denoms: denoms, } - res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeV2QueryClient.DenomDecimals, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeV2QueryClient.AuctionExchangeTransferDenomDecimals, req) return res, err } @@ -2002,6 +2003,15 @@ func (c *chainClientV2) FetchDenomMinNotionals(ctx context.Context) (*exchangev2 return res, err } +func (c *chainClientV2) FetchOpenInterest(ctx context.Context, marketId string) (*exchangev2types.QueryOpenInterestResponse, error) { + req := &exchangev2types.QueryOpenInterestRequest{ + MarketId: marketId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeV2QueryClient.OpenInterest, req) + + return res, err +} + // Tendermint module func (c *chainClientV2) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { diff --git a/client/chain/context.go b/client/chain/context.go index 60cc54b1..8381ee73 100644 --- a/client/chain/context.go +++ b/client/chain/context.go @@ -8,6 +8,10 @@ import ( "cosmossdk.io/x/tx/signing" upgradetypes "cosmossdk.io/x/upgrade/types" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + hyperlaneinterchainsecuritytypes "github.com/bcp-innovations/hyperlane-cosmos/x/core/01_interchain_security/types" + hyperlanepostdispatchtypes "github.com/bcp-innovations/hyperlane-cosmos/x/core/02_post_dispatch/types" + hyperlanecoretypes "github.com/bcp-innovations/hyperlane-cosmos/x/core/types" + hyperlanewarptypes "github.com/bcp-innovations/hyperlane-cosmos/x/warp/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/address" @@ -182,6 +186,10 @@ func createInjectiveProtoCodec() (injectiveCodec *codec.ProtoCodec, interfaceReg ibcclienttypes.RegisterInterfaces(interfaceRegistry) ibcconnectiontypes.RegisterInterfaces(interfaceRegistry) ibctransfertypes.RegisterInterfaces(interfaceRegistry) + hyperlanecoretypes.RegisterInterfaces(interfaceRegistry) + hyperlanewarptypes.RegisterInterfaces(interfaceRegistry) + hyperlanepostdispatchtypes.RegisterInterfaces(interfaceRegistry) + hyperlaneinterchainsecuritytypes.RegisterInterfaces(interfaceRegistry) injectiveCodec = codec.NewProtoCodec(interfaceRegistry) diff --git a/client/chain/markets_assistant.go b/client/chain/markets_assistant.go index fa55d24d..fc743b8e 100644 --- a/client/chain/markets_assistant.go +++ b/client/chain/markets_assistant.go @@ -8,7 +8,6 @@ import ( "github.com/shopspring/decimal" "github.com/InjectiveLabs/sdk-go/client/core" - "github.com/InjectiveLabs/sdk-go/client/exchange" ) type TokenMetadata interface { @@ -56,7 +55,7 @@ func NewHumanReadableMarketsAssistant(ctx context.Context, chainClient ChainClie return assistant, err } -func NewMarketsAssistantWithAllTokens(ctx context.Context, exchangeClient exchange.ExchangeClient, chainClient ChainClient) (MarketsAssistant, error) { +func NewMarketsAssistantWithAllTokens(ctx context.Context, chainClient ChainClient) (MarketsAssistant, error) { assistant := newMarketsAssistant() assistant.initializeTokensFromChainDenoms(ctx, chainClient) err := assistant.initializeFromChainV1Markets(ctx, chainClient) @@ -64,7 +63,7 @@ func NewMarketsAssistantWithAllTokens(ctx context.Context, exchangeClient exchan return assistant, err } -func NewHumanReadableMarketsAssistantWithAllTokens(ctx context.Context, exchangeClient exchange.ExchangeClient, chainClient ChainClientV2) (MarketsAssistant, error) { +func NewHumanReadableMarketsAssistantWithAllTokens(ctx context.Context, chainClient ChainClientV2) (MarketsAssistant, error) { assistant := newMarketsAssistant() assistant.initializeTokensFromChainDenoms(ctx, chainClient) err := assistant.initializeFromChainV2Markets(ctx, chainClient) diff --git a/client/chain/markets_assistant_test.go b/client/chain/markets_assistant_test.go index 549135f1..5b485ed3 100644 --- a/client/chain/markets_assistant_test.go +++ b/client/chain/markets_assistant_test.go @@ -16,7 +16,6 @@ import ( exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" "github.com/InjectiveLabs/sdk-go/client/common" "github.com/InjectiveLabs/sdk-go/client/core" - "github.com/InjectiveLabs/sdk-go/client/exchange" ) func TestMarketAssistantCreation(t *testing.T) { @@ -179,8 +178,6 @@ func TestMarketAssistantCreationWithAllTokens(t *testing.T) { network := common.NewNetwork() network.OfficialTokensListURL = httpServer.URL - mockExchange := exchange.MockExchangeClient{} - mockExchange.Network = network mockChain := MockChainClient{} smartDenomMetadata := createSmartDenomMetadata() @@ -193,7 +190,7 @@ func TestMarketAssistantCreationWithAllTokens(t *testing.T) { }) ctx := context.Background() - assistant, err := NewMarketsAssistantWithAllTokens(ctx, &mockExchange, &mockChain) + assistant, err := NewMarketsAssistantWithAllTokens(ctx, &mockChain) assert.NoError(t, err) @@ -365,8 +362,6 @@ func TestHumanReadableMarketAssistantCreationWithAllTokens(t *testing.T) { network := common.NewNetwork() network.OfficialTokensListURL = httpServer.URL - mockExchange := exchange.MockExchangeClient{} - mockExchange.Network = network mockChain := MockChainClientV2{} smartDenomMetadata := createSmartDenomMetadata() @@ -379,7 +374,7 @@ func TestHumanReadableMarketAssistantCreationWithAllTokens(t *testing.T) { }) ctx := context.Background() - assistant, err := NewHumanReadableMarketsAssistantWithAllTokens(ctx, &mockExchange, &mockChain) + assistant, err := NewHumanReadableMarketsAssistantWithAllTokens(ctx, &mockChain) assert.NoError(t, err) diff --git a/client/chain/markets_assistant_test_support.go b/client/chain/markets_assistant_test_support.go index c1e27af7..72a5b2e9 100644 --- a/client/chain/markets_assistant_test_support.go +++ b/client/chain/markets_assistant_test_support.go @@ -187,6 +187,9 @@ func createBTCUSDTChainDerivativeMarketV2() *exchangev2types.DerivativeMarket { MinQuantityTickSize: math.LegacyMustNewDecFromStr("0.0001"), MinNotional: math.LegacyMustNewDecFromStr("1000000"), QuoteDecimals: 6, + OpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Uncapped{}, + }, } return &marketInfo @@ -213,6 +216,9 @@ func createFirstMatchBetBinaryOptionsMarketV2() *exchangev2types.BinaryOptionsMa MinNotional: math.LegacyMustNewDecFromStr("1"), AdminPermissions: 1, QuoteDecimals: 6, + OpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Uncapped{}, + }, } return &market diff --git a/client/exchange/exchange_test_support.go b/client/exchange/exchange_test_support.go deleted file mode 100644 index 9c190157..00000000 --- a/client/exchange/exchange_test_support.go +++ /dev/null @@ -1,333 +0,0 @@ -package exchange - -import ( - "context" - "errors" - - "github.com/InjectiveLabs/sdk-go/client/common" - - accountPB "github.com/InjectiveLabs/sdk-go/exchange/accounts_rpc/pb" - auctionPB "github.com/InjectiveLabs/sdk-go/exchange/auction_rpc/pb" - derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" - insurancePB "github.com/InjectiveLabs/sdk-go/exchange/insurance_rpc/pb" - metaPB "github.com/InjectiveLabs/sdk-go/exchange/meta_rpc/pb" - oraclePB "github.com/InjectiveLabs/sdk-go/exchange/oracle_rpc/pb" - portfolioExchangePB "github.com/InjectiveLabs/sdk-go/exchange/portfolio_rpc/pb" - spotExchangePB "github.com/InjectiveLabs/sdk-go/exchange/spot_exchange_rpc/pb" - "google.golang.org/grpc" -) - -type MockExchangeClient struct { - Network common.Network - SpotMarketsResponses []*spotExchangePB.MarketsResponse - DerivativeMarketsResponses []*derivativeExchangePB.MarketsResponse -} - -var _ ExchangeClient = &MockExchangeClient{} - -func (e *MockExchangeClient) QueryClient() *grpc.ClientConn { - dummyConnection := grpc.ClientConn{} - return &dummyConnection -} - -func (e *MockExchangeClient) GetDerivativeMarket(ctx context.Context, marketId string) (*derivativeExchangePB.MarketResponse, error) { - return &derivativeExchangePB.MarketResponse{}, nil -} - -func (e *MockExchangeClient) GetDerivativeOrderbookV2(ctx context.Context, marketId string, depth int32) (*derivativeExchangePB.OrderbookV2Response, error) { - return &derivativeExchangePB.OrderbookV2Response{}, nil -} - -func (e *MockExchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIDs []string, depth int32) (*derivativeExchangePB.OrderbooksV2Response, error) { - return &derivativeExchangePB.OrderbooksV2Response{}, nil -} - -func (e *MockExchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamDerivativeMarket(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetDerivativeOrders(ctx context.Context, req *derivativeExchangePB.OrdersRequest) (*derivativeExchangePB.OrdersResponse, error) { - return &derivativeExchangePB.OrdersResponse{}, nil -} - -func (e *MockExchangeClient) GetDerivativeMarkets(ctx context.Context, req *derivativeExchangePB.MarketsRequest) (*derivativeExchangePB.MarketsResponse, error) { - var response *derivativeExchangePB.MarketsResponse - var localError error - if len(e.DerivativeMarketsResponses) > 0 { - response = e.DerivativeMarketsResponses[0] - e.DerivativeMarketsResponses = e.DerivativeMarketsResponses[1:] - localError = nil - } else { - response = &derivativeExchangePB.MarketsResponse{} - localError = errors.New("There are no responses configured") - } - - return response, localError -} - -func (e *MockExchangeClient) GetDerivativePositions(ctx context.Context, req *derivativeExchangePB.PositionsRequest) (*derivativeExchangePB.PositionsResponse, error) { - return &derivativeExchangePB.PositionsResponse{}, nil -} - -func (e *MockExchangeClient) GetDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.PositionsV2Request) (*derivativeExchangePB.PositionsV2Response, error) { - return &derivativeExchangePB.PositionsV2Response{}, nil -} - -func (e *MockExchangeClient) GetDerivativeLiquidablePositions(ctx context.Context, req *derivativeExchangePB.LiquidablePositionsRequest) (*derivativeExchangePB.LiquidablePositionsResponse, error) { - return &derivativeExchangePB.LiquidablePositionsResponse{}, nil -} - -func (e *MockExchangeClient) StreamDerivativePositions(ctx context.Context, req *derivativeExchangePB.StreamPositionsRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.StreamPositionsV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsV2Client, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetDerivativeTrades(ctx context.Context, req *derivativeExchangePB.TradesRequest) (*derivativeExchangePB.TradesResponse, error) { - return &derivativeExchangePB.TradesResponse{}, nil -} - -func (e *MockExchangeClient) GetDerivativeTradesV2(ctx context.Context, req *derivativeExchangePB.TradesV2Request) (*derivativeExchangePB.TradesV2Response, error) { - return &derivativeExchangePB.TradesV2Response{}, nil -} - -func (e *MockExchangeClient) StreamDerivativeTrades(ctx context.Context, req *derivativeExchangePB.StreamTradesRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamTradesClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamDerivativeV2Trades(ctx context.Context, req *derivativeExchangePB.StreamTradesV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamTradesV2Client, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetSubaccountDerivativeOrdersList(ctx context.Context, req *derivativeExchangePB.SubaccountOrdersListRequest) (*derivativeExchangePB.SubaccountOrdersListResponse, error) { - return &derivativeExchangePB.SubaccountOrdersListResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountDerivativeTradesList(ctx context.Context, req *derivativeExchangePB.SubaccountTradesListRequest) (*derivativeExchangePB.SubaccountTradesListResponse, error) { - return &derivativeExchangePB.SubaccountTradesListResponse{}, nil -} - -func (e *MockExchangeClient) GetHistoricalDerivativeOrders(ctx context.Context, req *derivativeExchangePB.OrdersHistoryRequest) (*derivativeExchangePB.OrdersHistoryResponse, error) { - return &derivativeExchangePB.OrdersHistoryResponse{}, nil -} - -func (e *MockExchangeClient) StreamHistoricalDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersHistoryRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersHistoryClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetDerivativeFundingPayments(ctx context.Context, req *derivativeExchangePB.FundingPaymentsRequest) (*derivativeExchangePB.FundingPaymentsResponse, error) { - return &derivativeExchangePB.FundingPaymentsResponse{}, nil -} - -func (e *MockExchangeClient) GetDerivativeFundingRates(ctx context.Context, req *derivativeExchangePB.FundingRatesRequest) (*derivativeExchangePB.FundingRatesResponse, error) { - return &derivativeExchangePB.FundingRatesResponse{}, nil -} - -func (e *MockExchangeClient) GetPrice(ctx context.Context, baseSymbol, quoteSymbol, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error) { - return &oraclePB.PriceResponse{}, nil -} - -func (c *MockExchangeClient) FetchPriceV2(ctx context.Context, filters []*oraclePB.PricePayloadV2) (*oraclePB.PriceV2Response, error) { - return &oraclePB.PriceV2Response{}, nil -} - -func (e *MockExchangeClient) GetOracleList(ctx context.Context) (*oraclePB.OracleListResponse, error) { - return &oraclePB.OracleListResponse{}, nil -} - -func (e *MockExchangeClient) StreamPrices(ctx context.Context, baseSymbol, quoteSymbol, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetAuction(ctx context.Context, round int64) (*auctionPB.AuctionEndpointResponse, error) { - return &auctionPB.AuctionEndpointResponse{}, nil -} - -func (e *MockExchangeClient) GetAuctions(ctx context.Context) (*auctionPB.AuctionsResponse, error) { - return &auctionPB.AuctionsResponse{}, nil -} - -func (e *MockExchangeClient) StreamBids(ctx context.Context) (auctionPB.InjectiveAuctionRPC_StreamBidsClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) FetchInjBurnt(ctx context.Context) (*auctionPB.InjBurntEndpointResponse, error) { - return &auctionPB.InjBurntEndpointResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountsList(ctx context.Context, accountAddress string) (*accountPB.SubaccountsListResponse, error) { - return &accountPB.SubaccountsListResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountBalance(ctx context.Context, subaccountId, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) { - return &accountPB.SubaccountBalanceEndpointResponse{}, nil -} - -func (e *MockExchangeClient) StreamSubaccountBalance(ctx context.Context, subaccountId string) (accountPB.InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetSubaccountBalancesList(ctx context.Context, subaccountId string) (*accountPB.SubaccountBalancesListResponse, error) { - return &accountPB.SubaccountBalancesListResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountHistory(ctx context.Context, req *accountPB.SubaccountHistoryRequest) (*accountPB.SubaccountHistoryResponse, error) { - return &accountPB.SubaccountHistoryResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountOrderSummary(ctx context.Context, req *accountPB.SubaccountOrderSummaryRequest) (*accountPB.SubaccountOrderSummaryResponse, error) { - return &accountPB.SubaccountOrderSummaryResponse{}, nil -} - -func (e *MockExchangeClient) GetOrderStates(ctx context.Context, req *accountPB.OrderStatesRequest) (*accountPB.OrderStatesResponse, error) { - return &accountPB.OrderStatesResponse{}, nil -} - -func (e *MockExchangeClient) GetPortfolio(ctx context.Context, accountAddress string) (*accountPB.PortfolioResponse, error) { - return &accountPB.PortfolioResponse{}, nil -} - -func (e *MockExchangeClient) GetRewards(ctx context.Context, req *accountPB.RewardsRequest) (*accountPB.RewardsResponse, error) { - return &accountPB.RewardsResponse{}, nil -} - -func (e *MockExchangeClient) GetSpotOrders(ctx context.Context, req *spotExchangePB.OrdersRequest) (*spotExchangePB.OrdersResponse, error) { - return &spotExchangePB.OrdersResponse{}, nil -} - -func (e *MockExchangeClient) GetSpotOrderbookV2(ctx context.Context, marketId string, depth int32) (*spotExchangePB.OrderbookV2Response, error) { - return &spotExchangePB.OrderbookV2Response{}, nil -} - -func (e *MockExchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIDs []string, depth int32) (*spotExchangePB.OrderbooksV2Response, error) { - return &spotExchangePB.OrderbooksV2Response{}, nil -} - -func (e *MockExchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetSpotMarkets(ctx context.Context, req *spotExchangePB.MarketsRequest) (*spotExchangePB.MarketsResponse, error) { - var response *spotExchangePB.MarketsResponse - var localError error - if len(e.SpotMarketsResponses) > 0 { - response = e.SpotMarketsResponses[0] - e.SpotMarketsResponses = e.SpotMarketsResponses[1:] - localError = nil - } else { - response = &spotExchangePB.MarketsResponse{} - localError = errors.New("There are no responses configured") - } - - return response, localError -} - -func (e *MockExchangeClient) GetSpotMarket(ctx context.Context, marketId string) (*spotExchangePB.MarketResponse, error) { - return &spotExchangePB.MarketResponse{}, nil -} - -func (e *MockExchangeClient) StreamSpotMarket(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamSpotOrders(ctx context.Context, req *spotExchangePB.StreamOrdersRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrdersClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetSpotTrades(ctx context.Context, req *spotExchangePB.TradesRequest) (*spotExchangePB.TradesResponse, error) { - return &spotExchangePB.TradesResponse{}, nil -} - -func (e *MockExchangeClient) GetSpotTradesV2(ctx context.Context, req *spotExchangePB.TradesV2Request) (*spotExchangePB.TradesV2Response, error) { - return &spotExchangePB.TradesV2Response{}, nil -} - -func (e *MockExchangeClient) StreamSpotTrades(ctx context.Context, req *spotExchangePB.StreamTradesRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamTradesClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamSpotTradesV2(ctx context.Context, req *spotExchangePB.StreamTradesV2Request) (spotExchangePB.InjectiveSpotExchangeRPC_StreamTradesV2Client, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetSubaccountSpotOrdersList(ctx context.Context, req *spotExchangePB.SubaccountOrdersListRequest) (*spotExchangePB.SubaccountOrdersListResponse, error) { - return &spotExchangePB.SubaccountOrdersListResponse{}, nil -} - -func (e *MockExchangeClient) GetSubaccountSpotTradesList(ctx context.Context, req *spotExchangePB.SubaccountTradesListRequest) (*spotExchangePB.SubaccountTradesListResponse, error) { - return &spotExchangePB.SubaccountTradesListResponse{}, nil -} - -func (e *MockExchangeClient) GetHistoricalSpotOrders(ctx context.Context, req *spotExchangePB.OrdersHistoryRequest) (*spotExchangePB.OrdersHistoryResponse, error) { - return &spotExchangePB.OrdersHistoryResponse{}, nil -} - -func (e *MockExchangeClient) StreamHistoricalSpotOrders(ctx context.Context, req *spotExchangePB.StreamOrdersHistoryRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrdersHistoryClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetInsuranceFunds(ctx context.Context, req *insurancePB.FundsRequest) (*insurancePB.FundsResponse, error) { - return &insurancePB.FundsResponse{}, nil -} - -func (e *MockExchangeClient) GetRedemptions(ctx context.Context, req *insurancePB.RedemptionsRequest) (*insurancePB.RedemptionsResponse, error) { - return &insurancePB.RedemptionsResponse{}, nil -} - -func (e *MockExchangeClient) GetAccountPortfolio(ctx context.Context, accountAddress string) (*portfolioExchangePB.AccountPortfolioResponse, error) { - return &portfolioExchangePB.AccountPortfolioResponse{}, nil -} - -func (e *MockExchangeClient) GetAccountPortfolioBalances(ctx context.Context, accountAddress string, usd bool) (*portfolioExchangePB.AccountPortfolioBalancesResponse, error) { - return &portfolioExchangePB.AccountPortfolioBalancesResponse{}, nil -} - -func (e *MockExchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddress, subaccountId, balanceType string) (portfolioExchangePB.InjectivePortfolioRPC_StreamAccountPortfolioClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) StreamKeepalive(ctx context.Context) (metaPB.InjectiveMetaRPC_StreamKeepaliveClient, error) { - return nil, nil -} - -func (e *MockExchangeClient) GetInfo(ctx context.Context, req *metaPB.InfoRequest) (*metaPB.InfoResponse, error) { - return &metaPB.InfoResponse{}, nil -} - -func (e *MockExchangeClient) GetVersion(ctx context.Context, req *metaPB.VersionRequest) (*metaPB.VersionResponse, error) { - return &metaPB.VersionResponse{}, nil -} - -func (c *MockExchangeClient) FetchOpenInterest(ctx context.Context, marketIDs []string) (*derivativeExchangePB.OpenInterestResponse, error) { - return &derivativeExchangePB.OpenInterestResponse{}, nil -} - -func (e *MockExchangeClient) Ping(ctx context.Context, req *metaPB.PingRequest) (*metaPB.PingResponse, error) { - return &metaPB.PingResponse{}, nil -} - -func (e *MockExchangeClient) GetNetwork() common.Network { - return e.Network -} - -func (e *MockExchangeClient) Close() { - -} diff --git a/examples/chain/12_ChainStream/example.go b/examples/chain/12_ChainStream/example.go index ef584b2a..8aa0db72 100644 --- a/examples/chain/12_ChainStream/example.go +++ b/examples/chain/12_ChainStream/example.go @@ -75,6 +75,13 @@ func main() { OraclePriceFilter: &chainstreamv2.OraclePriceFilter{ Symbol: []string{"INJ", "USDT"}, }, + OrderFailuresFilter: &chainstreamv2.OrderFailuresFilter{ + Accounts: []string{"*"}, + }, + ConditionalOrderTriggerFailuresFilter: &chainstreamv2.ConditionalOrderTriggerFailuresFilter{ + SubaccountIds: []string{subaccountId}, + MarketIds: []string{injUsdtPerpMarket}, + }, } ctx := context.Background() diff --git a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go index 215c1b08..896193c4 100644 --- a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go +++ b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go @@ -83,6 +83,9 @@ func main() { QuoteDenom: "peggy0xdAC17F958D2ee523a2206206994597C13D831ec7", MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + OpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Uncapped{}, + }, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go b/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go index e468750d..8a1f1656 100644 --- a/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go +++ b/examples/chain/exchange/25_MsgUpdateDerivativeMarket/example.go @@ -78,6 +78,13 @@ func main() { NewInitialMarginRatio: math.LegacyMustNewDecFromStr("0.4"), NewMaintenanceMarginRatio: math.LegacyMustNewDecFromStr("0.085"), NewReduceMarginRatio: math.LegacyMustNewDecFromStr("0.3"), + NewOpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Capped{ + Capped: &exchangev2types.OpenNotionalCapCapped{ + Value: math.LegacyMustNewDecFromStr("1000"), + }, + }, + }, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/30_MsgOffsetPosition/example.go b/examples/chain/exchange/30_MsgOffsetPosition/example.go new file mode 100644 index 00000000..c2436101 --- /dev/null +++ b/examples/chain/exchange/30_MsgOffsetPosition/example.go @@ -0,0 +1,95 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "os" + "time" + + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + ) + + if err != nil { + panic(err) + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + gasPrice := chainClient.CurrentChainGasPrice(ctx) + // adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) + + marketId := "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + offsettingSubaccountIds := []string{ + "0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000", + "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", + } + + msg := &exchangev2types.MsgOffsetPosition{ + Sender: senderAddress.String(), + SubaccountId: "0x156df4d5bc8e7dd9191433e54bd6a11eeb390921000000000000000000000000", + MarketId: marketId, + OffsettingSubaccountIds: offsettingSubaccountIds, + } + + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.AsyncBroadcastMsg(ctx, msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", "\t") + fmt.Print(string(str)) + + gasPrice = chainClient.CurrentChainGasPrice(ctx) + // adjust gas price to make it valid even if it changes between the time it is requested and the TX is broadcasted + gasPrice = int64(float64(gasPrice) * 1.1) + chainClient.SetGasPrice(gasPrice) +} diff --git a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go index aca520da..9c7c83c1 100644 --- a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go +++ b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go @@ -83,6 +83,9 @@ func main() { ReduceMarginRatio: math.LegacyMustNewDecFromStr("0.3"), MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + OpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Uncapped{}, + }, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go index 126ced71..ebb760dd 100644 --- a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go +++ b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go @@ -84,6 +84,9 @@ func main() { ReduceMarginRatio: math.LegacyMustNewDecFromStr("0.3"), MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + OpenNotionalCap: exchangev2types.OpenNotionalCap{ + Cap: &exchangev2types.OpenNotionalCap_Uncapped{}, + }, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go index 9a40b5bb..83b24815 100644 --- a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go +++ b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go @@ -88,6 +88,18 @@ func main() { }, ) + spot_market_order := chainClient.CreateSpotOrderV2( + defaultSubaccountID, + &chainclient.SpotOrderData{ + OrderType: int32(exchangev2types.OrderType_BUY), //BUY SELL + Quantity: decimal.NewFromFloat(0.1), + Price: decimal.NewFromFloat(22), + FeeRecipient: senderAddress.String(), + MarketId: smarketId, + Cid: uuid.NewString(), + }, + ) + dmarketId := "0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce" damount := decimal.NewFromFloat(0.01) dprice := decimal.RequireFromString("31000") //31,000 @@ -108,6 +120,20 @@ func main() { }, ) + derivative_market_order := chainClient.CreateDerivativeOrderV2( + defaultSubaccountID, + &chainclient.DerivativeOrderData{ + OrderType: int32(exchangev2types.OrderType_BUY), //BUY SELL + Quantity: decimal.NewFromFloat(0.01), + Price: decimal.RequireFromString("33000"), + Leverage: decimal.RequireFromString("2"), + FeeRecipient: senderAddress.String(), + MarketId: dmarketId, + IsReduceOnly: false, + Cid: uuid.NewString(), + }, + ) + msg := exchangev2types.MsgBatchUpdateOrders{ Sender: senderAddress.String(), SubaccountId: defaultSubaccountID.Hex(), @@ -115,6 +141,8 @@ func main() { DerivativeOrdersToCreate: []*exchangev2types.DerivativeOrder{derivative_order}, SpotMarketIdsToCancelAll: smarketIds, DerivativeMarketIdsToCancelAll: dmarketIds, + SpotMarketOrdersToCreate: []*exchangev2types.SpotOrder{spot_market_order}, + DerivativeMarketOrdersToCreate: []*exchangev2types.DerivativeOrder{derivative_market_order}, } // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg diff --git a/examples/chain/exchange/query/66_OpenInterest/example.go b/examples/chain/exchange/query/66_OpenInterest/example.go new file mode 100644 index 00000000..a8601b4b --- /dev/null +++ b/examples/chain/exchange/query/66_OpenInterest/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "os" + + "github.com/InjectiveLabs/sdk-go/client" + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint) + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClientV2( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + marketId := "0x17ef48032cb24375ba7c2e39f384e56433bcab20cbee9a7357e4cba2eb00abe6" + + res, err := chainClient.FetchOpenInterest(ctx, marketId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", "\t") + fmt.Print(string(str)) + +} diff --git a/examples/chain/exchange/query/8_DenomDecimal/example.go b/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go similarity index 94% rename from examples/chain/exchange/query/8_DenomDecimal/example.go rename to examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go index eaae74ed..80e6c925 100644 --- a/examples/chain/exchange/query/8_DenomDecimal/example.go +++ b/examples/chain/exchange/query/8_AuctionExchangeTransferDenomDecimal/example.go @@ -60,7 +60,7 @@ func main() { denom := "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5" - res, err := chainClient.FetchDenomDecimal(ctx, denom) + res, err := chainClient.FetchAuctionExchangeTransferDenomDecimal(ctx, denom) if err != nil { fmt.Println(err) } diff --git a/examples/chain/exchange/query/9_DenomDecimals/example.go b/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go similarity index 94% rename from examples/chain/exchange/query/9_DenomDecimals/example.go rename to examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go index d55717cf..0b7f05c6 100644 --- a/examples/chain/exchange/query/9_DenomDecimals/example.go +++ b/examples/chain/exchange/query/9_AuctionExchangeTransferDenomDecimals/example.go @@ -60,7 +60,7 @@ func main() { denoms := []string{"inj", "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"} - res, err := chainClient.FetchDenomDecimals(ctx, denoms) + res, err := chainClient.FetchAuctionExchangeTransferDenomDecimals(ctx, denoms) if err != nil { fmt.Println(err) } diff --git a/examples/explorer/1_GetTxByHash/example.go b/examples/explorer/1_GetTxByHash/example.go index 0810b670..705bf4ea 100644 --- a/examples/explorer/1_GetTxByHash/example.go +++ b/examples/explorer/1_GetTxByHash/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - network := common.LoadNetwork("mainnet", "sentry") + network := common.LoadNetwork("mainnet", "lb") explorerClient, err := explorerclient.NewExplorerClient(network) if err != nil { panic(err) diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go index abde4f0e..d5c0aef1 100644 --- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go @@ -317,6 +317,8 @@ type AuctionContract struct { StartTimestamp uint64 `protobuf:"varint,8,opt,name=start_timestamp,json=startTimestamp,proto3" json:"start_timestamp,omitempty"` // Auction end timestamp in UNIX millis. EndTimestamp uint64 `protobuf:"varint,9,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"` + // Max round allocation of the auction + MaxRoundAllocation string `protobuf:"bytes,10,opt,name=max_round_allocation,json=maxRoundAllocation,proto3" json:"max_round_allocation,omitempty"` } func (x *AuctionContract) Reset() { @@ -414,6 +416,13 @@ func (x *AuctionContract) GetEndTimestamp() uint64 { return 0 } +func (x *AuctionContract) GetMaxRoundAllocation() string { + if x != nil { + return x.MaxRoundAllocation + } + return "" +} + type Bid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -636,7 +645,7 @@ type AuctionsHistoryV2Response struct { unknownFields protoimpl.UnknownFields // The historical auctions - Auctions []*Auction `protobuf:"bytes,1,rep,name=auctions,proto3" json:"auctions,omitempty"` + Auctions []*AuctionV2Result `protobuf:"bytes,1,rep,name=auctions,proto3" json:"auctions,omitempty"` // Next tokens for pagination Next []string `protobuf:"bytes,2,rep,name=next,proto3" json:"next,omitempty"` } @@ -673,7 +682,7 @@ func (*AuctionsHistoryV2Response) Descriptor() ([]byte, []int) { return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{9} } -func (x *AuctionsHistoryV2Response) GetAuctions() []*Auction { +func (x *AuctionsHistoryV2Response) GetAuctions() []*AuctionV2Result { if x != nil { return x.Auctions } @@ -687,6 +696,170 @@ func (x *AuctionsHistoryV2Response) GetNext() []string { return nil } +type AuctionV2Result struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address of the auction winner + Winner string `protobuf:"bytes,1,opt,name=winner,proto3" json:"winner,omitempty"` + // Coins in the basket + Basket []*CoinPrices `protobuf:"bytes,2,rep,name=basket,proto3" json:"basket,omitempty"` + WinningBidAmount string `protobuf:"bytes,3,opt,name=winning_bid_amount,json=winningBidAmount,proto3" json:"winning_bid_amount,omitempty"` + Round uint64 `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"` + // Auction end timestamp in UNIX millis. + EndTimestamp int64 `protobuf:"zigzag64,5,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"` + // UpdatedAt timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Contract *AuctionContract `protobuf:"bytes,7,opt,name=contract,proto3" json:"contract,omitempty"` +} + +func (x *AuctionV2Result) Reset() { + *x = AuctionV2Result{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuctionV2Result) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuctionV2Result) ProtoMessage() {} + +func (x *AuctionV2Result) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AuctionV2Result.ProtoReflect.Descriptor instead. +func (*AuctionV2Result) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *AuctionV2Result) GetWinner() string { + if x != nil { + return x.Winner + } + return "" +} + +func (x *AuctionV2Result) GetBasket() []*CoinPrices { + if x != nil { + return x.Basket + } + return nil +} + +func (x *AuctionV2Result) GetWinningBidAmount() string { + if x != nil { + return x.WinningBidAmount + } + return "" +} + +func (x *AuctionV2Result) GetRound() uint64 { + if x != nil { + return x.Round + } + return 0 +} + +func (x *AuctionV2Result) GetEndTimestamp() int64 { + if x != nil { + return x.EndTimestamp + } + return 0 +} + +func (x *AuctionV2Result) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *AuctionV2Result) GetContract() *AuctionContract { + if x != nil { + return x.Contract + } + return nil +} + +type CoinPrices struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Denom of the coin + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` + // Map of historical prices. + Prices map[string]string `protobuf:"bytes,3,rep,name=prices,proto3" json:"prices,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *CoinPrices) Reset() { + *x = CoinPrices{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CoinPrices) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CoinPrices) ProtoMessage() {} + +func (x *CoinPrices) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CoinPrices.ProtoReflect.Descriptor instead. +func (*CoinPrices) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *CoinPrices) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *CoinPrices) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *CoinPrices) GetPrices() map[string]string { + if x != nil { + return x.Prices + } + return nil +} + type AuctionV2Request struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -699,7 +872,7 @@ type AuctionV2Request struct { func (x *AuctionV2Request) Reset() { *x = AuctionV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -712,7 +885,7 @@ func (x *AuctionV2Request) String() string { func (*AuctionV2Request) ProtoMessage() {} func (x *AuctionV2Request) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -725,7 +898,7 @@ func (x *AuctionV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionV2Request.ProtoReflect.Descriptor instead. func (*AuctionV2Request) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{12} } func (x *AuctionV2Request) GetRound() int64 { @@ -740,14 +913,23 @@ type AuctionV2Response struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The auction - Auction *Auction `protobuf:"bytes,1,opt,name=auction,proto3" json:"auction,omitempty"` + // Account address of the auction winner + Winner string `protobuf:"bytes,1,opt,name=winner,proto3" json:"winner,omitempty"` + // Coins in the basket + Basket []*CoinPrices `protobuf:"bytes,2,rep,name=basket,proto3" json:"basket,omitempty"` + WinningBidAmount string `protobuf:"bytes,3,opt,name=winning_bid_amount,json=winningBidAmount,proto3" json:"winning_bid_amount,omitempty"` + Round uint64 `protobuf:"varint,4,opt,name=round,proto3" json:"round,omitempty"` + // Auction end timestamp in UNIX millis. + EndTimestamp int64 `protobuf:"zigzag64,5,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"` + // UpdatedAt timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + Contract *AuctionContract `protobuf:"bytes,7,opt,name=contract,proto3" json:"contract,omitempty"` } func (x *AuctionV2Response) Reset() { *x = AuctionV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -760,7 +942,7 @@ func (x *AuctionV2Response) String() string { func (*AuctionV2Response) ProtoMessage() {} func (x *AuctionV2Response) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -773,12 +955,54 @@ func (x *AuctionV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionV2Response.ProtoReflect.Descriptor instead. func (*AuctionV2Response) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{13} } -func (x *AuctionV2Response) GetAuction() *Auction { +func (x *AuctionV2Response) GetWinner() string { if x != nil { - return x.Auction + return x.Winner + } + return "" +} + +func (x *AuctionV2Response) GetBasket() []*CoinPrices { + if x != nil { + return x.Basket + } + return nil +} + +func (x *AuctionV2Response) GetWinningBidAmount() string { + if x != nil { + return x.WinningBidAmount + } + return "" +} + +func (x *AuctionV2Response) GetRound() uint64 { + if x != nil { + return x.Round + } + return 0 +} + +func (x *AuctionV2Response) GetEndTimestamp() int64 { + if x != nil { + return x.EndTimestamp + } + return 0 +} + +func (x *AuctionV2Response) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *AuctionV2Response) GetContract() *AuctionContract { + if x != nil { + return x.Contract } return nil } @@ -798,7 +1022,7 @@ type AccountAuctionsV2Request struct { func (x *AccountAuctionsV2Request) Reset() { *x = AccountAuctionsV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -811,7 +1035,7 @@ func (x *AccountAuctionsV2Request) String() string { func (*AccountAuctionsV2Request) ProtoMessage() {} func (x *AccountAuctionsV2Request) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -824,7 +1048,7 @@ func (x *AccountAuctionsV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountAuctionsV2Request.ProtoReflect.Descriptor instead. func (*AccountAuctionsV2Request) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{14} } func (x *AccountAuctionsV2Request) GetAddress() string { @@ -857,12 +1081,14 @@ type AccountAuctionsV2Response struct { Auctions []*AccountAuctionV2 `protobuf:"bytes,1,rep,name=auctions,proto3" json:"auctions,omitempty"` // Next tokens for pagination Next []string `protobuf:"bytes,2,rep,name=next,proto3" json:"next,omitempty"` + // Total number of auctions + Total int64 `protobuf:"zigzag64,3,opt,name=total,proto3" json:"total,omitempty"` } func (x *AccountAuctionsV2Response) Reset() { *x = AccountAuctionsV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -875,7 +1101,7 @@ func (x *AccountAuctionsV2Response) String() string { func (*AccountAuctionsV2Response) ProtoMessage() {} func (x *AccountAuctionsV2Response) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -888,7 +1114,7 @@ func (x *AccountAuctionsV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountAuctionsV2Response.ProtoReflect.Descriptor instead. func (*AccountAuctionsV2Response) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{15} } func (x *AccountAuctionsV2Response) GetAuctions() []*AccountAuctionV2 { @@ -905,6 +1131,13 @@ func (x *AccountAuctionsV2Response) GetNext() []string { return nil } +func (x *AccountAuctionsV2Response) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + type AccountAuctionV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -914,14 +1147,14 @@ type AccountAuctionV2 struct { Round uint64 `protobuf:"varint,2,opt,name=round,proto3" json:"round,omitempty"` AmountDeposited string `protobuf:"bytes,3,opt,name=amount_deposited,json=amountDeposited,proto3" json:"amount_deposited,omitempty"` // Whether the auction rewards can be claimed. - IsClaimable bool `protobuf:"varint,4,opt,name=is_claimable,json=isClaimable,proto3" json:"is_claimable,omitempty"` - ClaimedAssets []*ClaimedAssets `protobuf:"bytes,5,rep,name=claimed_assets,json=claimedAssets,proto3" json:"claimed_assets,omitempty"` + IsClaimable bool `protobuf:"varint,4,opt,name=is_claimable,json=isClaimable,proto3" json:"is_claimable,omitempty"` + ClaimedAssets []*CoinPrices `protobuf:"bytes,5,rep,name=claimed_assets,json=claimedAssets,proto3" json:"claimed_assets,omitempty"` } func (x *AccountAuctionV2) Reset() { *x = AccountAuctionV2{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -934,7 +1167,7 @@ func (x *AccountAuctionV2) String() string { func (*AccountAuctionV2) ProtoMessage() {} func (x *AccountAuctionV2) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -947,7 +1180,7 @@ func (x *AccountAuctionV2) ProtoReflect() protoreflect.Message { // Deprecated: Use AccountAuctionV2.ProtoReflect.Descriptor instead. func (*AccountAuctionV2) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{16} } func (x *AccountAuctionV2) GetId() uint64 { @@ -978,68 +1211,13 @@ func (x *AccountAuctionV2) GetIsClaimable() bool { return false } -func (x *AccountAuctionV2) GetClaimedAssets() []*ClaimedAssets { +func (x *AccountAuctionV2) GetClaimedAssets() []*CoinPrices { if x != nil { return x.ClaimedAssets } return nil } -type ClaimedAssets struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *ClaimedAssets) Reset() { - *x = ClaimedAssets{} - if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ClaimedAssets) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClaimedAssets) ProtoMessage() {} - -func (x *ClaimedAssets) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ClaimedAssets.ProtoReflect.Descriptor instead. -func (*ClaimedAssets) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{15} -} - -func (x *ClaimedAssets) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *ClaimedAssets) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - type StreamBidsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1049,7 +1227,7 @@ type StreamBidsRequest struct { func (x *StreamBidsRequest) Reset() { *x = StreamBidsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1240,7 @@ func (x *StreamBidsRequest) String() string { func (*StreamBidsRequest) ProtoMessage() {} func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1075,7 +1253,7 @@ func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBidsRequest.ProtoReflect.Descriptor instead. func (*StreamBidsRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{16} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{17} } type StreamBidsResponse struct { @@ -1094,7 +1272,7 @@ type StreamBidsResponse struct { func (x *StreamBidsResponse) Reset() { *x = StreamBidsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1107,7 +1285,7 @@ func (x *StreamBidsResponse) String() string { func (*StreamBidsResponse) ProtoMessage() {} func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1120,7 +1298,7 @@ func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBidsResponse.ProtoReflect.Descriptor instead. func (*StreamBidsResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{17} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{18} } func (x *StreamBidsResponse) GetBidder() string { @@ -1160,7 +1338,7 @@ type InjBurntEndpointRequest struct { func (x *InjBurntEndpointRequest) Reset() { *x = InjBurntEndpointRequest{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1173,7 +1351,7 @@ func (x *InjBurntEndpointRequest) String() string { func (*InjBurntEndpointRequest) ProtoMessage() {} func (x *InjBurntEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1186,7 +1364,7 @@ func (x *InjBurntEndpointRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InjBurntEndpointRequest.ProtoReflect.Descriptor instead. func (*InjBurntEndpointRequest) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{18} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{19} } type InjBurntEndpointResponse struct { @@ -1200,7 +1378,7 @@ type InjBurntEndpointResponse struct { func (x *InjBurntEndpointResponse) Reset() { *x = InjBurntEndpointResponse{} if protoimpl.UnsafeEnabled { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1213,7 +1391,7 @@ func (x *InjBurntEndpointResponse) String() string { func (*InjBurntEndpointResponse) ProtoMessage() {} func (x *InjBurntEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1226,7 +1404,7 @@ func (x *InjBurntEndpointResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InjBurntEndpointResponse.ProtoReflect.Descriptor instead. func (*InjBurntEndpointResponse) Descriptor() ([]byte, []int) { - return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{19} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{20} } func (x *InjBurntEndpointResponse) GetTotalInjBurnt() string { @@ -1278,7 +1456,7 @@ var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{ 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0xde, 0x02, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6c, 0x75, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, @@ -1300,137 +1478,183 @@ var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{ 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, - 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, - 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, - 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x66, 0x0a, 0x18, - 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, - 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, - 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, - 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x19, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, - 0x74, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x4d, 0x0a, 0x11, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x18, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x74, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, - 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, - 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x4b, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x0d, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x3d, 0x0a, - 0x0d, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x7f, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x22, 0x19, 0x0a, 0x17, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, - 0x18, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x6a, 0x5f, 0x62, 0x75, 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, - 0x74, 0x32, 0x8e, 0x06, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, + 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, + 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x66, + 0x0a, 0x18, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, + 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, + 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x19, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x61, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0xb0, 0x02, 0x0a, 0x0f, + 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x06, 0x62, 0x61, 0x73, 0x6b, + 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, + 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0xbc, + 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x12, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, + 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xb2, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, + 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x64, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x22, 0x65, 0x0a, 0x18, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x43, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x61, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x73, 0x52, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7f, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x19, 0x0a, 0x17, 0x49, 0x6e, 0x6a, + 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x18, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x6a, 0x5f, 0x62, 0x75, + 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x32, 0x8e, 0x06, 0x0a, 0x13, 0x49, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, + 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5e, 0x0a, 0x09, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x27, 0x2e, + 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x76, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x76, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, - 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, - 0x10, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, - 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, - 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x10, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1445,7 +1669,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP() []byte { return file_goadesign_goagen_injective_auction_rpc_proto_rawDescData } -var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_goadesign_goagen_injective_auction_rpc_proto_goTypes = []interface{}{ (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse @@ -1457,16 +1681,18 @@ var file_goadesign_goagen_injective_auction_rpc_proto_goTypes = []interface{}{ (*AuctionsResponse)(nil), // 7: injective_auction_rpc.AuctionsResponse (*AuctionsHistoryV2Request)(nil), // 8: injective_auction_rpc.AuctionsHistoryV2Request (*AuctionsHistoryV2Response)(nil), // 9: injective_auction_rpc.AuctionsHistoryV2Response - (*AuctionV2Request)(nil), // 10: injective_auction_rpc.AuctionV2Request - (*AuctionV2Response)(nil), // 11: injective_auction_rpc.AuctionV2Response - (*AccountAuctionsV2Request)(nil), // 12: injective_auction_rpc.AccountAuctionsV2Request - (*AccountAuctionsV2Response)(nil), // 13: injective_auction_rpc.AccountAuctionsV2Response - (*AccountAuctionV2)(nil), // 14: injective_auction_rpc.AccountAuctionV2 - (*ClaimedAssets)(nil), // 15: injective_auction_rpc.ClaimedAssets - (*StreamBidsRequest)(nil), // 16: injective_auction_rpc.StreamBidsRequest - (*StreamBidsResponse)(nil), // 17: injective_auction_rpc.StreamBidsResponse - (*InjBurntEndpointRequest)(nil), // 18: injective_auction_rpc.InjBurntEndpointRequest - (*InjBurntEndpointResponse)(nil), // 19: injective_auction_rpc.InjBurntEndpointResponse + (*AuctionV2Result)(nil), // 10: injective_auction_rpc.AuctionV2Result + (*CoinPrices)(nil), // 11: injective_auction_rpc.CoinPrices + (*AuctionV2Request)(nil), // 12: injective_auction_rpc.AuctionV2Request + (*AuctionV2Response)(nil), // 13: injective_auction_rpc.AuctionV2Response + (*AccountAuctionsV2Request)(nil), // 14: injective_auction_rpc.AccountAuctionsV2Request + (*AccountAuctionsV2Response)(nil), // 15: injective_auction_rpc.AccountAuctionsV2Response + (*AccountAuctionV2)(nil), // 16: injective_auction_rpc.AccountAuctionV2 + (*StreamBidsRequest)(nil), // 17: injective_auction_rpc.StreamBidsRequest + (*StreamBidsResponse)(nil), // 18: injective_auction_rpc.StreamBidsResponse + (*InjBurntEndpointRequest)(nil), // 19: injective_auction_rpc.InjBurntEndpointRequest + (*InjBurntEndpointResponse)(nil), // 20: injective_auction_rpc.InjBurntEndpointResponse + nil, // 21: injective_auction_rpc.CoinPrices.PricesEntry } var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{ 2, // 0: injective_auction_rpc.AuctionEndpointResponse.auction:type_name -> injective_auction_rpc.Auction @@ -1474,29 +1700,33 @@ var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{ 3, // 2: injective_auction_rpc.Auction.basket:type_name -> injective_auction_rpc.Coin 4, // 3: injective_auction_rpc.Auction.contract:type_name -> injective_auction_rpc.AuctionContract 2, // 4: injective_auction_rpc.AuctionsResponse.auctions:type_name -> injective_auction_rpc.Auction - 2, // 5: injective_auction_rpc.AuctionsHistoryV2Response.auctions:type_name -> injective_auction_rpc.Auction - 2, // 6: injective_auction_rpc.AuctionV2Response.auction:type_name -> injective_auction_rpc.Auction - 14, // 7: injective_auction_rpc.AccountAuctionsV2Response.auctions:type_name -> injective_auction_rpc.AccountAuctionV2 - 15, // 8: injective_auction_rpc.AccountAuctionV2.claimed_assets:type_name -> injective_auction_rpc.ClaimedAssets - 0, // 9: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:input_type -> injective_auction_rpc.AuctionEndpointRequest - 6, // 10: injective_auction_rpc.InjectiveAuctionRPC.Auctions:input_type -> injective_auction_rpc.AuctionsRequest - 8, // 11: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:input_type -> injective_auction_rpc.AuctionsHistoryV2Request - 10, // 12: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:input_type -> injective_auction_rpc.AuctionV2Request - 12, // 13: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:input_type -> injective_auction_rpc.AccountAuctionsV2Request - 16, // 14: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest - 18, // 15: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:input_type -> injective_auction_rpc.InjBurntEndpointRequest - 1, // 16: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse - 7, // 17: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse - 9, // 18: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:output_type -> injective_auction_rpc.AuctionsHistoryV2Response - 11, // 19: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:output_type -> injective_auction_rpc.AuctionV2Response - 13, // 20: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:output_type -> injective_auction_rpc.AccountAuctionsV2Response - 17, // 21: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse - 19, // 22: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:output_type -> injective_auction_rpc.InjBurntEndpointResponse - 16, // [16:23] is the sub-list for method output_type - 9, // [9:16] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 10, // 5: injective_auction_rpc.AuctionsHistoryV2Response.auctions:type_name -> injective_auction_rpc.AuctionV2Result + 11, // 6: injective_auction_rpc.AuctionV2Result.basket:type_name -> injective_auction_rpc.CoinPrices + 4, // 7: injective_auction_rpc.AuctionV2Result.contract:type_name -> injective_auction_rpc.AuctionContract + 21, // 8: injective_auction_rpc.CoinPrices.prices:type_name -> injective_auction_rpc.CoinPrices.PricesEntry + 11, // 9: injective_auction_rpc.AuctionV2Response.basket:type_name -> injective_auction_rpc.CoinPrices + 4, // 10: injective_auction_rpc.AuctionV2Response.contract:type_name -> injective_auction_rpc.AuctionContract + 16, // 11: injective_auction_rpc.AccountAuctionsV2Response.auctions:type_name -> injective_auction_rpc.AccountAuctionV2 + 11, // 12: injective_auction_rpc.AccountAuctionV2.claimed_assets:type_name -> injective_auction_rpc.CoinPrices + 0, // 13: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:input_type -> injective_auction_rpc.AuctionEndpointRequest + 6, // 14: injective_auction_rpc.InjectiveAuctionRPC.Auctions:input_type -> injective_auction_rpc.AuctionsRequest + 8, // 15: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:input_type -> injective_auction_rpc.AuctionsHistoryV2Request + 12, // 16: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:input_type -> injective_auction_rpc.AuctionV2Request + 14, // 17: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:input_type -> injective_auction_rpc.AccountAuctionsV2Request + 17, // 18: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest + 19, // 19: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:input_type -> injective_auction_rpc.InjBurntEndpointRequest + 1, // 20: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse + 7, // 21: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse + 9, // 22: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:output_type -> injective_auction_rpc.AuctionsHistoryV2Response + 13, // 23: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:output_type -> injective_auction_rpc.AuctionV2Response + 15, // 24: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:output_type -> injective_auction_rpc.AccountAuctionsV2Response + 18, // 25: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse + 20, // 26: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:output_type -> injective_auction_rpc.InjBurntEndpointResponse + 20, // [20:27] is the sub-list for method output_type + 13, // [13:20] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_goadesign_goagen_injective_auction_rpc_proto_init() } @@ -1626,7 +1856,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuctionV2Request); i { + switch v := v.(*AuctionV2Result); i { case 0: return &v.state case 1: @@ -1638,7 +1868,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuctionV2Response); i { + switch v := v.(*CoinPrices); i { case 0: return &v.state case 1: @@ -1650,7 +1880,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountAuctionsV2Request); i { + switch v := v.(*AuctionV2Request); i { case 0: return &v.state case 1: @@ -1662,7 +1892,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountAuctionsV2Response); i { + switch v := v.(*AuctionV2Response); i { case 0: return &v.state case 1: @@ -1674,7 +1904,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountAuctionV2); i { + switch v := v.(*AccountAuctionsV2Request); i { case 0: return &v.state case 1: @@ -1686,7 +1916,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClaimedAssets); i { + switch v := v.(*AccountAuctionsV2Response); i { case 0: return &v.state case 1: @@ -1698,7 +1928,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamBidsRequest); i { + switch v := v.(*AccountAuctionV2); i { case 0: return &v.state case 1: @@ -1710,7 +1940,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamBidsResponse); i { + switch v := v.(*StreamBidsRequest); i { case 0: return &v.state case 1: @@ -1722,7 +1952,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InjBurntEndpointRequest); i { + switch v := v.(*StreamBidsResponse); i { case 0: return &v.state case 1: @@ -1734,6 +1964,18 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { } } file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InjBurntEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InjBurntEndpointResponse); i { case 0: return &v.state @@ -1752,7 +1994,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_goadesign_goagen_injective_auction_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/go.mod b/go.mod index 327c1f95..b2f1c323 100644 --- a/go.mod +++ b/go.mod @@ -13,11 +13,12 @@ require ( github.com/CosmWasm/wasmd v0.53.2 github.com/InjectiveLabs/suplog v1.3.3 github.com/bandprotocol/bandchain-packet v0.0.0-00010101000000-000000000000 + github.com/bcp-innovations/hyperlane-cosmos v0.0.0-00010101000000-000000000000 github.com/btcsuite/btcd v0.24.2 github.com/btcsuite/btcd/btcutil v1.1.6 github.com/cometbft/cometbft v1.0.1 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.50.9 + github.com/cosmos/cosmos-sdk v0.50.12 github.com/cosmos/go-bip39 v1.0.0 github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/ibc-go/v8 v8.6.1 @@ -80,14 +81,13 @@ require ( github.com/cockroachdb/errors v1.11.3 // indirect github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 // indirect github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect - github.com/cockroachdb/pebble v1.1.4 // indirect + github.com/cockroachdb/pebble v1.1.5 // indirect github.com/cockroachdb/redact v1.1.6 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/coder/websocket v1.8.13 // indirect github.com/cometbft/cometbft-db v1.0.4 // indirect github.com/cometbft/cometbft/api v1.0.0 // indirect - github.com/consensys/bavard v0.1.30 // indirect - github.com/consensys/gnark-crypto v0.17.0 // indirect + github.com/consensys/gnark-crypto v0.18.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/cosmos-db v1.1.1 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect @@ -113,6 +113,7 @@ require ( github.com/ethereum/go-verkle v0.2.2 // indirect github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/ferranbt/fastssz v0.1.4 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/getsentry/sentry-go v0.31.1 // indirect github.com/go-kit/log v0.2.1 // indirect @@ -154,6 +155,7 @@ require ( github.com/jmhodges/levigo v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/linxGnu/grocksdb v1.9.8 // indirect @@ -162,9 +164,9 @@ require ( github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/minio/sha256-simd v1.0.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect @@ -230,43 +232,45 @@ require ( gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect pgregory.net/rapid v1.1.0 // indirect - rsc.io/tmplfunc v0.0.3 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) replace ( - cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.13-evm-comet1-inj.6 - cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.13-evm-comet1-inj.6 - cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.13-evm-comet1-inj.6 - cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.13-evm-comet1-inj.6 - cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.13-evm-comet1-inj.6 + cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj + cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj + cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj + cosmossdk.io/errors => github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj + cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj + cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj + cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj + cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj + cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.14-inj + cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj + cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj - github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.53.3-evm-comet1-inj + github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.53.3-inj.2 github.com/bandprotocol/bandchain-packet => github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 + github.com/bcp-innovations/hyperlane-cosmos => github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj github.com/coder/websocket => github.com/InjectiveLabs/websocket v1.8.13 - github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.3 - github.com/cometbft/cometbft/api => github.com/injectivelabs/cometbft/api v1.0.0-inj.2 - github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.13-evm-comet1-inj.6 + github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.4 + github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2 + github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj - github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/InjectiveLabs/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0-evm-comet1-inj - github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-evm-comet1-inj - github.com/cosmos/ibc-go/modules/apps/callbacks => github.com/InjectiveLabs/ibc-go/modules/apps/callbacks v0.2.0-evm-comet1-inj - github.com/cosmos/ibc-go/modules/capability => github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-evm-comet1-inj - github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.7.0-evm-comet1-inj + github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/InjectiveLabs/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0-inj.3 + github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj.3 + github.com/cosmos/ibc-go/modules/apps/callbacks => github.com/InjectiveLabs/ibc-go/modules/apps/callbacks v0.2.0-inj.3 + github.com/cosmos/ibc-go/modules/capability => github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3 + github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3 - github.com/ethereum/go-ethereum => github.com/InjectiveLabs/go-ethereum v1.15.11-inj + // geth dev + github.com/ethereum/go-ethereum => github.com/InjectiveLabs/go-ethereum v1.16.3-inj github.com/improbable-eng/grpc-web => github.com/maxim-inj/grpc-web v0.15.0-inj github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2 - github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-evm-comet1-inj + github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-inj.8 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/tyler-smith/go-bip39 => github.com/InjectiveLabs/go-bip39 v1.1.0 diff --git a/go.sum b/go.sum index 08bb87ab..2ebc440a 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,6 @@ cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= cosmossdk.io/depinject v1.1.0 h1:wLan7LG35VM7Yo6ov0jId3RHWCGRhe8E8bsuARorl5E= cosmossdk.io/depinject v1.1.0/go.mod h1:kkI5H9jCGHeKeYWXTqYdruogYrEeWvBQCw1Pj4/eCFI= -cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= -cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM= cosmossdk.io/log v1.4.1/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU= cosmossdk.io/math v1.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= @@ -69,42 +67,48 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapp github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 h1:ZnvCV/lzjWmBwuGbkAz+okucfJEyEzkU9GYK3tKU9cU= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1/go.mod h1:QELTDYiwnbAqIgTF9zeKr+hVlK6eVyt6Nxmh6/1mmzQ= -github.com/InjectiveLabs/cometbft v1.0.1-inj.3 h1:wVl4vPhyTh6uuwT0BfH3pbF9W0QqEnZYRgB/2IDFXR0= -github.com/InjectiveLabs/cometbft v1.0.1-inj.3/go.mod h1:RgHHndb7wdtm9etmVj4tDn1NynC9YKIEJW9UUI3FCn4= -github.com/InjectiveLabs/cosmos-sdk v0.50.13-evm-comet1-inj.6 h1:dwSnWE/atfvM2SbUGyhfIi+ivJLqDEM3NacN4P+bTHI= -github.com/InjectiveLabs/cosmos-sdk v0.50.13-evm-comet1-inj.6/go.mod h1:8DbOKfQWQL1P4zmwqwgkde/CzWJfpp6EmCRONg6vLGw= -github.com/InjectiveLabs/cosmos-sdk/api v0.50.13-evm-comet1-inj.6 h1:ljdlSVODZo2V8WGEmnxnDZhDmj0AVTluPPRb9POLctk= -github.com/InjectiveLabs/cosmos-sdk/api v0.50.13-evm-comet1-inj.6/go.mod h1:iCp7MYEpKTFW/Tp/zgdeLLIMdll5bFwd5cchKCU/Zd4= -github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.13-evm-comet1-inj.6 h1:B1gMShMREa0QPd/apE25oJms8swbUMce/9wamWqQ6k0= -github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.13-evm-comet1-inj.6/go.mod h1:eKkKWHH8UVlnOKYkaXlm8bJg0aGqjQZHAeh/AEIWZlA= -github.com/InjectiveLabs/cosmos-sdk/core v0.50.13-evm-comet1-inj.6 h1:PtjJ6Ur1oD/PgGraWfttPaJ7ohf4WzDibTnJnpI5BkA= -github.com/InjectiveLabs/cosmos-sdk/core v0.50.13-evm-comet1-inj.6/go.mod h1:01u7jX5X4U/LlkPfEONgYGMTsHtyLPeFm1cPHeLce2Y= -github.com/InjectiveLabs/cosmos-sdk/store v0.50.13-evm-comet1-inj.6 h1:O36Uc0BSPN1CxGGZ9wqQ2/5q+dezPMHok6DO44fVzxk= -github.com/InjectiveLabs/cosmos-sdk/store v0.50.13-evm-comet1-inj.6/go.mod h1:nU5wYnMN3tqAHvK0kUuriS8ic1pY2VO/moBrUnGpGBg= -github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.13-evm-comet1-inj.6 h1:5ecj75xtxyPoVXMpJJ9fyGiI3bVo4QioPo5FamOcrtg= -github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.13-evm-comet1-inj.6/go.mod h1:jAAqnUW5nwAGNSaNiH9zBox31WBH6MbFAKh2rqPMK8Y= -github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.13-evm-comet1-inj.6 h1:mIa0cXM/mzXX0dqQRRHTn+ANliFrkxgro4KHAY5o30g= -github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.13-evm-comet1-inj.6/go.mod h1:sVmI1LxDBhjiyST3iObdp44p56sExIBl2mBOR2BXGdw= -github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.13-evm-comet1-inj.6 h1:PFOoRw+cqP/2CTrecLJGoX3+hjZln3Npe70tRxbXVeY= -github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.13-evm-comet1-inj.6/go.mod h1:QEuHVZ4yBgUTorb0M2wle34bC6vyDNXrvE7INQOde2k= -github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.13-evm-comet1-inj.6 h1:htEIb2uhk+UjWxCexBjslunidtgVJVzfZZj3rBQyXoE= -github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.13-evm-comet1-inj.6/go.mod h1:RzwBnxpUANKmfOnl8uN2v3gIl6+XSh4S1B9lNVxXQNk= -github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.13-evm-comet1-inj.6 h1:+51J7TDAb0tx/d82mjpZL+9F0vXozSvjf3fWh/CzPqw= -github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.13-evm-comet1-inj.6/go.mod h1:9uvjYHCSZimsO1woqmRYk53BfQtDAMv5STCcwhy2CnU= +github.com/InjectiveLabs/cometbft v1.0.1-inj.4 h1:xBu434PJvUZI7fHP8wUs+fRlfqI+flpYbvI5mlE3W6s= +github.com/InjectiveLabs/cometbft v1.0.1-inj.4/go.mod h1:RgHHndb7wdtm9etmVj4tDn1NynC9YKIEJW9UUI3FCn4= +github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2 h1:uXsmBVeBickTjZ2GqPNYXShoboRw1m2Cq1bKv4QCe0o= +github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8= +github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj h1:8ggLVXSVF6hz8VFB5ly1l9os4G4roqSsIzsGtH/8W70= +github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj/go.mod h1:8DbOKfQWQL1P4zmwqwgkde/CzWJfpp6EmCRONg6vLGw= +github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj h1:2cq+e0Qy8OSLcMBrytMJBYXGC6+tdKbE/MtlEErWMj8= +github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj/go.mod h1:iCp7MYEpKTFW/Tp/zgdeLLIMdll5bFwd5cchKCU/Zd4= +github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj h1:sxb0DH6tNIzb4NvAyIBKErmL41Ju9tGM7k5UTR9KaGI= +github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj/go.mod h1:eKkKWHH8UVlnOKYkaXlm8bJg0aGqjQZHAeh/AEIWZlA= +github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj h1:Y+oYpU7fsWvwQS305d7MdYJbMIZ2Ak0TmM7RG1wN0FI= +github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj/go.mod h1:01u7jX5X4U/LlkPfEONgYGMTsHtyLPeFm1cPHeLce2Y= +github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj h1:hm/AI80d643GkzUkP2FvvsUm08Y3QA9P8Vbu5g4R3fk= +github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj/go.mod h1:9rR524Mje4ycQhYRcl2ETVoBz0co/8j2vR0goOPLQfg= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj h1:fhSjBWkDCHWAxX0jYk9eI+mSaADJXvLQZ1PcBJiTnic= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj/go.mod h1:nU5wYnMN3tqAHvK0kUuriS8ic1pY2VO/moBrUnGpGBg= +github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj h1:ZYmoujER7mXiRQUDlsCLd/8dG4eBxABtqo7U68PA/98= +github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj/go.mod h1:jAAqnUW5nwAGNSaNiH9zBox31WBH6MbFAKh2rqPMK8Y= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj h1:heW2NuwrKlly0KKncFJrzDYYcVeh8/k4BdprsGYLyJk= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj/go.mod h1:sVmI1LxDBhjiyST3iObdp44p56sExIBl2mBOR2BXGdw= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj h1:3o7bI2wHJyPyRSfPJxC0qUFi1p+h2CsA56ps4/KVFAM= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj/go.mod h1:QEuHVZ4yBgUTorb0M2wle34bC6vyDNXrvE7INQOde2k= +github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj h1:CMtH/kdfa9cyw2dhANDhMg8YVlffx52jqfcDeo+ZKN4= +github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj/go.mod h1:RzwBnxpUANKmfOnl8uN2v3gIl6+XSh4S1B9lNVxXQNk= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj h1:bFfBe48u6BXO9H94RLFBx3IhBiHTHxlsQRMMEVLg7SE= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj/go.mod h1:9uvjYHCSZimsO1woqmRYk53BfQtDAMv5STCcwhy2CnU= github.com/InjectiveLabs/go-bip39 v1.1.0 h1:pb7szpEmFhxsHYPg+1roFACJRpC3hHE5/SZjInZ4uyE= github.com/InjectiveLabs/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= -github.com/InjectiveLabs/go-ethereum v1.15.11-inj h1:ErgCmRgz/U4rBP4oKmvT/RXLhxRoMKWOuDue7Sl41R0= -github.com/InjectiveLabs/go-ethereum v1.15.11-inj/go.mod h1:LEmqeZSAb2/+Kvx/rH+OocHJqpsYF4rMJ2BSZW4C8jM= -github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-evm-comet1-inj h1:2Yu/dtFIdPJsiPoB/101/iPaCqq1EPYKzU3x4auPxdw= -github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-evm-comet1-inj/go.mod h1:BGt7zt9AM0xdUMJvk8yhfIBl1TQYStqjXC4dplrZH0k= -github.com/InjectiveLabs/ibc-go/v8 v8.7.0-evm-comet1-inj h1:yuSodqSSgIwSQyLUJ45j+jCCUtuYNdo8Vj5YOkKjLx8= -github.com/InjectiveLabs/ibc-go/v8 v8.7.0-evm-comet1-inj/go.mod h1:JnZjgZ9KyhXp3HFjtGXkM2ByyPfJWjAnz2KMCmFK3po= +github.com/InjectiveLabs/go-ethereum v1.16.3-inj h1:Wwtc4lAzgeXQWqgRU54dmduCElDnbiG0PINdprBcbLk= +github.com/InjectiveLabs/go-ethereum v1.16.3-inj/go.mod h1:Lrsc6bt9Gm9RyvhfFK53vboCia8kpF9nv+2Ukntnl+8= +github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj h1:FrfheY6aFibpFK+BRM7lcKfvZY129jeqykj17T6YGuk= +github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj/go.mod h1:qPRUSSE9RTnZYHsfLmXWn7GKy+VYmSAm52Ey6Gz4JSM= +github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3 h1:cgsP+ZYcyNX8EkQicK38acv4B+XtzX+x2EkdkX+Gges= +github.com/InjectiveLabs/ibc-go/modules/capability v1.0.0-inj.3/go.mod h1:bB1YsA/hKL/RmgUIyFEviQo+ydpBo2q7HQmBu5C9bXA= +github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3 h1:VCzrjp0aljrGWG4nrXSOmzRf4ESjaNyUOJ04RF9o85w= +github.com/InjectiveLabs/ibc-go/v8 v8.7.0-inj.3/go.mod h1:eyFRTlvKleMvsByuRDyxBDs/CFtYA9/T1aOAZvDVsj4= github.com/InjectiveLabs/metrics v0.0.10 h1:BoOwXnCtRRIPmq06jcI20pXZYE758eusaCI5jDOoN4U= github.com/InjectiveLabs/metrics v0.0.10/go.mod h1:eYu++0DVUjk/jjV9WgvCo8gQU+16Yoyhp1iu+ghKNME= github.com/InjectiveLabs/suplog v1.3.3 h1:ARIR3lWD9BxcrmqTwgcGBt8t7e10gwOqllUAXa/MfxI= github.com/InjectiveLabs/suplog v1.3.3/go.mod h1:+I9WRgUhzmo1V/n7IkW24kFBFB9ZTPAiXXXCogWxmTM= -github.com/InjectiveLabs/wasmd v0.53.3-evm-comet1-inj h1:Rkn+Bh8ea+LQfXyO+DNpkZdzJKF+qdSjhCFrvV/Mki4= -github.com/InjectiveLabs/wasmd v0.53.3-evm-comet1-inj/go.mod h1:XypBdqKwQGH1vgglKkxwe5jXMNaEIs5rxUNNhHpksNg= +github.com/InjectiveLabs/wasmd v0.53.3-inj.2 h1:A4SRWe0YgGuPMLqDV7yG+eQxTHMWkmwgcYhlmV2zt5I= +github.com/InjectiveLabs/wasmd v0.53.3-inj.2/go.mod h1:co7fr/CXrN/ZAOTpTVWSXlvlr4Az3SAg27os4TfiT/M= github.com/InjectiveLabs/websocket v1.8.13 h1:GTVddOKEzC4EfXplkCN1a6ms4l/81pYP8tocqmddvR4= github.com/InjectiveLabs/websocket v1.8.13/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= @@ -212,18 +216,16 @@ github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0 h1:pU88SPhIFid6/k github.com/cockroachdb/fifo v0.0.0-20240816210425-c5d0cb0b6fc0/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILMqgNeV5jiqR4j+sTuvQNHdf2chuKj1M5k= github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= -github.com/cockroachdb/pebble v1.1.4 h1:5II1uEP4MyHLDnsrbv/EZ36arcb9Mxg3n+owhZ3GrG8= -github.com/cockroachdb/pebble v1.1.4/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/pebble v1.1.5 h1:5AAWCBWbat0uE0blr8qzufZP5tBjkRyy/jWe1QWLnvw= +github.com/cockroachdb/pebble v1.1.5/go.mod h1:17wO9el1YEigxkP/YtV8NtCivQDgoCyBg5c4VR/eOWo= github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/cometbft/cometbft-db v1.0.4 h1:cezb8yx/ZWcF124wqUtAFjAuDksS1y1yXedvtprUFxs= github.com/cometbft/cometbft-db v1.0.4/go.mod h1:M+BtHAGU2XLrpUxo3Nn1nOCcnVCiLM9yx5OuT0u5SCA= -github.com/consensys/bavard v0.1.30 h1:wwAj9lSnMLFXjEclKwyhf7Oslg8EoaFz9u1QGgt0bsk= -github.com/consensys/bavard v0.1.30/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= -github.com/consensys/gnark-crypto v0.17.0 h1:vKDhZMOrySbpZDCvGMOELrHFv/A9mJ7+9I8HEfRZSkI= -github.com/consensys/gnark-crypto v0.17.0/go.mod h1:A2URlMHUT81ifJ0UlLzSlm7TmnE3t7VxEThApdMukJw= +github.com/consensys/gnark-crypto v0.18.0 h1:vIye/FqI50VeAr0B3dx+YjeIvmc3LWz4yEfbWBpTUf0= +github.com/consensys/gnark-crypto v0.18.0/go.mod h1:L3mXGFTe1ZN+RSJ+CLjUt9x7PNdx8ubaYfDROyp2Z8c= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= @@ -250,8 +252,6 @@ github.com/crate-crypto/go-eth-kzg v1.3.0 h1:05GrhASN9kDAidaFJOda6A4BEvgvuXbazXg github.com/crate-crypto/go-eth-kzg v1.3.0/go.mod h1:J9/u5sWfznSObptgfa92Jq8rTswn6ahQWEuiLHOjCUI= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a h1:W8mUrRp6NOVl3J+MYp5kPMoUZPp7aOYHtaua31lwRHg= github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a/go.mod h1:sTwzHBvIzm2RfVCGNEBZgRyjwK40bVoun3ZnGOCafNM= -github.com/crate-crypto/go-kzg-4844 v1.1.0 h1:EN/u9k2TF6OWSHrCCDBBU6GLNMq88OspHHlMnHfoyU4= -github.com/crate-crypto/go-kzg-4844 v1.1.0/go.mod h1:JolLjpSff1tCCJKaJx4psrlEdlXuJEC996PL3tTAFks= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= @@ -260,6 +260,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dchest/siphash v1.2.3 h1:QXwFc8cFOR2dSa/gE6o/HokBMWtLUaNDVd+22aKHeEA= +github.com/dchest/siphash v1.2.3/go.mod h1:0NvQU092bT0ipiFN++/rXm69QG9tVxLAlQHIXMPAkHc= github.com/deckarep/golang-set/v2 v2.8.0 h1:swm0rlPCmdWn9mESxKOjWk8hXSqoxOp+ZlfuyaAdFlQ= github.com/deckarep/golang-set/v2 v2.8.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= @@ -312,8 +314,8 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/ferranbt/fastssz v0.1.2 h1:Dky6dXlngF6Qjc+EfDipAkE83N5I5DE68bY6O0VLNPk= -github.com/ferranbt/fastssz v0.1.2/go.mod h1:X5UPrE2u1UJjxHA8X54u04SBwdAQjG2sFtWs39YxyWs= +github.com/ferranbt/fastssz v0.1.4 h1:OCDB+dYDEQDvAgtAGnTSidK1Pe2tW3nFV40XyMkTeDY= +github.com/ferranbt/fastssz v0.1.4/go.mod h1:Ea3+oeoRGGLGm5shYAeDgu6PGUlcvQhE2fILyD9+tGg= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -362,8 +364,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo= -github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= +github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= @@ -414,7 +416,6 @@ github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBB github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= -github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -500,8 +501,6 @@ github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c h1:qSH github.com/influxdata/influxdb1-client v0.0.0-20220302092344-a9ab5670611c/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 h1:W9WBk7wlPfJLvMCdtV4zPulc4uCPrlywQOmbFOhgQNU= github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= -github.com/injectivelabs/cometbft/api v1.0.0-inj.2 h1:qx3UGv6/wbWQXVIXiwpg6Kr+vZSFY77xohWd9/iEFQc= -github.com/injectivelabs/cometbft/api v1.0.0-inj.2/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -527,6 +526,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -579,9 +579,6 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= -github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= -github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -610,6 +607,8 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow= +github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -675,6 +674,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prysmaticlabs/gohashtree v0.0.4-beta h1:H/EbCuXPeTV3lpKeXGPpEV9gsUpkqOOVnWapUyeWro4= +github.com/prysmaticlabs/gohashtree v0.0.4-beta/go.mod h1:BFdtALS+Ffhg3lGQIHv9HDWuHS8cTvHZzrHWxwOtGOs= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 h1:Qp27Idfgi6ACvFQat5+VJvlYToylpM/hcyLBI3WaKPA= @@ -916,6 +917,7 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -1042,7 +1044,5 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= -rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/injective_data/chain_messages_list.json b/injective_data/chain_messages_list.json index f7708444..a1753cc8 100644 --- a/injective_data/chain_messages_list.json +++ b/injective_data/chain_messages_list.json @@ -36,6 +36,8 @@ "injective.exchange.v1beta1.MsgExternalTransfer", "injective.exchange.v1beta1.MsgIncreasePositionMargin", "injective.exchange.v1beta1.MsgInstantBinaryOptionsMarketLaunch", + "injective.exchange.v1beta1.MsgInstantExpiryFuturesMarketLaunch", + "injective.exchange.v1beta1.MsgInstantPerpetualMarketLaunch", "injective.exchange.v1beta1.MsgInstantSpotMarketLaunch", "injective.exchange.v1beta1.MsgLiquidatePosition", "injective.exchange.v1beta1.MsgPrivilegedExecuteContract", @@ -90,11 +92,11 @@ "injective.exchange.v2.MsgInstantSpotMarketLaunch", "injective.exchange.v2.MsgLiquidatePosition", "injective.exchange.v2.MsgMarketForcedSettlement", + "injective.exchange.v2.MsgOffsetPosition", "injective.exchange.v2.MsgPerpetualMarketLaunch", "injective.exchange.v2.MsgPrivilegedExecuteContract", "injective.exchange.v2.MsgReclaimLockedFunds", "injective.exchange.v2.MsgRewardsOptOut", - "injective.exchange.v2.MsgSetDelegationTransferReceivers", "injective.exchange.v2.MsgSignData", "injective.exchange.v2.MsgSignDoc", "injective.exchange.v2.MsgSpotMarketLaunch", @@ -130,6 +132,23 @@ "injective.oracle.v1beta1.MsgRelayStorkPrices", "injective.oracle.v1beta1.MsgRequestBandIBCRates", "injective.oracle.v1beta1.MsgUpdateParams", + "injective.peggy.v1.MsgBlacklistEthereumAddresses", + "injective.peggy.v1.MsgCancelSendToEth", + "injective.peggy.v1.MsgConfirmBatch", + "injective.peggy.v1.MsgCreateRateLimit", + "injective.peggy.v1.MsgDepositClaim", + "injective.peggy.v1.MsgERC20DeployedClaim", + "injective.peggy.v1.MsgRemoveRateLimit", + "injective.peggy.v1.MsgRequestBatch", + "injective.peggy.v1.MsgRevokeEthereumBlacklist", + "injective.peggy.v1.MsgSendToEth", + "injective.peggy.v1.MsgSetOrchestratorAddresses", + "injective.peggy.v1.MsgSubmitBadSignatureEvidence", + "injective.peggy.v1.MsgUpdateParams", + "injective.peggy.v1.MsgUpdateRateLimit", + "injective.peggy.v1.MsgValsetConfirm", + "injective.peggy.v1.MsgValsetUpdatedClaim", + "injective.peggy.v1.MsgWithdrawClaim", "injective.permissions.v1beta1.MsgClaimVoucher", "injective.permissions.v1beta1.MsgCreateNamespace", "injective.permissions.v1beta1.MsgUpdateActorRoles", diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto index 086b8150..1dbaeb2e 100644 --- a/proto/injective/exchange/v1beta1/exchange.proto +++ b/proto/injective/exchange/v1beta1/exchange.proto @@ -16,6 +16,22 @@ enum AtomicMarketOrderAccessLevel { Everyone = 3; } +message OpenNotionalCap { + oneof cap { + OpenNotionalCapUncapped uncapped = 1; + OpenNotionalCapCapped capped = 2; + } +} + +message OpenNotionalCapUncapped {} + +message OpenNotionalCapCapped { + string value = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + message Params { option (gogoproto.equal) = true; option (amino.name) = "exchange/Params"; @@ -281,6 +297,9 @@ message DerivativeMarket { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 22 [ (gogoproto.nullable) = false ]; } // An object describing a binary options market in Injective Protocol. diff --git a/proto/injective/exchange/v1beta1/query.proto b/proto/injective/exchange/v1beta1/query.proto index 29b0064a..cc2e1354 100644 --- a/proto/injective/exchange/v1beta1/query.proto +++ b/proto/injective/exchange/v1beta1/query.proto @@ -405,7 +405,7 @@ service Query { "/injective/exchange/v1beta1/market_volatility/{market_id}"; } - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets rpc BinaryOptionsMarkets(QueryBinaryMarketsRequest) returns (QueryBinaryMarketsResponse) { option (google.api.http).get = diff --git a/proto/injective/exchange/v1beta1/tx.proto b/proto/injective/exchange/v1beta1/tx.proto index da4c0b7d..cabdd691 100644 --- a/proto/injective/exchange/v1beta1/tx.proto +++ b/proto/injective/exchange/v1beta1/tx.proto @@ -143,8 +143,6 @@ service Msg { rpc AdminUpdateBinaryOptionsMarket(MsgAdminUpdateBinaryOptionsMarket) returns (MsgAdminUpdateBinaryOptionsMarketResponse); - rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); - // UpdateSpotMarket modifies certain spot market fields (admin only) rpc UpdateSpotMarket(MsgUpdateSpotMarket) returns (MsgUpdateSpotMarketResponse); @@ -398,6 +396,76 @@ message MsgInstantSpotMarketLaunch { // response type. message MsgInstantSpotMarketLaunchResponse {} +// MsgInstantPerpetualMarketLaunch defines a SDK message for creating a new +// perpetual futures market by paying listing fee without governance +message MsgInstantPerpetualMarketLaunch { + option (amino.name) = "exchange/MsgInstantPerpetualMarketLaunch"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + // Ticker for the derivative market. + string ticker = 2; + // type of coin to use as the base currency + string quote_denom = 3; + // Oracle base currency + string oracle_base = 4; + // Oracle quote currency + string oracle_quote = 5; + // Scale factor for oracle prices. + uint32 oracle_scale_factor = 6; + // Oracle type + injective.oracle.v1beta1.OracleType oracle_type = 7; + // maker_fee_rate defines the trade fee rate for makers on the perpetual + // market + string maker_fee_rate = 8 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // taker_fee_rate defines the trade fee rate for takers on the perpetual + // market + string taker_fee_rate = 9 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // initial_margin_ratio defines the initial margin ratio for the perpetual + // market + string initial_margin_ratio = 10 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // maintenance_margin_ratio defines the maintenance margin ratio for the + // perpetual market + string maintenance_margin_ratio = 11 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_price_tick_size defines the minimum tick size of the order's price and + // margin + string min_price_tick_size = 12 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_quantity_tick_size defines the minimum tick size of the order's + // quantity + string min_quantity_tick_size = 13 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 14 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +// MsgInstantPerpetualMarketLaunchResponse defines the +// Msg/InstantPerpetualMarketLaunchResponse response type. +message MsgInstantPerpetualMarketLaunchResponse {} + // MsgInstantBinaryOptionsMarketLaunch defines a SDK message for creating a new // perpetual futures market by paying listing fee without governance message MsgInstantBinaryOptionsMarketLaunch { @@ -463,6 +531,77 @@ message MsgInstantBinaryOptionsMarketLaunch { // Msg/InstantBinaryOptionsMarketLaunchResponse response type. message MsgInstantBinaryOptionsMarketLaunchResponse {} +// MsgInstantExpiryFuturesMarketLaunch defines a SDK message for creating a new +// expiry futures market by paying listing fee without governance +message MsgInstantExpiryFuturesMarketLaunch { + option (amino.name) = "exchange/MsgInstantExpiryFuturesMarketLaunch"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + // Ticker for the derivative market. + string ticker = 2; + // type of coin to use as the quote currency + string quote_denom = 3; + // Oracle base currency + string oracle_base = 4; + // Oracle quote currency + string oracle_quote = 5; + // Oracle type + injective.oracle.v1beta1.OracleType oracle_type = 6; + // Scale factor for oracle prices. + uint32 oracle_scale_factor = 7; + // Expiration time of the market + int64 expiry = 8; + // maker_fee_rate defines the trade fee rate for makers on the expiry futures + // market + string maker_fee_rate = 9 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // taker_fee_rate defines the trade fee rate for takers on the expiry futures + // market + string taker_fee_rate = 10 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // initial_margin_ratio defines the initial margin ratio for the derivative + // market + string initial_margin_ratio = 11 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // maintenance_margin_ratio defines the maintenance margin ratio for the + // derivative market + string maintenance_margin_ratio = 12 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_price_tick_size defines the minimum tick size of the order's price and + // margin + string min_price_tick_size = 13 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_quantity_tick_size defines the minimum tick size of the order's + // quantity + string min_quantity_tick_size = 14 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 15 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +// MsgInstantExpiryFuturesMarketLaunchResponse defines the +// Msg/InstantExpiryFuturesMarketLaunch response type. +message MsgInstantExpiryFuturesMarketLaunchResponse {} + // MsgCreateSpotMarketOrder defines a SDK message for creating a new spot market // order. message MsgCreateSpotMarketOrder { diff --git a/proto/injective/exchange/v2/events.proto b/proto/injective/exchange/v2/events.proto index 36f4a496..70c700fc 100644 --- a/proto/injective/exchange/v2/events.proto +++ b/proto/injective/exchange/v2/events.proto @@ -302,6 +302,7 @@ message EventTriggerConditionalMarketOrderFailed { ]; bytes order_hash = 4; string trigger_err = 5; + string cid = 6; } message EventTriggerConditionalLimitOrderFailed { @@ -313,6 +314,7 @@ message EventTriggerConditionalLimitOrderFailed { ]; bytes order_hash = 4; string trigger_err = 5; + string cid = 6; } message SpotOrderV2Changes { diff --git a/proto/injective/exchange/v2/exchange.proto b/proto/injective/exchange/v2/exchange.proto index 56f7507b..bdacaf6a 100644 --- a/proto/injective/exchange/v2/exchange.proto +++ b/proto/injective/exchange/v2/exchange.proto @@ -19,6 +19,7 @@ enum ExecutionType { LimitMatchNewOrder = 4; MarketLiquidation = 5; ExpiryMarketSettlement = 6; + OffsettingPosition = 7; } message Params { @@ -194,16 +195,19 @@ message Params { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; - // DO NOT USE THIS FIELD. It was introduced for a temporary bug fix. - int64 human_readable_upgrade_block_height = 32 [ deprecated = true ]; + reserved 32; // This was the field human_readable_upgrade_block_height // post_only_mode_blocks_amount defines the amount of blocks the post only - // mode will be enabled + // mode will be enabled after a chain upgrade uint64 post_only_mode_blocks_amount = 33; // min_post_only_mode_downtime_duration defines the minimum downtime duration // that must pass before the post only mode is automatically enabled. The // accepted values are the Downtime enum values from the downtime_duration // module string min_post_only_mode_downtime_duration = 34; + // post_only_mode_blocks_amount defines the amount of blocks the post only + // mode will be enabled after the downtime-detector module detects a chain + // downtime + uint64 post_only_mode_blocks_amount_after_downtime = 35; } message NextFundingTimestamp { int64 next_timestamp = 1; } diff --git a/proto/injective/exchange/v2/genesis.proto b/proto/injective/exchange/v2/genesis.proto index d20275e1..bad5b5b0 100644 --- a/proto/injective/exchange/v2/genesis.proto +++ b/proto/injective/exchange/v2/genesis.proto @@ -115,8 +115,10 @@ message GenesisState { // forced closings at genesis repeated string spot_market_ids_scheduled_to_force_close = 28; - // denom_decimals defines the denom decimals for the exchange. - repeated DenomDecimals denom_decimals = 29 [ (gogoproto.nullable) = false ]; + // auction_exchange_transfer_denom_decimals defines the denom decimals for the + // exchange. + repeated DenomDecimals auction_exchange_transfer_denom_decimals = 29 + [ (gogoproto.nullable) = false ]; // conditional_derivative_orderbook contains conditional orderbooks for all // markets (both lmit and market conditional orders) diff --git a/proto/injective/exchange/v2/market.proto b/proto/injective/exchange/v2/market.proto index e5be9d76..61972726 100644 --- a/proto/injective/exchange/v2/market.proto +++ b/proto/injective/exchange/v2/market.proto @@ -14,6 +14,22 @@ enum MarketStatus { Expired = 4; } +message OpenNotionalCap { + oneof cap { + OpenNotionalCapUncapped uncapped = 1; + OpenNotionalCapCapped capped = 2; + } +} + +message OpenNotionalCapUncapped {} + +message OpenNotionalCapCapped { + string value = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + message MarketFeeMultiplier { option (gogoproto.goproto_getters) = false; @@ -153,6 +169,9 @@ message BinaryOptionsMarket { uint32 admin_permissions = 19; // quote token decimals uint32 quote_decimals = 20; + + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 21 [ (gogoproto.nullable) = false ]; } // An object describing a derivative market in the Injective Futures Protocol. @@ -237,6 +256,9 @@ message DerivativeMarket { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 22 [ (gogoproto.nullable) = false ]; } message DerivativeMarketSettlementInfo { diff --git a/proto/injective/exchange/v2/proposal.proto b/proto/injective/exchange/v2/proposal.proto index 6254b1cb..53ac03fb 100644 --- a/proto/injective/exchange/v2/proposal.proto +++ b/proto/injective/exchange/v2/proposal.proto @@ -115,7 +115,8 @@ message BatchExchangeModificationProposal { binary_options_market_launch_proposals = 9; repeated BinaryOptionsMarketParamUpdateProposal binary_options_param_update_proposals = 10; - UpdateDenomDecimalsProposal denom_decimals_update_proposal = 11; + UpdateAuctionExchangeTransferDenomDecimalsProposal + auction_exchange_transfer_denom_decimals_update_proposal = 11; FeeDiscountProposal fee_discount_proposal = 12; @@ -242,12 +243,13 @@ message PerpetualMarketLaunchProposal { (gogoproto.nullable) = false ]; AdminInfo admin_info = 16; - // reduce_margin_ratio defines the ratio of the margin that is reduced string reduce_margin_ratio = 17 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 18 [ (gogoproto.nullable) = false ]; } message BinaryOptionsMarketLaunchProposal { @@ -305,6 +307,8 @@ message BinaryOptionsMarketLaunchProposal { (gogoproto.nullable) = false ]; uint32 admin_permissions = 17; + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 18 [ (gogoproto.nullable) = false ]; } // ExpiryFuturesMarketLaunchProposal defines a SDK message for proposing a new @@ -376,14 +380,14 @@ message ExpiryFuturesMarketLaunchProposal { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; - AdminInfo admin_info = 17; - // reduce_margin_ratio defines the ratio of the margin that is reduced string reduce_margin_ratio = 18 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 19 [ (gogoproto.nullable) = false ]; } message DerivativeMarketParamUpdateProposal { @@ -455,27 +459,23 @@ message DerivativeMarketParamUpdateProposal { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - MarketStatus status = 13; - OracleParams oracle_params = 14; - string ticker = 15 [ (gogoproto.nullable) = true ]; - // min_notional defines the minimum notional (in quote asset) required for // orders in the market string min_notional = 16 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - AdminInfo admin_info = 17; - // reduce_margin_ratio defines the ratio of the margin that is reduced string reduce_margin_ratio = 18 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 19 [ (gogoproto.nullable) = true ]; } message AdminInfo { @@ -498,8 +498,9 @@ message MarketForcedSettlementProposal { ]; } -message UpdateDenomDecimalsProposal { - option (amino.name) = "exchange/UpdateDenomDecimalsProposal"; +message UpdateAuctionExchangeTransferDenomDecimalsProposal { + option (amino.name) = + "exchange/UpdateAuctionExchangeTransferDenomDecimalsProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -519,28 +520,24 @@ message BinaryOptionsMarketParamUpdateProposal { string title = 1; string description = 2; string market_id = 3; - // maker_fee_rate defines the exchange trade fee for makers for the derivative // market string maker_fee_rate = 4 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - // taker_fee_rate defines the exchange trade fee for takers for the derivative // market string taker_fee_rate = 5 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - // relayer_fee_share_rate defines the relayer fee share rate for the // derivative market string relayer_fee_share_rate = 6 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 7 [ @@ -553,7 +550,6 @@ message BinaryOptionsMarketParamUpdateProposal { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; - // expiration timestamp int64 expiration_timestamp = 9; // expiration timestamp @@ -567,15 +563,15 @@ message BinaryOptionsMarketParamUpdateProposal { string admin = 12; MarketStatus status = 13; ProviderOracleParams oracle_params = 14; - string ticker = 15 [ (gogoproto.nullable) = true ]; - // min_notional defines the minimum notional (in quote asset) required for // orders in the market string min_notional = 16 [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; + // open_notional_cap defines the maximum open notional for the market + OpenNotionalCap open_notional_cap = 17 [ (gogoproto.nullable) = true ]; } message ProviderOracleParams { diff --git a/proto/injective/exchange/v2/query.proto b/proto/injective/exchange/v2/query.proto index 9f1a6aff..734ffbac 100644 --- a/proto/injective/exchange/v2/query.proto +++ b/proto/injective/exchange/v2/query.proto @@ -81,18 +81,21 @@ service Query { } // Retrieves the denom decimals for a denom. - rpc DenomDecimal(QueryDenomDecimalRequest) - returns (QueryDenomDecimalResponse) { + rpc AuctionExchangeTransferDenomDecimal( + QueryAuctionExchangeTransferDenomDecimalRequest) + returns (QueryAuctionExchangeTransferDenomDecimalResponse) { option (google.api.http).get = - "/injective/exchange/v2/exchange/denom_decimal/{denom}"; + "/injective/exchange/v2/exchange/" + "auction_exchange_transfer_denom_decimal/{denom}"; } // Retrieves the denom decimals for multiple denoms. Returns all denom // decimals if unspecified. - rpc DenomDecimals(QueryDenomDecimalsRequest) - returns (QueryDenomDecimalsResponse) { - option (google.api.http).get = - "/injective/exchange/v2/exchange/denom_decimals"; + rpc AuctionExchangeTransferDenomDecimals( + QueryAuctionExchangeTransferDenomDecimalsRequest) + returns (QueryAuctionExchangeTransferDenomDecimalsResponse) { + option (google.api.http).get = "/injective/exchange/v2/exchange/" + "auction_exchange_transfer_denom_decimals"; } // Retrieves a list of spot markets. @@ -410,7 +413,7 @@ service Query { "/injective/exchange/v2/market_volatility/{market_id}"; } - // Retrieves a spot market's orderbook by marketID + // Retrieves all binary options markets rpc BinaryOptionsMarkets(QueryBinaryMarketsRequest) returns (QueryBinaryMarketsResponse) { option (google.api.http).get = @@ -478,6 +481,12 @@ service Query { returns (QueryDenomMinNotionalsResponse) { option (google.api.http).get = "/injective/exchange/v2/denom_min_notionals"; } + + // Retrieves a market's open interest + rpc OpenInterest(QueryOpenInterestRequest) + returns (QueryOpenInterestResponse) { + option (google.api.http).get = "/injective/exchange/v2/open_interest"; + } } message Subaccount { @@ -582,24 +591,24 @@ message QueryAggregateMarketVolumeResponse { VolumeRecord volume = 1 [ (gogoproto.nullable) = false ]; } -// QueryDenomDecimalRequest is the request type for the Query/DenomDecimal RPC -// method. -message QueryDenomDecimalRequest { string denom = 1; } +// QueryAuctionExchangeTransferDenomDecimalRequest is the request type for the +// Query/DenomDecimal RPC method. +message QueryAuctionExchangeTransferDenomDecimalRequest { string denom = 1; } // QueryDenomDecimalResponse is the response type for the Query/DenomDecimal RPC // method. -message QueryDenomDecimalResponse { uint64 decimal = 1; } +message QueryAuctionExchangeTransferDenomDecimalResponse { uint64 decimal = 1; } // QueryDenomDecimalsRequest is the request type for the Query/DenomDecimals RPC // method. -message QueryDenomDecimalsRequest { +message QueryAuctionExchangeTransferDenomDecimalsRequest { // denoms can be empty to query all denom decimals repeated string denoms = 1; } // QueryDenomDecimalsRequest is the response type for the Query/DenomDecimals // RPC method. -message QueryDenomDecimalsResponse { +message QueryAuctionExchangeTransferDenomDecimalsResponse { repeated DenomDecimals denom_decimals = 1 [ (gogoproto.nullable) = false ]; } @@ -687,6 +696,8 @@ message QuerySpotOrderbookRequest { message QuerySpotOrderbookResponse { repeated Level buys_price_level = 1; repeated Level sells_price_level = 2; + // the current orderbook sequence number + uint64 seq = 3; } message FullSpotMarket { @@ -871,6 +882,8 @@ message QueryDerivativeOrderbookRequest { message QueryDerivativeOrderbookResponse { repeated Level buys_price_level = 1; repeated Level sells_price_level = 2; + // the current orderbook sequence number + uint64 seq = 3; } // CancellationStrategy is the list of cancellation strategies. @@ -1534,6 +1547,8 @@ message QueryFullSpotOrderbookRequest { message QueryFullSpotOrderbookResponse { repeated TrimmedLimitOrder Bids = 1; repeated TrimmedLimitOrder Asks = 2; + // the current orderbook sequence number + uint64 seq = 3; } message QueryFullDerivativeOrderbookRequest { @@ -1544,6 +1559,8 @@ message QueryFullDerivativeOrderbookRequest { message QueryFullDerivativeOrderbookResponse { repeated TrimmedLimitOrder Bids = 1; repeated TrimmedLimitOrder Asks = 2; + // the current orderbook sequence number + uint64 seq = 3; } message TrimmedLimitOrder { // price of the order (in human readable format) @@ -1635,3 +1652,20 @@ message QueryDenomMinNotionalsRequest {} message QueryDenomMinNotionalsResponse { repeated DenomMinNotional denom_min_notionals = 1; } + +message OpenInterest { + // the market ID + string market_id = 1; + // the open interest of the market + string balance = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message QueryOpenInterestRequest { + // market id + string market_id = 1; +} + +message QueryOpenInterestResponse { OpenInterest amount = 1; } \ No newline at end of file diff --git a/proto/injective/exchange/v2/tx.proto b/proto/injective/exchange/v2/tx.proto index f06bb390..0162d83f 100644 --- a/proto/injective/exchange/v2/tx.proto +++ b/proto/injective/exchange/v2/tx.proto @@ -139,6 +139,9 @@ service Msg { rpc EmergencySettleMarket(MsgEmergencySettleMarket) returns (MsgEmergencySettleMarketResponse); + // OffsetPosition defines a method for offsetting a position + rpc OffsetPosition(MsgOffsetPosition) returns (MsgOffsetPositionResponse); + // IncreasePositionMargin defines a method for increasing margin of a position rpc IncreasePositionMargin(MsgIncreasePositionMargin) returns (MsgIncreasePositionMarginResponse); @@ -219,9 +222,6 @@ service Msg { MsgAtomicMarketOrderFeeMultiplierSchedule) returns (MsgAtomicMarketOrderFeeMultiplierScheduleResponse); - rpc SetDelegationTransferReceivers(MsgSetDelegationTransferReceivers) - returns (MsgSetDelegationTransferReceiversResponse); - rpc CancelPostOnlyMode(MsgCancelPostOnlyMode) returns (MsgCancelPostOnlyModeResponse); } @@ -311,6 +311,9 @@ message MsgUpdateDerivativeMarket { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // (optional) updated value for open_notional_cap + OpenNotionalCap new_open_notional_cap = 10 [ (gogoproto.nullable) = false ]; } message MsgUpdateDerivativeMarketResponse {} @@ -531,6 +534,9 @@ message MsgInstantPerpetualMarketLaunch { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // open_notional_cap defines the cap on the open notional + OpenNotionalCap open_notional_cap = 16 [ (gogoproto.nullable) = false ]; } // MsgInstantPerpetualMarketLaunchResponse defines the @@ -595,6 +601,9 @@ message MsgInstantBinaryOptionsMarketLaunch { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // open_notional_cap defines the cap on the open notional + OpenNotionalCap open_notional_cap = 16 [ (gogoproto.nullable) = false ]; } // MsgInstantBinaryOptionsMarketLaunchResponse defines the @@ -672,6 +681,9 @@ message MsgInstantExpiryFuturesMarketLaunch { (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // open_notional_cap defines the cap on the open notional + OpenNotionalCap open_notional_cap = 17 [ (gogoproto.nullable) = false ]; } // MsgInstantExpiryFuturesMarketLaunchResponse defines the @@ -883,6 +895,15 @@ message MsgBatchUpdateOrders { // the binary options orders to create repeated DerivativeOrder binary_options_orders_to_create = 11 [ (gogoproto.nullable) = true ]; + // the spot market orders to create + repeated SpotOrder spot_market_orders_to_create = 12 + [ (gogoproto.nullable) = true ]; + // the derivative market orders to create + repeated DerivativeOrder derivative_market_orders_to_create = 13 + [ (gogoproto.nullable) = true ]; + // the binary options market orders to create + repeated DerivativeOrder binary_options_market_orders_to_create = 14 + [ (gogoproto.nullable) = true ]; } // MsgBatchUpdateOrdersResponse defines the Msg/BatchUpdateOrders response type. @@ -902,6 +923,15 @@ message MsgBatchUpdateOrdersResponse { repeated string failed_derivative_orders_cids = 10; repeated string created_binary_options_orders_cids = 11; repeated string failed_binary_options_orders_cids = 12; + repeated string spot_market_order_hashes = 13; + repeated string created_spot_market_orders_cids = 14; + repeated string failed_spot_market_orders_cids = 15; + repeated string derivative_market_order_hashes = 16; + repeated string created_derivative_market_orders_cids = 17; + repeated string failed_derivative_market_orders_cids = 18; + repeated string binary_options_market_order_hashes = 19; + repeated string created_binary_options_market_orders_cids = 20; + repeated string failed_binary_options_market_orders_cids = 21; } // A Cosmos-SDK MsgCreateDerivativeMarketOrder @@ -1117,6 +1147,21 @@ message MsgLiquidatePosition { // MsgLiquidatePositionResponse defines the Msg/LiquidatePosition response type. message MsgLiquidatePositionResponse {} +// A Cosmos-SDK MsgOffsetPosition +message MsgOffsetPosition { + option (amino.name) = "exchange/MsgOffsetPosition"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + string subaccount_id = 2; + string market_id = 3; + repeated string offsetting_subaccount_ids = 4; +} + +// MsgOffsetPositionResponse defines the Msg/OffsetPosition +// response type. +message MsgOffsetPositionResponse {} + // A Cosmos-SDK MsgEmergencySettleMarket message MsgEmergencySettleMarket { option (amino.name) = "exchange/MsgEmergencySettleMarket"; @@ -1524,22 +1569,6 @@ message MsgAtomicMarketOrderFeeMultiplierSchedule { message MsgAtomicMarketOrderFeeMultiplierScheduleResponse {} -// MsgSetDelegationTransferReceivers defines a message for setting delegation -// transfer receivers -message MsgSetDelegationTransferReceivers { - option (amino.name) = "exchange/MsgSetDelegationTransferReceivers"; - option (cosmos.msg.v1.signer) = "sender"; - - // the sender's Injective address (must be exchange admin) - string sender = 1; - // list of receiver addresses to set as delegation transfer receivers - repeated string receivers = 2; -} - -// MsgSetDelegationTransferReceiversResponse defines the response for -// MsgSetDelegationTransferReceivers -message MsgSetDelegationTransferReceiversResponse {} - // MsgCancelPostOnlyMode defines a message for canceling post-only mode message MsgCancelPostOnlyMode { option (amino.name) = "exchange/MsgCancelPostOnlyMode"; @@ -1550,4 +1579,4 @@ message MsgCancelPostOnlyMode { } // MsgCancelPostOnlyModeResponse defines the response for MsgCancelPostOnlyMode -message MsgCancelPostOnlyModeResponse {} \ No newline at end of file +message MsgCancelPostOnlyModeResponse {} diff --git a/proto/injective/peggy/v1/events.proto b/proto/injective/peggy/v1/events.proto index e1760f97..0bc0b400 100644 --- a/proto/injective/peggy/v1/events.proto +++ b/proto/injective/peggy/v1/events.proto @@ -181,4 +181,17 @@ message Withdrawal { (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; +} + +enum JailReason { + MissingValsetConfirm = 0; + MissingBatchConfirm = 1; +} + +message EventValidatorJailed { + JailReason reason = 1; + int64 power = 2; + string consensus_address = 3; + string operator_address = 4; + string moniker = 5; } \ No newline at end of file diff --git a/proto/injective/peggy/v1/genesis.proto b/proto/injective/peggy/v1/genesis.proto index 78febe09..9ade1644 100644 --- a/proto/injective/peggy/v1/genesis.proto +++ b/proto/injective/peggy/v1/genesis.proto @@ -7,6 +7,7 @@ import "injective/peggy/v1/msgs.proto"; import "injective/peggy/v1/batch.proto"; import "injective/peggy/v1/attestation.proto"; import "injective/peggy/v1/params.proto"; +import "injective/peggy/v1/rate_limit.proto"; import "cosmos/base/v1beta1/coin.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; @@ -28,4 +29,5 @@ message GenesisState { uint64 last_outgoing_pool_id = 13; Valset last_observed_valset = 14 [ (gogoproto.nullable) = false ]; repeated string ethereum_blacklist = 15; + repeated RateLimit rate_limits = 16; } diff --git a/proto/injective/peggy/v1/msgs.proto b/proto/injective/peggy/v1/msgs.proto index 2858a1f7..98123551 100644 --- a/proto/injective/peggy/v1/msgs.proto +++ b/proto/injective/peggy/v1/msgs.proto @@ -1,15 +1,16 @@ syntax = "proto3"; package injective.peggy.v1; -import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; -import "injective/peggy/v1/types.proto"; -import "injective/peggy/v1/params.proto"; import "google/protobuf/any.proto"; +import "amino/amino.proto"; +import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; -import "amino/amino.proto"; +import "injective/peggy/v1/types.proto"; +import "injective/peggy/v1/params.proto"; +import "injective/peggy/v1/rate_limit.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; @@ -19,37 +20,47 @@ service Msg { rpc ValsetConfirm(MsgValsetConfirm) returns (MsgValsetConfirmResponse) { option (google.api.http).post = "/injective/peggy/v1/valset_confirm"; } + rpc SendToEth(MsgSendToEth) returns (MsgSendToEthResponse) { option (google.api.http).post = "/injective/peggy/v1/send_to_eth"; } + rpc RequestBatch(MsgRequestBatch) returns (MsgRequestBatchResponse) { option (google.api.http).post = "/injective/peggy/v1/request_batch"; } + rpc ConfirmBatch(MsgConfirmBatch) returns (MsgConfirmBatchResponse) { option (google.api.http).post = "/injective/peggy/v1/confirm_batch"; } + rpc DepositClaim(MsgDepositClaim) returns (MsgDepositClaimResponse) { option (google.api.http).post = "/injective/peggy/v1/deposit_claim"; } + rpc WithdrawClaim(MsgWithdrawClaim) returns (MsgWithdrawClaimResponse) { option (google.api.http).post = "/injective/peggy/v1/withdraw_claim"; } + rpc ValsetUpdateClaim(MsgValsetUpdatedClaim) returns (MsgValsetUpdatedClaimResponse) { option (google.api.http).post = "/injective/peggy/v1/valset_updated_claim"; } + rpc ERC20DeployedClaim(MsgERC20DeployedClaim) returns (MsgERC20DeployedClaimResponse) { option (google.api.http).post = "/injective/peggy/v1/erc20_deployed_claim"; } + rpc SetOrchestratorAddresses(MsgSetOrchestratorAddresses) returns (MsgSetOrchestratorAddressesResponse) { option (google.api.http).post = "/injective/peggy/v1/set_orchestrator_address"; } + rpc CancelSendToEth(MsgCancelSendToEth) returns (MsgCancelSendToEthResponse) { option (google.api.http).post = "/injective/peggy/v1/cancel_send_to_eth"; } + rpc SubmitBadSignatureEvidence(MsgSubmitBadSignatureEvidence) returns (MsgSubmitBadSignatureEvidenceResponse) { option (google.api.http).post = @@ -66,6 +77,17 @@ service Msg { // blacklist. rpc RevokeEthereumBlacklist(MsgRevokeEthereumBlacklist) returns (MsgRevokeEthereumBlacklistResponse); + + // CreateRateLimit imposes a (notional) limit on withdrawals for a particular + // Peggy asset + rpc CreateRateLimit(MsgCreateRateLimit) returns (MsgCreateRateLimitResponse); + + // UpdateRateLimit updates the rate limit's metadata for a particular Peggy + // asset + rpc UpdateRateLimit(MsgUpdateRateLimit) returns (MsgUpdateRateLimitResponse); + + // RemoveRateLimit lifts the rate limit for a particular Peggy asset + rpc RemoveRateLimit(MsgRemoveRateLimit) returns (MsgRemoveRateLimitResponse); } // MsgSetOrchestratorAddresses @@ -135,9 +157,15 @@ message MsgSendToEth { option (amino.name) = "peggy/MsgSendToEth"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1; + // The Ethereum address to send the tokens to string eth_dest = 2; + // The amount of tokens to send cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false ]; + // The fee paid for the bridge, distinct from the fee paid to the chain to + // actually send this message in the first place. So a successful send has + // two layers of fees for the user cosmos.base.v1beta1.Coin bridge_fee = 4 [ (gogoproto.nullable) = false ]; } @@ -334,3 +362,78 @@ message MsgRevokeEthereumBlacklist { // MsgRevokeEthereumBlacklistResponse defines the MsgRevokeEthereumBlacklist // response type. message MsgRevokeEthereumBlacklistResponse {} + +// MsgCreateRateLimit is used to impose a (withdrawal) limit for specific ERC20 +// token within a sliding window +message MsgCreateRateLimit { + option (amino.name) = "peggy/MsgCreateRateLimit"; + option (cosmos.msg.v1.signer) = "authority"; + + // address of peggy admin or governance account + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + + // address of the ERC20 token + string token_address = 2; + + // decimals of the ERC20 token + uint32 token_decimals = 3; + + // a Pyth-specific ID used to obtain USD price of the ERC20 token + string token_price_id = 4; + + // the notional USD limit imposed on all outgoing traffic (per token) + string rate_limit_usd = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // the absolute amount of tokens that can be minted on Injective + string absolute_mint_limit = 6 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + + // length of the sliding window in which inbound (outbound) traffic is + // measured + uint64 rate_limit_window = 7; +} + +message MsgCreateRateLimitResponse {} + +message MsgUpdateRateLimit { + option (amino.name) = "peggy/MsgUpdateRateLimit"; + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of peggy admin or governance account + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + + // token_address is the address of rate limited token + string token_address = 2; + + // new_token_price_id is the new Pyth price ID of the rate limited token + string new_token_price_id = 3; + + // new_rate_limit_usd is the new notional limit (on withdrawals) in USD + string new_rate_limit_usd = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // new_rate_limit_window is the new length of the sliding window + uint64 new_rate_limit_window = 5; +} + +message MsgUpdateRateLimitResponse {} + +message MsgRemoveRateLimit { + option (amino.name) = "peggy/MsgRemoveRateLimit"; + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of peggy admin or governance account + string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; + + // token_address is the address of rate limited token + string token_address = 2; +} + +message MsgRemoveRateLimitResponse {} \ No newline at end of file diff --git a/proto/injective/peggy/v1/rate_limit.proto b/proto/injective/peggy/v1/rate_limit.proto new file mode 100644 index 00000000..5db665ac --- /dev/null +++ b/proto/injective/peggy/v1/rate_limit.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package injective.peggy.v1; + +option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; + +import "gogoproto/gogo.proto"; + +message RateLimit { + // address of the ERC20 token + string token_address = 1; + + // decimals of the ERC20 token + uint32 token_decimals = 2; + + // a Pyth-specific ID used to obtain USD price of the ERC20 token + string token_price_id = 3; + + // length of the sliding window in which inbound (outbound) traffic is + // measured + uint64 rate_limit_window = 4; + + // the notional USD limit imposed on all outgoing traffic (per token) + string rate_limit_usd = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // the absolute amount of tokens that can be minted on Injective + string absolute_mint_limit = 6 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + + // transfers that occurred within the sliding window + repeated BridgeTransfer transfers = 7; +} + +message BridgeTransfer { + // quantity that was bridged (chain format) + string amount = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + + // the Injective block at which this amount was bridged + uint64 block_number = 2; + + // type of transfer (withdrawal/deposit) + bool is_deposit = 3; +} \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/genesis.proto b/proto/injective/permissions/v1beta1/genesis.proto index 52d80556..43420050 100644 --- a/proto/injective/permissions/v1beta1/genesis.proto +++ b/proto/injective/permissions/v1beta1/genesis.proto @@ -9,8 +9,10 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod // GenesisState defines the permissions module's genesis state. message GenesisState { - // params defines the parameters of the module. + // params defines the parameters of the module Params params = 1 [ (gogoproto.nullable) = false ]; + // namespaces defines the namespaces of the module repeated Namespace namespaces = 2 [ (gogoproto.nullable) = false ]; + // vouchers defines the vouchers of the module repeated AddressVoucher vouchers = 3; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/params.proto b/proto/injective/permissions/v1beta1/params.proto index 5b731fd6..24943a89 100644 --- a/proto/injective/permissions/v1beta1/params.proto +++ b/proto/injective/permissions/v1beta1/params.proto @@ -12,6 +12,6 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod message Params { option (gogoproto.equal) = true; option (amino.name) = "permissions/Params"; - + // Max amount of gas allowed for wasm hook queries uint64 wasm_hook_query_max_gas = 1; } diff --git a/proto/injective/permissions/v1beta1/permissions.proto b/proto/injective/permissions/v1beta1/permissions.proto index f1657f6c..b9e8cc1d 100644 --- a/proto/injective/permissions/v1beta1/permissions.proto +++ b/proto/injective/permissions/v1beta1/permissions.proto @@ -8,33 +8,44 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod // Namespace defines a permissions namespace message Namespace { - string denom = 1; // tokenfactory denom to which this namespace applies to - string contract_hook = - 2; // address of smart contract to apply code-based restrictions + // The tokenfactory denom to which this namespace applies to + string denom = 1; + // The address of smart contract to apply code-based restrictions + string contract_hook = 2; - repeated Role role_permissions = 3; // permissions for each role - repeated ActorRoles actor_roles = 4; // roles for each actor - repeated RoleManager role_managers = 5; // managers for each role - repeated PolicyStatus policy_statuses = 6; // status for each policy - repeated PolicyManagerCapability policy_manager_capabilities = - 7; // capabilities for each manager for each policy + // permissions for each role + repeated Role role_permissions = 3; + // roles for each actor + repeated ActorRoles actor_roles = 4; + // managers for each role + repeated RoleManager role_managers = 5; + // status for each policy + repeated PolicyStatus policy_statuses = 6; + // capabilities for each manager for each policy + repeated PolicyManagerCapability policy_manager_capabilities = 7; } // AddressRoles defines roles for an actor message ActorRoles { + // The actor name string actor = 1; + // The roles for the actor repeated string roles = 2; } // RoleActors defines actors for a role message RoleActors { + // The role name string role = 1; + // List of actor names associated with the role repeated string actors = 2; } // RoleManager defines roles for a manager address message RoleManager { + // The manager name string manager = 1; + // List of roles associated with the manager repeated string roles = 2; } @@ -69,23 +80,34 @@ enum Action { // PolicyStatus defines the status of a policy message PolicyStatus { + // The action code number Action action = 1; + // Whether the policy is disabled bool is_disabled = 2; + // Whether the policy is sealed bool is_sealed = 3; } // Role is only used for storage message Role { + // The role name string name = 1; + // The role ID uint32 role_id = 2; + // Integer representing the bitwise combination of all actions assigned to the + // role uint32 permissions = 3; } // PolicyManagerCapability defines the capabilities of a manager for a policy message PolicyManagerCapability { + // The manager name string manager = 1; + // The action code number Action action = 2; + // Whether the manager can disable the policy bool can_disable = 3; + // Whether the manager can seal the policy bool can_seal = 4; } @@ -94,7 +116,9 @@ message RoleIDs { repeated uint32 role_ids = 1; } // AddressVoucher is used to represent a voucher for a specific address message AddressVoucher { + // The Injective address that the voucher is for string address = 1; + // The voucher amount cosmos.base.v1beta1.Coin voucher = 2 [ (gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", diff --git a/proto/injective/permissions/v1beta1/query.proto b/proto/injective/permissions/v1beta1/query.proto index f26cf380..f07584c8 100644 --- a/proto/injective/permissions/v1beta1/query.proto +++ b/proto/injective/permissions/v1beta1/query.proto @@ -123,7 +123,10 @@ message QueryNamespaceDenomsRequest {} // QueryNamespaceDenomsResponse is the response type for the // Query/NamespaceDenoms RPC method. -message QueryNamespaceDenomsResponse { repeated string denoms = 1; } +message QueryNamespaceDenomsResponse { + // List of denoms + repeated string denoms = 1; +} // QueryNamespacesRequest is the request type for the Query/Namespaces RPC // method. @@ -131,87 +134,134 @@ message QueryNamespacesRequest {} // QueryNamespacesResponse is the response type for the Query/Namespaces // RPC method. -message QueryNamespacesResponse { repeated Namespace namespaces = 1; } +message QueryNamespacesResponse { + // List of namespaces + repeated Namespace namespaces = 1; +} // QueryNamespaceRequest is the request type for the // Query/Namespace RPC method. -message QueryNamespaceRequest { string denom = 1; } +message QueryNamespaceRequest { + // The token denom + string denom = 1; +} // QueryNamespaceResponse is the response type for the // Query/NamespaceByDenom RPC method. -message QueryNamespaceResponse { Namespace namespace = 1; } +message QueryNamespaceResponse { + // The namespace details + Namespace namespace = 1; +} // QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole // RPC method. message QueryActorsByRoleRequest { + // The token denom string denom = 1; + // The role to query actors for string role = 2; } // QueryAddressesByRoleResponse is the response type for the // Query/AddressesByRole RPC method. -message QueryActorsByRoleResponse { repeated string actors = 1; } +message QueryActorsByRoleResponse { + // List of actors' Injective addresses + repeated string actors = 1; +} // QueryRolesByActorRequest is the request type for the // Query/RolesByActor RPC method. message QueryRolesByActorRequest { + // The token denom string denom = 1; + // The actor's Injective address string actor = 2; } // QueryRolesByActorResponse is the response type for the // Query/RolesByActor RPC method. -message QueryRolesByActorResponse { repeated string roles = 1; } +message QueryRolesByActorResponse { + // List of roles + repeated string roles = 1; +} // QueryRoleManagersRequest is the request type for the Query/RoleManagers // RPC method. -message QueryRoleManagersRequest { string denom = 1; } +message QueryRoleManagersRequest { + // The token denom + string denom = 1; +} // QueryRoleManagersResponse is the response type for the // Query/RoleManagers RPC method. -message QueryRoleManagersResponse { repeated RoleManager role_managers = 1; } +message QueryRoleManagersResponse { + // List of role managers + repeated RoleManager role_managers = 1; +} // QueryRoleManagerRequest is the request type for the Query/RoleManager // RPC method. message QueryRoleManagerRequest { + // The token denom string denom = 1; + // The manager Injective address string manager = 2; } // QueryRoleManagerResponse is the response type for the // Query/RoleManager RPC method. -message QueryRoleManagerResponse { RoleManager role_manager = 1; } +message QueryRoleManagerResponse { + // The role manager details + RoleManager role_manager = 1; +} // QueryPolicyStatusesRequest is the request type for the Query/PolicyStatuses // RPC method. -message QueryPolicyStatusesRequest { string denom = 1; } +message QueryPolicyStatusesRequest { + // The token denom + string denom = 1; +} // QueryRoleManagerResponse is the response type for the // Query/RoleManager RPC method. message QueryPolicyStatusesResponse { + // List of policy statuses repeated PolicyStatus policy_statuses = 1; } // QueryPolicyManagerCapabilitiesRequest is the request type for the // Query/PolicyManagerCapabilities RPC method. -message QueryPolicyManagerCapabilitiesRequest { string denom = 1; } +message QueryPolicyManagerCapabilitiesRequest { + // The token denom + string denom = 1; +} // QueryPolicyManagerCapabilitiesResponse is the response type for the // Query/PolicyManagerCapabilities RPC method. message QueryPolicyManagerCapabilitiesResponse { + // List of policy manager capabilities repeated PolicyManagerCapability policy_manager_capabilities = 1; } -message QueryVouchersRequest { string denom = 1; } +message QueryVouchersRequest { + // The token denom + string denom = 1; +} -message QueryVouchersResponse { repeated AddressVoucher vouchers = 1; } +message QueryVouchersResponse { + // List of vouchers + repeated AddressVoucher vouchers = 1; +} message QueryVoucherRequest { + // The token denom string denom = 1; + // The Injective address of the receiver string address = 2; } message QueryVoucherResponse { + // The voucher amount cosmos.base.v1beta1.Coin voucher = 1 [ (gogoproto.nullable) = false, (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", @@ -225,4 +275,7 @@ message QueryModuleStateRequest {} // QueryModuleStateResponse is the response type for the // Query/PermissionsModuleState RPC method. -message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file +message QueryModuleStateResponse { + // The module state + GenesisState state = 1; +} \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/tx.proto b/proto/injective/permissions/v1beta1/tx.proto index 5b44dfad..e8ba0c9d 100644 --- a/proto/injective/permissions/v1beta1/tx.proto +++ b/proto/injective/permissions/v1beta1/tx.proto @@ -45,8 +45,9 @@ message MsgUpdateParamsResponse {} message MsgCreateNamespace { option (amino.name) = "permissions/MsgCreateNamespace"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - + // The namespace information Namespace namespace = 2 [ (gogoproto.nullable) = false ]; } @@ -55,19 +56,23 @@ message MsgCreateNamespaceResponse {} message MsgUpdateNamespace { option (amino.name) = "permissions/MsgUpdateNamespace"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - string denom = 2; // denom whose namespace updates are to be applied + // denom whose namespace updates are to be applied + string denom = 2; message SetContractHook { string new_value = 1; } - SetContractHook contract_hook = - 3; // address of smart contract to apply code-based restrictions - - repeated Role role_permissions = 4; // role permissions to update - repeated RoleManager role_managers = 5; // role managers to update - repeated PolicyStatus policy_statuses = 6; // policy statuses to update - repeated PolicyManagerCapability policy_manager_capabilities = - 7; // policy manager capabilities to update + // address of smart contract to apply code-based restrictions + SetContractHook contract_hook = 3; + // role permissions to update + repeated Role role_permissions = 4; + // role managers to update + repeated RoleManager role_managers = 5; + // policy statuses to update + repeated PolicyStatus policy_statuses = 6; + // policy manager capabilities to update + repeated PolicyManagerCapability policy_manager_capabilities = 7; } message MsgUpdateNamespaceResponse {} @@ -75,13 +80,14 @@ message MsgUpdateNamespaceResponse {} message MsgUpdateActorRoles { option (amino.name) = "permissions/MsgUpdateActorRoles"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - - string denom = 2; // namespace denom to which this updates are applied - - repeated RoleActors role_actors_to_add = 3; // roles to add for given actors - repeated RoleActors role_actors_to_revoke = - 5; // roles to revoke from given actors + // The namespace denom to which this updates are applied + string denom = 2; + // The roles to add for given actors + repeated RoleActors role_actors_to_add = 3; + // The roles to revoke from given actors + repeated RoleActors role_actors_to_revoke = 5; } message MsgUpdateActorRolesResponse {} @@ -89,8 +95,10 @@ message MsgUpdateActorRolesResponse {} message MsgClaimVoucher { option (amino.name) = "permissions/MsgClaimVoucher"; option (cosmos.msg.v1.signer) = "sender"; - string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The sender's Injective address + string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The token denom of the voucher to claim string denom = 2; } diff --git a/proto/injective/stream/v2/query.proto b/proto/injective/stream/v2/query.proto index 449f39c6..81fa4244 100644 --- a/proto/injective/stream/v2/query.proto +++ b/proto/injective/stream/v2/query.proto @@ -35,6 +35,13 @@ message StreamRequest { PositionsFilter positions_filter = 9 [ (gogoproto.nullable) = true ]; // filter for oracle prices events OraclePriceFilter oracle_price_filter = 10 [ (gogoproto.nullable) = true ]; + // filter for order failures events + OrderFailuresFilter order_failures_filter = 11 + [ (gogoproto.nullable) = true ]; + // filter for conditional order trigger failures events + ConditionalOrderTriggerFailuresFilter + conditional_order_trigger_failures_filter = 12 + [ (gogoproto.nullable) = true ]; } message StreamResponse { @@ -64,6 +71,11 @@ message StreamResponse { repeated OraclePrice oracle_prices = 12; // the current gas price when the block was processed (in chain format) string gas_price = 13; + // list of order failures updates + repeated OrderFailureUpdate order_failures = 14; + // list of conditional order trigger failures updates + repeated ConditionalOrderTriggerFailureUpdate + conditional_order_trigger_failures = 15; } message OrderbookUpdate { @@ -257,6 +269,35 @@ message DerivativeTrade { string trade_id = 11; } +message OrderFailureUpdate { + // the account address + string account = 1; + // the order hash + string order_hash = 2; + // the client order ID + string cid = 3; + // the error code + uint32 error_code = 4; +} + +message ConditionalOrderTriggerFailureUpdate { + // the market ID + string market_id = 1; + // the subaccount ID + string subaccount_id = 2; + // the mark price + string mark_price = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // the order hash + string order_hash = 4; + // the client order ID + string cid = 5; + // the error code + string error_description = 6; +} + message TradesFilter { // list of subaccount IDs to filter by repeated string subaccount_ids = 1; @@ -294,6 +335,18 @@ message SubaccountDepositsFilter { } message OraclePriceFilter { - // list of symbol to filter by + // list of symbols to filter by repeated string symbol = 1; } + +message OrderFailuresFilter { + // list of account addresses to filter by + repeated string accounts = 1; +} + +message ConditionalOrderTriggerFailuresFilter { + // list of subaccount IDs to filter by + repeated string subaccount_ids = 1; + // list of market IDs to filter by + repeated string market_ids = 2; +} diff --git a/proto/injective/tokenfactory/v1beta1/genesis.proto b/proto/injective/tokenfactory/v1beta1/genesis.proto index b8316666..a180fab4 100644 --- a/proto/injective/tokenfactory/v1beta1/genesis.proto +++ b/proto/injective/tokenfactory/v1beta1/genesis.proto @@ -24,12 +24,17 @@ message GenesisState { message GenesisDenom { option (gogoproto.equal) = true; + // The denom string denom = 1 [ (gogoproto.moretags) = "yaml:\"denom\"" ]; + // The authority metadata DenomAuthorityMetadata authority_metadata = 2 [ (gogoproto.moretags) = "yaml:\"authority_metadata\"", (gogoproto.nullable) = false ]; + // The name string name = 3 [ (gogoproto.moretags) = "yaml:\"name\"" ]; + // The symbol string symbol = 4 [ (gogoproto.moretags) = "yaml:\"symbol\"" ]; + // The number of decimals uint32 decimals = 5 [ (gogoproto.moretags) = "yaml:\"decimals\"" ]; } diff --git a/proto/injective/tokenfactory/v1beta1/params.proto b/proto/injective/tokenfactory/v1beta1/params.proto index fb936f36..833d21d5 100644 --- a/proto/injective/tokenfactory/v1beta1/params.proto +++ b/proto/injective/tokenfactory/v1beta1/params.proto @@ -13,6 +13,7 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod message Params { option (amino.name) = "injective/tokenfactory/Params"; + // The denom creation fee repeated cosmos.base.v1beta1.Coin denom_creation_fee = 1 [ (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.moretags) = "yaml:\"denom_creation_fee\"", diff --git a/proto/injective/tokenfactory/v1beta1/query.proto b/proto/injective/tokenfactory/v1beta1/query.proto index 6633a211..199108e8 100644 --- a/proto/injective/tokenfactory/v1beta1/query.proto +++ b/proto/injective/tokenfactory/v1beta1/query.proto @@ -54,13 +54,16 @@ message QueryParamsResponse { // QueryDenomAuthorityMetadataRequest defines the request structure for the // DenomAuthorityMetadata gRPC query. message QueryDenomAuthorityMetadataRequest { + // The creator's Injective address string creator = 1 [ (gogoproto.moretags) = "yaml:\"denom\"" ]; + // The sub-denom string sub_denom = 2 [ (gogoproto.moretags) = "yaml:\"sub_denom\"" ]; } // QueryDenomAuthorityMetadataResponse defines the response structure for the // DenomAuthorityMetadata gRPC query. message QueryDenomAuthorityMetadataResponse { + // The authority metadata DenomAuthorityMetadata authority_metadata = 1 [ (gogoproto.moretags) = "yaml:\"authority_metadata\"", (gogoproto.nullable) = false @@ -70,12 +73,14 @@ message QueryDenomAuthorityMetadataResponse { // QueryDenomsFromCreatorRequest defines the request structure for the // DenomsFromCreator gRPC query. message QueryDenomsFromCreatorRequest { + // The creator's Injective address string creator = 1 [ (gogoproto.moretags) = "yaml:\"creator\"" ]; } // QueryDenomsFromCreatorRequest defines the response structure for the // DenomsFromCreator gRPC query. message QueryDenomsFromCreatorResponse { + // The list of denoms repeated string denoms = 1 [ (gogoproto.moretags) = "yaml:\"denoms\"" ]; } @@ -85,4 +90,7 @@ message QueryModuleStateRequest {} // QueryModuleStateResponse is the response type for the // Query/TokenfactoryModuleState RPC method. -message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file +message QueryModuleStateResponse { + // The module state + GenesisState state = 1; +} \ No newline at end of file diff --git a/proto/injective/tokenfactory/v1beta1/tx.proto b/proto/injective/tokenfactory/v1beta1/tx.proto index d96076e6..4aede495 100644 --- a/proto/injective/tokenfactory/v1beta1/tx.proto +++ b/proto/injective/tokenfactory/v1beta1/tx.proto @@ -37,11 +37,15 @@ message MsgCreateDenom { option (amino.name) = "injective/tokenfactory/create-denom"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; // subdenom can be up to 44 "alphanumeric" characters long. string subdenom = 2 [ (gogoproto.moretags) = "yaml:\"subdenom\"" ]; + // The name string name = 3 [ (gogoproto.moretags) = "yaml:\"name\"" ]; + // The symbol string symbol = 4 [ (gogoproto.moretags) = "yaml:\"symbol\"" ]; + // The number of decimals uint32 decimals = 5 [ (gogoproto.moretags) = "yaml:\"decimals\"" ]; // true if admins are allowed to burn tokens from other addresses bool allow_admin_burn = 6 @@ -61,11 +65,14 @@ message MsgMint { option (amino.name) = "injective/tokenfactory/mint"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The amount of tokens to mint cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false ]; + // The Injective address to receive the tokens string receiver = 3 [ (gogoproto.moretags) = "yaml:\"receiver\"" ]; } @@ -77,11 +84,14 @@ message MsgBurn { option (amino.name) = "injective/tokenfactory/burn"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The amount of tokens to burn cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.nullable) = false ]; + // The Injective address to burn the tokens from string burnFromAddress = 3 [ (gogoproto.moretags) = "yaml:\"burn_from_address\"", (amino.dont_omitempty) = true @@ -96,8 +106,11 @@ message MsgChangeAdmin { option (amino.name) = "injective/tokenfactory/change-admin"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The denom string denom = 2 [ (gogoproto.moretags) = "yaml:\"denom\"" ]; + // The new admin's Injective address string new_admin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ]; } @@ -111,7 +124,9 @@ message MsgSetDenomMetadata { option (amino.name) = "injective/tokenfactory/set-denom-metadata"; option (cosmos.msg.v1.signer) = "sender"; + // The sender's Injective address string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; + // The metadata cosmos.bank.v1beta1.Metadata metadata = 2 [ (gogoproto.moretags) = "yaml:\"metadata\"", (gogoproto.nullable) = false diff --git a/proto/injective/txfees/v1beta1/query.proto b/proto/injective/txfees/v1beta1/query.proto index fa094316..d5ca71a1 100644 --- a/proto/injective/txfees/v1beta1/query.proto +++ b/proto/injective/txfees/v1beta1/query.proto @@ -23,6 +23,7 @@ service Query { } message EipBaseFee { + // The current chain gas price string base_fee = 1 [ (gogoproto.moretags) = "yaml:\"base_fee\"", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", diff --git a/proto/osmosis/txfees/v1beta1/query.proto b/proto/osmosis/txfees/v1beta1/query.proto index a4e3bd6a..9dbac43a 100644 --- a/proto/osmosis/txfees/v1beta1/query.proto +++ b/proto/osmosis/txfees/v1beta1/query.proto @@ -16,6 +16,7 @@ service Query { message QueryEipBaseFeeRequest {} message QueryEipBaseFeeResponse { + // The current chain gas price string base_fee = 1 [ (gogoproto.moretags) = "yaml:\"base_fee\"",