[ { "inputs": [ { "internalType": "contract ISuperfluid", "name": "host", "type": "address" }, { "internalType": "contract IConstantOutflowNFT", "name": "constantOutflowNFT", "type": "address" }, { "internalType": "contract IConstantInflowNFT", "name": "constantInflowNFT", "type": "address" }, { "internalType": "contract IPoolAdminNFT", "name": "poolAdminNFT", "type": "address" }, { "internalType": "contract IPoolMemberNFT", "name": "poolMemberNFT", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "SF_TOKEN_AGREEMENT_ALREADY_EXISTS", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_AGREEMENT_DOES_NOT_EXIST", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_BURN_INSUFFICIENT_BALANCE", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_MOVE_INSUFFICIENT_BALANCE", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_ONLY_HOST", "type": "error" }, { "inputs": [], "name": "SF_TOKEN_ONLY_LISTED_AGREEMENT", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_APPROVE_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_APPROVE_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_BURN_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_CALLER_IS_NOT_OPERATOR_FOR_HOLDER", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_INFLATIONARY_DEFLATIONARY_NOT_SUPPORTED", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_MINT_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NFT_PROXY_ADDRESS_CHANGED", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NOT_ERC777_TOKENS_RECIPIENT", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_NO_UNDERLYING_TOKEN", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_ADMIN", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_GOV_OWNER", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_ONLY_SELF", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_TRANSFER_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "SUPER_TOKEN_TRANSFER_TO_ZERO_ADDRESS", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "AgreementCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "penaltyAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "rewardAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "AgreementLiquidated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "liquidatorAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "penaltyAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "bondAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "bailoutAmount", "type": "uint256" } ], "name": "AgreementLiquidatedBy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "liquidatorAccount", "type": "address" }, { "indexed": true, "internalType": "address", "name": "targetAccount", "type": "address" }, { "indexed": false, "internalType": "address", "name": "rewardAmountReceiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "indexed": false, "internalType": "int256", "name": "targetAccountBalanceDelta", "type": "int256" }, { "indexed": false, "internalType": "bytes", "name": "liquidationTypeData", "type": "bytes" } ], "name": "AgreementLiquidatedV2", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "slotId", "type": "uint256" } ], "name": "AgreementStateUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" } ], "name": "AgreementTerminated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "agreementClass", "type": "address" }, { "indexed": false, "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "indexed": false, "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "AgreementUpdated", "type": "event" }, { "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": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenHolder", "type": "address" } ], "name": "AuthorizedOperator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "bailoutAccount", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "bailoutAmount", "type": "uint256" } ], "name": "Bailout", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Burned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "uuid", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "codeAddress", "type": "address" } ], "name": "CodeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IConstantInflowNFT", "name": "constantInflowNFT", "type": "address" } ], "name": "ConstantInflowNFTCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IConstantOutflowNFT", "name": "constantOutflowNFT", "type": "address" } ], "name": "ConstantOutflowNFTCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Minted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IPoolAdminNFT", "name": "poolAdminNFT", "type": "address" } ], "name": "PoolAdminNFTCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "contract IPoolMemberNFT", "name": "poolMemberNFT", "type": "address" } ], "name": "PoolMemberNFTCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenHolder", "type": "address" } ], "name": "RevokedOperator", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "Sent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenDowngraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenUpgraded", "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": [], "name": "CONSTANT_INFLOW_NFT", "outputs": [ { "internalType": "contract IConstantInflowNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CONSTANT_OUTFLOW_NFT", "outputs": [ { "internalType": "contract IConstantOutflowNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POOL_ADMIN_NFT", "outputs": [ { "internalType": "contract IPoolAdminNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POOL_MEMBER_NFT", "outputs": [ { "internalType": "contract IPoolMemberNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "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": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "authorizeOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "castrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "changeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "createAgreement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "defaultOperators", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "downgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "downgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountActiveAgreements", "outputs": [ { "internalType": "contract ISuperAgreement[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "agreementClass", "type": "address" }, { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "uint256", "name": "dataLength", "type": "uint256" } ], "name": "getAgreementData", "outputs": [ { "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "agreementClass", "type": "address" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "slotId", "type": "uint256" }, { "internalType": "uint256", "name": "dataLength", "type": "uint256" } ], "name": "getAgreementStateSlot", "outputs": [ { "internalType": "bytes32[]", "name": "slotData", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCodeAddress", "outputs": [ { "internalType": "address", "name": "codeAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getHost", "outputs": [ { "internalType": "address", "name": "host", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getUnderlyingDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getUnderlyingToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "granularity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "underlyingToken", "type": "address" }, { "internalType": "uint8", "name": "underlyingDecimals", "type": "uint8" }, { "internalType": "string", "name": "n", "type": "string" }, { "internalType": "string", "name": "s", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "underlyingToken", "type": "address" }, { "internalType": "uint8", "name": "underlyingDecimals", "type": "uint8" }, { "internalType": "string", "name": "n", "type": "string" }, { "internalType": "string", "name": "s", "type": "string" }, { "internalType": "address", "name": "admin", "type": "address" } ], "name": "initializeWithAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "isAccountCritical", "outputs": [ { "internalType": "bool", "name": "isCritical", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAccountCriticalNow", "outputs": [ { "internalType": "bool", "name": "isCritical", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "isAccountSolvent", "outputs": [ { "internalType": "bool", "name": "isSolvent", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isAccountSolventNow", "outputs": [ { "internalType": "bool", "name": "isSolvent", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "tokenHolder", "type": "address" } ], "name": "isOperatorFor", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "bytes", "name": "liquidationTypeData", "type": "bytes" }, { "internalType": "address", "name": "liquidatorAccount", "type": "address" }, { "internalType": "bool", "name": "useDefaultRewardAccount", "type": "bool" }, { "internalType": "address", "name": "targetAccount", "type": "address" }, { "internalType": "uint256", "name": "rewardAmount", "type": "uint256" }, { "internalType": "int256", "name": "targetAccountBalanceDelta", "type": "int256" } ], "name": "makeLiquidationPayoutsV2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "operationApprove", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "operationDecreaseAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "operationDowngrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "operationIncreaseAllowance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "operationSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "operationTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "operationUpgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" }, { "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "operatorBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" }, { "internalType": "bytes", "name": "operatorData", "type": "bytes" } ], "name": "operatorSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "name": "realtimeBalanceOf", "outputs": [ { "internalType": "int256", "name": "availableBalance", "type": "int256" }, { "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "uint256", "name": "owedDeposit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "realtimeBalanceOfNow", "outputs": [ { "internalType": "int256", "name": "availableBalance", "type": "int256" }, { "internalType": "uint256", "name": "deposit", "type": "uint256" }, { "internalType": "uint256", "name": "owedDeposit", "type": "uint256" }, { "internalType": "uint256", "name": "timestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "revokeOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "selfApproveFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "selfBurn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "selfMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "selfTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "send", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "int256", "name": "delta", "type": "int256" } ], "name": "settleBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "uint256", "name": "dataLength", "type": "uint256" } ], "name": "terminateAgreement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "toUnderlyingAmount", "outputs": [ { "internalType": "uint256", "name": "underlyingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "adjustedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "transferAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "id", "type": "bytes32" }, { "internalType": "bytes32[]", "name": "data", "type": "bytes32[]" } ], "name": "updateAgreementData", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "slotId", "type": "uint256" }, { "internalType": "bytes32[]", "name": "slotData", "type": "bytes32[]" } ], "name": "updateAgreementStateSlot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateCode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "userData", "type": "bytes" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101206040523480156200001257600080fd5b506040516200512638038062005126833981016040819052620000359162000147565b6001600160a01b0380861660805284811660a081905284821660c0528382166101005290821660e0526040517fcf554eb342edf010a94e07701ae91e99e90b769f649f03aeb1153654ddd43c0190600090a26040516001600160a01b038416907f8837af285f4d380af9227df9ebafa13d992b487fa6d7a4366bd4154576085b8990600090a26040516001600160a01b038316907feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e690600090a26040516001600160a01b038216907fc1050c54a299c837fe281a2623c29ec8e34b455daef48760b6a29f4b6cc9906090600090a25050505050620001c7565b6001600160a01b03811681146200014457600080fd5b50565b600080600080600060a086880312156200016057600080fd5b85516200016d816200012e565b602087015190955062000180816200012e565b604087015190945062000193816200012e565b6060870151909350620001a6816200012e565b6080870151909250620001b9816200012e565b809150509295509295909350565b60805160a05160c05160e05161010051614e876200029f60003960006108020152600061098601526000818161064c015261157b01526000818161095f01526114de0152600081816104c101528181610c6201528181610cd10152818161100701528181611137015281816112060152818161141d015281816115cb01528181611713015281816118be0152818161199d01528181611d8e01528181611e5801528181611ef001528181611f5801528181611fe0015281816128900152818161292701528181613a1b0152613c5a0152614e876000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c80636e9960c311610215578063bb0d196e11610125578063dd62ed3e116100b8578063ef43d2c611610087578063ef43d2c61461095a578063f5a8b4dd14610981578063fad8b32a146109a8578063fc673c4f146109bb578063fe9d9303146109ce57600080fd5b8063dd62ed3e146108cf578063eb3537cc14610908578063ec0d634314610936578063ee719bc81461094957600080fd5b8063ca789464116100f4578063ca78946414610883578063cf97256d14610896578063d95b6371146108a9578063d9d078d6146108bc57600080fd5b8063bb0d196e14610837578063c68d42831461084a578063c780fd821461085d578063ca0c1e7f1461087057600080fd5b80639903ad38116101a8578063a3a7e7f311610177578063a3a7e7f3146107c4578063a457c2d7146107d7578063a9059cbb146107ea578063b20db1ac146107fd578063b84cdd4a1461082457600080fd5b80639903ad38146107835780639bd9bbc61461078b5780639d8767411461079e578063a1b2bf8b146107b157600080fd5b80638f283970116101e45780638f2839701461074357806392081a4714610756578063959b8c3f1461076857806395d89b411461077b57600080fd5b80636e9960c31461070257806370a082311461070a57806379359f6f1461071d57806383ba25251461073057600080fd5b8063386fa221116103105780634c5c0c85116102a35780635b9d09cc116102725780635b9d09cc146106a357806362aa5287146106b657806362ad1b83146106c957806366a12fb6146106dc5780636c2d9f2f146106ef57600080fd5b80634c5c0c851461064757806350d75d251461066e57806352d1902d14610676578063556f0dc71461069c57600080fd5b806345977d03116102df57806345977d03146105ee57806346951954146106015780634b2763b3146106145780634b61cc331461062757600080fd5b8063386fa221146105a257806339509351146105b557806341b706be146105c857806342fe0980146105db57600080fd5b80631863e809116103885780632704839711610357578063270483971461051f578063282a050b146105325780632ec8eec71461055a578063313ce5671461058d57600080fd5b80631863e809146104ac57806320bc4425146104bf57806323b872dd146104f9578063245887fc1461050c57600080fd5b806311bcc81e116103c457806311bcc81e1461046157806312a6a3f81461047457806316d055d61461048757806318160ddd1461049a57600080fd5b806306e48538146103f657806306fdde0314610414578063090c415e14610429578063095ea7b31461043e575b600080fd5b6103fe6109e1565b60405161040b9190613e74565b60405180910390f35b61041c6109f2565b60405161040b9190613f11565b61043c610437366004613f84565b610a84565b005b61045161044c366004613fdf565b610b37565b604051901515815260200161040b565b61043c61046f36600461400b565b610b4e565b61043c610482366004614024565b610b7d565b61043c61049536600461406f565b610c60565b6003545b60405190815260200161040b565b61043c6104ba366004614183565b610cbc565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161040b565b610451610507366004614215565b610fef565b61043c61051a366004613fdf565b611005565b61043c61052d366004614256565b61107e565b61054561054036600461400b565b61111a565b6040805192835260208301919091520161040b565b61056d610568366004614278565b61112f565b60408051948552602085019390935291830152606082015260800161040b565b60125b60405160ff909116815260200161040b565b6103fe6105b0366004614278565b6111d2565b6104516105c3366004613fdf565b611275565b61043c6105d636600461406f565b6112b1565b61043c6105e93660046142ec565b6112dd565b61043c6105fc36600461400b565b6113be565b61043c61060f366004614278565b6113ea565b61043c610622366004614215565b6115c9565b61063a61063536600461437e565b61164b565b60405161040b91906143c4565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e1611690565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001961049e565b600161049e565b61043c6106b13660046143fc565b6116ba565b61043c6106c4366004614215565b611711565b61043c6106d736600461444b565b611765565b61043c6106ea366004614215565b611813565b61063a6106fd3660046144e9565b611833565b6104e1611875565b61049e610718366004614278565b61188d565b61045161072b366004614278565b6118b6565b61043c61073e366004613fdf565b61193e565b61043c610751366004614278565b61196a565b600e54600160a01b900460ff16610590565b61043c610776366004614278565b611a5e565b61041c611aaf565b61043c611abe565b61043c6107993660046143fc565b611b80565b61043c6107ac36600461451e565b611bd4565b61043c6107bf366004614024565b611c1a565b61043c6107d2366004614278565b611cc4565b6104516107e5366004613fdf565b611cd8565b6104516107f8366004613fdf565b611d27565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b610451610832366004613fdf565b611d35565b610451610845366004614278565b611d86565b61043c61085836600461451e565b611e0e565b61043c61086b366004614215565b611e56565b61043c61087e366004614576565b611eee565b61043c610891366004613fdf565b611f56565b61043c6108a4366004613fdf565b611fcb565b6104516108b73660046145e1565b6120b4565b6104516108ca366004613fdf565b6120c2565b61049e6108dd3660046145e1565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b61091b610916366004613fdf565b6120dc565b6040805193845260208401929092529082015260600161040b565b61043c61094436600461461a565b612210565b600e546001600160a01b03166104e1565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b6104e17f000000000000000000000000000000000000000000000000000000000000000081565b61043c6109b6366004614278565b6122e7565b61043c6109c93660046146c0565b612338565b61043c6109dc366004614707565b6123d9565b60606109ed601261242a565b905090565b6060600f8054610a0190614745565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2d90614745565b8015610a7a5780601f10610a4f57610100808354040283529160200191610a7a565b820191906000526020600020905b815481529060010190602001808311610a5d57829003601f168201915b5050505050905090565b6000338585604051602001610a9b9392919061477f565b604051602081830303815290604052805190602001209050610af08184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061249092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b6000610b443384846124c8565b5060015b92915050565b610b7a333333846040518060200160405280600081525060405180602001604052806000815250612577565b50565b6040513390600090610b9590839087906020016147c8565b60408051601f1981840301815291905280516020909101209050610bb98184612737565b15610bd75760405163782a90fb60e11b815260040160405180910390fd5b610c148185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061249092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610c5193929190614805565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ca95760405163c51efddd60e01b815260040160405180910390fd5b610cb58484848461276b565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d449190614846565b610d615760405163327fd99160e21b815260040160405180910390fd5b6000610d6b61288b565b90506001600160a01b038116610d7e5750845b600085610d8b5786610d8d565b815b905060008313610e5b57610da083614879565b610da9856129d0565b14610db657610db6614895565b610dbf846129d0565b6001600160a01b03821660009081526002602052604081208054909190610de79084906148ab565b90915550506001600160a01b03851660009081526002602052604081208054859290610e149084906148ab565b92505081905550806001600160a01b0316856001600160a01b0316600080516020614e0583398151915286604051610e4e91815260200190565b60405180910390a3610f87565b8515610e6957610e69614895565b82610e73856129d0565b610e7d91906148ab565b6001600160a01b03831660009081526002602052604081208054909190610ea59084906148d3565b90915550610eb49050846129d0565b6001600160a01b03881660009081526002602052604081208054909190610edc9084906148ab565b90915550506001600160a01b03851660009081526002602052604081208054859290610f099084906148ab565b92505081905550866001600160a01b0316826001600160a01b0316600080516020614e0583398151915286604051610f4391815260200190565b60405180910390a3846001600160a01b0316826001600160a01b0316600080516020614e0583398151915285604051610f7e91815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051610fdc9594939291906148f3565b60405180910390a4505050505050505050565b6000610ffd3385858561276b565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461104e5760405163c51efddd60e01b815260040160405180910390fd5b61107a338384846040518060200160405280600081525060405180602001604052806000815250612577565b5050565b604051339060009061109690839086906020016147c8565b6040516020818303038152906040528051906020012090506110b88184612737565b6110d55760405163dae1880960e01b815260040160405180910390fd5b6110df8184612a3e565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b60008061112683612a57565b91509150915091565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b79190614926565b90506111c385826120dc565b91979096509094509092509050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa15801561124d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b48919081019061493f565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610b449185906112ac9086906149f0565b6124c8565b3330146112d157604051630fff4cc960e31b815260040160405180910390fd5b610cb58385848461276b565b600054610100900460ff16158080156112fd5750600054600160ff909116105b806113175750303b158015611317575060005460ff166001145b61133c5760405162461bcd60e51b815260040161133390614a03565b60405180910390fd5b6000805460ff19166001179055801561135f576000805461ff0019166101001790555b61136f8787878787876000612b13565b80156113b5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610b7a333333846040518060200160405280600081525060405180602001604052806000815250612bdb565b6000611402600080516020614dbb8339815191525490565b905060006001600160a01b0382161561141b578161143d565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b0382161461146857604051630484acab60e01b815260040160405180910390fd5b61147183612d8e565b826001600160a01b031663ef43d2c66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d39190614a51565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806115a65750826001600160a01b0316634c5c0c856040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115709190614a51565b6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614155b156115c45760405163ef1b6ddf60e01b815260040160405180910390fd5b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116125760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084166000908152601160209081526040808320938616835292905220546115c490849084906112ac9085906149f0565b606060008585856040516020016116649392919061477f565b6040516020818303038152906040528051906020012090506116868184612fc8565b9695505050505050565b60006109ed7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61170b3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612bdb915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461175a5760405163c51efddd60e01b815260040160405180910390fd5b6115c48383836124c8565b336117726012828a61304f565b61178f5760405163f7f0222760e01b815260040160405180910390fd5b6118098189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506130f8915050565b5050505050505050565b33301461175a57604051630fff4cc960e31b815260040160405180910390fd5b60606000848460405160200161184a9291906147c8565b60405160208183030381529060405280519060200120905061186c8184612fc8565b95945050505050565b60006109ed600080516020614dbb8339815191525490565b6000806118998361112f565b5050509050600081126118ac57806118af565b60005b9392505050565b6000610b48827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561191a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ca9190614926565b61107a333384846040518060200160405280600081525060405180602001604052806000815250612577565b6000611982600080516020614dbb8339815191525490565b905060006001600160a01b0382161561199b57816119bd565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146119e857604051630484acab60e01b815260040160405180910390fd5b6000611a00600080516020614dbb8339815191525490565b9050611a1884600080516020614dbb83398151915255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611a6b60128284613171565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a0190614745565b600054610100900460ff1615808015611ade5750600054600160ff909116105b80611af85750303b158015611af8575060005460ff166001145b611b145760405162461bcd60e51b815260040161133390614a03565b6000805460ff191660011790558015611b37576000805461ff0019166101001790555b8015610b7a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b61170b3333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506130f89050565b333014611bf457604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526115c491339186918691901515908690613275565b6040513390600090611c3290839087906020016147c8565b604051602081830303815290604052805190602001209050611c878185858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061249092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610c5193929190614805565b61107a333383611cd33361188d565b61276b565b6000610b4433846112ac856040518060600160405280602a8152602001614ddb602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190613342565b60006118af3333858561276b565b600080600080611d4586866120dc565b9250925092506000611d6d828411611d5e5760006129d0565b611d688385614a6e565b6129d0565b611d7790856148ab565b60001315979650505050505050565b6000610b48827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dea573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108329190614926565b333014611e2e57604051630fff4cc960e31b815260040160405180910390fd5b80516040805160008152602081019091526115c491339186918691901515908190879061336e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611e9f5760405163c51efddd60e01b815260040160405180910390fd5b6115c483836112ac846040518060600160405280602a8152602001614ddb602a91396001600160a01b03808a166000908152601160209081526040808320938c16835292905220549190613342565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f375760405163c51efddd60e01b815260040160405180910390fd5b61170b33858585856040518060200160405280600081525060016130f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314611f9f5760405163c51efddd60e01b815260040160405180910390fd5b61107a338384846040518060200160405280600081525060405180602001604052806000815250612bdb565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190614846565b6120705760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382166000908152600260205260409020546120949082906148ab565b6001600160a01b0390921660009081526002602052604090209190915550565b60006118af6012848461304f565b6000806120cf84846120dc565b5050600013949350505050565b6001600160a01b038216600090815260026020526040812054908080612101866111d2565b905060005b815181101561220757600080600084848151811061212657612126614a81565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa158015612185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a99190614a97565b919450925090506121ba82886149f0565b96506121c681876149f0565b95506121e38183116121d95760006129d0565b611d688284614a6e565b6121ed848a6148ab565b6121f791906148d3565b9750505050806001019050612106565b50509250925092565b600054610100900460ff16158080156122305750600054600160ff909116105b8061224a5750303b15801561224a575060005460ff166001145b6122665760405162461bcd60e51b815260040161133390614a03565b6000805460ff191660011790558015612289576000805461ff0019166101001790555b61229888888888888888612b13565b8015611809576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336122f46012828461343c565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336123456012828961304f565b6123625760405163f7f0222760e01b815260040160405180910390fd5b6113b58188898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a908190840183828082843760009201919091525061257792505050565b6115c43333338686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250612577915050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561248457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612466575b50505050509050919050565b60005b81518110156115c45760008282815181106124b0576124b0614a81565b60209081029190910101518483015550600101612493565b6001600160a01b0383166124ef57604051638163862760e01b815260040160405180910390fd5b6001600160a01b038216612516576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b03166125a057604051637bce7b2b60e11b815260040160405180910390fd5b6000806125ac85612a57565b915091506125c38888838751600014158888613275565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561260c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126309190614926565b600e5490915061264a906001600160a01b03168885613534565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612693573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b79190614926565b905060006126c58284614a6e565b90508085146126e757604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d8560405161272291815260200190565b60405180910390a25050505050505050505050565b6000805b828110156127615783810154801561275857600192505050610b48565b5060010161273b565b5060009392505050565b60006001600160a01b0384166127945760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166127bb5760405163e219bd3960e01b815260040160405180910390fd5b60003390506127ec818686866040518060200160405280600081525060405180602001604052806000815250613597565b846001600160a01b0316866001600160a01b03161461287f5761287f85876112ac866040518060600160405280602d8152602001614e25602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546133429092919063ffffffff16565b50600195945050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129109190614a51565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa1580156129a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ca9190614a51565b91505090565b60006001600160ff1b03821115612a3a5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401611333565b5090565b60005b818110156115c457600083820155600101612a41565b600e54600090819081906012600160a01b90910460ff161015612ab657600e54612a8c90600160a01b900460ff166012614ac5565b612a9790600a614bc2565b9050612aa38185614bd1565b9250612aaf8184614bf3565b9150612b0d565b600e546012600160a01b90910460ff161115612b0657600e54612ae590601290600160a01b900460ff16614ac5565b612af090600a614bc2565b9050612afc8185614bf3565b9250839150612b0d565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612b48858783614c5a565b506010612b56838583614c5a565b50612b6d81600080516020614dbb83398151915255565b612b7630613636565b6040516000808252908190600080516020614e058339815191529060200160405180910390a36040516001600160a01b038216906000907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b600e546001600160a01b0316612c0457604051637bce7b2b60e11b815260040160405180910390fd5b600080612c1085612a57565b600e546040516370a0823160e01b81523060048201529294509092506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c859190614926565b600e54909150612ca0906001600160a01b0316893086613764565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0d9190614926565b90506000612d1b8383614a6e565b9050808514612d3d57604051631c7c26d360e31b815260040160405180910390fd5b8651612d53908c908b9087901515808c8c61336e565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df8560405161272291815260200190565b6000612db87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603612e0e5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401611333565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e709190614926565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb001914612eea5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401611333565b6001600160a01b0381163003612f425760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401611333565b612f6a817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611b75565b6060816001600160401b03811115612fe257612fe26140c0565b60405190808252806020026020018201604052801561300b578160200160208202803683370190505b50905060005b828110156130485760008185015490508083838151811061303457613034614a81565b602090810291909101015250600101613011565b5092915050565b6000816001600160a01b0316836001600160a01b031614806130be57506001600160a01b038316600090815260018501602052604090205460ff1680156130be57506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b80610ffd57506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b03861661311f5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166131465760405163e219bd3960e01b815260040160405180910390fd5b61315487878787878761379c565b613162878787878787613597565b6113b5878787878787876138c3565b806001600160a01b0316826001600160a01b0316036131e85760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401611333565b6001600160a01b038116600090815260018401602052604090205460ff161561323e576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661329c57604051632e8aac6160e21b815260040160405180910390fd5b82156132b1576132b18686600087868661379c565b6132bb8585613a13565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a409886858560405161330293929190614d19565b60405180910390a36040518481526000906001600160a01b03871690600080516020614e05833981519152906020015b60405180910390a3505050505050565b600081848411156133665760405162461bcd60e51b81526004016113339190613f11565b505050900390565b6001600160a01b03861661339557604051630d24315760e01b815260040160405180910390fd5b61339f8686613b23565b83156133b5576133b587600088888686896138c3565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d8785856040516133fc93929190614d19565b60405180910390a36040518581526001600160a01b03871690600090600080516020614e058339815191529060200160405180910390a350505050505050565b336001600160a01b038216036134a75760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401611333565b6001600160a01b038116600090815260018401602052604090205460ff1615613501576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b0383166024820152604481018290526115c490849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613b7d565b6135aa85856135a5866129d0565b613c52565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516135fb93929190614d19565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020614e058339815191528560405161333291815260200190565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90606401600060405180830381600087803b1580156136b757600080fd5b505af11580156136cb573d6000803e3d6000fd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d9150606401600060405180830381600087803b15801561375057600080fd5b505af1158015610cb5573d6000803e3d6000fd5b6040516001600160a01b038085166024830152831660448201526064810182905261170b9085906323b872dd60e01b90608401613560565b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe8956024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa15801561381d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138419190614a51565b90506001600160a01b038116156113b557604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613888908a908a908a908a908a908a90600401614d44565b600060405180830381600087803b1580156138a257600080fd5b505af11580156138b6573d6000803e3d6000fd5b5050505050505050505050565b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b6024820152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139689190614a51565b90506001600160a01b038116156139e4576040516223de2960e01b81526001600160a01b038216906223de29906139ad908b908b908b908b908b908b90600401614d44565b600060405180830381600087803b1580156139c757600080fd5b505af11580156139db573d6000803e3d6000fd5b50505050611809565b8115611809576001600160a01b0386163b156118095760405163fe737d0560e01b815260040160405180910390fd5b6000613a9b837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a77573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190614926565b50509050613aa8826129d0565b811215613ac85760405163043b37d160e21b815260040160405180910390fd5b613ad1826129d0565b6001600160a01b038416600090815260026020526040902054613af491906148d3565b6001600160a01b038416600090815260026020526040902055600354613b1b908390614a6e565b600355505050565b613b2c816129d0565b6001600160a01b038316600090815260026020526040902054613b4f91906148ab565b6001600160a01b038316600090815260026020526040902055600354613b769082906149f0565b6003555050565b6000613bd2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613d519092919063ffffffff16565b9050805160001480613bf3575080806020019051810190613bf39190614846565b6115c45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611333565b6000613cb6847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a77573d6000803e3d6000fd5b5050905081811215613cdb57604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054613cff9083906148d3565b6001600160a01b038086166000908152600260205260408082209390935590851681522054613d2f9083906148ab565b6001600160a01b03909316600090815260026020526040902092909255505050565b6060610ffd848460008585600080866001600160a01b03168587604051613d789190614d9e565b60006040518083038185875af1925050503d8060008114613db5576040519150601f19603f3d011682016040523d82523d6000602084013e613dba565b606091505b5091509150613dcb87838387613dd6565b979650505050505050565b60608315613e45578251600003613e3e576001600160a01b0385163b613e3e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611333565b5081610ffd565b610ffd8383815115613e5a5781518083602001fd5b8060405162461bcd60e51b81526004016113339190613f11565b6020808252825182820181905260009190848201906040850190845b81811015613eb55783516001600160a01b031683529284019291840191600101613e90565b50909695505050505050565b60005b83811015613edc578181015183820152602001613ec4565b50506000910152565b60008151808452613efd816020860160208601613ec1565b601f01601f19169290920160200192915050565b6020815260006118af6020830184613ee5565b6001600160a01b0381168114610b7a57600080fd5b60008083601f840112613f4b57600080fd5b5081356001600160401b03811115613f6257600080fd5b6020830191508360208260051b8501011115613f7d57600080fd5b9250929050565b60008060008060608587031215613f9a57600080fd5b8435613fa581613f24565b93506020850135925060408501356001600160401b03811115613fc757600080fd5b613fd387828801613f39565b95989497509550505050565b60008060408385031215613ff257600080fd5b8235613ffd81613f24565b946020939093013593505050565b60006020828403121561401d57600080fd5b5035919050565b60008060006040848603121561403957600080fd5b8335925060208401356001600160401b0381111561405657600080fd5b61406286828701613f39565b9497909650939450505050565b6000806000806080858703121561408557600080fd5b843561409081613f24565b935060208501356140a081613f24565b925060408501356140b081613f24565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156140fe576140fe6140c0565b604052919050565b600082601f83011261411757600080fd5b81356001600160401b03811115614130576141306140c0565b614143601f8201601f19166020016140d6565b81815284602083860101111561415857600080fd5b816020850160208301376000918101602001919091529392505050565b8015158114610b7a57600080fd5b600080600080600080600060e0888a03121561419e57600080fd5b8735965060208801356001600160401b038111156141bb57600080fd5b6141c78a828b01614106565b96505060408801356141d881613f24565b945060608801356141e881614175565b935060808801356141f881613f24565b9699959850939692959460a0840135945060c09093013592915050565b60008060006060848603121561422a57600080fd5b833561423581613f24565b9250602084013561424581613f24565b929592945050506040919091013590565b6000806040838503121561426957600080fd5b50508035926020909101359150565b60006020828403121561428a57600080fd5b81356118af81613f24565b803560ff811681146142a657600080fd5b919050565b60008083601f8401126142bd57600080fd5b5081356001600160401b038111156142d457600080fd5b602083019150836020828501011115613f7d57600080fd5b6000806000806000806080878903121561430557600080fd5b863561431081613f24565b955061431e60208801614295565b945060408701356001600160401b038082111561433a57600080fd5b6143468a838b016142ab565b9096509450606089013591508082111561435f57600080fd5b5061436c89828a016142ab565b979a9699509497509295939492505050565b6000806000806080858703121561439457600080fd5b843561439f81613f24565b935060208501356143af81613f24565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b81811015613eb5578351835292840192918401916001016143e0565b6000806000806060858703121561441257600080fd5b843561441d81613f24565b93506020850135925060408501356001600160401b0381111561443f57600080fd5b613fd3878288016142ab565b600080600080600080600060a0888a03121561446657600080fd5b873561447181613f24565b9650602088013561448181613f24565b95506040880135945060608801356001600160401b03808211156144a457600080fd5b6144b08b838c016142ab565b909650945060808a01359150808211156144c957600080fd5b506144d68a828b016142ab565b989b979a50959850939692959293505050565b6000806000606084860312156144fe57600080fd5b833561450981613f24565b95602085013595506040909401359392505050565b60008060006060848603121561453357600080fd5b833561453e81613f24565b92506020840135915060408401356001600160401b0381111561456057600080fd5b61456c86828701614106565b9150509250925092565b6000806000806080858703121561458c57600080fd5b843561459781613f24565b935060208501356145a781613f24565b92506040850135915060608501356001600160401b038111156145c957600080fd5b6145d587828801614106565b91505092959194509250565b600080604083850312156145f457600080fd5b82356145ff81613f24565b9150602083013561460f81613f24565b809150509250929050565b600080600080600080600060a0888a03121561463557600080fd5b873561464081613f24565b965061464e60208901614295565b955060408801356001600160401b038082111561466a57600080fd5b6146768b838c016142ab565b909750955060608a013591508082111561468f57600080fd5b5061469c8a828b016142ab565b90945092505060808801356146b081613f24565b8091505092959891949750929550565b600080600080600080608087890312156146d957600080fd5b86356146e481613f24565b95506020870135945060408701356001600160401b038082111561433a57600080fd5b60008060006040848603121561471c57600080fd5b8335925060208401356001600160401b0381111561473957600080fd5b614062868287016142ab565b600181811c9082168061475957607f821691505b60208210810361477957634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b838152604060208201819052810182905260006001600160fb1b0383111561482c57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020828403121561485857600080fd5b81516118af81614175565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b820161488e5761488e614863565b5060000390565b634e487b7160e01b600052600160045260246000fd5b80820182811260008312801582168215821617156148cb576148cb614863565b505092915050565b818103600083128015838313168383128216171561304857613048614863565b85815260018060a01b038516602082015283604082015282606082015260a060808201526000613dcb60a0830184613ee5565b60006020828403121561493857600080fd5b5051919050565b6000602080838503121561495257600080fd5b82516001600160401b038082111561496957600080fd5b818501915085601f83011261497d57600080fd5b81518181111561498f5761498f6140c0565b8060051b91506149a08483016140d6565b81815291830184019184810190888411156149ba57600080fd5b938501935b838510156149e457845192506149d483613f24565b82825293850193908501906149bf565b98975050505050505050565b80820180821115610b4857610b48614863565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600060208284031215614a6357600080fd5b81516118af81613f24565b81810381811115610b4857610b48614863565b634e487b7160e01b600052603260045260246000fd5b600080600060608486031215614aac57600080fd5b8351925060208401519150604084015190509250925092565b60ff8281168282160390811115610b4857610b48614863565b600181815b80851115614b19578160001904821115614aff57614aff614863565b80851615614b0c57918102915b93841c9390800290614ae3565b509250929050565b600082614b3057506001610b48565b81614b3d57506000610b48565b8160018114614b535760028114614b5d57614b79565b6001915050610b48565b60ff841115614b6e57614b6e614863565b50506001821b610b48565b5060208310610133831016604e8410600b8410161715614b9c575081810a610b48565b614ba68383614ade565b8060001904821115614bba57614bba614863565b029392505050565b60006118af60ff841683614b21565b600082614bee57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610b4857610b48614863565b601f8211156115c4576000816000526020600020601f850160051c81016020861015614c335750805b601f850160051c820191505b81811015614c5257828155600101614c3f565b505050505050565b6001600160401b03831115614c7157614c716140c0565b614c8583614c7f8354614745565b83614c0a565b6000601f841160018114614cb95760008515614ca15750838201355b600019600387901b1c1916600186901b178355610cb5565b600083815260209020601f19861690835b82811015614cea5786850135825560209485019460019092019101614cca565b5086821015614d075760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201526000614d326060830185613ee5565b82810360408401526116868185613ee5565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c060808201819052600090614d7f90830185613ee5565b82810360a0840152614d918185613ee5565b9998505050505050505050565b60008251614db0818460208701613ec1565b919091019291505056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f4517576d17f25a5382f058d85ec8c013571a70d5a0f6f851c23d2fcc176617664736f6c63430008170033000000000000000000000000109412e3c84f0539b43d39db691b08c90f58dc7c000000000000000000000000fbe332e001d6b54e1f4b63c2343b8e7746d99ece000000000000000000000000c95346b7394009ccefaa62eca28797804b2bcf1c0000000000000000000000001bd3b6522102f9ea406807f8ecaeb2d96278a83f00000000000000000000000078743a68d52c9d6ccf3ff4558f3af510592e3c2d