/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { Comptroller } from "../Comptroller"; export class Comptroller__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): Comptroller { return super.attach(address) as Comptroller; } connect(signer: Signer): Comptroller__factory { return super.connect(signer) as Comptroller__factory; } static connect( address: string, signerOrProvider: Signer | Provider ): Comptroller { return new Contract(address, _abi, signerOrProvider) as Comptroller; } } const _abi = [ { inputs: [], stateMutability: "nonpayable", type: "constructor", }, { anonymous: false, inputs: [ { indexed: false, internalType: "string", name: "action", type: "string", }, { indexed: false, internalType: "bool", name: "pauseState", type: "bool", }, ], name: "ActionPaused", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "string", name: "action", type: "string", }, { indexed: false, internalType: "bool", name: "pauseState", type: "bool", }, ], name: "ActionPaused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address", }, { indexed: false, internalType: "uint256", name: "oldCompAccrued", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCompAccrued", type: "uint256", }, ], name: "CompAccruedAdjusted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "newSpeed", type: "uint256", }, ], name: "CompBorrowSpeedUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "recipient", type: "address", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "CompGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address", }, { indexed: false, internalType: "uint256", name: "oldCompReceivable", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCompReceivable", type: "uint256", }, ], name: "CompReceivableUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "newSpeed", type: "uint256", }, ], name: "CompSupplySpeedUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "contributor", type: "address", }, { indexed: false, internalType: "uint256", name: "newSpeed", type: "uint256", }, ], name: "ContributorCompSpeedUpdated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: true, internalType: "address", name: "borrower", type: "address", }, { indexed: false, internalType: "uint256", name: "compDelta", type: "uint256", }, { indexed: false, internalType: "uint256", name: "compBorrowIndex", type: "uint256", }, ], name: "DistributedBorrowerComp", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: true, internalType: "address", name: "supplier", type: "address", }, { indexed: false, internalType: "uint256", name: "compDelta", type: "uint256", }, { indexed: false, internalType: "uint256", name: "compSupplyIndex", type: "uint256", }, ], name: "DistributedSupplierComp", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "error", type: "uint256", }, { indexed: false, internalType: "uint256", name: "info", type: "uint256", }, { indexed: false, internalType: "uint256", name: "detail", type: "uint256", }, ], name: "Failure", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "MarketEntered", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "MarketExited", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "MarketListed", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "newBorrowCap", type: "uint256", }, ], name: "NewBorrowCap", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldBorrowCapGuardian", type: "address", }, { indexed: false, internalType: "address", name: "newBorrowCapGuardian", type: "address", }, ], name: "NewBorrowCapGuardian", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldCloseFactorMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCloseFactorMantissa", type: "uint256", }, ], name: "NewCloseFactor", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract CToken", name: "cToken", type: "address", }, { indexed: false, internalType: "uint256", name: "oldCollateralFactorMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newCollateralFactorMantissa", type: "uint256", }, ], name: "NewCollateralFactor", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldLiquidationIncentiveMantissa", type: "uint256", }, { indexed: false, internalType: "uint256", name: "newLiquidationIncentiveMantissa", type: "uint256", }, ], name: "NewLiquidationIncentive", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldPauseGuardian", type: "address", }, { indexed: false, internalType: "address", name: "newPauseGuardian", type: "address", }, ], name: "NewPauseGuardian", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract PriceOracle", name: "oldPriceOracle", type: "address", }, { indexed: false, internalType: "contract PriceOracle", name: "newPriceOracle", type: "address", }, ], name: "NewPriceOracle", type: "event", }, { inputs: [ { internalType: "contract Unitroller", name: "unitroller", type: "address", }, ], name: "_become", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "_borrowGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "recipient", type: "address", }, { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "_grantComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "_mintGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "newBorrowCapGuardian", type: "address", }, ], name: "_setBorrowCapGuardian", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "bool", name: "state", type: "bool", }, ], name: "_setBorrowPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newCloseFactorMantissa", type: "uint256", }, ], name: "_setCloseFactor", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "uint256", name: "newCollateralFactorMantissa", type: "uint256", }, ], name: "_setCollateralFactor", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, { internalType: "uint256[]", name: "supplySpeeds", type: "uint256[]", }, { internalType: "uint256[]", name: "borrowSpeeds", type: "uint256[]", }, ], name: "_setCompSpeeds", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "contributor", type: "address", }, { internalType: "uint256", name: "compSpeed", type: "uint256", }, ], name: "_setContributorCompSpeed", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newLiquidationIncentiveMantissa", type: "uint256", }, ], name: "_setLiquidationIncentive", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, { internalType: "uint256[]", name: "newBorrowCaps", type: "uint256[]", }, ], name: "_setMarketBorrowCaps", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, { internalType: "bool", name: "state", type: "bool", }, ], name: "_setMintPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newPauseGuardian", type: "address", }, ], name: "_setPauseGuardian", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract PriceOracle", name: "newOracle", type: "address", }, ], name: "_setPriceOracle", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "state", type: "bool", }, ], name: "_setSeizePaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "state", type: "bool", }, ], name: "_setTransferPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "_supportMarket", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "uint256", name: "", type: "uint256", }, ], name: "accountAssets", outputs: [ { internalType: "contract CToken", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "admin", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], name: "allMarkets", outputs: [ { internalType: "contract CToken", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "borrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "borrowCapGuardian", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "borrowCaps", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "borrowGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "borrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "checkMembership", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "holder", type: "address", }, { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address[]", name: "holders", type: "address[]", }, { internalType: "contract CToken[]", name: "cTokens", type: "address[]", }, { internalType: "bool", name: "borrowers", type: "bool", }, { internalType: "bool", name: "suppliers", type: "bool", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "holder", type: "address", }, ], name: "claimComp", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "closeFactorMantissa", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compAccrued", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compBorrowSpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compBorrowState", outputs: [ { internalType: "uint224", name: "index", type: "uint224", }, { internalType: "uint32", name: "block", type: "uint32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "compBorrowerIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compContributorSpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "compInitialIndex", outputs: [ { internalType: "uint224", name: "", type: "uint224", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "compRate", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compReceivable", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compSpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], name: "compSupplierIndex", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compSupplySpeeds", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "compSupplyState", outputs: [ { internalType: "uint224", name: "index", type: "uint224", }, { internalType: "uint32", name: "block", type: "uint32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "comptrollerImplementation", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address[]", name: "cTokens", type: "address[]", }, ], name: "enterMarkets", outputs: [ { internalType: "uint256[]", name: "", type: "uint256[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenAddress", type: "address", }, ], name: "exitMarket", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address[]", name: "affectedUsers", type: "address[]", }, { internalType: "uint256[]", name: "amounts", type: "uint256[]", }, ], name: "fixBadAccruals", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "getAccountLiquidity", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getAllMarkets", outputs: [ { internalType: "contract CToken[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, ], name: "getAssetsIn", outputs: [ { internalType: "contract CToken[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getBlockNumber", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getCompAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "account", type: "address", }, { internalType: "address", name: "cTokenModify", type: "address", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, { internalType: "uint256", name: "borrowAmount", type: "uint256", }, ], name: "getHypotheticalAccountLiquidity", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "isComptroller", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "contract CToken", name: "cToken", type: "address", }, ], name: "isDeprecated", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "lastContributorBlock", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "repayAmount", type: "uint256", }, ], name: "liquidateBorrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "liquidateBorrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, ], name: "liquidateCalculateSeizeTokens", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "liquidationIncentiveMantissa", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "markets", outputs: [ { internalType: "bool", name: "isListed", type: "bool", }, { internalType: "uint256", name: "collateralFactorMantissa", type: "uint256", }, { internalType: "bool", name: "isComped", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "maxAssets", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "minter", type: "address", }, { internalType: "uint256", name: "mintAmount", type: "uint256", }, ], name: "mintAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "mintGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "minter", type: "address", }, { internalType: "uint256", name: "actualMintAmount", type: "uint256", }, { internalType: "uint256", name: "mintTokens", type: "uint256", }, ], name: "mintVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "oracle", outputs: [ { internalType: "contract PriceOracle", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pauseGuardian", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pendingAdmin", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pendingComptrollerImplementation", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "proposal65FixExecuted", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "redeemer", type: "address", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, ], name: "redeemAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "redeemer", type: "address", }, { internalType: "uint256", name: "redeemAmount", type: "uint256", }, { internalType: "uint256", name: "redeemTokens", type: "uint256", }, ], name: "redeemVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "payer", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "repayAmount", type: "uint256", }, ], name: "repayBorrowAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "payer", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "actualRepayAmount", type: "uint256", }, { internalType: "uint256", name: "borrowerIndex", type: "uint256", }, ], name: "repayBorrowVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "seizeAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "seizeGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cTokenCollateral", type: "address", }, { internalType: "address", name: "cTokenBorrowed", type: "address", }, { internalType: "address", name: "liquidator", type: "address", }, { internalType: "address", name: "borrower", type: "address", }, { internalType: "uint256", name: "seizeTokens", type: "uint256", }, ], name: "seizeVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newAdmin", type: "address", }, ], name: "setAdmin", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "src", type: "address", }, { internalType: "address", name: "dst", type: "address", }, { internalType: "uint256", name: "transferTokens", type: "uint256", }, ], name: "transferAllowed", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "transferGuardianPaused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "cToken", type: "address", }, { internalType: "address", name: "src", type: "address", }, { internalType: "address", name: "dst", type: "address", }, { internalType: "uint256", name: "transferTokens", type: "uint256", }, ], name: "transferVerify", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "contributor", type: "address", }, ], name: "updateContributorRewards", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561545d806100326000396000f3fe608060405234801561001057600080fd5b50600436106104955760003560e01c8063731f0c2b11610262578063b21be7fd11610151578063dce15449116100ce578063e9af029211610092578063e9af029214610c22578063eabe7d9114610c35578063ede4edd014610c48578063f00a7a9214610c5b578063f4a433c014610c68578063f851a44014610c8857600080fd5b8063dce1544914610bcc578063dcfbc0c714610bdf578063e4028eee14610bf2578063e6653f3d14610c05578063e875544614610c1957600080fd5b8063c488847b11610115578063c488847b14610b33578063ca0af04314610b5b578063cc7ebdc414610b86578063d02f735114610ba6578063da3d454c14610bb957600080fd5b8063b21be7fd14610aa2578063bb82aa5e14610acd578063bdcdc25814610ae0578063bea6b8b814610af3578063c299823814610b1357600080fd5b806394b2294b116101df578063a8b43948116101a3578063a8b4394814610a4a578063aa90075414610a5d578063abfceffc14610a66578063ac0b0bb714610a86578063b0772d0b14610a9a57600080fd5b806394b2294b146109c7578063986ab838146109d05780639d1b5a0a146109f0578063a76b3fda14610a0a578063a7f0e23114610a1d57600080fd5b80638c57804e116102265780638c57804e146108d55780638e8f294b1461090d5780638ebf636414610960578063929fe9a11461097357806394543c15146109b457600080fd5b8063731f0c2b14610858578063741b25251461087b5780637dc0d1d01461088e57806385b7beb8146108a157806387f76303146108c157600080fd5b80634a584432116103895780635ec88c79116103065780636a56947e116102ca5780636a56947e1461078a5780636aa875b5146107985780636b79c38d146107b85780636d154ea5146108145780636d35bf9114610837578063704b6c021461084557600080fd5b80635ec88c791461072b5780635f5af1aa1461073e5780635fc7e71e14610751578063607ef6c1146107645780636810dfa61461077757600080fd5b806351dff9891161034d57806351dff989146106cc57806352d84d1e146106df57806355ee1fe1146106f2578063598ee1cb146107055780635c7786051461071857600080fd5b80634a5844321461064f5780634ada90af1461066f5780634e79238f146106785780634ef4c3e1146106a65780634fd42e17146106b957600080fd5b806326782247116104175780633bcf7ec1116103db5780633bcf7ec1146105f85780633c94786f1461060b57806341c728b91461061f57806342cbb15c1461063357806347ef3b3b1461063957600080fd5b8063267822471461059957806327efe3cb146105ac5780632d70db78146105bf578063317b0b77146105d2578063391957d7146105e557600080fd5b80631d7b33d71161045e5780631d7b33d7146105055780631ededc911461053357806321af45691461054857806324008a621461057357806324a3d6221461058657600080fd5b80627e3dd21461049a57806316b95e8f146104b757806318c882a5146104cc5780631c3db2e0146104df5780631d504dc6146104f2575b600080fd5b6104a2600181565b60405190151581526020015b60405180910390f35b6104ca6104c5366004614ac2565b610c9b565b005b6104a26104da366004614b51565b610f44565b6104ca6104ed366004614c69565b61107d565b6104ca610500366004614cb9565b6110e0565b610525610513366004614cb9565b600f6020526000908152604090205481565b6040519081526020016104ae565b6104ca610541366004614cd6565b5050505050565b60155461055b906001600160a01b031681565b6040516001600160a01b0390911681526020016104ae565b610525610581366004614d31565b61125e565b600a5461055b906001600160a01b031681565b60015461055b906001600160a01b031681565b6104ca6105ba366004614d82565b61131c565b6104a26105cd366004614dae565b611413565b6105256105e0366004614dcb565b611503565b6104ca6105f3366004614cb9565b6115aa565b6104a2610606366004614b51565b611674565b600a546104a290600160a01b900460ff1681565b6104ca61062d366004614de4565b50505050565b43610525565b6104ca610647366004614e2a565b505050505050565b61052561065d366004614cb9565b60166020526000908152604090205481565b61052560065481565b61068b610686366004614de4565b61179e565b604080519384526020840192909252908201526060016104ae565b6105256106b4366004614e98565b6117de565b6105256106c7366004614dcb565b61187f565b6104ca6106da366004614de4565b6118dc565b61055b6106ed366004614dcb565b61192b565b610525610700366004614cb9565b611955565b6104ca610713366004614d82565b6119ce565b6104ca610726366004614e98565b505050565b61068b610739366004614cb9565b611ac2565b61052561074c366004614cb9565b611afd565b61052561075f366004614ed9565b611b76565b6104ca610772366004614ac2565b611d45565b6104ca610785366004614f3d565b611f23565b6104ca61062d366004614d31565b6105256107a6366004614cb9565b601a6020526000908152604090205481565b6107f06107c6366004614cb9565b6010602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff9091166020830152016104ae565b6104a2610822366004614cb9565b600c6020526000908152604090205460ff1681565b6104ca610541366004614ed9565b6104ca610853366004614cb9565b6121ad565b6104a2610866366004614cb9565b600b6020526000908152604090205460ff1681565b6104ca610889366004614cb9565b612215565b60045461055b906001600160a01b031681565b6105256108af366004614cb9565b601c6020526000908152604090205481565b600a546104a290600160b01b900460ff1681565b6107f06108e3366004614cb9565b6011602052600090815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b61094161091b366004614cb9565b60096020526000908152604090208054600182015460039092015460ff91821692911683565b60408051931515845260208401929092521515908201526060016104ae565b6104a261096e366004614dae565b6122c1565b6104a2610981366004614fc6565b6001600160a01b038082166000908152600960209081526040808320938616835260029093019052205460ff1692915050565b6104a26109c2366004614cb9565b6123a8565b61052560075481565b6105256109de366004614cb9565b60176020526000908152604090205481565b73c00e94cb662c3520282e6f5717214004a7f2688861055b565b610525610a18366004614cb9565b612467565b610a326a0c097ce7bc90715b34b9f160241b81565b6040516001600160e01b0390911681526020016104ae565b6104ca610a5836600461504f565b612599565b610525600e5481565b610a79610a74366004614cb9565b6126ce565b6040516104ae91906150d7565b600a546104a290600160b81b900460ff1681565b610a79612744565b610525610ab0366004614fc6565b601260209081526000928352604080842090915290825290205481565b60025461055b906001600160a01b031681565b610525610aee366004614d31565b6127a6565b610525610b01366004614cb9565b60186020526000908152604090205481565b610b26610b21366004615124565b612831565b6040516104ae9190615159565b610b46610b41366004614e98565b6128f9565b604080519283526020830191909152016104ae565b610525610b69366004614fc6565b601360209081526000928352604080842090915290825290205481565b610525610b94366004614cb9565b60146020526000908152604090205481565b610525610bb4366004614ed9565b612b17565b610525610bc7366004614e98565b612cbe565b61055b610bda366004614d82565b61308e565b60035461055b906001600160a01b031681565b610525610c00366004614d82565b6130c6565b600a546104a290600160a81b900460ff1681565b61052560055481565b6104ca610c30366004614cb9565b613258565b610525610c43366004614e98565b6132bc565b610525610c56366004614cb9565b6132f7565b601b546104a29060ff1681565b610525610c76366004614cb9565b60196020526000908152604090205481565b60005461055b906001600160a01b031681565b6000546001600160a01b03163314610d045760405162461bcd60e51b815260206004820152602160248201527f4f6e6c792061646d696e2063616e2063616c6c20746869732066756e6374696f6044820152603760f91b60648201526084015b60405180910390fd5b601b5460ff1615610d665760405162461bcd60e51b815260206004820152602660248201527f416c72656164792065786563757465642074686973206f6e652d6f66662066756044820152653731ba34b7b760d11b6064820152608401610cfb565b828114610da55760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610cfb565b60008060008060005b87811015610f2c57888882818110610dc857610dc8615191565b9050602002016020810190610ddd9190614cb9565b6001600160a01b0381166000908152601460205260409020549095509350868682818110610e0d57610e0d615191565b90506020020135925083831115610eb1576000610e2a85856151bd565b6001600160a01b0387166000908152601c6020526040812054919250610e50828461365d565b6001600160a01b0389166000818152601c6020908152604091829020849055815186815290810184905292935090917f17fea09d9a7ca41b2f9f9118f18f44848a62e9c70d55dd4385131eb2cf1b7e47910160405180910390a28695505050505b8215610f1c57610ec18484613669565b6001600160a01b038616600081815260146020908152604091829020849055815188815290810184905292945090917f4a5c134e28b537a76546993ea37f3b60d9190476df7356d3842aa40902e20f04910160405180910390a25b610f25816151d4565b9050610dae565b5050601b805460ff1916600117905550505050505050565b6001600160a01b03821660009081526009602052604081205460ff16610f7c5760405162461bcd60e51b8152600401610cfb906151ef565b600a546001600160a01b0316331480610f9f57506000546001600160a01b031633145b610fbb5760405162461bcd60e51b8152600401610cfb90615237565b6000546001600160a01b0316331480610fd657506001821515145b610ff25760405162461bcd60e51b8152600401610cfb9061527e565b6001600160a01b0383166000818152600c6020908152604091829020805460ff19168615159081179091558251938452606091840182905260069184019190915265426f72726f7760d01b6080840152908201527f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09060a0015b60405180910390a150805b92915050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106110b3576110b3615191565b60200260200101906001600160a01b031690816001600160a01b0316815250506107268183600180611f23565b806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114291906152ae565b6001600160a01b0316336001600160a01b0316146111b25760405162461bcd60e51b815260206004820152602760248201527f6f6e6c7920756e6974726f6c6c65722061646d696e2063616e206368616e676560448201526620627261696e7360c81b6064820152608401610cfb565b806001600160a01b031663c1e803346040518163ffffffff1660e01b81526004016020604051808303816000875af11580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121691906152cb565b1561125b5760405162461bcd60e51b815260206004820152601560248201527418da185b99d9481b9bdd08185d5d1a1bdc9a5e9959605a1b6044820152606401610cfb565b50565b6001600160a01b03841660009081526009602052604081205460ff1661128657506009611314565b60006040518060200160405280876001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906152cb565b905290506113038682613675565b61130e868583613868565b60009150505b949350505050565b6113246139e8565b6113705760405162461bcd60e51b815260206004820152601960248201527f6f6e6c792061646d696e2063616e206772616e7420636f6d70000000000000006044820152606401610cfb565b600061137c8383613a11565b905080156113cc5760405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606401610cfb565b604080516001600160a01b0385168152602081018490527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c910160405180910390a1505050565b600a546000906001600160a01b031633148061143957506000546001600160a01b031633145b6114555760405162461bcd60e51b8152600401610cfb90615237565b6000546001600160a01b031633148061147057506001821515145b61148c5760405162461bcd60e51b8152600401610cfb9061527e565b600a8054831515600160b81b0260ff60b81b199091161790556040517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de0906114f79084906040808252600590820152645365697a6560d81b6060820152901515602082015260800190565b60405180910390a15090565b600080546001600160a01b0316331461155e5760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792061646d696e2063616e2073657420636c6f736520666163746f72006044820152606401610cfb565b600580549083905560408051828152602081018590527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd991015b60405180910390a160005b9392505050565b6000546001600160a01b031633146116135760405162461bcd60e51b815260206004820152602660248201527f6f6e6c792061646d696e2063616e2073657420626f72726f772063617020677560448201526530b93234b0b760d11b6064820152608401610cfb565b601580546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29910160405180910390a15050565b6001600160a01b03821660009081526009602052604081205460ff166116ac5760405162461bcd60e51b8152600401610cfb906151ef565b600a546001600160a01b03163314806116cf57506000546001600160a01b031633145b6116eb5760405162461bcd60e51b8152600401610cfb90615237565b6000546001600160a01b031633148061170657506001821515145b6117225760405162461bcd60e51b8152600401610cfb9061527e565b6001600160a01b0383166000818152600b6020908152604091829020805460ff19168615159081179091558251938452606091840182905260049184019190915263135a5b9d60e21b6080840152908201527f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b09060a00161106c565b6000806000806000806117b38a8a8a8a613b36565b9250925092508260118111156117cb576117cb6152e4565b95509093509150505b9450945094915050565b6001600160a01b0383166000908152600b602052604081205460ff16156118385760405162461bcd60e51b815260206004820152600e60248201526d1b5a5b9d081a5cc81c185d5cd95960921b6044820152606401610cfb565b6001600160a01b03841660009081526009602052604090205460ff166118625760095b90506115a3565b61186b84613e64565b6118758484613fdc565b6000949350505050565b600080546001600160a01b0316331461189e576110776001600b61417a565b600680549083905560408051828152602081018590527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101611598565b801580156118ea5750600082115b1561062d5760405162461bcd60e51b815260206004820152601160248201527072656465656d546f6b656e73207a65726f60781b6044820152606401610cfb565b600d818154811061193b57600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546001600160a01b03163314611974576110776001601061417a565b600480546001600160a01b038481166001600160a01b031983168117909355604080519190921680825260208201939093527fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229101611598565b6119d66139e8565b611a225760405162461bcd60e51b815260206004820152601d60248201527f6f6e6c792061646d696e2063616e2073657420636f6d702073706565640000006044820152606401610cfb565b611a2b82612215565b80611a4e576001600160a01b038216600090815260186020526040812055611a69565b436001600160a01b0383166000908152601860205260409020555b6001600160a01b03821660008181526017602052604090819020839055517f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b390611ab69084815260200190565b60405180910390a25050565b600080600080600080611ad9876000806000613b36565b925092509250826011811115611af157611af16152e4565b97919650945092505050565b600080546001600160a01b03163314611b1c576110776001601361417a565b600a80546001600160a01b038481166001600160a01b031983168117909355604080519190921680825260208201939093527f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9101611598565b6001600160a01b03851660009081526009602052604081205460ff161580611bb757506001600160a01b03851660009081526009602052604090205460ff16155b15611bc65760095b9050611d3c565b6040516395dd919360e01b81526001600160a01b038481166004830152600091908816906395dd919390602401602060405180830381865afa158015611c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3491906152cb565b9050611c3f876123a8565b15611caa5782811015611ca55760405162461bcd60e51b815260206004820152602860248201527f43616e206e6f74207265706179206d6f7265207468616e2074686520746f74616044820152676c20626f72726f7760c01b6064820152608401610cfb565b611d36565b600080611cb6866141f3565b91935090915060009050826011811115611cd257611cd26152e4565b14611cf357816011811115611ce957611ce96152e4565b9350505050611d3c565b80611cff576003611ce9565b6000611d1b604051806020016040528060055481525085614213565b905080861115611d32576011945050505050611d3c565b5050505b60009150505b95945050505050565b6000546001600160a01b0316331480611d6857506015546001600160a01b031633145b611dd25760405162461bcd60e51b815260206004820152603560248201527f6f6e6c792061646d696e206f7220626f72726f772063617020677561726469616044820152746e2063616e2073657420626f72726f77206361707360581b6064820152608401610cfb565b82818115801590611de257508082145b611e1e5760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610cfb565b60005b82811015611f1a57848482818110611e3b57611e3b615191565b9050602002013560166000898985818110611e5857611e58615191565b9050602002016020810190611e6d9190614cb9565b6001600160a01b03168152602081019190915260400160002055868682818110611e9957611e99615191565b9050602002016020810190611eae9190614cb9565b6001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6868684818110611eea57611eea615191565b90506020020135604051611f0091815260200190565b60405180910390a280611f12816151d4565b915050611e21565b50505050505050565b60005b83518110156120ea576000848281518110611f4357611f43615191565b6020908102919091018101516001600160a01b0381166000908152600990925260409091205490915060ff16611fb35760405162461bcd60e51b81526020600482015260156024820152741b585c9ad95d081b5d5cdd081899481b1a5cdd1959605a1b6044820152606401610cfb565b600184151514156120805760006040518060200160405280836001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202d91906152cb565b9052905061203b8282613675565b60005b875181101561207d5761206b8389838151811061205d5761205d615191565b602002602001015184613868565b80612075816151d4565b91505061203e565b50505b600183151514156120d75761209481613e64565b60005b86518110156120d5576120c3828883815181106120b6576120b6615191565b6020026020010151613fdc565b806120cd816151d4565b915050612097565b505b50806120e2816151d4565b915050611f26565b5060005b84518110156105415761215885828151811061210c5761210c615191565b60200260200101516014600088858151811061212a5761212a615191565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613a11565b6014600087848151811061216e5761216e615191565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080806121a5906151d4565b9150506120ee565b6000546001600160a01b031633146121f35760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b6044820152606401610cfb565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260176020908152604080832054601890925282205490914391612248908390613669565b905060008111801561225a5750600083115b1561062d57600061226b828561422b565b6001600160a01b03861660009081526014602052604081205491925090612292908361365d565b6001600160a01b0387166000908152601460209081526040808320939093556018905220849055505050505050565b600a546000906001600160a01b03163314806122e757506000546001600160a01b031633145b6123035760405162461bcd60e51b8152600401610cfb90615237565b6000546001600160a01b031633148061231e57506001821515145b61233a5760405162461bcd60e51b8152600401610cfb9061527e565b600a8054831515600160b01b0260ff60b01b199091161790556040517fef159d9a32b2472e32b098f954f3ce62d232939f1c207070b584df1814de2de0906114f79084906040808252600890820152672a3930b739b332b960c11b6060820152901515602082015260800190565b6001600160a01b0381166000908152600960205260408120600101541580156123ee57506001600160a01b0382166000908152600c602052604090205460ff1615156001145b80156110775750816001600160a01b031663173b99046040518163ffffffff1660e01b8152600401602060405180830381865afa158015612433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245791906152cb565b670de0b6b3a76400001492915050565b600080546001600160a01b03163314612486576110776001601261417a565b6001600160a01b03821660009081526009602052604090205460ff16156124b357611077600a601161417a565b816001600160a01b031663fe9c44ae6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251591906152fa565b506001600160a01b03821660009081526009602052604081208054600160ff199182168117835560038301805490921690915581019190915561255783614237565b61256083614320565b6040516001600160a01b03841681527fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f90602001611598565b6125a16139e8565b6125ed5760405162461bcd60e51b815260206004820152601d60248201527f6f6e6c792061646d696e2063616e2073657420636f6d702073706565640000006044820152606401610cfb565b82518251811480156125ff5750815181145b61265d5760405162461bcd60e51b815260206004820152602960248201527f436f6d7074726f6c6c65723a3a5f736574436f6d7053706565647320696e76616044820152681b1a59081a5b9c1d5d60ba1b6064820152608401610cfb565b60005b81811015610541576126be85828151811061267d5761267d615191565b602002602001015185838151811061269757612697615191565b60200260200101518584815181106126b1576126b1615191565b60200260200101516143dc565b6126c7816151d4565b9050612660565b6001600160a01b038116600090815260086020908152604080832080548251818502810185019093528083526060949383018282801561273757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612719575b5093979650505050505050565b6060600d80548060200260200160405190810160405280929190818152602001828054801561279c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161277e575b5050505050905090565b600a54600090600160b01b900460ff16156127f85760405162461bcd60e51b81526020600482015260126024820152711d1c985b9cd9995c881a5cc81c185d5cd95960721b6044820152606401610cfb565b60006128058686856145bb565b90508015612814579050611314565b61281d86613e64565b6128278686613fdc565b61130e8685613fdc565b805160609060008167ffffffffffffffff81111561285157612851614b8a565b60405190808252806020026020018201604052801561287a578160200160208202803683370190505b50905060005b828110156128f157600085828151811061289c5761289c615191565b602002602001015190506128b08133614673565b60118111156128c1576128c16152e4565b8383815181106128d3576128d3615191565b602090810291909101015250806128e9816151d4565b915050612880565b509392505050565b6004805460405163fc57d4df60e01b81526001600160a01b03868116938201939093526000928392839291169063fc57d4df90602401602060405180830381865afa15801561294c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297091906152cb565b6004805460405163fc57d4df60e01b81526001600160a01b038981169382019390935292935060009291169063fc57d4df90602401602060405180830381865afa1580156129c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e691906152cb565b90508115806129f3575080155b15612a0757600d6000935093505050612b0f565b6000866001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6b91906152cb565b90506000612a856040518060200160405280600081525090565b604080516020808201835260008083528351808301855290815283518083018552600654815284519283019094528882529192612ac191614768565b9250612ae9604051806020016040528088815250604051806020016040528088815250614768565b9150612af583836147b0565b9050612b01818b614213565b600099509750505050505050505b935093915050565b600a54600090600160b81b900460ff1615612b665760405162461bcd60e51b815260206004820152600f60248201526e1cd95a5e99481a5cc81c185d5cd959608a1b6044820152606401610cfb565b6001600160a01b03861660009081526009602052604090205460ff161580612ba757506001600160a01b03851660009081526009602052604090205460ff16155b15612bb3576009611bbf565b846001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1591906152ae565b6001600160a01b0316866001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8091906152ae565b6001600160a01b031614612c95576002611bbf565b612c9e86613e64565b612ca88684613fdc565b612cb28685613fdc565b60009695505050505050565b6001600160a01b0383166000908152600c602052604081205460ff1615612d1a5760405162461bcd60e51b815260206004820152601060248201526f189bdc9c9bddc81a5cc81c185d5cd95960821b6044820152606401610cfb565b6001600160a01b03841660009081526009602052604090205460ff16612d4157600961185b565b6001600160a01b038085166000908152600960209081526040808320938716835260029093019052205460ff16612e3e57336001600160a01b03851614612dc25760405162461bcd60e51b815260206004820152601560248201527439b2b73232b91036bab9ba1031329031aa37b5b2b760591b6044820152606401610cfb565b6000612dce3385614673565b90506000816011811115612de457612de46152e4565b14612e0357806011811115612dfb57612dfb6152e4565b9150506115a3565b6001600160a01b038086166000908152600960209081526040808320938816835260029093019052205460ff16612e3c57612e3c615317565b505b6004805460405163fc57d4df60e01b81526001600160a01b038781169382019390935291169063fc57d4df90602401602060405180830381865afa158015612e8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eae91906152cb565b612eb957600d61185b565b6001600160a01b0384166000908152601660205260409020548015612f9e576000856001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3c91906152cb565b90506000612f4a828661365d565b9050828110612f9b5760405162461bcd60e51b815260206004820152601960248201527f6d61726b657420626f72726f77206361702072656163686564000000000000006044820152606401610cfb565b50505b600080612fae8688600088613b36565b91935090915060009050826011811115612fca57612fca6152e4565b14612feb57816011811115612fe157612fe16152e4565b93505050506115a3565b8015612ff8576004612fe1565b60006040518060200160405280896001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306791906152cb565b905290506130758882613675565b613080888883613868565b600098975050505050505050565b600860205281600052604060002081815481106130aa57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600080546001600160a01b031633146130ec576130e56001600661417a565b9050611077565b6001600160a01b0383166000908152600960205260409020805460ff16613121576131196009600761417a565b915050611077565b60408051602080820183528582528251908101909252670c7d713b49da000082529061314f81835190511090565b1561316a576131606006600861417a565b9350505050611077565b84158015906131e657506004805460405163fc57d4df60e01b81526001600160a01b038981169382019390935291169063fc57d4df90602401602060405180830381865afa1580156131c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e491906152cb565b155b156131f757613160600d600961417a565b60018301805490869055604080516001600160a01b0389168152602081018390529081018790527f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc59060600160405180910390a16000979650505050505050565b61125b81600d8054806020026020016040519081016040528092919081815260200182805480156132b257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613294575b505050505061107d565b6000806132ca8585856145bb565b905080156132d95790506115a3565b6132e285613e64565b6132ec8585613fdc565b600095945050505050565b6040516361bfb47160e11b815233600482015260009082908290819081906001600160a01b0385169063c37f68e290602401608060405180830381865afa158015613346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336a919061532d565b50925092509250826000146133cf5760405162461bcd60e51b815260206004820152602560248201527f657869744d61726b65743a206765744163636f756e74536e617073686f742066604482015264185a5b195960da1b6064820152608401610cfb565b80156133eb576133e1600c600261417a565b9695505050505050565b60006133f88733856145bb565b905080156134185761340d600e6003836147ea565b979650505050505050565b6001600160a01b0385166000908152600960209081526040808320338452600281019092529091205460ff1661345657600098975050505050505050565b3360009081526002820160209081526040808320805460ff1916905560088252808320805482518185028101850190935280835291929091908301828280156134c857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116134aa575b5050835193945083925060009150505b8281101561352d57896001600160a01b03168482815181106134fc576134fc615191565b60200260200101516001600160a01b0316141561351b5780915061352d565b80613525816151d4565b9150506134d8565b5081811061353d5761353d615317565b3360009081526008602052604090208054819061355c906001906151bd565b8154811061356c5761356c615191565b9060005260206000200160009054906101000a90046001600160a01b031681838154811061359c5761359c615191565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550808054806135da576135da615363565b600082815260209020810160001990810180546001600160a01b03191690550190556040517fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d90613643908c9033906001600160a01b0392831681529116602082015260400190565b60405180910390a160009c9b505050505050505050505050565b60006115a38284615379565b60006115a382846151bd565b6001600160a01b0382166000908152601160209081526040808320601990925282205490916136da435b6040518060400160405280601c81526020017f626c6f636b206e756d6265722065786365656473203332206269747300000000815250614862565b83549091506000906136fc9063ffffffff80851691600160e01b900416613669565b905060008111801561370e5750600083115b1561383d576000613780876001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015613756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377a91906152cb565b87614892565b9050600061378e838661422b565b905060008083116137ae57604051806020016040528060008152506137b8565b6137b882846148b0565b604080516020810190915288546001600160e01b0316815290915061381b906137e190836148eb565b5160408051808201909152601a81527f6e657720696e64657820657863656564732032323420626974730000000000006020820152614917565b6001600160e01b0316600160e01b63ffffffff87160217875550610647915050565b801561064757835463ffffffff8316600160e01b026001600160e01b03909116178455505050505050565b6001600160a01b03838116600090815260116020908152604080832080546013845282852095881685529490925290912080546001600160e01b03909316908190559091801580156138c857506a0c097ce7bc90715b34b9f160241b8210155b156138de57506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806138f58585613669565b90526040516395dd919360e01b81526001600160a01b03888116600483015291925060009161394891908a16906395dd919390602401602060405180830381865afa158015613756573d6000803e3d6000fd5b90506000613956828461493e565b6001600160a01b0389166000908152601460205260408120549192509061397d908361365d565b6001600160a01b038a811660008181526014602090815260409182902085905581518781529081018b90529394509092918d16917f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a6910160405180910390a350505050505050505050565b600080546001600160a01b0316331480613a0c57506002546001600160a01b031633145b905090565b60008073c00e94cb662c3520282e6f5717214004a7f268886040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015613a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9791906152cb565b9050600084118015613aa95750808411155b15613b2d5760405163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905283169063a9059cbb906044016020604051808303816000875af1158015613afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2191906152fa565b50600092505050611077565b50919392505050565b6000806000613b436149d4565b6001600160a01b038816600090815260086020908152604080832080548251818502810185019093528083528493830182828015613baa57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613b8c575b5050505050905060005b8151811015613e0e576000828281518110613bd157613bd1615191565b60209081029190910101516040516361bfb47160e11b81526001600160a01b038e811660048301529192509082169063c37f68e290602401608060405180830381865afa158015613c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c4a919061532d565b60808901526060880152604087015293508315613c7657600f60008097509750975050505050506117d4565b60408051602080820183526001600160a01b0384811660008181526009845285902060010154845260c08a01939093528351808301855260808a0151815260e08a015260048054855163fc57d4df60e01b815291820194909452935192169263fc57d4df92602480830193928290030181865afa158015613cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1f91906152cb565b60a08601819052613d3f57600d60008097509750975050505050506117d4565b604080516020810190915260a0860151815261010086015260c085015160e0860151613d7991613d6e91614768565b866101000151614768565b610120860181905260408601518651613d93929190614967565b855261010085015160608601516020870151613db0929190614967565b60208601526001600160a01b03818116908c161415613dfb57613ddd8561012001518b8760200151614967565b60208601819052610100860151613df5918b90614967565b60208601525b5080613e06816151d4565b915050613bb4565b50602083015183511115613e3f5760208301518351600091613e2f916151bd565b60009550955095505050506117d4565b60008084600001518560200151613e5691906151bd565b9550955095505050506117d4565b6001600160a01b0381166000908152601060209081526040808320601a9092528220549091613e924361369f565b8354909150600090613eb49063ffffffff80851691600160e01b900416613669565b9050600081118015613ec65750600083115b15613fb2576000856001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2f91906152cb565b90506000613f3d838661422b565b90506000808311613f5d5760405180602001604052806000815250613f67565b613f6782846148b0565b604080516020810190915288546001600160e01b03168152909150613f90906137e190836148eb565b6001600160e01b0316600160e01b63ffffffff87160217875550610541915050565b801561054157835463ffffffff8316600160e01b026001600160e01b039091161784555050505050565b6001600160a01b03828116600090815260106020908152604080832080546012845282852095871685529490925290912080546001600160e01b039093169081905590918015801561403c57506a0c097ce7bc90715b34b9f160241b8210155b1561405257506a0c097ce7bc90715b34b9f160241b5b600060405180602001604052806140698585613669565b90526040516370a0823160e01b81526001600160a01b0387811660048301529192506000918816906370a0823190602401602060405180830381865afa1580156140b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140db91906152cb565b905060006140e9828461493e565b6001600160a01b03881660009081526014602052604081205491925090614110908361365d565b6001600160a01b0389811660008181526014602090815260409182902085905581518781529081018b90529394509092918c16917f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a910160405180910390a3505050505050505050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa08360118111156141af576141af6152e4565b8360138111156141c1576141c16152e4565b60408051928352602083019190915260009082015260600160405180910390a18260118111156115a3576115a36152e4565b6000806000614206846000806000613b36565b9250925092509193909250565b6000806142208484614988565b9050611314816149b0565b60006115a38284615391565b60005b600d548110156142cd57816001600160a01b0316600d828154811061426157614261615191565b6000918252602090912001546001600160a01b031614156142bb5760405162461bcd60e51b81526020600482015260146024820152731b585c9ad95d08185b1c9958591e48185919195960621b6044820152606401610cfb565b806142c5816151d4565b91505061423a565b50600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0392909216919091179055565b600061432b4361369f565b6001600160a01b03831660009081526010602090815260408083206011909252909120815492935090916001600160e01b03166143815781546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1782555b80546001600160e01b03166143af5780546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1781555b805463ffffffff909316600160e01b026001600160e01b0393841681179091558154909216909117905550565b6001600160a01b0383166000908152600960205260409020805460ff166144455760405162461bcd60e51b815260206004820152601960248201527f636f6d70206d61726b6574206973206e6f74206c6973746564000000000000006044820152606401610cfb565b6001600160a01b0384166000908152601a602052604090205483146144c35761446d84613e64565b6001600160a01b0384166000818152601a602052604090819020859055517fdeafccd0c0b768b2529f7dcbbe58e155d6023059150b7490ed4535cc3744b92d906144ba9086815260200190565b60405180910390a25b6001600160a01b038416600090815260196020526040902054821461062d5760006040518060200160405280866001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561452d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455191906152cb565b9052905061455f8582613675565b6001600160a01b03851660008181526019602052604090819020859055517f20af8e791cc98f74b2d7a391c80980ca8e5aebf3d4060bf581997b6acae2e537906145ac9086815260200190565b60405180910390a25050505050565b6001600160a01b03831660009081526009602052604081205460ff166145e257600961185b565b6001600160a01b038085166000908152600960209081526040808320938716835260029093019052205460ff1661461a57600061185b565b60008061462a8587866000613b36565b91935090915060009050826011811115614646576146466152e4565b146146665781601181111561465d5761465d6152e4565b925050506115a3565b8015612cb257600461465d565b6001600160a01b0382166000908152600960205260408120805460ff1661469e576009915050611077565b6001600160a01b038316600090815260028201602052604090205460ff161515600114156146d0576000915050611077565b6001600160a01b03838116600081815260028401602090815260408083208054600160ff199091168117909155600883528184208054918201815584529282902090920180546001600160a01b031916948916948517905581519384528301919091527f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5910160405180910390a15060009392505050565b6040805160208101909152600081526040518060200160405280670de0b6b3a764000061479d8660000151866000015161422b565b6147a791906153b0565b90529392505050565b60408051602081019091526000815260405180602001604052806147a76147e38660000151670de0b6b3a764000061422b565b85516149c8565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa084601181111561481f5761481f6152e4565b846013811115614831576148316152e4565b604080519283526020830191909152810184905260600160405180910390a1836011811115611314576113146152e4565b600081640100000000841061488a5760405162461bcd60e51b8152600401610cfb91906153d2565b509192915050565b60006115a36148a984670de0b6b3a764000061422b565b83516149c8565b60408051602081019091526000815260405180602001604052806147a76148e5866a0c097ce7bc90715b34b9f160241b61422b565b856149c8565b60408051602081019091526000815260405180602001604052806147a78560000151856000015161365d565b600081600160e01b841061488a5760405162461bcd60e51b8152600401610cfb91906153d2565b60006a0c097ce7bc90715b34b9f160241b61495d84846000015161422b565b6115a391906153b0565b6000806149748585614988565b9050611d3c614982826149b0565b8461365d565b60408051602081019091526000815260405180602001604052806147a785600001518561422b565b805160009061107790670de0b6b3a7640000906153b0565b60006115a382846153b0565b604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001614a206040518060200160405280600081525090565b8152602001614a3b6040518060200160405280600081525090565b8152602001614a566040518060200160405280600081525090565b8152602001614a716040518060200160405280600081525090565b905290565b60008083601f840112614a8857600080fd5b50813567ffffffffffffffff811115614aa057600080fd5b6020830191508360208260051b8501011115614abb57600080fd5b9250929050565b60008060008060408587031215614ad857600080fd5b843567ffffffffffffffff80821115614af057600080fd5b614afc88838901614a76565b90965094506020870135915080821115614b1557600080fd5b50614b2287828801614a76565b95989497509550505050565b6001600160a01b038116811461125b57600080fd5b801515811461125b57600080fd5b60008060408385031215614b6457600080fd5b8235614b6f81614b2e565b91506020830135614b7f81614b43565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614bc957614bc9614b8a565b604052919050565b600067ffffffffffffffff821115614beb57614beb614b8a565b5060051b60200190565b600082601f830112614c0657600080fd5b81356020614c1b614c1683614bd1565b614ba0565b82815260059290921b84018101918181019086841115614c3a57600080fd5b8286015b84811015614c5e578035614c5181614b2e565b8352918301918301614c3e565b509695505050505050565b60008060408385031215614c7c57600080fd5b8235614c8781614b2e565b9150602083013567ffffffffffffffff811115614ca357600080fd5b614caf85828601614bf5565b9150509250929050565b600060208284031215614ccb57600080fd5b81356115a381614b2e565b600080600080600060a08688031215614cee57600080fd5b8535614cf981614b2e565b94506020860135614d0981614b2e565b93506040860135614d1981614b2e565b94979396509394606081013594506080013592915050565b60008060008060808587031215614d4757600080fd5b8435614d5281614b2e565b93506020850135614d6281614b2e565b92506040850135614d7281614b2e565b9396929550929360600135925050565b60008060408385031215614d9557600080fd5b8235614da081614b2e565b946020939093013593505050565b600060208284031215614dc057600080fd5b81356115a381614b43565b600060208284031215614ddd57600080fd5b5035919050565b60008060008060808587031215614dfa57600080fd5b8435614e0581614b2e565b93506020850135614e1581614b2e565b93969395505050506040820135916060013590565b60008060008060008060c08789031215614e4357600080fd5b8635614e4e81614b2e565b95506020870135614e5e81614b2e565b94506040870135614e6e81614b2e565b93506060870135614e7e81614b2e565b9598949750929560808101359460a0909101359350915050565b600080600060608486031215614ead57600080fd5b8335614eb881614b2e565b92506020840135614ec881614b2e565b929592945050506040919091013590565b600080600080600060a08688031215614ef157600080fd5b8535614efc81614b2e565b94506020860135614f0c81614b2e565b93506040860135614f1c81614b2e565b92506060860135614f2c81614b2e565b949793965091946080013592915050565b60008060008060808587031215614f5357600080fd5b843567ffffffffffffffff80821115614f6b57600080fd5b614f7788838901614bf5565b95506020870135915080821115614f8d57600080fd5b50614f9a87828801614bf5565b9350506040850135614fab81614b43565b91506060850135614fbb81614b43565b939692955090935050565b60008060408385031215614fd957600080fd5b8235614fe481614b2e565b91506020830135614b7f81614b2e565b600082601f83011261500557600080fd5b81356020615015614c1683614bd1565b82815260059290921b8401810191818101908684111561503457600080fd5b8286015b84811015614c5e5780358352918301918301615038565b60008060006060848603121561506457600080fd5b833567ffffffffffffffff8082111561507c57600080fd5b61508887838801614bf5565b9450602086013591508082111561509e57600080fd5b6150aa87838801614ff4565b935060408601359150808211156150c057600080fd5b506150cd86828701614ff4565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b818110156151185783516001600160a01b0316835292840192918401916001016150f3565b50909695505050505050565b60006020828403121561513657600080fd5b813567ffffffffffffffff81111561514d57600080fd5b61131484828501614bf5565b6020808252825182820181905260009190848201906040850190845b8181101561511857835183529284019291840191600101615175565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156151cf576151cf6151a7565b500390565b60006000198214156151e8576151e86151a7565b5060010190565b60208082526028908201527f63616e6e6f742070617573652061206d61726b65742074686174206973206e6f6040820152671d081b1a5cdd195960c21b606082015260800190565b60208082526027908201527f6f6e6c7920706175736520677561726469616e20616e642061646d696e2063616040820152666e20706175736560c81b606082015260800190565b6020808252601690820152756f6e6c792061646d696e2063616e20756e706175736560501b604082015260600190565b6000602082840312156152c057600080fd5b81516115a381614b2e565b6000602082840312156152dd57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561530c57600080fd5b81516115a381614b43565b634e487b7160e01b600052600160045260246000fd5b6000806000806080858703121561534357600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052603160045260246000fd5b6000821982111561538c5761538c6151a7565b500190565b60008160001904831182151516156153ab576153ab6151a7565b500290565b6000826153cd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156153ff578581018301518582016040015282016153e3565b81811115615411576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220fc4e4fc74dc48db85927686273acf40a7f1f7dc6f69bbbce5ab153b7e78def6264736f6c634300080a0033";