[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "contract IERC20", "name": "_stakingToken", "type": "address" }, { "internalType": "contract IERC20[]", "name": "rewardTokens", "type": "address[]" }, { "internalType": "contract IMaverickV2VotingEscrow[]", "name": "veTokens", "type": "address[]" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint256", "name": "minDuration", "type": "uint256" }, { "internalType": "uint256", "name": "maxDuration", "type": "uint256" } ], "name": "RewardDurationOutOfBounds", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "approved", "type": "address" }, { "internalType": "address", "name": "getter", "type": "address" } ], "name": "RewardNotApprovedGetter", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "RewardNotValidIndex", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" } ], "name": "RewardNotValidRewardToken", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "stakingToken", "type": "address" } ], "name": "RewardTokenCannotBeStakingToken", "type": "error" }, { "inputs": [], "name": "RewardTransferNotSupported", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "minTimestamp", "type": "uint256" } ], "name": "RewardUnboostedTimePeriodNotMet", "type": "error" }, { "inputs": [], "name": "RewardZeroAmount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "indexed": false, "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "rewardOutput", "type": "tuple" }, { "indexed": false, "internalType": "uint256", "name": "lockupId", "type": "uint256" } ], "name": "GetReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardRate", "type": "uint256" } ], "name": "NotifyRewardAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Stake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "UnStake", "type": "event" }, { "inputs": [], "name": "MAX_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNBOOSTED_MIN_TIME_GAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veToken", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "boostedAmount", "outputs": [ { "internalType": "uint256", "name": "earnedAmount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "checkAuthorized", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractInfo", "outputs": [ { "components": [ { "internalType": "uint256", "name": "finishAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "internalType": "uint256", "name": "escrowedReward", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veRewardToken", "type": "address" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" } ], "internalType": "struct IMaverickV2Reward.RewardInfo[]", "name": "info", "type": "tuple[]" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "contract IERC20", "name": "stakingToken", "type": "address" } ], "internalType": "struct IMaverickV2Reward.ContractInfo", "name": "_contractInfo", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "earned", "outputs": [ { "components": [ { "internalType": "uint256", "name": "earned", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" } ], "internalType": "struct IMaverickV2Reward.EarnedInfo[]", "name": "earnedInfo", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "getReward", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "getRewardToOwner", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "internalType": "uint256", "name": "lockupId", "type": "uint256" } ], "name": "getRewardToOwnerForExistingVeLockup", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintToSender", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "nextTokenId_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "notifyRewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "name": "pushUnboostedToVe", "outputs": [ { "internalType": "uint128", "name": "amount", "type": "uint128" }, { "internalType": "uint48", "name": "timepoint", "type": "uint48" }, { "internalType": "uint256", "name": "batchIndex", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardData", "outputs": [ { "internalType": "uint64", "name": "finishAt", "type": "uint64" }, { "internalType": "uint64", "name": "updatedAt", "type": "uint64" }, { "internalType": "uint128", "name": "rewardRate", "type": "uint128" }, { "internalType": "uint128", "name": "escrowedReward", "type": "uint128" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardInfo", "outputs": [ { "components": [ { "internalType": "uint256", "name": "finishAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "internalType": "uint256", "name": "escrowedReward", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veRewardToken", "type": "address" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" } ], "internalType": "struct IMaverickV2Reward.RewardInfo[]", "name": "info", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "rewardTokenByIndex", "outputs": [ { "internalType": "contract IERC20", "name": "output", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardTokenCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "stake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "stakedTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "stakeBalanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakeTotalSupply", "outputs": [ { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakingToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokenIdsOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" } ], "name": "tokenIndex", "outputs": [ { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "includeStakingToken", "type": "bool" } ], "name": "tokenList", "outputs": [ { "internalType": "contract IERC20[]", "name": "tokens", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ownerToCheck", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndexExists", "outputs": [ { "internalType": "bool", "name": "exists", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferAndNotifyRewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferAndStake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "stakedTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unstake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unstakeToOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [ { "internalType": "contract IMaverickV2RewardVault", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "veTokenByIndex", "outputs": [ { "internalType": "contract IMaverickV2VotingEscrow", "name": "output", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6102206040523461065d57615a778038038061001a8161067a565b928339810160a08282031261065d5781516001600160401b03919082811161065d578161004891850161069f565b926020918282015184811161065d578161006391840161069f565b936100706040840161070a565b93606084015182811161065d57840193601f84818701121561065d578551916100a061009b8461071e565b61067a565b9684888581520185600595861b8301019188831161065d5786809101915b838310610662575050505060808101519085821161065d57019480828701121561065d5785516100f061009b8261071e565b968580898481520192861b82010192831161065d578501905b82821061063e575050508851978489116106285760009889549a60019b8c81811c9116801561061e575b8782101461060a579081858493116105be575b508690858311600114610556578c9261054b575b5050600019600383901b1c1916908b1b1789555b805192858411610537578a54908b82811c9216801561052d575b868310146105195790839291859482116104c8575b50508491831160011461046957899261045e575b5050600019600383901b1c191690881b1787555b86600a5586600d5584608052604051916104d4808401918483109083111761044a579083916155a383396001600160a01b03968716815203019085f093841561043e575082610200941684528151946101e09580875261041a575b8551116103f6575b60028551116103d2575b60038551116103ad575b6004855111610387575b50505060405190614e0a92836107998439608051838181610e78015281816110df01528181611793015281816121da015261315f015260a0518381816118d901528181612abe0152612cb7015260c05183818161189f01528181612ae70152612c92015260e05183818161186101528181612b100152612c6d01526101005183818161182301528181612b390152612c480152610120518381816117cf01528181612b610152612c240152610140518361307b015261016051836130560152610180518361303101526101a0518361300c01526101c05183612fe8015251828181610c1301528181611690015281816116eb0152818161192a01528181611b2601528181612bdf01528181612fa3015281816137dc0152614b7701525181818161027401528181610e5501528181610f1b015281816119cd01526131300152f35b8261039461039f93610788565b511661012052610788565b51166101c052388080610246565b826103b783610778565b511661010052826103c782610778565b51166101a05261023c565b826103dc83610768565b511660e052826103eb82610768565b511661018052610232565b8261040083610758565b511660c0528261040f82610758565b511661016052610228565b8361042484610735565b511660a0528361043383610735565b511661014052610220565b604051903d90823e3d90fd5b634e487b7160e01b88526041600452602488fd5b0151905038806101b1565b8a8a52848a208b94509190601f1984168b5b878282106104b25750508411610499575b505050811b0187556101c5565b015160001960f88460031b161c1916905538808061048c565b8385015186558e9790950194938401930161047b565b90919293508b8b52858b209084808701821c830193888810610510575b9187968f93969594929601901c01915b828110610502575061019d565b8c81558695508d91016104f5565b935082936104e5565b634e487b7160e01b8b52602260045260248bfd5b91607f1691610188565b634e487b7160e01b8a52604160045260248afd5b01519050388061015a565b8c8052878d208e94509190601f1984168e5b8a82821061059f5750508411610586575b505050811b01895561016e565b015160001960f88460031b161c19169055388080610579565b91929395968291958786015181550195019301908f9594939291610568565b9091508b8052868c2085808501881c820192898610610601575b918f918695949301891c01915b8281106105f3575050610146565b8e81558594508f91016105e5565b925081926105d8565b634e487b7160e01b8c52602260045260248cfd5b90607f1690610133565b634e487b7160e01b600052604160045260246000fd5b81516001600160a01b038116810361065d578152908501908501610109565b600080fd5b819061066d8461070a565b81520191019086906100be565b6040519190601f01601f191682016001600160401b0381118382101761062857604052565b919080601f8401121561065d5782516001600160401b038111610628576020906106d1601f8201601f1916830161067a565b9281845282828701011161065d5760005b8181106106f757508260009394955001015290565b85810183015184820184015282016106e2565b51906001600160a01b038216820361065d57565b6001600160401b0381116106285760051b60200190565b8051156107425760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156107425760400190565b8051600210156107425760600190565b8051600310156107425760800190565b8051600410156107425760a0019056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146123bd5750816306fdde031461239f578163081812fc14612365578163095ea7b31461225957816315c43aaf1461215d57816318160ddd1461213e57816323b872dd146121265781632f745c59146120fd5781633a3619de146120aa5781633e3cc23914612020578163427f91a614611ffd57816342842e0e14611fd45781634709b70914611fb6578163482af13b14611f8857816348fd65fe14611f5d5781634b986ec214611f155781634c46589914611c715781634d6ed8c414611b0c5781634f6ccce714611a9e57816351a7c7161461194f5781635d62fd5f146116675781636352211e1461163f5781636565ac99146116095781636a627842146115e35781636deda0fc1461112957816370a082311461110357816372f702f3146110bf578163751df17a1461107c57816375794a3c1461105d5781637aaa90e114610ea157816388a2955214610e3157816395d89b4114610e005781639e59e59814610d38578163a22cb46514610c61578163a694fc3a14610c36578163abb06b9514610bfb578163ac9650d814610a3e578163b1724b4614610a20578163b66503cf14610a00578163b6a6d177146109e2578163b88d4fde1461097a578163c58181c41461095b578163c87b56dd14610498578163c9f6707214610463578163d6d8266f146103cf578163e39c08fc14610375578163e48e622714610357578163e985e9c514610306578163f01a11fc146102da57508063f476eaf21461029c5763fbfa77cf1461025657600080fd5b34610298578160031936011261029857602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b5034610298576060600319360112610298576020906102d36102bc612507565b6102ca604435303384614230565b602435906132ff565b9051908152f35b905034610302576020600319360112610302576020928291358152600b845220549051908152f35b8280fd5b505034610298578060031936011261029857602091610323612507565b8261032c61251d565b926001600160a01b03809316815260058652209116600052825260ff81600020541690519015158152f35b5050346102985781600319360112610298576020906102d333613ecd565b8284346103cc57816003193601126103cc5760ff61039961039461251d565b612aaf565b169060058210156103b9575060209260066102d39202600e019035613e55565b80603285634e487b7160e01b6024945252fd5b80fd5b905082346103cc5760806003193601126103cc575035906103ee61251d565b6044359060ff8216820361045e5760609361045c926104349261040f612a90565b50610423833361041e8261395d565b614135565b6064359261042f612a90565b6139b1565b915180926001600160a01b036040809280518552602081015115156020860152015116910152565bf35b600080fd5b505034610298578160031936011261029857610494906104816137da565b9051918291602083526020830190612533565b0390f35b8284346103cc57602090816003193601126103cc57506104946108fb7f227d0000000000000000000000000000000000000000000000000000000000006108f661031d6104e36144d3565b6104eb6144d3565b88519485927f7b226e616d65223a2200000000000000000000000000000000000000000000008a850152610528815180928c6029880191016124bf565b8301917f222c22696d616765223a22646174613a696d6167652f7376672b786d6c3b626160298401527f736536342c50484e325a79423462577875637a30696148523063446f764c336460498401527f33647935334d793576636d63764d6a41774d43397a646d6369494864705a485260698401527f6f505349784d4441774969426f5a576c6e61485139496a45794d44416949485a60898401527f705a58644362336739496a41674d4341784d444177494445794d44416949475a60a98401527f7062477739496d3576626d556950676f38634746306143426b50534a4e4d434160c98401527f314d454d77494449794c6a4d344e5467674d6a49754d7a67314f43417749445560e98401527f77494442494e6a5577517a67304d79347a494441674d5441774d4341784e54596101098401527f754e7941784d44417749444d314d4659784d545577517a45774d4441674d54456101298401527f334e7934324d5341354e7a63754e6a4530494445794d4441674f5455774944456101498401527f794d4442494d7a5577517a45314e693433494445794d4441674d4341784d44516101698401527f7a4c6a4d674d4341344e5442574e5442614969426d6157787350534a696247466101898401527f6a617949675a6d6c73624331766347466a61585235505349774c6a6b324969386101a98401527f2b436a78775958526f49475139496b30344f4334304d54413249446b344c6a496101c98401527f314e4452574f44524d4e5441674d544130534445794d53347a4d4452574e6a526101e98401527f4d4f4467754e4445774e6941354f4334794e545130576949675a6d6c736244306102098401527f6964326870644755694c7a344b5048526c65485167654430694e54416949486b6102298401527f39496a49314d4349675a6d39756443317a6158706c5053497a4f4349675a6d6c6102498401527f7362443069636d64694b4449314e5377674d6a55314c4341794e5455704969426102698401527f735a5852305a5849746333426859326c755a7a30694d6949675a6d39756443316102898401527f6d5957317062486b394969644462335679615756794945356c647963734947316102a98401527f76626d397a6347466a5a53492b545746325a584a7059327367556d563359584a6102c98401527f6b4946427663326c3061573975504339305a586830506a777663335a6e50673d6102e98401527f3d222c226465736372697074696f6e223a22000000000000000000000000000061030984015261031b926108e2825180938d87850191016124bf565b0191820152036102fd8101845201826126e4565b61432c565b9261094c603d825180967f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008783015261093c815180928986860191016124bf565b810103601d8101875201856126e4565b519282849384528301906124e2565b505034610298578160031936011261029857602090600c549051908152f35b83903461029857608060031936011261029857610995612507565b61099d61251d565b9060643567ffffffffffffffff81116109de57366023820112156109de576109db938160246109d193369301359101612723565b916044359161363b565b80f35b8480fd5b505034610298578160031936011261029857602090516203f4808152f35b5050346102985780600319360112610298576020906102d36102ca612507565b505034610298578160031936011261029857602090516234bc008152f35b8391503461029857602091826003193601126103cc5781359167ffffffffffffffff90818411610302573660238501121561030257830135908082116103025760246005923660248260051b880101116109de5792610a9c84612f14565b95610aa9895197886126e4565b848752601f19610ab886612f14565b0188875b828110610beb5750505085917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd82360301925b868110610b71578a8a8a8a83519280840190808552835180925280868601968360051b870101940192955b828710610b275785850386f35b909192938280610b61837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a6001960301865288516124e2565b9601920196019592919092610b1a565b8481831b8401013584811215610be75783018581013590878211610be357604401908036038213610be35789808d610bb160019695610bc7953691612723565b80519101305af4610bc06142a1565b9030614be5565b610bd1828c612f3d565b52610bdc818b612f3d565b5001610aef565b8980fd5b8880fd5b60608a82018301528a9101610abc565b505034610298578160031936011261029857602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b905082346103cc5760206003193601126103cc5750610c5590356130ee565b82519182526020820152f35b91905034610302578060031936011261030257610c7c612507565b906024359182151580930361045e576001600160a01b0316928315610d0a5750338452600560205280842083600052602052806000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8360249251917f5b08ba18000000000000000000000000000000000000000000000000000000008352820152fd5b8284346103cc57602090816003193601126103cc578290610d57612507565b90610d618261309d565b610d6a81612f14565b90610d77855192836126e4565b808252610d8381612f14565b93601f198784019501368637835b828110610dd65750505083519485948186019282875251809352850193925b828110610dbf57505050500390f35b835185528695509381019392810192600101610db0565b80610de9600192849a979698999a612a16565b610df38289612f3d565b5201969594929396610d91565b50503461029857816003193601126102985761049490610e1e6145d9565b90519182916020835260208301906124e2565b8284346103cc5750610c55610e9c610e4836612633565b6001600160a01b039291927f000000000000000000000000000000000000000000000000000000000000000016337f0000000000000000000000000000000000000000000000000000000000000000614230565b6130ee565b9190503461030257610eb236612633565b929091610ec3833361041e8261395d565b610ecc8361395d565b90610ed56142d1565b841561103557610ee484614b75565b838652600b60205280862054808611610ff357859081600c5403600c55858852600b6020520381872055856001600160a01b0393847f000000000000000000000000000000000000000000000000000000000000000016803b156103025783517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b03861692810192835260208301899052918391839182908490829060400103925af18015610fe957610fd1575b50505193845216917f8e61469f8c29c4968b91d96c2003a756f42faf9e56e685113e7776492260aa1760203392a46001600d5580f35b610fda9061267b565b610fe5578538610f9b565b8580fd5b83513d84823e3d90fd5b90517ffcca3733000000000000000000000000000000000000000000000000000000008152928301938452602084015250604082018390529081906060010390fd5b9050517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b505034610298578160031936011261029857602090600a549051908152f35b5050346102985780600319360112610298576020906001600160a01b036110a1612507565b916110b86024356110b18161395d565b9485614135565b5191168152f35b505034610298578160031936011261029857602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b505034610298576020600319360112610298576020906102d3611124612507565b61309d565b8284346103cc5760806003193601126103cc5750813591611148612613565b9260443590606435611158612a90565b50611167823361041e8261395d565b6111708261395d565b611178612a90565b6111806142d1565b9660058110156115ce57600681029461119c86600e0186614690565b8460005260138601602052876000208054976fffffffffffffffffffffffffffffffff97888a1692836111fd575b60608d61045c8e6001600d555180926001600160a01b036040809280518552602081015115156020860152015116910152565b600f92939495969798999a9c506fffffffffffffffffffffffffffffffff19809d16905501908154838a8216039b8a8d116115b9578a8a9b9c9d9a999a16911617825561124985612bda565b61125286612f9e565b90611267868684611261612a90565b9c612d2d565b15801560208c0152818b526115105750908b8d6060938b8b8e6112986001600160a01b038098169485855191613ccd565b8385840152600019811460001461145457505090606493946112bc60009351613e00565b935197889687957f1ef3467b00000000000000000000000000000000000000000000000000000000875216908501528a60248501528c1660448401525af18015611449579460609b98946113ae947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9994610140999461045c9d9961141a575b505b859d8651908184116113c5575b5050505060ff61135a83612bda565b928b5198338a5260208a01526001600160a01b038095168c8a0152168d88015260808701521660a085015260c08401906001600160a01b036040809280518552602081015115156020860152015116910152565b610120820152a191928480808080808080806111ca565b6113d56113e09261141195613c9c565b16825460801c613ca9565b6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b8d80808061134b565b8f9061143b913d606011611442575b61143381836126e4565b810190614766565b508f61133c565b503d611429565b8b513d6000823e3d90fd5b9360849591946114676000959451613e00565b9151998a9889977fea4914ef000000000000000000000000000000000000000000000000000000008952169087015260248601528b60448601521660648401525af18015611449579460609b98946113ae947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9994610140999461045c9d996114f1575b5061133e565b8f90611509913d6060116114425761143381836126e4565b508f6114eb565b61014098935061045c9b979250947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad99946115b460609f9c98936115a1906115af8f9a6113ae9b519384917fa9059cbb0000000000000000000000000000000000000000000000000000000060208401528b60248401602090939291936001600160a01b0360408201951681520152565b03601f1981018452836126e4565b614a52565b61133e565b601183634e487b7160e01b6000525260246000fd5b603286634e487b7160e01b6000525260246000fd5b505034610298576020600319360112610298576020906102d3611604612507565b613ecd565b505034610298576020600319360112610298576020906001600160a01b03611637611632612623565b612f9e565b915191168152f35b8284346103cc5760206003193601126103cc57506001600160a01b036116376020933561395d565b8284346103cc57602090816003193601126103cc57833591821515830361045e578215611928577f00000000000000000000000000000000000000000000000000000000000000006001810180911161191557915b6116dd6116c884612f14565b936116d5875195866126e4565b808552612f14565b93601f1983850195013686377f000000000000000000000000000000000000000000000000000000000000000090816118c8575b6001976001831161188b575b6002831161184d575b6003831161180f575b8083116117bb575b5061177f575b5091908495939551948186019282875251809352850195925b8281106117635785870386f35b83516001600160a01b0316875295810195928101928401611756565b6117899084612f3d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690528661173d565b85518110156117fa57506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660a086015288611737565b603290634e487b7160e01b6000525260246000fd5b8551600310156117fa576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016608087015261172f565b8551600210156117fa576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166060870152611726565b8551600110156117fa576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168887015261171d565b845115611900576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168652611711565b603288634e487b7160e01b6000525260246000fd5b602483601188634e487b7160e01b835252fd5b7f0000000000000000000000000000000000000000000000000000000000000000916116bc565b9050346103025760606003193601126103025780359061196d61251d565b6044359361197f843361041e8261395d565b6119876142d1565b84156110355761199684614b75565b838652600b60205280862054808611610ff357859081600c5403600c55858852600b60205203818720556001600160a01b039286847f00000000000000000000000000000000000000000000000000000000000000001691823b156102985783517ff3fef3a30000000000000000000000000000000000000000000000000000000081526001600160a01b0386169181019182526020820189905292839182908490829060400103925af18015611a9457611a81575b505193845216917f8e61469f8c29c4968b91d96c2003a756f42faf9e56e685113e7776492260aa1760203392a46001600d5580f35b611a8d9096919661267b565b9438611a4c565b82513d89823e3d90fd5b90503461030257602060031936011261030257803592600854841015611ad857602083611aca86612f67565b91905490519160031b1c8152f35b604493919251927fa57d13dc0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b8383346102985760209081600319360112610302578335907f000000000000000000000000000000000000000000000000000000000000000092611b4f84612f14565b92611b5c835194856126e4565b848452601f19611b6b86612f14565b0182875b828110611c5057505050855b60ff811686811015611bfb576005821015611be85790611bdd611be392611ba860068402600e0186613e55565b6001600160a01b03611bb985612bda565b895192611bc584612649565b83521687820152611bd6828a612f3d565b5287612f3d565b50612f2c565b611b7b565b60248860328b634e487b7160e01b835252fd5b8451848152865181860181905281908188019089880190888d8b5b838210611c235786860387f35b8451805187528301516001600160a01b031686840152879650948501949382019360019190910190611c16565b8551611c5b81612649565b8981528983820152828289010152018390611b6f565b9050346103025760209182600319360112611f1157611c8e612623565b92611c9884612f9e565b90611ca285612bda565b946005811015611efe5760060294600f8601948554958660801c978815611ed6576010019081546277f8808101809111611ec35780421115611e8d57506fffffffffffffffffffffffffffffffff80981690554290556001600160a01b03809416611d0e888285613ccd565b65ffffffffffff804211611e57579089914216958751947faa902b4d0000000000000000000000000000000000000000000000000000000086528686868187875af1958615611e4d57918795939185938d9698611e13575b50611d746084969798613e00565b9b8b519c8d9889977f3082f0e90000000000000000000000000000000000000000000000000000000089528801528b60248801521660448601521660648401525af1938415611e09578694611dd6575b50606095508251948552840152820152f35b9080945081813d8311611e02575b611dee81836126e4565b81010312610fe55760609550519238611dc4565b503d611de4565b83513d88823e3d90fd5b95509590965084813d8311611e46575b611e2d81836126e4565b810103126102985792519486948b949190611d74611d66565b503d611e23565b89513d86823e3d90fd5b60448360308951917f6dfcc650000000000000000000000000000000000000000000000000000000008352820152426024820152fd5b836044918951917fb5b2827a00000000000000000000000000000000000000000000000000000000835242908301526024820152fd5b60248b601186634e487b7160e01b835252fd5b8287517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b602487603287634e487b7160e01b835252fd5b8380fd5b90503461030257608060031936011261030257602435906001600160a01b0382168203611f115790611f4f91606435916044359135612d2d565b825191825215156020820152f35b505034610298578060031936011261029857602090611f7d611124612507565b602435109051908152f35b505034610298576020600319360112610298576020906001600160a01b03611637611fb1612623565b612bda565b505034610298578160031936011261029857602090516277f8808152f35b505034610298576109db90611fe8366125de565b91925192611ff5846126c8565b85845261363b565b5050346102985760206003193601126102985760209060ff611637610394612507565b90503461030257602060031936011261030257359160058310156103cc5750600660e0920280600e01549067ffffffffffffffff92600f820154906011601084015493015493815195808216875281831c16602087015260801c908501526fffffffffffffffffffffffffffffffff8116606085015260801c608084015260a083015260c0820152f35b8284346103cc5760606003193601126103cc575061045c610434606093356120d0612613565b6120d8612a90565b506120e7823361041e8261395d565b604435916120f48161395d565b9061042f612a90565b5050346102985780600319360112610298576020906102d361211d612507565b60243590612a16565b83346103cc576109db612138366125de565b9161275a565b5050346102985781600319360112610298576020906008549051908152f35b8284346103cc57806003193601126103cc5781516080810181811067ffffffffffffffff821117612246576122109450835260608152606060208201818152848301938085528284019081526121b16137da565b956121ba6144d3565b85526121c46145d9565b8352600c5486526122376001600160a01b0393847f000000000000000000000000000000000000000000000000000000000000000016845261222883519a8b9a858c52858c0190612533565b978a890360208c0152516080895260808901906124e2565b905187820360208901526124e2565b95519085015251169101520390f35b602483604187634e487b7160e01b835252fd5b91905034610302578060031936011261030257612274612507565b916024356122818161395d565b33151580612352575b8061232a575b6122fb5781906001600160a01b03809616958691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258880a484526020528220907fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905580f35b83517fa9fbf51f0000000000000000000000000000000000000000000000000000000081523381850152602490fd5b506001600160a01b0381168652600560205283862033875260205260ff848720541615612290565b50336001600160a01b038216141561228a565b9050346103025760206003193601126103025781602093826001600160a01b0393356123908161395d565b50825285522054169051908152f35b50503461029857816003193601126102985761049490610e1e6144d3565b84913461030257602060031936011261030257357fffffffff00000000000000000000000000000000000000000000000000000000811680910361030257602092507f780e9d63000000000000000000000000000000000000000000000000000000008114908115612431575b5015158152f35b7f80ac58cd00000000000000000000000000000000000000000000000000000000811491508115612495575b811561246b575b508361242a565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483612464565b7f5b5e139f000000000000000000000000000000000000000000000000000000008114915061245d565b60005b8381106124d25750506000910152565b81810151838201526020016124c2565b90601f19601f602093612500815180928187528780880191016124bf565b0116010190565b600435906001600160a01b038216820361045e57565b602435906001600160a01b038216820361045e57565b90815180825260208080930193019160005b828110612553575050505090565b835180518652808301518684015260408082015190870152606080820151908701526080808201519087015260a0808201516001600160a01b039081169188019190915260c0808301519091169087015260e0808201516fffffffffffffffffffffffffffffffff169087015261010090810151908601526101209094019392810192600101612545565b600319606091011261045e576001600160a01b0390600435828116810361045e5791602435908116810361045e579060443590565b6024359060ff8216820361045e57565b6004359060ff8216820361045e57565b600319604091011261045e576004359060243590565b6040810190811067ffffffffffffffff82111761266557604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161266557604052565b6060810190811067ffffffffffffffff82111761266557604052565b610120810190811067ffffffffffffffff82111761266557604052565b6020810190811067ffffffffffffffff82111761266557604052565b90601f601f19910116810190811067ffffffffffffffff82111761266557604052565b67ffffffffffffffff811161266557601f01601f191660200190565b92919261272f82612707565b9161273d60405193846126e4565b82948184528183011161045e578281602093846000960137010152565b916001600160a01b038083169384156129e5576000948386526020956002875260409684888320541696336129d5575b87158015612985575b848452600383528984206001815401905587845260028352898420857fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905587858a7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8780a4156129095760085487845260098352808a852055680100000000000000008110156128f5578761283682600161284e9401600855612f67565b90919060001983549160031b92831b921b1916179055565b8388036128a3575b5050505016928383036128695750505050565b6064945051927f64283d7b000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b6128ac9061309d565b9260001984019384116128e15782916007918a9452600681528383208584528152878484205587835252205538808080612856565b602483634e487b7160e01b81526011600452fd5b602484634e487b7160e01b81526041600452fd5b87841461284e576129198861309d565b878452600783528984205481810361294e575b50878452838a812055888452600683528984209084528252828981205561284e565b898552600684528a852082865284528a8520548a8652600685528b86208287528552808c8720558552600784528a8520553861292c565b6129be88600052600460205260406000207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b888452600383528984206000198154019055612793565b6129e087338a614135565b61278a565b60246040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260006004820152fd5b612a1f8161309d565b821015612a4c576001600160a01b0316600052600660205260406000209060005260205260406000205490565b6040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526001600160a01b039190911660048201526024810191909152604490fd5b60405190612a9d8261268f565b60006040838281528260208201520152565b6001600160a01b0380911690807f0000000000000000000000000000000000000000000000000000000000000000168214612bd357807f0000000000000000000000000000000000000000000000000000000000000000168214612bcc57807f0000000000000000000000000000000000000000000000000000000000000000168214612bc557807f0000000000000000000000000000000000000000000000000000000000000000168214612bbe577f0000000000000000000000000000000000000000000000000000000000000000168114612bb857602490604051907f3dc09a5c0000000000000000000000000000000000000000000000000000000082526004820152fd5b50600490565b5050600390565b5050600290565b5050600190565b5050600090565b60ff167f0000000000000000000000000000000000000000000000000000000000000000811015612cd9578015612cb45760018114612c8f5760028114612c6a57600314612c46577f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b602490604051907f205467d70000000000000000000000000000000000000000000000000000000082526004820152fd5b91908201809211612d1757565b634e487b7160e01b600052601160045260246000fd5b929392600092916001600160a01b0390811690848215612f095750612d518361395d565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152911660048201526020918282602481845afa918215612ecf578692612eda575b50908260049392604051948580927f18160ddd0000000000000000000000000000000000000000000000000000000082525afa928315612ecf578693612e9f575b50612e23939291612df7600b92600194858111908618028518906147a5565b93875252612e156040862054600c54838111908418028318906147a5565b81811190821802189061485a565b670a688906bd8b00009081018091116128e157670de0b6b3a764000090612e49866148d9565b936702c68af0bb140000948501809511612e8b5750918183612e8093612e859695109082180281189381811090821802189061494f565b61494f565b91151590565b80634e487b7160e01b602492526011600452fd5b9092508181813d8311612ec8575b612eb781836126e4565b81010312610fe5575191600b612dd8565b503d612ead565b6040513d88823e3d90fd5b9091508281813d8311612f02575b612ef281836126e4565b81010312610fe557519082612d97565b503d612ee8565b959650505050905091565b67ffffffffffffffff81116126655760051b60200190565b60ff1660ff8114612d175760010190565b8051821015612f515760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600854811015612f515760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b60ff167f0000000000000000000000000000000000000000000000000000000000000000811015612cd95780156130785760018114613053576002811461302e5760031461300a577f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b031680156130bd57600052600360205260406000205490565b60246040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152fd5b801561327d575b6130fd6142d1565b6001600160a01b0360405180917f70a08231000000000000000000000000000000000000000000000000000000008252807f000000000000000000000000000000000000000000000000000000000000000016600483015281602460209485937f0000000000000000000000000000000000000000000000000000000000000000165afa90811561327157600091613244575b50600c54908181101561323d5750506000905b81156132135782906131b48261395d565b506131be82614b75565b6131ca83600c54612d0a565b600c5581600052600b815260406000208381540190557f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6604051918483523392a36001600d5591565b60046040517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b03906131a3565b90508181813d831161326a575b61325b81836126e4565b8101031261045e575138613190565b503d613251565b6040513d6000823e3d90fd5b506132873361309d565b156132f1576132953361309d565b156132ba573360005260066020526040600020600080526020526040600020546130f5565b60446040517fa57d13dc00000000000000000000000000000000000000000000000000000000815233600482015260006024820152fd5b6132fa33613ecd565b6130f5565b906133086142d1565b6203f4808082106135fb576234bc00908183116135bf5750509061332b81612aaf565b6005811015612f5157806024600661335e9302602081600e019361334e85614c78565b6001600160a01b03958691612bda565b16604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa9182156132715760009261358a575b50600f01546fffffffffffffffffffffffffffffffff1690818110156135835750506000905b805467ffffffffffffffff908181164281101561357a57506000905b60801c9081810290808204831490151715612d17578060011b9080820460021490151715612d175784118015613572575b1561353557509160a0939161350a7ffcb9ca03b70a876a8d62dc2ef18aa125118fd02dae56cfffc36a627e7b1c4811969461348b6134596134548b8761430c565b613e00565b84546fffffffffffffffffffffffffffffffff1660809190911b6fffffffffffffffffffffffffffffffff1916178455565b8061349e6134998b42612d0a565b614d87565b167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000845416178355421682907fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b5460801c916040519333855216602084015260408301528460608301526080820152a1906001600d55565b839196509161350a61356c60a096947ffcb9ca03b70a876a8d62dc2ef18aa125118fd02dae56cfffc36a627e7b1c4811989661430c565b9761348b565b508015613413565b429003906133e2565b03906133c6565b9091506020813d6020116135b7575b816135a6602093836126e4565b8101031261045e575190600f6133a0565b3d9150613599565b60649350604051927fd3350e51000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b60649250604051917fd3350e51000000000000000000000000000000000000000000000000000000008352600483015260248201526234bc006044820152fd5b919061364882828561275a565b803b613655575b50505050565b6136b16001600160a01b03809216946040519384937f150b7a02000000000000000000000000000000000000000000000000000000009687865233600487015216602485015260448401526080606484015260848301906124e2565b03906020816000938185885af190829082613779575b505061371757826136d66142a1565b805191908261371057602482604051907f64a0ae920000000000000000000000000000000000000000000000000000000082526004820152fd5b9050602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000160361374857503880808061364f565b602490604051907f64a0ae920000000000000000000000000000000000000000000000000000000082526004820152fd5b909192506020813d6020116137d2575b81613796602093836126e4565b810103126102985751907fffffffff00000000000000000000000000000000000000000000000000000000821682036103cc57509038806136c7565b3d9150613789565b7f00000000000000000000000000000000000000000000000000000000000000009061380582612f14565b91604090613815825194856126e4565b808452601f1961382482612f14565b0160005b8181106139085750508360005b60ff81169083821015613900576005811015612f5157611bdd6138fb926006830280600e015467ffffffffffffffff916080601182015461387588612bda565b9061387f89612f9e565b908d6010600f870154960154968151986138988a6126ab565b8082168a5281831c1660208a0152851c908801526fffffffffffffffffffffffffffffffff85166060880152838701526001600160a01b0380921660a08701521660c08501521c60e08301526101008201526138f4828b612f3d565b5288612f3d565b613835565b505093505050565b6020908451613916816126ab565b60008152826000818301526000878301526000606083015260006080830152600060a0830152600060c0830152600060e08301526000610100830152828901015201613828565b8060005260026020526001600160a01b0360406000205416908115613980575090565b602490604051907f7e2732890000000000000000000000000000000000000000000000000000000082526004820152fd5b93929091936139be6142d1565b936005821015612f515760068202936139da85600e0185614690565b836000526013850160205260409081600020938454946fffffffffffffffffffffffffffffffff978887169182613a1e575b50505050505050505050906001600d55565b600f92939495969798999a506fffffffffffffffffffffffffffffffff198099169055018054828a821603978a8911612d17578a8a99169116178155613a6383612bda565b89613a6d85612f9e565b91613a82878685613a7c612a90565b9d612d2d565b15801560208d0152818c52613c0c57509060648a613ab06060946001600160a01b0380971680935191613ccd565b808a8d01526000613ac18d51613e00565b918b5196879586947f1ef3467b0000000000000000000000000000000000000000000000000000000086521660048501528b60248501528d1660448401525af18015613c015793613bb0969361014099969360ff937fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9c9a97613be2575b505b879c885190818411613bc9575b50505050613b5b81612bda565b93805198338a5260208a01526001600160a01b038096169089015216606087015260808601521660a084015260c08301906001600160a01b036040809280518552602081015115156020860152015116910152565b600019610120820152a138808080808080808080613a0c565b6113d56113e092613bd995613c9c565b38808080613b4e565b613bfa9060603d6060116114425761143381836126e4565b5038613b3f565b86513d6000823e3d90fd5b60ff93507fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9b9996925093613c976115a18a97936115af6101409e9b98613bb09d519384917fa9059cbb0000000000000000000000000000000000000000000000000000000060208401528d60248401602090939291936001600160a01b0360408201951681520152565b613b41565b91908203918211612d1757565b9190916fffffffffffffffffffffffffffffffff80809416911601918211612d1757565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000602082018181526001600160a01b038516602484015260448084019690965294825294939092613d226064856126e4565b6001600160a01b0390818416600080809588519082855af190613d436142a1565b82613dce575b5081613dc3575b5015613d60575b50505050509050565b60405196602088015216602486015280604486015260448552608085019085821067ffffffffffffffff831117613daf5750613da493946115af9160405282614a52565b803880808080613d57565b80634e487b7160e01b602492526041600452fd5b90503b151538613d50565b80519192508115918215613de6575b50509038613d49565b613df99250602080918301019101614a3a565b3880613ddd565b6fffffffffffffffffffffffffffffffff90818111613e1d571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252608060048301526024820152fd5b613e9e613ec1926000838152600582016020526fffffffffffffffffffffffffffffffff60408220541693600b6020526004604083205493613ea46003820154613e9e83614ade565b90612d0a565b9284520160205260408220549081811015613ec45750509061494f565b90565b0391905061494f565b600a54906001600160a01b039081811680156129e5576000938085526020906002825260409485872054169384159484861596876140e5575b818a5260038652888a2060018154019055848a5260028652888a20827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558482847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8d80a41561406857506008548389526009855280888a2055680100000000000000008110156140545790613fac846128368460018a9601600855612f67565b03614003575b50505050613fd35750600a54906000198214612e8b575060018101600a5590565b6024925051907f73c6ac6e0000000000000000000000000000000000000000000000000000000082526004820152fd5b61400c9061309d565b9260001984019384116140405786526006825284862083875282528486208190558552600790528284205538808080613fb2565b602487634e487b7160e01b81526011600452fd5b602489634e487b7160e01b81526041600452fd5b90808214613fac576140798161309d565b848a5260078652888a20548181036140ae575b50848a528989812055818a5260068652888a20908a5285528888812055613fac565b828b5260068752898b20828c528752898b2054838c52600688528a8c20828d528852808b8d20558b5260078752898b20553861408c565b61411e85600052600460205260406000207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b828a5260038652888a206000198154019055613f06565b6001600160a01b039081831680151590816141d1575b50156141575750505050565b1661418d57602482604051907f7e2732890000000000000000000000000000000000000000000000000000000082526004820152fd5b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b039190911660048201526024810191909152604490fd5b82841680821492508215614209575b5081156141ef575b503861414b565b9050846000526004602052826040600020541614386141e8565b909150600052600560205260406000208160005260205260ff6040600020541690386141e0565b9290604051927f23b872dd0000000000000000000000000000000000000000000000000000000060208501526001600160a01b03809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176126655761429f92604052614a52565b565b3d156142cc573d906142b282612707565b916142c060405193846126e4565b82523d6000602084013e565b606090565b6002600d54146142e2576002600d55565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b8115614316570490565b634e487b7160e01b600052601260045260246000fd5b8051156144bf5760405161433f8161268f565b604081527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604082015281519160029260028101809111612d17576003809104938460021b947f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811603612d175792906143f76143e186612707565b956143ef60405197886126e4565b808752612707565b601f1960208701910136823793839284518501935b84811061446c57505050505060039051068060011461443b57600214614430575090565b600019603d91015390565b507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81603d60001981940153015390565b8360049197929394959701918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c16880101518885015316850101518682015301959392919061440c565b506040516144cc816126c8565b6000815290565b60405190600080549060018260011c90600184169384156145cf575b60209485841081146145bb578388528794939291811561457c5750600114614520575b505061429f925003836126e4565b60008080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56395935091905b81831061456457505061429f93508201013880614512565b8554888401850152948501948794509183019161454c565b905061429f9593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013880614512565b602485634e487b7160e01b81526022600452fd5b91607f16916144ef565b604051906000600190600154918260011c9060018416938415614686575b60209485841081146145bb578388528794939291811561457c575060011461462757505061429f925003836126e4565b9093915060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000915b81831061466e57505061429f93508201013880614512565b85548884018501529485019487945091830191614656565b91607f16916145f7565b9060409061469d81614c78565b600090838252600b602052828220549060038101906146d98254936004830194856020528787205490818110600014614742575050859061494f565b806146ec575b5050549382526020522055565b6146f7600591613e00565b9187865201602052848420906fffffffffffffffffffffffffffffffff198254916147356fffffffffffffffffffffffffffffffff91828516613ca9565b16911617905538806146df565b039061494f565b51906fffffffffffffffffffffffffffffffff8216820361045e57565b9081606091031261045e57604080519161477f8361268f565b61478881614749565b835261479660208201614749565b60208401520151604082015290565b670de0b6b3a764000091828202916000198482099383808610950394808603951461484d57848311156148235782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b60046040517f227bc153000000000000000000000000000000000000000000000000000000008152fd5b505090613ec1925061430c565b906703782dace9d9000090828202916000198482099383808610950394808603951461484d57848311156148235782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b670b1a2bc2ec50000090808202906000198184099082808310920391808303921461494257630784ce009082821115614823577f98f5be4dd1e14769fbd6666224dc1eb80dd2e0a3d2c8b328f57e76b7ae103957940990828211900360f71b910360091c170290565b5050630784ce0091500490565b9080820290600019818409908280831092039180830392146149b357670de0b6b3a76400009082821115614823577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669940990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b9091828202916000198482099383808610950394808603951461484d57848311156148235782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b9081602091031261045e5751801515810361045e5790565b6000806001600160a01b03614a7c93169360208151910182865af1614a756142a1565b9083614be5565b8051908115159182614ac3575b5050614a925750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b614ad69250602080918301019101614a3a565b153880614a89565b5467ffffffffffffffff8082168042104282180218908260401c1690818110600014614b6e5750506000905b8115808015614b64575b8015614b59575b614b5157670de0b6b3a7640000808402938404141715612d1757613ec191600c546001811190600118026001189160801c6149c4565b505050600090565b508160801c15614b1b565b50600c5415614b14565b0390614b0a565b7f00000000000000000000000000000000000000000000000000000000000000006000805b8260ff821610614baa5750505050565b6005811015614bd15780614bc76006614bcc9302600e0186614690565b612f2c565b614b9a565b602482634e487b7160e01b81526032600452fd5b90614c245750805115614bfa57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580614c6f575b614c35575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15614c2d565b614c8181614ade565b9081614ce9575b61429f9150614ca967ffffffffffffffff8254168042104282180218614d87565b7fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b60038101614cf8838254612d0a565b9055670de0b6b3a7640000600c54614d10818561494f565b9309614d65575b614d2361429f92613e00565b60018201906fffffffffffffffffffffffffffffffff19825491614d5a6fffffffffffffffffffffffffffffffff91828516613ca9565b169116179055614c88565b6001820180921115614d1757634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff90818111614d9c571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252604060048301526024820152fdfea26469706673582212202209b1f509f09bc92fab613faa1bdfaf26f9f4f5ae3c637f5bbcd35313cdbe3e64736f6c6343000819003360c034608057601f6104d438819003918201601f19168301916001600160401b03831184841017608557808492602094604052833981010312608057516001600160a01b03811681036080573360805260a052604051610438908161009c8239608051818181607d01526102ee015260a051818181610105015261033e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816372f702f314610312575080638da5cb5b146102c15763f3fef3a31461004557600080fd5b346102bd57826003193601126102bd57803573ffffffffffffffffffffffffffffffffffffffff938482168092036102b957602494807f000000000000000000000000000000000000000000000000000000000000000016338103610284575081519260208401907fa9059cbb000000000000000000000000000000000000000000000000000000008252878501528635604485015260448452608084019167ffffffffffffffff928581108482111761025957918798979291839286527f00000000000000000000000000000000000000000000000000000000000000001695519082875af13d1561024c573d82811161022157835192601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168401908111848210176101f6578452825261018d91903d88602084013e5b84610362565b80519081151591826101ce575b50506101a4578480f35b51917f5274afe7000000000000000000000000000000000000000000000000000000008352820152fd5b81925090602091810103126101f257602001518015908115036101f257388061019a565b8580fd5b87896041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86886041887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b61018d9150606090610187565b88886041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b84604491888551927f551266a80000000000000000000000000000000000000000000000000000000084523390840152820152fd5b8380fd5b5080fd5b8284346102bd57816003193601126102bd576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8390346102bd57816003193601126102bd5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b906103a1575080511561037757805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806103f9575b6103b2575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156103aa56fea26469706673582212207e8848ff620434987cb0cb661d55fe38df9d13c4a87115178798770df12e7bd164736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000007519c12941ea29cdb666a30d6939b118dae3ce4c00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000001d4d6176657269636b2042502d7773744554482d574554482d32352d523100000000000000000000000000000000000000000000000000000000000000000000154d42502d7773744554482d574554482d32352d5231000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007448c7456a97769f6cd04f1e83a4a23ccdc46abd0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c6addb3327a7d4b3b604227f82a6259ca71120530000000000000000000000000000000000000000000000000000000000000000