diff --git a/README.md b/README.md index df9535d2a..e86d0d981 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,9 @@ If you are not running Supabase, then the search functionality will not work. Yo ### Updating bytecode -Whenever you make a change to smart contracts, increment the version by `x.1`. Then generate the bytecode and version it as described below. +Whenever you make a change to smart contracts or really whenever the bytecode files change (could be that [the compiler version got changed and so no bytecode changed, but remappings were reformatted](https://github.com/jk-labs-inc/jokerace/pull/509)), increment the version by `x.1`. Then generate the bytecode and version it as described below. + +The purpose of this is so that we have a way to tell exactly what bytecode a contract that we read from a chain has and exactly how it was deployed given its version number. In order to generate and/or update the bytecode of your project, run diff --git a/packages/forge/foundry.toml b/packages/forge/foundry.toml index 4ff40c48f..4f68d86c4 100644 --- a/packages/forge/foundry.toml +++ b/packages/forge/foundry.toml @@ -2,5 +2,6 @@ src = "src" out = "out" libs = ["lib"] +solc-version = "0.8.19" # most rollups don't support past this - https://twitter.com/pashovkrum/status/1690298101448208384?s=46 # See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/packages/forge/src/governance/Governor.sol b/packages/forge/src/governance/Governor.sol index a2e91d764..935fb4daa 100644 --- a/packages/forge/src/governance/Governor.sol +++ b/packages/forge/src/governance/Governor.sol @@ -84,7 +84,7 @@ abstract contract Governor is Context, ERC165, EIP712, GovernorMerkleVotes, IGov * @dev See {IGovernor-version}. */ function version() public view virtual override returns (string memory) { - return "3.2"; + return "3.3"; } /** diff --git a/packages/forge/src/modules/RewardsModule.sol b/packages/forge/src/modules/RewardsModule.sol index ae245d22b..eefc768ab 100644 --- a/packages/forge/src/modules/RewardsModule.sol +++ b/packages/forge/src/modules/RewardsModule.sol @@ -90,7 +90,7 @@ contract RewardsModule is Context { * @dev Version of the rewards module. Default: "1" */ function version() public view virtual returns (string memory) { - return "3.2"; + return "3.3"; } /** diff --git a/packages/react-app-revamp/README.md b/packages/react-app-revamp/README.md index df9535d2a..e86d0d981 100644 --- a/packages/react-app-revamp/README.md +++ b/packages/react-app-revamp/README.md @@ -36,7 +36,9 @@ If you are not running Supabase, then the search functionality will not work. Yo ### Updating bytecode -Whenever you make a change to smart contracts, increment the version by `x.1`. Then generate the bytecode and version it as described below. +Whenever you make a change to smart contracts or really whenever the bytecode files change (could be that [the compiler version got changed and so no bytecode changed, but remappings were reformatted](https://github.com/jk-labs-inc/jokerace/pull/509)), increment the version by `x.1`. Then generate the bytecode and version it as described below. + +The purpose of this is so that we have a way to tell exactly what bytecode a contract that we read from a chain has and exactly how it was deployed given its version number. In order to generate and/or update the bytecode of your project, run diff --git a/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.3.3.setCompilerTo8Dot19.sol/Contest.json b/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.3.3.setCompilerTo8Dot19.sol/Contest.json new file mode 100644 index 000000000..c9f951b03 --- /dev/null +++ b/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.3.3.setCompilerTo8Dot19.sol/Contest.json @@ -0,0 +1,5500 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_prompt", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_submissionMerkleRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_votingMerkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "_constructorIntParams", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidShortString", + "type": "error" + }, + { + "inputs": [], + "name": "NotInMerkle", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "name": "StringTooLong", + "type": "error" + }, + { + "inputs": [], + "name": "TooManyMetadatas", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "ContestCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldContestStart", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newContestStart", + "type": "uint256" + } + ], + "name": "ContestStartSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldCreator", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newCreator", + "type": "address" + } + ], + "name": "CreatorSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldDownvotingAllowed", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newDownvotingAllowed", + "type": "uint256" + } + ], + "name": "DownvotingAllowedSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldMaxProposalCount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newMaxProposalCount", + "type": "uint256" + } + ], + "name": "MaxProposalCountSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldNumAllowedProposalSubmissions", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newNumAllowedProposalSubmissions", + "type": "uint256" + } + ], + "name": "NumAllowedProposalSubmissionsSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract RewardsModule", + "name": "oldOfficialRewardsModule", + "type": "address" + }, + { + "indexed": false, + "internalType": "contract RewardsModule", + "name": "newOfficialRewardsModule", + "type": "address" + } + ], + "name": "OfficialRewardsModuleSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256[]", + "name": "proposalIds", + "type": "uint256[]" + } + ], + "name": "ProposalsDeleted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "numVotes", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "reason", + "type": "string" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingDelay", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256" + } + ], + "name": "VotingDelaySet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldVotingPeriod", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256" + } + ], + "name": "VotingPeriodSet", + "type": "event" + }, + { + "inputs": [], + "name": "AMOUNT_FOR_SUMBITTER_PROOF", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "COUNTING_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "METADATAS_COUNT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "addressSubmitterVerified", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "addressTotalCastVoteCounts", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "addressTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "addressTotalVotesVerified", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "allProposalTotalVotes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "proposalIdsReturn", + "type": "uint256[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ], + "internalType": "struct GovernorCountingSimple.VoteCounts[]", + "name": "proposalVoteCountsArrayReturn", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "allProposalTotalVotesWithoutDeleted", + "outputs": [ + { + "internalType": "uint256[]", + "name": "proposalIdsReturn", + "type": "uint256[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ], + "internalType": "struct GovernorCountingSimple.VoteCounts[]", + "name": "proposalVoteCountsArrayReturn", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "totalVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numVotes", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "castVote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "numVotes", + "type": "uint256" + } + ], + "name": "castVoteWithoutProof", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addressToCheck", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + }, + { + "internalType": "bool", + "name": "voting", + "type": "bool" + } + ], + "name": "checkProof", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "userAddress", + "type": "address" + } + ], + "name": "contestAddressTotalVotesCast", + "outputs": [ + { + "internalType": "uint256", + "name": "userTotalVotesCast", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contestDeadline", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contestStart", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "creator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "proposalIds", + "type": "uint256[]" + } + ], + "name": "deleteProposals", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "downvotingAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getAllProposalIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "getNumSubmissions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getProposal", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ], + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple" + } + ], + "internalType": "struct IGovernor.ProposalCore", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ], + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple" + } + ], + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple" + } + ], + "name": "hashProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "highestTiedRanking", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "isProposalDeleted", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "isTied", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lowestRanking", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "maxProposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "numAllowedProposalSubmissions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "officialRewardsModule", + "outputs": [ + { + "internalType": "contract RewardsModule", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "prompt", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "userAddress", + "type": "address" + } + ], + "name": "proposalAddressVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalAddressesHaveVoted", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "proposalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposalVotesStructs", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ], + "internalType": "struct GovernorCountingSimple.VoteCounts", + "name": "proposalVoteCounts", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ], + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple" + } + ], + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ], + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple" + } + ], + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple" + } + ], + "name": "proposeWithoutProof", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "rankingPosition", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract RewardsModule", + "name": "officialRewardsModule_", + "type": "address" + } + ], + "name": "setOfficialRewardsModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "setSortedAndTiedProposals", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "setSortedAndTiedProposalsHasBeenRun", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "sortedProposalIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "excludeDeletedProposals", + "type": "bool" + } + ], + "name": "sortedProposals", + "outputs": [ + { + "internalType": "uint256[]", + "name": "sortedProposalIdsReturn", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "state", + "outputs": [ + { + "internalType": "enum IGovernor.ContestState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "submissionMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "tiedAdjustedRankingPosition", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalVotesCast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ], + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple" + } + ], + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple" + } + ], + "name": "validateProposalData", + "outputs": [ + { + "internalType": "bool", + "name": "dataValidated", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "verifyProposer", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalVotes", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "name": "verifyVoter", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "voteStart", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": { + "object": "0x6101a06040526016805460ff191690553480156200001c57600080fd5b50604051620046a0380380620046a08339810160408190526200003f9162000621565b8060008151811062000055576200005562000732565b60200260200101518160018151811062000073576200007362000732565b60200260200101518260028151811062000091576200009162000732565b602002602001015183600381518110620000af57620000af62000732565b602002602001015184600481518110620000cd57620000cd62000732565b602002602001015185600581518110620000eb57620000eb62000732565b60200260200101518a8a8a8a8181856200010a6200025060201b60201c565b620001178260006200026d565b61012052620001288160016200026d565b61014052815160208084019190912060e052815190820120610100524660a052620001b660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05261016091909152610180526007620001d88582620007d7565b506008620001e78482620007d7565b5050505050620001fd86620002a660201b60201c565b6200020885620002e7565b620002138462000328565b6200021e83620003cf565b620002298262000410565b620002348162000451565b6200023f3362000492565b5050505050505050505050620008fd565b604080518082019091526003815262332e3360e81b602082015290565b60006020835110156200028d576200028583620004fb565b9050620002a0565b816200029a8482620007d7565b5060ff90505b92915050565b600c5460408051918252602082018390527fd299feb1d7d9345a48559601c471c3be7eea9a11f21d5e86809198f40a974db4910160405180910390a1600c55565b600d5460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600d55565b600081116200038e5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b600e5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600e55565b600f5460408051918252602082018390527fe971b819c7fb95c72451f557226aceb5baaf4994a9d39a79bbfa0040e87500b9910160405180910390a1600f55565b60105460408051918252602082018390527f4984ec996723330ee95979ed65a2a4b41edd914e68a187efe92596474643bdff910160405180910390a1601055565b60115460408051918252602082018390527f9c7b27f091caef3a83be73d89320404fa0c4a52993685ff0651672e49e6e55ab910160405180910390a1601155565b601254604080516001600160a01b03928316815291831660208301527fc30034fc2e9697980e08935bbc287db3eaa44a4aa113ef4c108b356adbf911ce910160405180910390a1601280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000529578260405163305a27a960e01b8152600401620003859190620008a3565b80516200053682620008d8565b179392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200057f576200057f6200053e565b604052919050565b60005b83811015620005a45781810151838201526020016200058a565b50506000910152565b600082601f830112620005bf57600080fd5b81516001600160401b03811115620005db57620005db6200053e565b620005f0601f8201601f191660200162000554565b8181528460208386010111156200060657600080fd5b6200061982602083016020870162000587565b949350505050565b600080600080600060a086880312156200063a57600080fd5b85516001600160401b03808211156200065257600080fd5b6200066089838a01620005ad565b96506020915081880151818111156200067857600080fd5b620006868a828b01620005ad565b9650506040880151945060608801519350608088015181811115620006aa57600080fd5b8801601f81018a13620006bc57600080fd5b805182811115620006d157620006d16200053e565b8060051b9250620006e484840162000554565b818152928201840192848101908c851115620006ff57600080fd5b928501925b848410156200071f5783518252928501929085019062000704565b8096505050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200075d57607f821691505b6020821081036200077e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d257600081815260208120601f850160051c81016020861015620007ad5750805b601f850160051c820191505b81811015620007ce57828155600101620007b9565b5050505b505050565b81516001600160401b03811115620007f357620007f36200053e565b6200080b8162000804845462000748565b8462000784565b602080601f8311600181146200084357600084156200082a5750858301515b600019600386901b1c1916600185901b178555620007ce565b600085815260208120601f198616915b82811015620008745788860151825594840194600190910190840162000853565b5085821015620008935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260008251806020840152620008c481604085016020870162000587565b601f01601f19169190910160400192915050565b805160208083015191908110156200077e5760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051613d256200097b60003960008181610a620152610ead01526000818161091a01528181610cf501528181610e480152611116015260006114730152600061144901526000505060005050600050506000505060005050613d256000f3fe60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b50604080518082019091526003815262332e3360e81b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122024bf350849a566b9406441513436ab64c28ff31946a37b3a3a3504e93acb68ff64736f6c63430008130033", + "sourceMap": "271:1911:40:-:0;;;273:55:47;;;-1:-1:-1;;273:55:47;;;365:716:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;678:21;700:1;678:24;;;;;;;;:::i;:::-;;;;;;;740:21;762:1;740:24;;;;;;;;:::i;:::-;;;;;;;802:21;824:1;802:24;;;;;;;;:::i;:::-;;;;;;;865:21;887:1;865:24;;;;;;;;:::i;:::-;;;;;;;945:21;967:1;945:24;;;;;;;;:::i;:::-;;;;;;;1011:21;1033:1;1011:24;;;;;;;;:::i;:::-;;;;;;;582:5;589:7;598:21;621:17;1957:21:41;1980:17;2014:5;2021:9;:7;;;:9;;:::i;:::-;3251:45:32;:4;3282:13;3251:30;:45::i;:::-;3243:53;;3317:51;:7;3351:16;3317:33;:51::i;:::-;3306:62;;3392:22;;;;;;;;;;3378:36;;3441:25;;;;;;3424:42;;3494:13;3477:30;;3542:23;4077:11;;4090:14;;4054:81;;;1929:95;4054:81;;;5649:25:51;5690:18;;;5683:34;;;;5733:18;;;5726:34;4106:13:32;5776:18:51;;;5769:34;4129:4:32;5819:19:51;;;5812:61;4018:7:32;;5621:19:51;;4054:81:32;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3542:23;3517:48;;-1:-1:-1;;3597:4:32;3575:27;;894:44:42;;;;;963:36;;2046:5:41::2;:13;2054:5:::0;2046;:13:::2;:::i;:::-;-1:-1:-1::0;2069:7:41::2;:17;2079:7:::0;2069;:17:::2;:::i;:::-;;1815:278:::0;;;;1483:37:46;1500:19;1483:16;;;:37;;:::i;:::-;1530:35;1546:18;1530:15;:35::i;:::-;1575:37;1592:19;1575:16;:37::i;:::-;1622:71;1656:36;1622:33;:71::i;:::-;1703:45;1724:23;1703:20;:45::i;:::-;1758:47;1780:24;1758:21;:47::i;:::-;1815:23;1827:10;1815:11;:23::i;:::-;1208:637;;;;;;365:716:40;;;;;271:1911;;2987:101:41;3069:12;;;;;;;;;;;;-1:-1:-1;;;3069:12:41;;;;;2987:101::o;2895:341:27:-;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1371:66:27;;-1:-1:-1;3014:216:27;2895:341;;;;:::o;3247:178:46:-;3346:13;;3330:47;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;3330:47:46;;6031:18:51;3330:47:46;;;;;;;3387:13;:31;3247:178::o;3543:171::-;3639:12;;3624:44;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;3624:44:46;;6031:18:51;3624:44:46;;;;;;;3678:12;:29;3543:171::o;3834:316::-;3995:1;3977:15;:19;3969:71;;;;-1:-1:-1;;;3969:71:46;;6339:2:51;3969:71:46;;;6321:21:51;6378:2;6358:18;;;6351:30;6417:34;6397:18;;;6390:62;-1:-1:-1;;;6468:18:51;;;6461:37;6515:19;;3969:71:46;;;;;;;;;4071:13;;4055:47;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4055:47:46;;6031:18:51;4055:47:46;;;;;;;4112:13;:31;3834:316::o;4337:297::-;4487:30;;4454:98;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4454:98:46;;6031:18:51;4454:98:46;;;;;;;4562:30;:65;4337:297::o;4763:206::-;4874:17;;4854:59;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4854:59:46;;6031:18:51;4854:59:46;;;;;;;4923:17;:39;4763:206::o;5101:213::-;5215:18;;5194:62;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;5194:62:46;;6031:18:51;5194:62:46;;;;;;;5266:18;:41;5101:213::o;5419:143::-;5503:8;;5492:32;;;-1:-1:-1;;;;;5503:8:46;;;6757:34:51;;6827:15;;;6822:2;6807:18;;6800:43;5492:32:46;;6692:18:51;5492:32:46;;;;;;;5534:8;:21;;-1:-1:-1;;;;;;5534:21:46;-1:-1:-1;;;;;5534:21:46;;;;;;;;;;5419:143::o;1689:286:27:-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;-1:-1:-1;;;1860:18:27;;;;;;;;:::i;1817:72::-;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:27:o;14:127:51:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:51;247:40;;-1:-1:-1;;;;;302:34:51;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:51:o;426:250::-;511:1;521:113;535:6;532:1;529:13;521:113;;;611:11;;;605:18;592:11;;;585:39;557:2;550:10;521:113;;;-1:-1:-1;;668:1:51;650:16;;643:27;426:250::o;681:510::-;735:5;788:3;781:4;773:6;769:17;765:27;755:55;;806:1;803;796:12;755:55;829:13;;-1:-1:-1;;;;;854:26:51;;851:52;;;883:18;;:::i;:::-;927:55;970:2;951:13;;-1:-1:-1;;947:27:51;976:4;943:38;927:55;:::i;:::-;1007:2;998:7;991:19;1053:3;1046:4;1041:2;1033:6;1029:15;1025:26;1022:35;1019:55;;;1070:1;1067;1060:12;1019:55;1083:77;1157:2;1150:4;1141:7;1137:18;1130:4;1122:6;1118:17;1083:77;:::i;:::-;1178:7;681:510;-1:-1:-1;;;;681:510:51:o;1196:1468::-;1347:6;1355;1363;1371;1379;1432:3;1420:9;1411:7;1407:23;1403:33;1400:53;;;1449:1;1446;1439:12;1400:53;1476:16;;-1:-1:-1;;;;;1541:14:51;;;1538:34;;;1568:1;1565;1558:12;1538:34;1591:61;1644:7;1635:6;1624:9;1620:22;1591:61;:::i;:::-;1581:71;;1671:2;1661:12;;1719:2;1708:9;1704:18;1698:25;1748:2;1738:8;1735:16;1732:36;;;1764:1;1761;1754:12;1732:36;1787:63;1842:7;1831:8;1820:9;1816:24;1787:63;:::i;:::-;1777:73;;;1890:2;1879:9;1875:18;1869:25;1859:35;;1934:2;1923:9;1919:18;1913:25;1903:35;;1984:3;1973:9;1969:19;1963:26;2014:2;2004:8;2001:16;1998:36;;;2030:1;2027;2020:12;1998:36;2053:24;;2108:4;2100:13;;2096:27;-1:-1:-1;2086:55:51;;2137:1;2134;2127:12;2086:55;2166:2;2160:9;2188:2;2184;2181:10;2178:36;;;2194:18;;:::i;:::-;2240:2;2237:1;2233:10;2223:20;;2263:28;2287:2;2283;2279:11;2263:28;:::i;:::-;2325:15;;;2395:11;;;2391:20;;;2356:12;;;;2423:19;;;2420:39;;;2455:1;2452;2445:12;2420:39;2479:11;;;;2499:135;2515:6;2510:3;2507:15;2499:135;;;2581:10;;2569:23;;2532:12;;;;2612;;;;2499:135;;;2653:5;2643:15;;;;;;;;1196:1468;;;;;;;;:::o;2669:127::-;2730:10;2725:3;2721:20;2718:1;2711:31;2761:4;2758:1;2751:15;2785:4;2782:1;2775:15;2801:380;2880:1;2876:12;;;;2923;;;2944:61;;2998:4;2990:6;2986:17;2976:27;;2944:61;3051:2;3043:6;3040:14;3020:18;3017:38;3014:161;;3097:10;3092:3;3088:20;3085:1;3078:31;3132:4;3129:1;3122:15;3160:4;3157:1;3150:15;3014:161;;2801:380;;;:::o;3312:545::-;3414:2;3409:3;3406:11;3403:448;;;3450:1;3475:5;3471:2;3464:17;3520:4;3516:2;3506:19;3590:2;3578:10;3574:19;3571:1;3567:27;3561:4;3557:38;3626:4;3614:10;3611:20;3608:47;;;-1:-1:-1;3649:4:51;3608:47;3704:2;3699:3;3695:12;3692:1;3688:20;3682:4;3678:31;3668:41;;3759:82;3777:2;3770:5;3767:13;3759:82;;;3822:17;;;3803:1;3792:13;3759:82;;;3763:3;;;3403:448;3312:545;;;:::o;4033:1352::-;4153:10;;-1:-1:-1;;;;;4175:30:51;;4172:56;;;4208:18;;:::i;:::-;4237:97;4327:6;4287:38;4319:4;4313:11;4287:38;:::i;:::-;4281:4;4237:97;:::i;:::-;4389:4;;4453:2;4442:14;;4470:1;4465:663;;;;5172:1;5189:6;5186:89;;;-1:-1:-1;5241:19:51;;;5235:26;5186:89;-1:-1:-1;;3990:1:51;3986:11;;;3982:24;3978:29;3968:40;4014:1;4010:11;;;3965:57;5288:81;;4435:944;;4465:663;3259:1;3252:14;;;3296:4;3283:18;;-1:-1:-1;;4501:20:51;;;4619:236;4633:7;4630:1;4627:14;4619:236;;;4722:19;;;4716:26;4701:42;;4814:27;;;;4782:1;4770:14;;;;4649:19;;4619:236;;;4623:3;4883:6;4874:7;4871:19;4868:201;;;4944:19;;;4938:26;-1:-1:-1;;5027:1:51;5023:14;;;5039:3;5019:24;5015:37;5011:42;4996:58;4981:74;;4868:201;-1:-1:-1;;;;;5115:1:51;5099:14;;;5095:22;5082:36;;-1:-1:-1;4033:1352:51:o;6854:396::-;7003:2;6992:9;6985:21;6966:4;7035:6;7029:13;7078:6;7073:2;7062:9;7058:18;7051:34;7094:79;7166:6;7161:2;7150:9;7146:18;7141:2;7133:6;7129:15;7094:79;:::i;:::-;7234:2;7213:15;-1:-1:-1;;7209:29:51;7194:45;;;;7241:2;7190:54;;6854:396;-1:-1:-1;;6854:396:51:o;7255:297::-;7373:12;;7420:4;7409:16;;;7403:23;;7373:12;7438:16;;7435:111;;;-1:-1:-1;;7512:4:51;7508:17;;;;7505:1;7501:25;7497:38;7486:50;;7255:297;-1:-1:-1;7255:297:51:o;:::-;271:1911:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b50604080518082019091526003815262332e3360e81b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122024bf350849a566b9406441513436ab64c28ff31946a37b3a3a3504e93acb68ff64736f6c63430008130033", + "sourceMap": "271:1911:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2289:37:41;271:1911:40;;;;;1155:136;;;;;;;;;;;;;:::i;:::-;;;160:25:51;;;148:2;133:18;1155:136:40;;;;;;;;2400:214:41;;;;;;;;;;-1:-1:-1;2400:214:41;;;;;:::i;:::-;;:::i;:::-;;;652:14:51;;645:22;627:41;;615:2;600:18;2400:214:41;487:187:51;1437:136:40;;;;;;;;;;;;;:::i;2054:126::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;843:32:51;;;825:51;;813:2;798:18;2054:126:40;679:203:51;2670:98:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;752:60:44:-;;;;;;;;;;-1:-1:-1;752:60:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7167:528:41:-;;;;;;;;;;-1:-1:-1;7167:528:41;;;;;:::i;:::-;;:::i;950:249:47:-;;;;;;;;;;-1:-1:-1;950:249:47;;;;;:::i;:::-;;:::i;5347:126:41:-;;;;;;;;;;;;;:::i;1304:539:42:-;;;;;;;;;;-1:-1:-1;1304:539:42;;;;;:::i;:::-;;:::i;1054:73:41:-;;;;;;;;;;;;1107:20;1054:73;;1297:134:40;;;;;;;;;;;;;:::i;6619:140:41:-;;;;;;;;;;-1:-1:-1;6619:140:41;;;;;:::i;:::-;6695:7;6721:31;;;:19;:31;;;;;;;6619:140;12649:353;;;;;;;;;;-1:-1:-1;12649:353:41;;;;;:::i;:::-;;:::i;5069:1024:47:-;;;;;;;;;;-1:-1:-1;5069:1024:47;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4034:163:41:-;;;;;;;;;;-1:-1:-1;4034:163:41;;;;;:::i;:::-;;:::i;9440:469::-;;;;;;;;;;-1:-1:-1;9440:469:41;;;;;:::i;:::-;;:::i;328:43:43:-;;;;;;;;;;;;370:1;328:43;;2610:566:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;12137:452:41:-;;;;;;;;;;-1:-1:-1;12137:452:41;;;;;:::i;:::-;;:::i;1152:302:44:-;;;;;;;;;;-1:-1:-1;1152:302:44;;;;;:::i;:::-;1224:16;1310:32;;;:20;:32;;;;;1360:40;;1402:44;;;;;1360:40;;1152:302;;;;;11918:25:51;;;11974:2;11959:18;;11952:34;;;;11891:18;1152:302:44;11744:248:51;2987:101:41;;;;;;;;;;-1:-1:-1;3069:12:41;;;;;;;;;;;;-1:-1:-1;;;3069:12:41;;;;2987:101;;6371:130;;;;;;;;;;-1:-1:-1;6371:130:41;;;;;:::i;:::-;-1:-1:-1;;;;;6470:24:41;6444:7;6470:24;;;:15;:24;;;;;;;6371:130;1903:145:40;;;;;;;;;;;;;:::i;13074:443:41:-;;;;;;;;;;-1:-1:-1;13074:443:41;;;;;:::i;:::-;;:::i;1956:242:47:-;;;;;;;;;;;;;:::i;1557:424:44:-;;;;;;;;;;-1:-1:-1;1557:424:44;;;;;:::i;:::-;;:::i;536:123:45:-;;;;;;;;;;-1:-1:-1;630:22:45;;-1:-1:-1;;;;;630:22:45;536:123;;2826:102:41;;;;;;;;;;;;;:::i;612:29:44:-;;;;;;;;;;;;;;;;1579:169:40;;;;;;;;;;;;;:::i;5021:633:32:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;1286:281:47:-;;;;;;;;;;-1:-1:-1;1286:281:47;;;;;:::i;:::-;;:::i;1632:259::-;;;;;;;;;;;;;:::i;1191:57:41:-;;;;;;;;;;-1:-1:-1;1191:57:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;6519:3166:47;;;;;;;;;;;;;:::i;685:61:44:-;;;;;;;;;;-1:-1:-1;685:61:44;;;;;:::i;:::-;;;;;;;;;;;;;;2425:215;;;;;;;;;;-1:-1:-1;2425:215:44;;;;;:::i;:::-;-1:-1:-1;;;;;2594:39:44;2545:26;2594:39;;;:26;:39;;;;;;;2425:215;2082:232;;;;;;;;;;-1:-1:-1;2082:232:44;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;378:45:42:-;;;;;;;;;;;;;;;9028:341:41;;;;;;;;;;-1:-1:-1;9028:341:41;;;;;:::i;:::-;;:::i;4254:675::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6140:137::-;;;;;;;;;;-1:-1:-1;6140:137:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1254:56::-;;;;;;;;;;-1:-1:-1;1254:56:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;3301:952:47;;;;;;;;;;;;;:::i;273:55::-;;;;;;;;;;-1:-1:-1;273:55:47;;;;;;;;931:128:44;;;;;;;;;;-1:-1:-1;1019:33:44;;;;;;;;;;;;;;;;;931:128;;429:41:42;;;;;;;;;;;;;;;1133:52:41;;;;;;;;;;-1:-1:-1;1133:52:41;;;;;:::i;:::-;;;;;;;;;;;;;;953:95;;;;;;;;;;;;995:53;953:95;;5158:122;;;;;;;;;;;;;:::i;334:62:47:-;;;;;;;;;;-1:-1:-1;334:62:47;;;;;:::i;:::-;;;;;;;;;;;;;;11774:300:41;;;;;;;;;;;;;:::i;2265:252:47:-;;;;;;;;;;;;;:::i;4985:112:41:-;;;;;;;;;;;;;:::i;10930:753::-;;;;;;;;;;-1:-1:-1;10930:753:41;;;;;:::i;:::-;;:::i;781:356:45:-;;;;;;;;;;-1:-1:-1;781:356:45;;;;;:::i;:::-;;:::i;7767:1202:41:-;;;;;;;;;;-1:-1:-1;7767:1202:41;;;;;:::i;:::-;;:::i;1754:143:40:-;;;;;;;;;;;;;:::i;1155:136::-;1238:7;1264:20;1997:13:46;;;1909:108;1264:20:40;1257:27;;1155:136;:::o;2400:214:41:-;2502:4;-1:-1:-1;;;;;;2525:42:41;;-1:-1:-1;;;2525:42:41;;:82;;-1:-1:-1;;;;;;;;;;937:40:35;;;2571:36:41;2518:89;2400:214;-1:-1:-1;;2400:214:41:o;1437:136:40:-;1520:7;1546:20;2338:13:46;;;2250:108;2054:126:40;2132:7;2158:15;3113:8:46;;-1:-1:-1;;;;;3113:8:46;;3030:98;2670::41;2724:13;2756:5;2749:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:98;:::o;7167:528::-;-1:-1:-1;;;;;7289:33:41;;7259:13;7289:33;;;:24;:33;;;;;;;;7284:384;;7342:20;7366:1;7342:25;7338:146;;-1:-1:-1;7465:4:41;7458:11;;7338:146;7497:61;7508:7;1107:20;7545:5;;7552;7497:10;:61::i;:::-;-1:-1:-1;;;;;;7617:33:41;;;;;;:24;:33;;;;;:40;;-1:-1:-1;;7617:40:41;7653:4;7617:40;;;7284:384;-1:-1:-1;7684:4:41;7167:528;;;;;;:::o;950:249:47:-;1041:35;;1004:4;;1041:35;;1020:139;;;;-1:-1:-1;;;1020:139:47;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1176:16:47;;;;:7;:16;;;;;;;;;950:249::o;5347:126:41:-;5412:7;5452:14;:12;:14::i;:::-;5438:11;:9;:11::i;:::-;:28;;;;:::i;1304:539:42:-;1559:40;;-1:-1:-1;;19622:2:51;19618:15;;;19614:53;1559:40:42;;;19602:66:51;19684:12;;;19677:28;;;1448:13:42;;;;19721:12:51;;1559:40:42;;;;;;;;;;;;1549:51;;;;;;1534:66;;1610:16;1629:6;:138;;1714:53;1733:5;;1714:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1740:20:42;;-1:-1:-1;1762:4:42;;-1:-1:-1;1714:18:42;;-1:-1:-1;1714:53:42:i;:::-;1629:138;;;1650:49;1669:5;;1650:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1676:16:42;;-1:-1:-1;1694:4:42;;-1:-1:-1;1650:18:42;;-1:-1:-1;1650:49:42:i;:::-;1610:157;;1782:11;1777:38;;1802:13;;-1:-1:-1;;;1802:13:42;;;;;;;;;;;1777:38;-1:-1:-1;1832:4:42;;1304:539;-1:-1:-1;;;;;;;1304:539:42:o;1297:134:40:-;1379:7;1405:19;2167:12:46;;;2080:106;12649:353:41;12831:7;12870:10;12890:37;12870:10;12909;12921:5;;12890:11;:37::i;:::-;;12944:51;12954:10;12966:5;12973:7;12982:8;12944:51;;;;;;;;;;;;:9;:51::i;:::-;12937:58;12649:353;-1:-1:-1;;;;;;;;12649:353:41:o;5069:1024:47:-;5185:40;5242:31;5275:43;5334:23;:89;;5400:23;:21;:23::i;:::-;5334:89;;;5360:37;:35;:37::i;:::-;5241:182;;;;5465:1;5441:14;:21;:25;5433:88;;;;-1:-1:-1;;;5433:88:47;;19946:2:51;5433:88:47;;;19928:21:51;19985:2;19965:18;;;19958:30;20024:34;20004:18;;;19997:62;-1:-1:-1;;;20075:18:51;;;20068:48;20133:19;;5433:88:47;19744:414:51;5433:88:47;5531:32;5579:14;:21;-1:-1:-1;;;;;5566:35:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5566:35:47;;5531:70;;5616:9;5611:217;5635:23;:30;5631:1;:34;5611:217;;;5777:23;5801:1;5777:26;;;;;;;;:::i;:::-;;;;;;;:39;;;5731:23;5755:1;5731:26;;;;;;;;:::i;:::-;;;;;;;:35;;;5724:93;;;;:::i;:::-;5686:16;5703:1;5686:19;;;;;;;;:::i;:::-;;;;;;;;;;:131;5667:3;;;;:::i;:::-;;;;5611:217;;;;5842:9;5837:219;5885:1;5861:14;:21;:25;;;;:::i;:::-;5857:1;:29;5837:219;;;5999:46;6009:1;6012:16;6030:14;5999:9;:46::i;:::-;-1:-1:-1;5888:3:47;;;;:::i;:::-;;;;5837:219;;;-1:-1:-1;6072:14:47;;5069:1024;-1:-1:-1;;;;5069:1024:47:o;4034:163:41:-;4124:7;4179:8;4168:20;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4168:20:41;;;;;;;;;4158:31;;4168:20;4158:31;;;;;4034:163;-1:-1:-1;;4034:163:41:o;9440:469::-;9532:7;9555:20;:25;9551:272;;9749:10;9724:36;;;;:24;:36;;;;;;;;9716:96;;;;-1:-1:-1;;;9716:96:41;;;;;;;:::i;:::-;9832:30;9853:8;9832:20;:30::i;:::-;;9879:23;9893:8;9879:13;:23::i;2610:566:47:-;2704:34;2740:49;2805:28;2836:19;:17;:19::i;:::-;2805:50;;2865:43;2928:11;:18;-1:-1:-1;;;;;2911:36:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2911:36:47;;;;;;;;;;;;;;;;2865:82;;2962:9;2957:158;2981:11;:18;2977:1;:22;2957:158;;;3049:20;:36;3070:11;3082:1;3070:14;;;;;;;;:::i;:::-;;;;;;;3049:36;;;;;;;;;;;:55;;3020:84;;;;;;;;;;;;;;;;;;;;;;;;;:23;3044:1;3020:26;;;;;;;;:::i;:::-;;;;;;:84;;;;3001:3;;;;;:::i;:::-;;;;2957:158;;;-1:-1:-1;3132:11:47;;3145:23;;-1:-1:-1;2610:566:47;-1:-1:-1;2610:566:47:o;12137:452:41:-;-1:-1:-1;;;;;12304:34:41;;12270:13;12304:34;;;:25;:34;;;;;;;;12299:263;;12354:44;12365:7;12374:10;12386:5;;12393:4;12354:10;:44::i;:::-;-1:-1:-1;;;;;;12457:26:41;;;;;;:17;:26;;;;;;;;:39;;;12510:25;:34;;;;;:41;;-1:-1:-1;;12510:41:41;12547:4;12510:41;;;12299:263;-1:-1:-1;12578:4:41;12137:452;;;;;;:::o;1903:145:40:-;1990:7;2016:25;2946:18:46;;;2853:118;13074:443:41;13261:10;13222:7;13302:32;;;:25;:32;;;;;;13222:7;;13261:10;13302:32;;13281:161;;;;-1:-1:-1;;;13281:161:41;;21391:2:51;13281:161:41;;;21373:21:51;21430:2;21410:18;;;21403:30;21469:34;21449:18;;;21442:62;21540:34;21520:18;;;21513:62;-1:-1:-1;;;21591:19:51;;;21584:49;21650:19;;13281:161:41;21189:486:51;13281:161:41;13459:51;13469:10;13481:5;13488:7;13497:8;13459:51;;;;;;;;;;;;:9;:51::i;:::-;13452:58;13074:443;-1:-1:-1;;;;;13074:443:41:o;1956:242:47:-;2042:35;;2002:7;;2042:35;;2021:139;;;;-1:-1:-1;;;2021:139:47;;;;;;;:::i;:::-;-1:-1:-1;2177:14:47;;;1956:242::o;1557:424:44:-;1689:16;1779:32;;;:20;:32;;;;;;;;-1:-1:-1;;;;;1842:43:44;;;;:30;;:43;;;;;:52;;1908:56;;;;;1557:424;;;;;;:::o;2826:102:41:-;2882:13;2914:7;2907:14;;;;;:::i;1579:169:40:-;1678:7;1704:37;2543:30:46;;;2438:142;5021:633:32;5136:13;5163:18;;5136:13;;;5163:18;5427:41;:5;5136:13;5427:26;:41::i;:::-;5482:47;:8;5512:16;5482:29;:47::i;:::-;5621:16;;;5605:1;5621:16;;;;;;;;;-1:-1:-1;;;5376:271:32;;;-1:-1:-1;5376:271:32;;-1:-1:-1;5543:13:32;;-1:-1:-1;5578:4:32;;-1:-1:-1;5605:1:32;-1:-1:-1;5621:16:32;-1:-1:-1;5376:271:32;-1:-1:-1;5021:633:32:o;1286:281:47:-;1389:35;;1349:7;;1389:35;;1368:139;;;;-1:-1:-1;;;1368:139:47;;;;;;;:::i;:::-;-1:-1:-1;1524:36:47;;;;:27;:36;;;;;;;1286:281::o;1632:259::-;1731:35;;1682:16;;1731:35;;1710:139;;;;-1:-1:-1;;;1710:139:47;;;;;;;:::i;:::-;1866:18;1859:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:259;:::o;6519:3166::-;6613:32;6602:7;:5;:7::i;:::-;:43;;;;;;;;:::i;:::-;;6581:161;;;;-1:-1:-1;;;6581:161:47;;21882:2:51;6581:161:47;;;21864:21:51;21921:2;21901:18;;;21894:30;21960:34;21940:18;;;21933:62;22031:34;22011:18;;;22004:62;-1:-1:-1;;;22082:19:51;;;22075:38;22130:19;;6581:161:47;21680:475:51;6581:161:47;6773:35;;;;:44;6752:186;;;;-1:-1:-1;;;6752:186:47;;22362:2:51;6752:186:47;;;22344:21:51;22401:2;22381:18;;;22374:30;22440:34;22420:18;;;22413:62;22511:34;22491:18;;;22484:62;22583:33;22562:19;;;22555:62;22634:19;;6752:186:47;22160:499:51;6752:186:47;6970:21;6986:4;6970:15;:21::i;:::-;6949:42;;;;:18;;:42;;;;;;:::i;:::-;-1:-1:-1;7096:18:47;:25;7002:21;;7063:1;;7096:29;;7063:1;7096:29;:::i;:::-;7074:19;:51;7198:9;7193:2433;7217:18;:25;7213:29;;7193:2433;;;7293:18;:25;7263:27;;7293:29;;7321:1;;7293:29;:::i;:::-;7263:59;-1:-1:-1;7397:23:47;;7469:58;7483:18;7502:23;7524:1;7263:59;7502:23;:::i;:::-;7483:43;;;;;;;;:::i;:::-;;;;;;;;;1224:16:44;1310:32;;;:20;:32;;;;;1360:40;;1402:44;;;;;1360:40;;1152:302;7469:58:47;7396:131;;-1:-1:-1;7396:131:47;-1:-1:-1;7541:24:47;7568:53;7396:131;;7568:53;:::i;:::-;7541:80;;7705:1;7710;7705:6;7701:474;;7929:18;:25;7748:17;;-1:-1:-1;7748:17:47;;7958:1;7929:30;7925:209;;8034:23;8056:1;8034:19;:23;:::i;:::-;7983:48;;;;:27;:48;;;;;:74;8079:14;:36;;;7925:209;8152:8;;;;;;7701:474;8279:14;8258:17;:35;8254:481;;8318:28;;;;:7;:28;;;;;;;;8313:161;;8420:28;;;;:7;:28;;;;;:35;;-1:-1:-1;;8420:35:47;8451:4;8420:35;;;8313:161;8518:18;:25;:29;;8546:1;8518:29;:::i;:::-;8495:19;;:52;8491:230;;8661:19;:41;;;8491:230;8968:14;8947:17;:35;8943:291;;9153:23;9175:1;9153:19;:23;:::i;:::-;:27;;9179:1;9153:27;:::i;:::-;9102:48;;;;:27;:48;;;;;:78;9130:19;9198:21;9130:19;9198:21;:::i;:::-;;;;8943:291;9379:18;:25;9370:5;:1;9374;9370:5;:::i;:::-;:34;9366:201;;9475:23;9497:1;9475:19;:23;:::i;:::-;9424:48;;;;:27;:48;;;;;:74;9516:14;:36;;;9366:201;9598:17;-1:-1:-1;;;;7193:2433:47;7244:3;;;;:::i;:::-;;;;7193:2433;;;-1:-1:-1;;9636:35:47;:42;;-1:-1:-1;;9636:42:47;9674:4;9636:42;;;-1:-1:-1;6519:3166:47:o;2082:232:44:-;2195:33;2231:32;;;:20;:32;;;;;;;;;2280:27;;;2273:34;;;;;;;;;;;;;;;;;2167:16;;2231:32;;2273:34;;2280:27;2273:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2273:34:44;;;;;;;;;;;;;;;;;;;;;;;;2082:232;;;:::o;9028:341:41:-;9166:7;9197:33;9212:10;9224:5;;9197:14;:33::i;:::-;9189:93;;;;-1:-1:-1;;;9189:93:41;;;;;;;:::i;:::-;9292:30;9313:8;9292:20;:30::i;:::-;;9339:23;9353:8;9339:13;:23::i;:::-;9332:30;9028:341;-1:-1:-1;;;;9028:341:41:o;4254:675::-;4337:9;;4309:12;;4337:9;;4333:68;;;-1:-1:-1;4369:21:41;;4254:675::o;4333:68::-;4411:29;4443:14;:12;:14::i;:::-;4411:46;;4497:15;4472:21;:40;4468:101;;4535:23;4528:30;;;4254:675;:::o;4468:101::-;4579:26;4608:11;:9;:11::i;:::-;4579:40;;4656:15;4634:18;:37;4630:94;;4694:19;4687:26;;;;4254:675;:::o;4630:94::-;4734:25;4762:17;:15;:17::i;:::-;4734:45;;4815:15;4794:17;:36;4790:93;;4853:19;4846:26;;;;;4254:675;:::o;4790:93::-;4900:22;4893:29;;;;;4254:675;:::o;6140:137::-;6210:19;;:::i;:::-;6248:22;;;;:10;:22;;;;;;;;;6241:29;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;-1:-1:-1;;;6241:29:41;;;;;;;;;;;;;;;;;;;;6248:22;;6241:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6241:29:41;;;-1:-1:-1;;6241:29:41;;;;;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6140:137;;;:::o;3301:952:47:-;3409:34;3445:49;3510:28;3541:19;:17;:19::i;:::-;3510:50;;3570:42;3629:11;:18;-1:-1:-1;;;;;3615:33:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3615:33:47;;3570:78;;3658:43;3721:11;:18;-1:-1:-1;;;;;3704:36:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3704:36:47;;;;;;;;;;;;;;;;3658:82;;3751:29;3799:9;3794:384;3818:11;:18;3814:1;:22;3794:384;;;3863:33;3881:11;3893:1;3881:14;;;;;;;;:::i;:::-;;;;;;;6695:7:41;6721:31;;;:19;:31;;;;;;;6619:140;3863:33:47;3900:1;3863:38;3857:311;;3973:11;3985:1;3973:14;;;;;;;;:::i;:::-;;;;;;;3922:25;3948:21;3922:48;;;;;;;;:::i;:::-;;;;;;:65;;;;;4054:20;:36;4075:11;4087:1;4075:14;;;;;;;;:::i;:::-;;;;;;;4054:36;;;;;;;;;;;:55;;4005:104;;;;;;;;;;;;;;;;;;;;;;;;;:23;4029:21;4005:46;;;;;;;;:::i;:::-;;;;;;;;;;:104;4127:26;4152:1;4127:26;;:::i;:::-;;;3857:311;3838:3;;;;:::i;:::-;;;;3794:384;;;-1:-1:-1;4195:25:47;;4222:23;;-1:-1:-1;3301:952:47;-1:-1:-1;;;3301:952:47:o;5158:122:41:-;5217:7;5260:13;:11;:13::i;:::-;5243:14;:12;:14::i;11774:300::-;11839:9;:7;:9::i;:::-;-1:-1:-1;;;;;11825:23:41;:10;-1:-1:-1;;;;;11825:23:41;;11817:32;;;;;;11860:19;11882:7;:5;:7::i;:::-;11860:29;-1:-1:-1;11918:21:41;11908:6;:31;;;;;;;;:::i;:::-;;;:67;;;;-1:-1:-1;11953:22:41;11943:6;:32;;;;;;;;:::i;:::-;;;11908:67;11900:108;;;;-1:-1:-1;;;11900:108:41;;22866:2:51;11900:108:41;;;22848:21:51;22905:2;22885:18;;;22878:30;22944;22924:18;;;22917:58;22992:18;;11900:108:41;22664:352:51;11900:108:41;12018:9;:16;;-1:-1:-1;;12018:16:41;12030:4;12018:16;;;12050:17;;;;12018:9;;12050:17;11807:267;11774:300::o;2265:252:47:-;2356:35;;2316:7;;2356:35;;2335:139;;;;-1:-1:-1;;;2335:139:47;;;;;;;:::i;:::-;-1:-1:-1;2491:19:47;;;2265:252::o;4985:112:41:-;5043:16;5078:12;5071:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4985:112;:::o;10930:753::-;11032:9;:7;:9::i;:::-;-1:-1:-1;;;;;11018:23:41;:10;-1:-1:-1;;;;;11018:23:41;;11010:91;;;;-1:-1:-1;;;11010:91:41;;23223:2:51;11010:91:41;;;23205:21:51;23262:2;23242:18;;;23235:30;23301:34;23281:18;;;23274:62;23372:25;23352:18;;;23345:53;23415:19;;11010:91:41;23021:419:51;11010:91:41;11143:22;11132:7;:5;:7::i;:::-;:33;;;;;;;;:::i;:::-;;11111:153;;;;-1:-1:-1;;;11111:153:41;;23647:2:51;11111:153:41;;;23629:21:51;23686:2;23666:18;;;23659:30;23725:34;23705:18;;;23698:62;23796:34;23776:18;;;23769:62;-1:-1:-1;;;23847:19:51;;;23840:40;23897:19;;11111:153:41;23445:477:51;11111:153:41;11280:13;11275:357;11307:11;:18;11299:5;:26;11275:357;;;11354:19;:39;11374:11;11386:5;11374:18;;;;;;;;:::i;:::-;;;;;;;11354:39;;;;;;;;;;;;11397:1;11354:44;11350:272;;11460:1;11418:19;:39;11438:11;11450:5;11438:18;;;;;;;;:::i;:::-;;;;;;;11418:39;;;;;;;;;;;:43;;;;11479:128;;;;;;;;;;;;;;;;;:10;:30;11490:11;11502:5;11490:18;;;;;;;;:::i;:::-;;;;;;;11479:30;;;;;;;;;;;:42;;:128;;;;;;:::i;:::-;;11350:272;11327:7;;;;:::i;:::-;;;;11275:357;;;;11647:29;11664:11;11647:29;;;;;;:::i;:::-;;;;;;;;10930:753;:::o;781:356:45:-;900:9;:7;:9::i;:::-;-1:-1:-1;;;;;886:23:45;:10;-1:-1:-1;;;;;886:23:45;;878:32;;;;;;920:38;961:23;630:22;;-1:-1:-1;;;;;630:22:45;;536:123;961:23;994:22;:47;;-1:-1:-1;;;;;;994:47:45;-1:-1:-1;;;;;994:47:45;;;;;;;;;1056:74;;;26423:15:51;;;26405:34;;26470:2;26455:18;;26448:43;;;;920:64:45;;-1:-1:-1;1056:74:45;;26340:18:51;1056:74:45;;;;;;;868:269;781:356;:::o;7767:1202:41:-;7898:15;;7860:18;;-1:-1:-1;;;;;7898:29:41;7917:10;7898:29;7890:90;;;;-1:-1:-1;;;7890:90:41;;26704:2:51;7890:90:41;;;26686:21:51;26743:2;26723:18;;;26716:30;26782:34;26762:18;;;26755:62;-1:-1:-1;;;26833:18:51;;;26826:46;26889:19;;7890:90:41;26502:412:51;7890:90:41;7995:13;7990:866;370:1:43;8014:5:41;:23;7990:866;;;8062:25;8100:5;8090:16;;;;;;;;:::i;:::-;8062:44;-1:-1:-1;8143:16:41;8124:15;:35;;;;;;;;:::i;:::-;;8120:726;;8179:8;;;8120:726;8288:14;8269:15;:33;;;;;;;;:::i;:::-;;8265:581;;8351:21;;;;:29;:36;:29;:41;8322:184;;;;-1:-1:-1;;;8322:184:41;;27121:2:51;8322:184:41;;;27103:21:51;27160:2;27140:18;;;27133:30;27199:34;27179:18;;;27172:62;27270:34;27250:18;;;27243:62;-1:-1:-1;;;27321:19:51;;;27314:39;27370:19;;8322:184:41;26919:476:51;8322:184:41;8553:8;:21;;;:31;;;8588:1;8553:36;8524:175;;;;-1:-1:-1;;;8524:175:41;;27602:2:51;8524:175:41;;;27584:21:51;27641:2;27621:18;;;27614:30;;;27680:34;27660:18;;;27653:62;27751:34;27731:18;;;27724:62;-1:-1:-1;;;27802:19:51;;;27795:35;27847:19;;8524:175:41;27400:472:51;8524:175:41;8725:21;;;;:29;:36;:29;:41;8717:50;;;;;;8265:581;;;8813:18;;-1:-1:-1;;;8813:18:41;;;;;;;;;;;8265:581;8048:808;7990:866;8039:7;;;;:::i;:::-;;;;7990:866;;;;8879:8;:20;;;8873:34;8911:1;8873:39;8865:76;;;;-1:-1:-1;;;8865:76:41;;28079:2:51;8865:76:41;;;28061:21:51;28118:2;28098:18;;;28091:30;28157:26;28137:18;;;28130:54;28201:18;;8865:76:41;27877:348:51;8865:76:41;-1:-1:-1;8958:4:41;;7767:1202;-1:-1:-1;7767:1202:41:o;1754:143:40:-;1840:7;1866:24;2754:17:46;;;2662:116;1156:154:33;1247:4;1299;1270:25;1283:5;1290:4;1270:12;:25::i;:::-;:33;;1156:154;-1:-1:-1;;;;1156:154:33:o;13798:722:41:-;13959:7;14001:19;13990:7;:5;:7::i;:::-;:30;;;;;;;;:::i;:::-;;13982:78;;;;-1:-1:-1;;;13982:78:41;;28432:2:51;13982:78:41;;;28414:21:51;28471:2;28451:18;;;28444:30;28510:34;28490:18;;;28483:62;-1:-1:-1;;;28561:18:51;;;28554:33;28604:19;;13982:78:41;28230:399:51;13982:78:41;14089:1;14078:8;:12;14070:68;;;;-1:-1:-1;;;14070:68:41;;28836:2:51;14070:68:41;;;28818:21:51;28875:2;28855:18;;;28848:30;28914:34;28894:18;;;28887:62;-1:-1:-1;;;28965:18:51;;;28958:41;29016:19;;14070:68:41;28634:407:51;14070:68:41;-1:-1:-1;;;;;14170:34:41;;;;;;:25;:34;;;;;;;;14149:160;;;;-1:-1:-1;;;14149:160:41;;29248:2:51;14149:160:41;;;29230:21:51;29287:2;29267:18;;;29260:30;29326:34;29306:18;;;29299:62;29397:34;29377:18;;;29370:62;-1:-1:-1;;;29448:19:51;;;29441:46;29504:19;;14149:160:41;29046:483:51;14149:160:41;14319:78;14330:10;14342:7;14351;14360:8;14370:17;:26;14388:7;-1:-1:-1;;;;;14370:26:41;-1:-1:-1;;;;;14370:26:41;;;;;;;;;;;;;14319:10;:78::i;:::-;14422:7;-1:-1:-1;;;;;14413:56:41;;14431:10;14443:7;14452:8;14462:6;14413:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;14487:26:41;;;;;:17;:26;;;;;;;13798:722;-1:-1:-1;13798:722:41:o;4259:717:47:-;4402:4;4437:3;;4450:171;4476:16;:23;4472:1;:27;4450:171;;;4546:16;4563:4;4546:22;;;;;;;;:::i;:::-;;;;;;;4524:16;4541:1;4524:19;;;;;;;;:::i;:::-;;;;;;;:44;4520:91;;;4595:1;4588:8;;4520:91;4501:3;;;;:::i;:::-;;;;4450:171;;;;4642:3;4634:4;:11;4630:29;;4654:5;4647:12;;;;;4630:29;4669:15;4687:16;4704:3;4687:21;;;;;;;;:::i;:::-;;;;;;;4669:39;;4742:16;4759:4;4742:22;;;;;;;;:::i;:::-;;;;;;;4718:16;4735:3;4718:21;;;;;;;;:::i;:::-;;;;;;:46;;;;;4799:8;4774:16;4791:4;4774:22;;;;;;;;:::i;:::-;;;;;;:33;;;;;4817:22;4842:11;4854:3;4842:16;;;;;;;;:::i;:::-;;;;;;;4817:41;;4887:11;4899:4;4887:17;;;;;;;;:::i;:::-;;;;;;;4868:11;4880:3;4868:16;;;;;;;;:::i;:::-;;;;;;:36;;;;;4934:14;4914:11;4926:4;4914:17;;;;;;;;:::i;:::-;;;;;;;;;;:34;-1:-1:-1;4965:4:47;;4259:717;-1:-1:-1;;;;;;4259:717:47:o;9915:905:41:-;9994:7;10032:19;10021:7;:5;:7::i;:::-;:30;;;;;;;;:::i;:::-;;10013:105;;;;-1:-1:-1;;;10013:105:41;;30183:2:51;10013:105:41;;;30165:21:51;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;30332:32;30312:18;;;30305:60;30382:19;;10013:105:41;29981:426:51;10013:105:41;10179:31;:29;:31::i;:::-;10165:10;10149:27;;;;:15;:27;;;;;;:61;10128:209;;;;-1:-1:-1;;;10128:209:41;;30614:2:51;10128:209:41;;;30596:21:51;30653:3;30633:18;;;30626:31;30693:34;30673:18;;;30666:62;30764:34;30744:18;;;30737:62;30836:34;30815:19;;;30808:63;-1:-1:-1;;;30887:19:51;;;30880:36;30933:19;;10128:209:41;30412:546:51;10128:209:41;10377:18;:16;:18::i;:::-;10355:12;:19;:40;10347:110;;;;-1:-1:-1;;;10347:110:41;;31165:2:51;10347:110:41;;;31147:21:51;31204:2;31184:18;;;31177:30;31243:34;31223:18;;;31216:62;31314:27;31294:18;;;31287:55;31359:19;;10347:110:41;30963:421:51;10347:110:41;10468:18;10489:22;10502:8;10489:12;:22::i;:::-;10530;;;;:10;:22;;;;;:29;:22;;-1:-1:-1;;;;10530:29:41;;;;10529:30;10521:84;;;;-1:-1:-1;;;10521:84:41;;31591:2:51;10521:84:41;;;31573:21:51;31630:2;31610:18;;;31603:30;31669:34;31649:18;;;31642:62;-1:-1:-1;;;31720:18:51;;;31713:39;31769:19;;10521:84:41;31389:405:51;10521:84:41;10616:12;:29;;;;;;;;;;;;;;-1:-1:-1;10655:22:41;;;:10;10616:29;10655:22;;;;;;;;:33;;;;;;;;;;-1:-1:-1;;;10655:33:41;-1:-1:-1;;;;;;10655:33:41;;;-1:-1:-1;;;;;10655:33:41;;;;;;;;;;;;;;10680:8;;10655:33;;;;;;;:::i;:::-;-1:-1:-1;10655:33:41;;;;;;;;;;-1:-1:-1;;;;;;10655:33:41;-1:-1:-1;;;;;10655:33:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10655:33:41;;;;;;;;;;10714:10;10698:27;;;;:15;:27;;;;;;:32;;10655:33;;-1:-1:-1;10698:27:41;-1:-1:-1;10698:32:41;;10655:33;;10698:32;:::i;:::-;;;;-1:-1:-1;;10746:39:41;;;31973:25:51;;;10774:10:41;32029:2:51;32014:18;;32007:60;10746:39:41;;31946:18:51;10746:39:41;;;;;;;10803:10;9915:905;-1:-1:-1;;9915:905:41:o;3367:268:27:-;3461:13;1371:66;3490:47;;3486:143;;3560:15;3569:5;3560:8;:15::i;:::-;3553:22;;;;3486:143;3613:5;3606:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:268;;;;:::o;1934:290:33:-;2017:7;2059:4;2017:7;2073:116;2097:5;:12;2093:1;:16;2073:116;;;2145:33;2155:12;2169:5;2175:1;2169:8;;;;;;;;:::i;:::-;;;;;;;2145:9;:33::i;:::-;2130:48;-1:-1:-1;2111:3:33;;;;:::i;:::-;;;;2073:116;;;-1:-1:-1;2205:12:33;1934:290;-1:-1:-1;;;1934:290:33:o;2780:1308:44:-;2954:33;2990:32;;;:20;:32;;;;;;;;-1:-1:-1;;;;;3080:35:44;;;;:26;:35;;;;;;;3067:48;;:10;:48;:::i;:::-;3054:8;:62;;3033:160;;;;-1:-1:-1;;;3033:160:44;;32280:2:51;3033:160:44;;;32262:21:51;32319:2;32299:18;;;32292:30;32358:34;32338:18;;;32331:62;-1:-1:-1;;;32409:18:51;;;32402:49;32468:19;;3033:160:44;32078:415:51;3033:160:44;-1:-1:-1;;;;;3227:39:44;;3204:20;3227:39;;;:30;;;:39;;;;;:48;:53;3295:30;;;3291:601;;3341:52;;3385:8;;3341:12;;:31;;:52;;3385:8;;3341:52;:::i;:::-;;;;-1:-1:-1;;;;;;;3407:39:44;;;;;;:30;;;:39;;;;;:60;;3459:8;;3407:39;:60;;3459:8;;3407:60;:::i;:::-;;;;-1:-1:-1;3291:601:44;;-1:-1:-1;3291:601:44;;-1:-1:-1;;3488:34:44;;;;3484:408;;3546:19;:17;:19::i;:::-;3569:1;3546:24;3538:101;;;;;-1:-1:-1;;;3538:101:44;;32700:2:51;3538:101:44;;;32682:21:51;32719:18;;;32712:30;;;;32778:34;32758:18;;;32751:62;32849:34;32829:18;;;32822:62;32901:19;;3538:101:44;32498:428:51;3538:101:44;3701:8;3653:12;:31;;:44;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3723:39:44;;;;;;:30;;;:39;;;;;:52;;:64;;3779:8;;3723:39;:64;;3779:8;;3723:64;:::i;3484:408::-;3818:63;;-1:-1:-1;;;3818:63:44;;33133:2:51;3818:63:44;;;33115:21:51;33172:2;33152:18;;;33145:30;33211:34;33191:18;;;33184:62;-1:-1:-1;;;33262:18:51;;;33255:51;33323:19;;3818:63:44;32931:417:51;3484:408:44;3906:15;3902:87;;;3937:27;;;:41;;;;;;;-1:-1:-1;3937:41:44;;;;;;;;;;-1:-1:-1;;;;;;3937:41:44;-1:-1:-1;;;;;3937:41:44;;;;;3902:87;-1:-1:-1;;;;;3998:35:44;;;;;;:26;:35;;;;;:47;;4037:8;;3998:35;:47;;4037:8;;3998:47;:::i;:::-;;;;;;;;4073:8;4055:14;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;2780:1308:44:o;2059:405:27:-;2118:13;2143:11;2157:16;2168:4;2157:10;:16::i;:::-;2281:14;;;2292:2;2281:14;;;;;;;;;2143:30;;-1:-1:-1;2261:17:27;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:27;;;-1:-1:-1;2416:4:27;2407:14;;2400:28;;;;-1:-1:-1;2371:16:27;2059:405::o;9205:147:33:-;9268:7;9298:1;9294;:5;:51;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9294:51;;;-1:-1:-1;9426:13:33;9517:15;;;9552:4;9545:15;9598:4;9582:21;;;9205:147::o;2536:245:27:-;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;-1:-1:-1;;;2721:20:27;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:286:51;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;349:23;;-1:-1:-1;;;;;;401:32:51;;391:43;;381:71;;448:1;445;438:12;887:423;929:3;967:5;961:12;994:6;989:3;982:19;1019:1;1029:162;1043:6;1040:1;1037:13;1029:162;;;1105:4;1161:13;;;1157:22;;1151:29;1133:11;;;1129:20;;1122:59;1058:12;1029:162;;;1033:3;1236:1;1229:4;1220:6;1215:3;1211:16;1207:27;1200:38;1299:4;1292:2;1288:7;1283:2;1275:6;1271:15;1267:29;1262:3;1258:39;1254:50;1247:57;;;887:423;;;;:::o;1315:220::-;1464:2;1453:9;1446:21;1427:4;1484:45;1525:2;1514:9;1510:18;1502:6;1484:45;:::i;1540:180::-;1599:6;1652:2;1640:9;1631:7;1627:23;1623:32;1620:52;;;1668:1;1665;1658:12;1620:52;-1:-1:-1;1691:23:51;;1540:180;-1:-1:-1;1540:180:51:o;1881:257::-;1801:12;;1789:25;;1863:4;1852:16;;;1846:23;1830:14;;;1823:47;2073:2;2058:18;;2085:47;1725:151;2143:131;-1:-1:-1;;;;;2218:31:51;;2208:42;;2198:70;;2264:1;2261;2254:12;2198:70;2143:131;:::o;2279:367::-;2342:8;2352:6;2406:3;2399:4;2391:6;2387:17;2383:27;2373:55;;2424:1;2421;2414:12;2373:55;-1:-1:-1;2447:20:51;;-1:-1:-1;;;;;2479:30:51;;2476:50;;;2522:1;2519;2512:12;2476:50;2559:4;2551:6;2547:17;2535:29;;2619:3;2612:4;2602:6;2599:1;2595:14;2587:6;2583:27;2579:38;2576:47;2573:67;;;2636:1;2633;2626:12;2651:572;2746:6;2754;2762;2815:2;2803:9;2794:7;2790:23;2786:32;2783:52;;;2831:1;2828;2821:12;2783:52;2870:9;2857:23;2889:31;2914:5;2889:31;:::i;:::-;2939:5;-1:-1:-1;2995:2:51;2980:18;;2967:32;-1:-1:-1;;;;;3011:30:51;;3008:50;;;3054:1;3051;3044:12;3008:50;3093:70;3155:7;3146:6;3135:9;3131:22;3093:70;:::i;:::-;2651:572;;3182:8;;-1:-1:-1;3067:96:51;;-1:-1:-1;;;;2651:572:51:o;3228:160::-;3293:20;;3349:13;;3342:21;3332:32;;3322:60;;3378:1;3375;3368:12;3322:60;3228:160;;;:::o;3393:709::-;3503:6;3511;3519;3527;3535;3588:3;3576:9;3567:7;3563:23;3559:33;3556:53;;;3605:1;3602;3595:12;3556:53;3644:9;3631:23;3663:31;3688:5;3663:31;:::i;:::-;3713:5;-1:-1:-1;3765:2:51;3750:18;;3737:32;;-1:-1:-1;3820:2:51;3805:18;;3792:32;-1:-1:-1;;;;;3836:30:51;;3833:50;;;3879:1;3876;3869:12;3833:50;3918:70;3980:7;3971:6;3960:9;3956:22;3918:70;:::i;:::-;4007:8;;-1:-1:-1;3892:96:51;-1:-1:-1;4061:35:51;;-1:-1:-1;4092:2:51;4077:18;;4061:35;:::i;:::-;4051:45;;3393:709;;;;;;;;:::o;4107:156::-;4173:20;;4233:4;4222:16;;4212:27;;4202:55;;4253:1;4250;4243:12;4268:713;4388:6;4396;4404;4412;4420;4428;4481:3;4469:9;4460:7;4456:23;4452:33;4449:53;;;4498:1;4495;4488:12;4449:53;4534:9;4521:23;4511:33;;4563:36;4595:2;4584:9;4580:18;4563:36;:::i;:::-;4553:46;;4646:2;4635:9;4631:18;4618:32;4608:42;;4697:2;4686:9;4682:18;4669:32;4659:42;;4752:3;4741:9;4737:19;4724:33;-1:-1:-1;;;;;4772:6:51;4769:30;4766:50;;;4812:1;4809;4802:12;4766:50;4851:70;4913:7;4904:6;4893:9;4889:22;4851:70;:::i;:::-;4268:713;;;;-1:-1:-1;4268:713:51;;-1:-1:-1;4268:713:51;;4940:8;;4268:713;-1:-1:-1;;;4268:713:51:o;4986:180::-;5042:6;5095:2;5083:9;5074:7;5070:23;5066:32;5063:52;;;5111:1;5108;5101:12;5063:52;5134:26;5150:9;5134:26;:::i;5171:435::-;5224:3;5262:5;5256:12;5289:6;5284:3;5277:19;5315:4;5344:2;5339:3;5335:12;5328:19;;5381:2;5374:5;5370:14;5402:1;5412:169;5426:6;5423:1;5420:13;5412:169;;;5487:13;;5475:26;;5521:12;;;;5556:15;;;;5448:1;5441:9;5412:169;;;-1:-1:-1;5597:3:51;;5171:435;-1:-1:-1;;;;;5171:435:51:o;5611:261::-;5790:2;5779:9;5772:21;5753:4;5810:56;5862:2;5851:9;5847:18;5839:6;5810:56;:::i;5877:127::-;5938:10;5933:3;5929:20;5926:1;5919:31;5969:4;5966:1;5959:15;5993:4;5990:1;5983:15;6009:257;6081:4;6075:11;;;6113:17;;-1:-1:-1;;;;;6145:34:51;;6181:22;;;6142:62;6139:88;;;6207:18;;:::i;:::-;6243:4;6236:24;6009:257;:::o;6271:253::-;6343:2;6337:9;6385:4;6373:17;;-1:-1:-1;;;;;6405:34:51;;6441:22;;;6402:62;6399:88;;;6467:18;;:::i;6529:275::-;6600:2;6594:9;6665:2;6646:13;;-1:-1:-1;;6642:27:51;6630:40;;-1:-1:-1;;;;;6685:34:51;;6721:22;;;6682:62;6679:88;;;6747:18;;:::i;:::-;6783:2;6776:22;6529:275;;-1:-1:-1;6529:275:51:o;6809:486::-;6870:5;6918:4;6906:9;6901:3;6897:19;6893:30;6890:50;;;6936:1;6933;6926:12;6890:50;6969:2;6963:9;7011:4;7003:6;6999:17;7082:6;7070:10;7067:22;-1:-1:-1;;;;;7034:10:51;7031:34;7028:62;7025:88;;;7093:18;;:::i;:::-;7129:2;7122:22;7162:6;-1:-1:-1;7162:6:51;7192:23;;7224:33;7192:23;7224:33;:::i;:::-;7266:23;;6809:486;;-1:-1:-1;;6809:486:51:o;7300:183::-;7360:4;-1:-1:-1;;;;;7385:6:51;7382:30;7379:56;;;7415:18;;:::i;:::-;-1:-1:-1;7460:1:51;7456:14;7472:4;7452:25;;7300:183::o;7488:1048::-;7547:5;7595:4;7583:9;7578:3;7574:19;7570:30;7567:50;;;7613:1;7610;7603:12;7567:50;7635:22;;:::i;:::-;7626:31;;7693:9;7680:23;-1:-1:-1;;;;;7718:6:51;7715:30;7712:50;;;7758:1;7755;7748:12;7712:50;7781:22;;7834:4;7826:13;;7822:23;-1:-1:-1;7812:51:51;;7859:1;7856;7849:12;7812:51;7895:2;7882:16;7917:4;7941:60;7957:43;7997:2;7957:43;:::i;:::-;7941:60;:::i;:::-;8035:15;;;8117:1;8113:10;;;;8105:19;;8101:28;;;8066:12;;;;8141:15;;;8138:35;;;8169:1;8166;8159:12;8138:35;8193:11;;;;8213:223;8229:6;8224:3;8221:15;8213:223;;;8311:3;8298:17;8328:33;8353:7;8328:33;:::i;:::-;8374:20;;8246:12;;;;8414;;;;8213:223;;;8445:20;;-1:-1:-1;8510:18:51;;;8497:32;8481:14;;;8474:56;;;;-1:-1:-1;8452:5:51;7488:1048;-1:-1:-1;;7488:1048:51:o;8541:1282::-;8600:5;8648:4;8636:9;8631:3;8627:19;8623:30;8620:50;;;8666:1;8663;8656:12;8620:50;8688:22;;:::i;:::-;8679:31;;8747:9;8734:23;8766:33;8791:7;8766:33;:::i;:::-;8808:22;;8849:2;8883:35;8899:18;;;8883:35;:::i;:::-;8878:2;8871:5;8867:14;8860:59;8970:2;8959:9;8955:18;8942:32;-1:-1:-1;;;;;9034:2:51;9026:6;9023:14;9020:34;;;9050:1;9047;9040:12;9020:34;9088:6;9077:9;9073:22;9063:32;;9133:3;9126:4;9122:2;9118:13;9114:23;9104:51;;9151:1;9148;9141:12;9104:51;9187:2;9174:16;9209:2;9205;9202:10;9199:36;;;9215:18;;:::i;:::-;9257:53;9300:2;9281:13;;-1:-1:-1;;9277:27:51;9273:36;;9257:53;:::i;:::-;9333:2;9326:5;9319:17;9373:3;9368:2;9363;9359;9355:11;9351:20;9348:29;9345:49;;;9390:1;9387;9380:12;9345:49;9445:2;9440;9436;9432:11;9427:2;9420:5;9416:14;9403:45;9489:1;9484:2;9479;9472:5;9468:14;9464:23;9457:34;9523:5;9518:2;9511:5;9507:14;9500:29;;;9561:57;9614:3;9609:2;9598:9;9594:18;9561:57;:::i;:::-;9556:2;9549:5;9545:14;9538:81;9672:3;9661:9;9657:19;9644:33;9628:49;;9702:2;9692:8;9689:16;9686:36;;;9718:1;9715;9708:12;9686:36;;;9755:61;9812:3;9801:8;9790:9;9786:24;9755:61;:::i;:::-;9749:3;9742:5;9738:15;9731:86;;8541:1282;;;;:::o;9828:356::-;9918:6;9971:2;9959:9;9950:7;9946:23;9942:32;9939:52;;;9987:1;9984;9977:12;9939:52;10027:9;10014:23;-1:-1:-1;;;;;10052:6:51;10049:30;10046:50;;;10092:1;10089;10082:12;10046:50;10115:63;10170:7;10161:6;10150:9;10146:22;10115:63;:::i;10189:905::-;10467:4;10496:2;10525;10514:9;10507:21;10551:56;10603:2;10592:9;10588:18;10580:6;10551:56;:::i;:::-;10664:22;;;10626:2;10644:18;;;10637:50;;;;10736:13;;10758:22;;;10834:15;;;;10796;;;10867:1;10877:191;10891:6;10888:1;10885:13;10877:191;;;10940:48;10984:3;10975:6;10969:13;1801:12;;1789:25;;1863:4;1852:16;;;1846:23;1830:14;;1823:47;1725:151;10940:48;11043:15;;;;11008:12;;;;10913:1;10906:9;10877:191;;;-1:-1:-1;11085:3:51;;10189:905;-1:-1:-1;;;;;;;;10189:905:51:o;11099:640::-;11203:6;11211;11219;11227;11280:2;11268:9;11259:7;11255:23;11251:32;11248:52;;;11296:1;11293;11286:12;11248:52;11335:9;11322:23;11354:31;11379:5;11354:31;:::i;:::-;11404:5;-1:-1:-1;11456:2:51;11441:18;;11428:32;;-1:-1:-1;11511:2:51;11496:18;;11483:32;-1:-1:-1;;;;;11527:30:51;;11524:50;;;11570:1;11567;11560:12;11524:50;11609:70;11671:7;11662:6;11651:9;11647:22;11609:70;:::i;:::-;11099:640;;;;-1:-1:-1;11698:8:51;-1:-1:-1;;;;11099:640:51:o;11997:247::-;12056:6;12109:2;12097:9;12088:7;12084:23;12080:32;12077:52;;;12125:1;12122;12115:12;12077:52;12164:9;12151:23;12183:31;12208:5;12183:31;:::i;12249:318::-;12324:6;12332;12340;12393:2;12381:9;12372:7;12368:23;12364:32;12361:52;;;12409:1;12406;12399:12;12361:52;12445:9;12432:23;12422:33;;12474:36;12506:2;12495:9;12491:18;12474:36;:::i;:::-;12464:46;;12557:2;12546:9;12542:18;12529:32;12519:42;;12249:318;;;;;:::o;12572:315::-;12640:6;12648;12701:2;12689:9;12680:7;12676:23;12672:32;12669:52;;;12717:1;12714;12707:12;12669:52;12753:9;12740:23;12730:33;;12813:2;12802:9;12798:18;12785:32;12826:31;12851:5;12826:31;:::i;:::-;12876:5;12866:15;;;12572:315;;;;;:::o;13131:920::-;13537:3;13532;13528:13;13520:6;13516:26;13505:9;13498:45;13579:3;13574:2;13563:9;13559:18;13552:31;13479:4;13606:46;13647:3;13636:9;13632:19;13624:6;13606:46;:::i;:::-;13700:9;13692:6;13688:22;13683:2;13672:9;13668:18;13661:50;13734:33;13760:6;13752;13734:33;:::i;:::-;13798:2;13783:18;;13776:34;;;-1:-1:-1;;;;;13847:32:51;;13841:3;13826:19;;13819:61;13867:3;13896:19;;13889:35;;;13961:22;;;13955:3;13940:19;;13933:51;13720:47;-1:-1:-1;14001:44:51;13720:47;14030:6;14001:44;:::i;:::-;13993:52;13131:920;-1:-1:-1;;;;;;;;;;13131:920:51:o;14056:461::-;14109:3;14147:5;14141:12;14174:6;14169:3;14162:19;14200:4;14229:2;14224:3;14220:12;14213:19;;14266:2;14259:5;14255:14;14287:1;14297:195;14311:6;14308:1;14305:13;14297:195;;;14376:13;;-1:-1:-1;;;;;14372:39:51;14360:52;;14432:12;;;;14467:15;;;;14408:1;14326:9;14297:195;;14522:261;14701:2;14690:9;14683:21;14664:4;14721:56;14773:2;14762:9;14758:18;14750:6;14721:56;:::i;14970:692::-;15096:6;15104;15112;15165:2;15153:9;15144:7;15140:23;15136:32;15133:52;;;15181:1;15178;15171:12;15133:52;15221:9;15208:23;-1:-1:-1;;;;;15291:2:51;15283:6;15280:14;15277:34;;;15307:1;15304;15297:12;15277:34;15330:63;15385:7;15376:6;15365:9;15361:22;15330:63;:::i;:::-;15320:73;;15446:2;15435:9;15431:18;15418:32;15402:48;;15475:2;15465:8;15462:16;15459:36;;;15491:1;15488;15481:12;15459:36;;15530:72;15594:7;15583:8;15572:9;15568:24;15530:72;:::i;15667:127::-;15728:10;15723:3;15719:20;15716:1;15709:31;15759:4;15756:1;15749:15;15783:4;15780:1;15773:15;15799:346;15949:2;15934:18;;15982:1;15971:13;;15961:144;;16027:10;16022:3;16018:20;16015:1;16008:31;16062:4;16059:1;16052:15;16090:4;16087:1;16080:15;15961:144;16114:25;;;15799:346;:::o;16150:994::-;16341:2;16330:9;16323:21;16304:4;16380:1;16376;16371:3;16367:11;16363:19;16437:2;16428:6;16422:13;16418:22;16413:2;16402:9;16398:18;16391:50;16509:2;16501:6;16497:15;16491:22;16484:30;16477:38;16472:2;16461:9;16457:18;16450:66;16563:2;16555:6;16551:15;16545:22;16603:4;16598:2;16587:9;16583:18;16576:32;16631:52;16678:3;16667:9;16663:19;16649:12;16631:52;:::i;:::-;16617:66;;16755:2;16748;16740:6;16736:15;16730:22;16724:29;16720:38;16714:3;16703:9;16699:19;16692:67;16808:3;16800:6;16796:16;16790:23;16768:45;;16883:2;16879:7;16867:9;16859:6;16855:22;16851:36;16844:4;16833:9;16829:20;16822:66;16925:14;16919:21;16964:2;16956:6;16949:18;16990:61;17047:2;17039:6;17035:15;17019:14;16990:61;:::i;:::-;17110:2;17090:23;;;17084:30;17067:15;;;;17060:55;;;;-1:-1:-1;16976:75:51;16150:994;-1:-1:-1;;;16150:994:51:o;17149:891::-;17233:6;17264:2;17307;17295:9;17286:7;17282:23;17278:32;17275:52;;;17323:1;17320;17313:12;17275:52;17363:9;17350:23;-1:-1:-1;;;;;17388:6:51;17385:30;17382:50;;;17428:1;17425;17418:12;17382:50;17451:22;;17504:4;17496:13;;17492:27;-1:-1:-1;17482:55:51;;17533:1;17530;17523:12;17482:55;17569:2;17556:16;17592:60;17608:43;17648:2;17608:43;:::i;17592:60::-;17686:15;;;17768:1;17764:10;;;;17756:19;;17752:28;;;17717:12;;;;17792:19;;;17789:39;;;17824:1;17821;17814:12;17789:39;17848:11;;;;17868:142;17884:6;17879:3;17876:15;17868:142;;;17950:17;;17938:30;;17901:12;;;;17988;;;;17868:142;;;18029:5;17149:891;-1:-1:-1;;;;;;;17149:891:51:o;18320:380::-;18399:1;18395:12;;;;18442;;;18463:61;;18517:4;18509:6;18505:17;18495:27;;18463:61;18570:2;18562:6;18559:14;18539:18;18536:38;18533:161;;18616:10;18611:3;18607:20;18604:1;18597:31;18651:4;18648:1;18641:15;18679:4;18676:1;18669:15;18533:161;;18320:380;;;:::o;18705:473::-;18907:2;18889:21;;;18946:2;18926:18;;;18919:30;18985:34;18980:2;18965:18;;18958:62;19056:34;19051:2;19036:18;;19029:62;-1:-1:-1;;;19122:3:51;19107:19;;19100:36;19168:3;19153:19;;18705:473::o;19183:127::-;19244:10;19239:3;19235:20;19232:1;19225:31;19275:4;19272:1;19265:15;19299:4;19296:1;19289:15;19315:125;19380:9;;;19401:10;;;19398:36;;;19414:18;;:::i;20163:127::-;20224:10;20219:3;20215:20;20212:1;20205:31;20255:4;20252:1;20245:15;20279:4;20276:1;20269:15;20295:200;20361:9;;;20334:4;20389:9;;20417:10;;20429:12;;;20413:29;20452:12;;;20444:21;;20410:56;20407:82;;;20469:18;;:::i;:::-;20407:82;20295:200;;;;:::o;20500:135::-;20539:3;20560:17;;;20557:43;;20580:18;;:::i;:::-;-1:-1:-1;20627:1:51;20616:13;;20500:135::o;20640:128::-;20707:9;;;20728:11;;;20725:37;;;20742:18;;:::i;20773:411::-;20975:2;20957:21;;;21014:2;20994:18;;;20987:30;21053:34;21048:2;21033:18;;21026:62;-1:-1:-1;;;21119:2:51;21104:18;;21097:45;21174:3;21159:19;;20773:411::o;24053:545::-;24155:2;24150:3;24147:11;24144:448;;;24191:1;24216:5;24212:2;24205:17;24261:4;24257:2;24247:19;24331:2;24319:10;24315:19;24312:1;24308:27;24302:4;24298:38;24367:4;24355:10;24352:20;24349:47;;;-1:-1:-1;24390:4:51;24349:47;24445:2;24440:3;24436:12;24433:1;24429:20;24423:4;24419:31;24409:41;;24500:82;24518:2;24511:5;24508:13;24500:82;;;24563:17;;;24544:1;24533:13;24500:82;;;24504:3;;;24144:448;24053:545;;;:::o;24774:1352::-;24900:3;24894:10;-1:-1:-1;;;;;24919:6:51;24916:30;24913:56;;;24949:18;;:::i;:::-;24978:97;25068:6;25028:38;25060:4;25054:11;25028:38;:::i;:::-;25022:4;24978:97;:::i;:::-;25130:4;;25194:2;25183:14;;25211:1;25206:663;;;;25913:1;25930:6;25927:89;;;-1:-1:-1;25982:19:51;;;25976:26;25927:89;-1:-1:-1;;24731:1:51;24727:11;;;24723:24;24719:29;24709:40;24755:1;24751:11;;;24706:57;26029:81;;25176:944;;25206:663;24000:1;23993:14;;;24037:4;24024:18;;-1:-1:-1;;25242:20:51;;;25360:236;25374:7;25371:1;25368:14;25360:236;;;25463:19;;;25457:26;25442:42;;25555:27;;;;25523:1;25511:14;;;;25390:19;;25360:236;;;25364:3;25624:6;25615:7;25612:19;25609:201;;;25685:19;;;25679:26;-1:-1:-1;;25768:1:51;25764:14;;;25780:3;25760:24;25756:37;25752:42;25737:58;25722:74;;25609:201;-1:-1:-1;;;;;25856:1:51;25840:14;;;25836:22;25823:36;;-1:-1:-1;24774:1352:51:o;29534:442::-;29763:6;29752:9;29745:25;29818:4;29810:6;29806:17;29801:2;29790:9;29786:18;29779:45;29860:6;29855:2;29844:9;29840:18;29833:34;29903:3;29898:2;29887:9;29883:18;29876:31;29726:4;29924:46;29965:3;29954:9;29950:19;29942:6;29924:46;:::i;:::-;29916:54;29534:442;-1:-1:-1;;;;;;29534:442:51:o", + "linkReferences": {}, + "immutableReferences": { + "31688": [ + { + "start": 5193, + "length": 32 + } + ], + "31691": [ + { + "start": 5235, + "length": 32 + } + ], + "36045": [ + { + "start": 2330, + "length": 32 + }, + { + "start": 3317, + "length": 32 + }, + { + "start": 3656, + "length": 32 + }, + { + "start": 4374, + "length": 32 + } + ], + "36047": [ + { + "start": 2658, + "length": 32 + }, + { + "start": 3757, + "length": 32 + } + ] + } + }, + "methodIdentifiers": { + "AMOUNT_FOR_SUMBITTER_PROOF()": "347cf665", + "BALLOT_TYPEHASH()": "deaaa7cc", + "COUNTING_MODE()": "dd4e2ba5", + "METADATAS_COUNT()": "4d24a67f", + "addressSubmitterVerified(address)": "cb853950", + "addressTotalCastVoteCounts(address)": "a1ac6cb2", + "addressTotalVotes(address)": "dea5f6a6", + "addressTotalVotesVerified(address)": "930de979", + "allProposalTotalVotes()": "50a5e524", + "allProposalTotalVotesWithoutDeleted()": "d45a010b", + "cancel()": "ea8a1af0", + "castVote(uint256,uint8,uint256,uint256,bytes32[])": "419c533c", + "castVoteWithoutProof(uint256,uint8,uint256)": "65f16263", + "checkProof(address,uint256,bytes32[],bool)": "32763c22", + "contestAddressTotalVotesCast(address)": "aec116b6", + "contestDeadline()": "262e59e9", + "contestStart()": "004114a8", + "creator()": "02d05d3f", + "deleteProposals(uint256[])": "f0a7db0a", + "downvotingAllowed()": "60506ff6", + "eip712Domain()": "84b0196e", + "getAllProposalIds()": "efa90d36", + "getNumSubmissions(address)": "5f953a03", + "getProposal(uint256)": "c7f758a8", + "hashProposal((address,bool,string,(address),(address[],uint256)))": "458da87d", + "highestTiedRanking()": "ebc18b9b", + "isProposalDeleted(uint256)": "3b6d199b", + "isTied(uint256)": "2399c660", + "lowestRanking()": "6ca1a2c7", + "maxProposalCount()": "fb9bf8d4", + "name()": "06fdde03", + "numAllowedProposalSubmissions()": "832009af", + "officialRewardsModule()": "785ddfe5", + "prompt()": "7c65d711", + "proposalAddressVotes(uint256,address)": "6e4eb810", + "proposalAddressesHaveVoted(uint256)": "b323580d", + "proposalVotes(uint256)": "544ffc9c", + "proposalVotesStructs(uint256)": "070dc5d9", + "propose((address,bool,string,(address),(address[],uint256)),bytes32[])": "c0ffaa78", + "proposeWithoutProof((address,bool,string,(address),(address[],uint256)))": "476f4d8a", + "rankingPosition(uint256)": "86187488", + "setOfficialRewardsModule(address)": "f4f3d7ec", + "setSortedAndTiedProposals()": "96f0e962", + "setSortedAndTiedProposalsHasBeenRun()": "d8891619", + "sortedProposalIds()": "8a9cd550", + "sortedProposals(bool)": "427d56c2", + "state()": "c19d93fb", + "submissionMerkleRoot()": "bddc1641", + "supportsInterface(bytes4)": "01ffc9a7", + "tiedAdjustedRankingPosition(uint256)": "e5eb5a48", + "totalVotesCast()": "7de418d5", + "validateProposalData((address,bool,string,(address),(address[],uint256)))": "fb8ddab4", + "verifyProposer(address,bytes32[])": "20b3e845", + "verifyVoter(address,uint256,bytes32[])": "531bd812", + "version()": "54fd4d50", + "voteStart()": "e031535b", + "votingDelay()": "3932abb1", + "votingMerkleRoot()": "dd96a19d", + "votingPeriod()": "02a251a3" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_prompt\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"_submissionMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_votingMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"_constructorIntParams\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInMerkle\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyMetadatas\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ContestCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldContestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newContestStart\",\"type\":\"uint256\"}],\"name\":\"ContestStartSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldCreator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newCreator\",\"type\":\"address\"}],\"name\":\"CreatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDownvotingAllowed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDownvotingAllowed\",\"type\":\"uint256\"}],\"name\":\"DownvotingAllowedSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxProposalCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxProposalCount\",\"type\":\"uint256\"}],\"name\":\"MaxProposalCountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldNumAllowedProposalSubmissions\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNumAllowedProposalSubmissions\",\"type\":\"uint256\"}],\"name\":\"NumAllowedProposalSubmissionsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"oldOfficialRewardsModule\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"newOfficialRewardsModule\",\"type\":\"address\"}],\"name\":\"OfficialRewardsModuleSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"ProposalsDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AMOUNT_FOR_SUMBITTER_PROOF\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"METADATAS_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressSubmitterVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalCastVoteCounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotesVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotesWithoutDeleted\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"}],\"name\":\"castVoteWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressToCheck\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"voting\",\"type\":\"bool\"}],\"name\":\"checkProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"contestAddressTotalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"userTotalVotesCast\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"deleteProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"downvotingAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNumSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"highestTiedRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"isProposalDeleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"isTied\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lowestRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxProposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numAllowedProposalSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"officialRewardsModule\",\"outputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"proposalAddressVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalAddressesHaveVoted\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalVotesStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts\",\"name\":\"proposalVoteCounts\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"proposeWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"rankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"officialRewardsModule_\",\"type\":\"address\"}],\"name\":\"setOfficialRewardsModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposalsHasBeenRun\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sortedProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"excludeDeletedProposals\",\"type\":\"bool\"}],\"name\":\"sortedProposals\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"sortedProposalIdsReturn\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ContestState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tiedAdjustedRankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"validateProposalData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"dataValidated\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyProposer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyVoter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"ContestCanceled()\":{\"details\":\"Emitted when a contest is canceled.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"ProposalCreated(uint256,address)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalsDeleted(uint256[])\":{\"details\":\"Emitted when proposals are deleted.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast. Note: `support` values should be seen as buckets. There interpretation depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"allProposalTotalVotes()\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"allProposalTotalVotesWithoutDeleted()\":{\"details\":\"Accessor to the internal vote counts for a given proposal that excludes deleted proposals.\"},\"cancel()\":{\"details\":\"Emits a {IGovernor-ContestCanceled} event.\"},\"castVote(uint256,uint8,uint256,uint256,bytes32[])\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteWithoutProof(uint256,uint8,uint256)\":{\"details\":\"See {IGovernor-castVoteWithoutProof}.\"},\"checkProof(address,uint256,bytes32[],bool)\":{\"params\":{\"addressToCheck\":\"address of claimee\",\"amount\":\"to check that the claimee has\",\"proof\":\"merkle proof to prove address and amount are in tree\"}},\"contestAddressTotalVotesCast(address)\":{\"details\":\"Accessor to how many votes an address has cast total for the contest so far.\"},\"contestDeadline()\":{\"details\":\"See {IGovernor-contestDeadline}.\"},\"deleteProposals(uint256[])\":{\"details\":\"Delete proposals. Emits a {IGovernor-ProposalsDeleted} event.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"getAllProposalIds()\":{\"details\":\"Return all proposals.\"},\"getNumSubmissions(address)\":{\"details\":\"Get the number of proposal submissions for a given address.\"},\"getProposal(uint256)\":{\"details\":\"Retrieve proposal data\\\"_.\"},\"hashProposal((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors accross multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"highestTiedRanking()\":{\"details\":\"Getter for highest tied ranking.\"},\"isProposalDeleted(uint256)\":{\"details\":\"Returns if a proposal has been deleted or not (0 if not, 1 if it has been deleted).\"},\"isTied(uint256)\":{\"details\":\"Getter if a given ranking is tied.\"},\"lowestRanking()\":{\"details\":\"Getter for the lowest ranking.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"officialRewardsModule()\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"prompt()\":{\"details\":\"See {IGovernor-prompt}.\"},\"proposalAddressVotes(uint256,address)\":{\"details\":\"Accessor to how many votes an address has cast for a given proposal.\"},\"proposalAddressesHaveVoted(uint256)\":{\"details\":\"Accessor to which addresses have cast a vote for a given proposal.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"propose((address,bool,string,(address),(address[],uint256)),bytes32[])\":{\"details\":\"See {IGovernor-propose}.\"},\"proposeWithoutProof((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-proposeWithoutProof}.\"},\"rankingPosition(uint256)\":{\"details\":\"Getter for tiedAdjustedRankingPosition of a ranking.\"},\"setOfficialRewardsModule(address)\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"setSortedAndTiedProposals()\":{\"details\":\"Setter for _sortedProposalIds, tiedAdjustedRankingPosition, _isTied, _lowestRanking, and _highestTiedRanking. Will only be called once and only needs to be called once because once the contest is complete these values don't change. Determines if a ranking is tied and also where the last iteration of a ranking is in the _sortedProposalIds list taking ties into account.\"},\"sortedProposalIds()\":{\"details\":\"Getter for _sortedProposalIds.\"},\"sortedProposals(bool)\":{\"details\":\"Accessor to sorted list of proposalIds in ascending order.\"},\"state()\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"validateProposalData((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-validateProposalData}.\"},\"verifyProposer(address,bytes32[])\":{\"details\":\"See {IGovernor-verifyProposer}.\"},\"verifyVoter(address,uint256,bytes32[])\":{\"details\":\"See {IGovernor-verifyVoter}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"voteStart()\":{\"details\":\"See {IGovernor-voteStart}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"NotInMerkle()\":[{\"notice\":\"Thrown if address/amount are not part of Merkle tree\"}],\"TooManyMetadatas()\":[{\"notice\":\"Thrown if there is metadata included in a proposal that isn't covered in data validation\"}]},\"kind\":\"user\",\"methods\":{\"checkProof(address,uint256,bytes32[],bool)\":{\"notice\":\"Allows checking of proofs for an address\"},\"submissionMerkleRoot()\":{\"notice\":\"ERC20-claimee inclusion root\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Contest.sol\":\"Contest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/Timers.sol\":{\"keccak256\":\"0x413dd6eccfbd25fff5e6c45500e049fc3b66f1a6c7d482d3ab88b8f4a5060ede\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f12296326560a2591d1e8d5cabcb55a1a82209a6752fe6a08b46bd9a3f9835f\",\"dweb:/ipfs/QmTgY5GkmvuMsrB4bzsfXj6SALnshYyXpKKR8WCXaMpoPM\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/Contest.sol\":{\"keccak256\":\"0xa471cab034594f2c2abee2478c60c024de57070152038716d4deaf704f79143c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19bde157cbcdaa4bc4a6e28390bc2f06a558abcf594d70038e0e4f7cab6ba363\",\"dweb:/ipfs/QmW8Hi3fPYwekpdzPuiYATh5NrHz9RkDSr1LjvTPXnG46V\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd\",\"dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorModuleRegistry.sol\":{\"keccak256\":\"0x62c9d2a2dcaeccf1b6b801595f34abf893416964997e6ba699c9828ada1abefc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18672ac920d4749fec025a7c8610c8cb866addb0ba20e9cfce5bedd91e062776\",\"dweb:/ipfs/QmNPWkqouY45jCeeFYi5metLX9d8BpSuGXLG55A5BZjH4D\"]},\"src/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0x03baf7fa5c11f3d9b50c9df1d193a73bf1e6799f792ce510ccdb4dc86a82d9a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d78ca667bc09e43d8abf0f9ac4e17deaea1a0196aa1bc78c9ac66d734e81cf95\",\"dweb:/ipfs/QmRwfFjbCA6HAn1SRDJ4CKSvmzBqyjce1sDfuwBThj7PWi\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e\",\"dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_prompt", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_submissionMerkleRoot", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_votingMerkleRoot", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "_constructorIntParams", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "type": "error", + "name": "InvalidShortString" + }, + { + "inputs": [], + "type": "error", + "name": "NotInMerkle" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "str", + "type": "string" + } + ], + "type": "error", + "name": "StringTooLong" + }, + { + "inputs": [], + "type": "error", + "name": "TooManyMetadatas" + }, + { + "inputs": [], + "type": "event", + "name": "ContestCanceled", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldContestStart", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newContestStart", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "ContestStartSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "oldCreator", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "newCreator", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "CreatorSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldDownvotingAllowed", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newDownvotingAllowed", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "DownvotingAllowedSet", + "anonymous": false + }, + { + "inputs": [], + "type": "event", + "name": "EIP712DomainChanged", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldMaxProposalCount", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newMaxProposalCount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "MaxProposalCountSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldNumAllowedProposalSubmissions", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newNumAllowedProposalSubmissions", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "NumAllowedProposalSubmissionsSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "contract RewardsModule", + "name": "oldOfficialRewardsModule", + "type": "address", + "indexed": false + }, + { + "internalType": "contract RewardsModule", + "name": "newOfficialRewardsModule", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "OfficialRewardsModuleSet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "proposer", + "type": "address", + "indexed": false + } + ], + "type": "event", + "name": "ProposalCreated", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "proposalIds", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "ProposalsDeleted", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "voter", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8", + "indexed": false + }, + { + "internalType": "uint256", + "name": "numVotes", + "type": "uint256", + "indexed": false + }, + { + "internalType": "string", + "name": "reason", + "type": "string", + "indexed": false + } + ], + "type": "event", + "name": "VoteCast", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldVotingDelay", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newVotingDelay", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "VotingDelaySet", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "oldVotingPeriod", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "newVotingPeriod", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "VotingPeriodSet", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "AMOUNT_FOR_SUMBITTER_PROOF", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "pure", + "type": "function", + "name": "COUNTING_MODE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "METADATAS_COUNT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "addressSubmitterVerified", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "addressTotalCastVoteCounts", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "addressTotalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "addressTotalVotesVerified", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "allProposalTotalVotes", + "outputs": [ + { + "internalType": "uint256[]", + "name": "proposalIdsReturn", + "type": "uint256[]" + }, + { + "internalType": "struct GovernorCountingSimple.VoteCounts[]", + "name": "proposalVoteCountsArrayReturn", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "allProposalTotalVotesWithoutDeleted", + "outputs": [ + { + "internalType": "uint256[]", + "name": "proposalIdsReturn", + "type": "uint256[]" + }, + { + "internalType": "struct GovernorCountingSimple.VoteCounts[]", + "name": "proposalVoteCountsArrayReturn", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "cancel" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "totalVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numVotes", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "castVote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "support", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "numVotes", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "castVoteWithoutProof", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addressToCheck", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + }, + { + "internalType": "bool", + "name": "voting", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "name": "checkProof", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "userAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "contestAddressTotalVotesCast", + "outputs": [ + { + "internalType": "uint256", + "name": "userTotalVotesCast", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "contestDeadline", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "contestStart", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "creator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "proposalIds", + "type": "uint256[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deleteProposals" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "downvotingAllowed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getAllProposalIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getNumSubmissions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getProposal", + "outputs": [ + { + "internalType": "struct IGovernor.ProposalCore", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ] + }, + { + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ] + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ] + }, + { + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "pure", + "type": "function", + "name": "hashProposal", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "highestTiedRanking", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isProposalDeleted", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isTied", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lowestRanking", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "maxProposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "numAllowedProposalSubmissions", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "officialRewardsModule", + "outputs": [ + { + "internalType": "contract RewardsModule", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "prompt", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "userAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "proposalAddressVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "proposalAddressesHaveVoted", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "proposalVotes", + "outputs": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "proposalVotesStructs", + "outputs": [ + { + "internalType": "struct GovernorCountingSimple.VoteCounts", + "name": "proposalVoteCounts", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "forVotes", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "againstVotes", + "type": "uint256" + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ] + }, + { + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ] + } + ] + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ] + }, + { + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "proposeWithoutProof", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "rankingPosition", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract RewardsModule", + "name": "officialRewardsModule_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setOfficialRewardsModule" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "setSortedAndTiedProposals" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "setSortedAndTiedProposalsHasBeenRun", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "sortedProposalIds", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ] + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "excludeDeletedProposals", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "name": "sortedProposals", + "outputs": [ + { + "internalType": "uint256[]", + "name": "sortedProposalIdsReturn", + "type": "uint256[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "state", + "outputs": [ + { + "internalType": "enum IGovernor.ContestState", + "name": "", + "type": "uint8" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "submissionMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tiedAdjustedRankingPosition", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalVotesCast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct IGovernor.ProposalCore", + "name": "proposal", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "author", + "type": "address" + }, + { + "internalType": "bool", + "name": "exists", + "type": "bool" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + }, + { + "internalType": "struct IGovernor.TargetMetadata", + "name": "targetMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "targetAddress", + "type": "address" + } + ] + }, + { + "internalType": "struct IGovernor.SafeMetadata", + "name": "safeMetadata", + "type": "tuple", + "components": [ + { + "internalType": "address[]", + "name": "signers", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "validateProposalData", + "outputs": [ + { + "internalType": "bool", + "name": "dataValidated", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "verifyProposer", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "totalVotes", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "proof", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "verifyVoter", + "outputs": [ + { + "internalType": "bool", + "name": "verified", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "voteStart", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "votingMerkleRoot", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "payable", + "type": "receive" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "COUNTING_MODE()": { + "details": "See {IGovernor-COUNTING_MODE}." + }, + "allProposalTotalVotes()": { + "details": "Accessor to the internal vote counts for a given proposal." + }, + "allProposalTotalVotesWithoutDeleted()": { + "details": "Accessor to the internal vote counts for a given proposal that excludes deleted proposals." + }, + "cancel()": { + "details": "Emits a {IGovernor-ContestCanceled} event." + }, + "castVote(uint256,uint8,uint256,uint256,bytes32[])": { + "details": "See {IGovernor-castVote}." + }, + "castVoteWithoutProof(uint256,uint8,uint256)": { + "details": "See {IGovernor-castVoteWithoutProof}." + }, + "checkProof(address,uint256,bytes32[],bool)": { + "params": { + "addressToCheck": "address of claimee", + "amount": "to check that the claimee has", + "proof": "merkle proof to prove address and amount are in tree" + } + }, + "contestAddressTotalVotesCast(address)": { + "details": "Accessor to how many votes an address has cast total for the contest so far." + }, + "contestDeadline()": { + "details": "See {IGovernor-contestDeadline}." + }, + "deleteProposals(uint256[])": { + "details": "Delete proposals. Emits a {IGovernor-ProposalsDeleted} event." + }, + "eip712Domain()": { + "details": "See {EIP-5267}. _Available since v4.9._" + }, + "getAllProposalIds()": { + "details": "Return all proposals." + }, + "getNumSubmissions(address)": { + "details": "Get the number of proposal submissions for a given address." + }, + "getProposal(uint256)": { + "details": "Retrieve proposal data\"_." + }, + "hashProposal((address,bool,string,(address),(address[],uint256)))": { + "details": "See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors accross multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts." + }, + "highestTiedRanking()": { + "details": "Getter for highest tied ranking." + }, + "isProposalDeleted(uint256)": { + "details": "Returns if a proposal has been deleted or not (0 if not, 1 if it has been deleted)." + }, + "isTied(uint256)": { + "details": "Getter if a given ranking is tied." + }, + "lowestRanking()": { + "details": "Getter for the lowest ranking." + }, + "name()": { + "details": "See {IGovernor-name}." + }, + "officialRewardsModule()": { + "details": "Get the official rewards module contract for this contest (effectively reverse record)." + }, + "prompt()": { + "details": "See {IGovernor-prompt}." + }, + "proposalAddressVotes(uint256,address)": { + "details": "Accessor to how many votes an address has cast for a given proposal." + }, + "proposalAddressesHaveVoted(uint256)": { + "details": "Accessor to which addresses have cast a vote for a given proposal." + }, + "proposalVotes(uint256)": { + "details": "Accessor to the internal vote counts for a given proposal." + }, + "propose((address,bool,string,(address),(address[],uint256)),bytes32[])": { + "details": "See {IGovernor-propose}." + }, + "proposeWithoutProof((address,bool,string,(address),(address[],uint256)))": { + "details": "See {IGovernor-proposeWithoutProof}." + }, + "rankingPosition(uint256)": { + "details": "Getter for tiedAdjustedRankingPosition of a ranking." + }, + "setOfficialRewardsModule(address)": { + "details": "Get the official rewards module contract for this contest (effectively reverse record)." + }, + "setSortedAndTiedProposals()": { + "details": "Setter for _sortedProposalIds, tiedAdjustedRankingPosition, _isTied, _lowestRanking, and _highestTiedRanking. Will only be called once and only needs to be called once because once the contest is complete these values don't change. Determines if a ranking is tied and also where the last iteration of a ranking is in the _sortedProposalIds list taking ties into account." + }, + "sortedProposalIds()": { + "details": "Getter for _sortedProposalIds." + }, + "sortedProposals(bool)": { + "details": "Accessor to sorted list of proposalIds in ascending order." + }, + "state()": { + "details": "See {IGovernor-state}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}." + }, + "validateProposalData((address,bool,string,(address),(address[],uint256)))": { + "details": "See {IGovernor-validateProposalData}." + }, + "verifyProposer(address,bytes32[])": { + "details": "See {IGovernor-verifyProposer}." + }, + "verifyVoter(address,uint256,bytes32[])": { + "details": "See {IGovernor-verifyVoter}." + }, + "version()": { + "details": "See {IGovernor-version}." + }, + "voteStart()": { + "details": "See {IGovernor-voteStart}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "checkProof(address,uint256,bytes32[],bool)": { + "notice": "Allows checking of proofs for an address" + }, + "submissionMerkleRoot()": { + "notice": "ERC20-claimee inclusion root" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@forge-std/=lib/forge-std/src/", + "@openzeppelin/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/Contest.sol": "Contest" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol": { + "keccak256": "0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f", + "urls": [ + "bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc", + "dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": { + "keccak256": "0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a", + "urls": [ + "bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a", + "dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": { + "keccak256": "0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa", + "urls": [ + "bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4", + "dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", + "urls": [ + "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", + "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol": { + "keccak256": "0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256", + "urls": [ + "bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516", + "dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { + "keccak256": "0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899", + "urls": [ + "bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da", + "dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0", + "urls": [ + "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f", + "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Timers.sol": { + "keccak256": "0x413dd6eccfbd25fff5e6c45500e049fc3b66f1a6c7d482d3ab88b8f4a5060ede", + "urls": [ + "bzz-raw://6f12296326560a2591d1e8d5cabcb55a1a82209a6752fe6a08b46bd9a3f9835f", + "dweb:/ipfs/QmTgY5GkmvuMsrB4bzsfXj6SALnshYyXpKKR8WCXaMpoPM" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": { + "keccak256": "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58", + "urls": [ + "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2", + "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol": { + "keccak256": "0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd", + "urls": [ + "bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a", + "dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": { + "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac", + "urls": [ + "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04", + "dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol": { + "keccak256": "0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b", + "urls": [ + "bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3", + "dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3", + "urls": [ + "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c", + "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { + "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", + "urls": [ + "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", + "dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", + "urls": [ + "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", + "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" + ], + "license": "MIT" + }, + "src/Contest.sol": { + "keccak256": "0xa471cab034594f2c2abee2478c60c024de57070152038716d4deaf704f79143c", + "urls": [ + "bzz-raw://19bde157cbcdaa4bc4a6e28390bc2f06a558abcf594d70038e0e4f7cab6ba363", + "dweb:/ipfs/QmW8Hi3fPYwekpdzPuiYATh5NrHz9RkDSr1LjvTPXnG46V" + ], + "license": "MIT" + }, + "src/governance/Governor.sol": { + "keccak256": "0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db", + "urls": [ + "bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd", + "dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB" + ], + "license": "MIT" + }, + "src/governance/GovernorMerkleVotes.sol": { + "keccak256": "0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec", + "urls": [ + "bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d", + "dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU" + ], + "license": "AGPL-3.0-only" + }, + "src/governance/IGovernor.sol": { + "keccak256": "0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767", + "urls": [ + "bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d", + "dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorCountingSimple.sol": { + "keccak256": "0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d", + "urls": [ + "bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563", + "dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorModuleRegistry.sol": { + "keccak256": "0x62c9d2a2dcaeccf1b6b801595f34abf893416964997e6ba699c9828ada1abefc", + "urls": [ + "bzz-raw://18672ac920d4749fec025a7c8610c8cb866addb0ba20e9cfce5bedd91e062776", + "dweb:/ipfs/QmNPWkqouY45jCeeFYi5metLX9d8BpSuGXLG55A5BZjH4D" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorSettings.sol": { + "keccak256": "0x03baf7fa5c11f3d9b50c9df1d193a73bf1e6799f792ce510ccdb4dc86a82d9a4", + "urls": [ + "bzz-raw://d78ca667bc09e43d8abf0f9ac4e17deaea1a0196aa1bc78c9ac66d734e81cf95", + "dweb:/ipfs/QmRwfFjbCA6HAn1SRDJ4CKSvmzBqyjce1sDfuwBThj7PWi" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorSorting.sol": { + "keccak256": "0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04", + "urls": [ + "bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d", + "dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa" + ], + "license": "MIT" + }, + "src/modules/RewardsModule.sol": { + "keccak256": "0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a", + "urls": [ + "bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e", + "dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/Contest.sol", + "id": 35091, + "exportedSymbols": { + "Address": [ + 30503 + ], + "Contest": [ + 35090 + ], + "Context": [ + 30525 + ], + "ECDSA": [ + 31660 + ], + "EIP712": [ + 31864 + ], + "ERC165": [ + 32419 + ], + "Governor": [ + 36037 + ], + "GovernorCountingSimple": [ + 36618 + ], + "GovernorMerkleVotes": [ + 36119 + ], + "GovernorModuleRegistry": [ + 36678 + ], + "GovernorSettings": [ + 36977 + ], + "GovernorSorting": [ + 37625 + ], + "IERC165": [ + 32431 + ], + "IERC20": [ + 29663 + ], + "IERC20Permit": [ + 29768 + ], + "IERC5267": [ + 28998 + ], + "IGovernor": [ + 36348 + ], + "Math": [ + 33297 + ], + "MerkleProof": [ + 32392 + ], + "RewardsModule": [ + 38438 + ], + "SafeCast": [ + 34838 + ], + "SafeERC20": [ + 30173 + ], + "ShortString": [ + 30530 + ], + "ShortStrings": [ + 30741 + ], + "SignedMath": [ + 34943 + ], + "StorageSlot": [ + 30851 + ], + "Strings": [ + 31080 + ], + "Timers": [ + 31294 + ] + }, + "nodeType": "SourceUnit", + "src": "32:2151:40", + "nodes": [ + { + "id": 34945, + "nodeType": "PragmaDirective", + "src": "32:23:40", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".4" + ] + }, + { + "id": 34946, + "nodeType": "ImportDirective", + "src": "57:35:40", + "nodes": [], + "absolutePath": "src/governance/Governor.sol", + "file": "./governance/Governor.sol", + "nameLocation": "-1:-1:-1", + "scope": 35091, + "sourceUnit": 36038, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 34947, + "nodeType": "ImportDirective", + "src": "93:54:40", + "nodes": [], + "absolutePath": "src/governance/extensions/GovernorSettings.sol", + "file": "./governance/extensions/GovernorSettings.sol", + "nameLocation": "-1:-1:-1", + "scope": 35091, + "sourceUnit": 36978, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 34948, + "nodeType": "ImportDirective", + "src": "148:60:40", + "nodes": [], + "absolutePath": "src/governance/extensions/GovernorCountingSimple.sol", + "file": "./governance/extensions/GovernorCountingSimple.sol", + "nameLocation": "-1:-1:-1", + "scope": 35091, + "sourceUnit": 36619, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 34949, + "nodeType": "ImportDirective", + "src": "209:60:40", + "nodes": [], + "absolutePath": "src/governance/extensions/GovernorModuleRegistry.sol", + "file": "./governance/extensions/GovernorModuleRegistry.sol", + "nameLocation": "-1:-1:-1", + "scope": 35091, + "sourceUnit": 36679, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 35090, + "nodeType": "ContractDefinition", + "src": "271:1911:40", + "nodes": [ + { + "id": 34998, + "nodeType": "FunctionDefinition", + "src": "365:716:40", + "nodes": [], + "body": { + "id": 34997, + "nodeType": "Block", + "src": "1079:2:40", + "nodes": [], + "statements": [] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 34971, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34959, + "src": "582:5:40", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 34972, + "name": "_prompt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34961, + "src": "589:7:40", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 34973, + "name": "_submissionMerkleRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34963, + "src": "598:21:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 34974, + "name": "_votingMerkleRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34965, + "src": "621:17:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 34975, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 34970, + "name": "Governor", + "nameLocations": [ + "573:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36037, + "src": "573:8:40" + }, + "nodeType": "ModifierInvocation", + "src": "573:66:40" + }, + { + "arguments": [ + { + "baseExpression": { + "id": 34977, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "678:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34979, + "indexExpression": { + "hexValue": "30", + "id": 34978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "700:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "678:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 34980, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "740:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34982, + "indexExpression": { + "hexValue": "31", + "id": 34981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "762:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "740:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 34983, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "802:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34985, + "indexExpression": { + "hexValue": "32", + "id": 34984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "824:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "802:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 34986, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "865:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34988, + "indexExpression": { + "hexValue": "33", + "id": 34987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "887:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "865:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 34989, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "945:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34991, + "indexExpression": { + "hexValue": "34", + "id": 34990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "967:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "945:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 34992, + "name": "_constructorIntParams", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34968, + "src": "1011:21:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 34994, + "indexExpression": { + "hexValue": "35", + "id": 34993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1033:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1011:24:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 34995, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 34976, + "name": "GovernorSettings", + "nameLocations": [ + "648:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "648:16:40" + }, + "nodeType": "ModifierInvocation", + "src": "648:426:40" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 34969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 34959, + "mutability": "mutable", + "name": "_name", + "nameLocation": "400:5:40", + "nodeType": "VariableDeclaration", + "scope": 34998, + "src": "386:19:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 34958, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "386:6:40", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34961, + "mutability": "mutable", + "name": "_prompt", + "nameLocation": "429:7:40", + "nodeType": "VariableDeclaration", + "scope": 34998, + "src": "415:21:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 34960, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "415:6:40", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34963, + "mutability": "mutable", + "name": "_submissionMerkleRoot", + "nameLocation": "454:21:40", + "nodeType": "VariableDeclaration", + "scope": 34998, + "src": "446:29:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 34962, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "446:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34965, + "mutability": "mutable", + "name": "_votingMerkleRoot", + "nameLocation": "493:17:40", + "nodeType": "VariableDeclaration", + "scope": 34998, + "src": "485:25:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 34964, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "485:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34968, + "mutability": "mutable", + "name": "_constructorIntParams", + "nameLocation": "537:21:40", + "nodeType": "VariableDeclaration", + "scope": 34998, + "src": "520:38:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 34966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "520:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 34967, + "nodeType": "ArrayTypeName", + "src": "520:9:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "376:188:40" + }, + "returnParameters": { + "id": 34996, + "nodeType": "ParameterList", + "parameters": [], + "src": "1079:0:40" + }, + "scope": 35090, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 35011, + "nodeType": "FunctionDefinition", + "src": "1155:136:40", + "nodes": [], + "body": { + "id": 35010, + "nodeType": "Block", + "src": "1247:44:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35006, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1264:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1270:12:40", + "memberName": "contestStart", + "nodeType": "MemberAccess", + "referencedDeclaration": 36797, + "src": "1264:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1264:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35005, + "id": 35009, + "nodeType": "Return", + "src": "1257:27:40" + } + ] + }, + "baseFunctions": [ + 36234, + 36797 + ], + "functionSelector": "004114a8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contestStart", + "nameLocation": "1164:12:40", + "overrides": { + "id": 35002, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35000, + "name": "IGovernor", + "nameLocations": [ + "1200:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36348, + "src": "1200:9:40" + }, + { + "id": 35001, + "name": "GovernorSettings", + "nameLocations": [ + "1211:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1211:16:40" + } + ], + "src": "1191:37:40" + }, + "parameters": { + "id": 34999, + "nodeType": "ParameterList", + "parameters": [], + "src": "1176:2:40" + }, + "returnParameters": { + "id": 35005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35004, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35011, + "src": "1238:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1237:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35024, + "nodeType": "FunctionDefinition", + "src": "1297:134:40", + "nodes": [], + "body": { + "id": 35023, + "nodeType": "Block", + "src": "1388:43:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35019, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1405:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1411:11:40", + "memberName": "votingDelay", + "nodeType": "MemberAccess", + "referencedDeclaration": 36807, + "src": "1405:17:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1405:19:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35018, + "id": 35022, + "nodeType": "Return", + "src": "1398:26:40" + } + ] + }, + "baseFunctions": [ + 36252, + 36807 + ], + "functionSelector": "3932abb1", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "votingDelay", + "nameLocation": "1306:11:40", + "overrides": { + "id": 35015, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35013, + "name": "IGovernor", + "nameLocations": [ + "1341:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36348, + "src": "1341:9:40" + }, + { + "id": 35014, + "name": "GovernorSettings", + "nameLocations": [ + "1352:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1352:16:40" + } + ], + "src": "1332:37:40" + }, + "parameters": { + "id": 35012, + "nodeType": "ParameterList", + "parameters": [], + "src": "1317:2:40" + }, + "returnParameters": { + "id": 35018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35017, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35024, + "src": "1379:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1378:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35037, + "nodeType": "FunctionDefinition", + "src": "1437:136:40", + "nodes": [], + "body": { + "id": 35036, + "nodeType": "Block", + "src": "1529:44:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35032, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1546:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1552:12:40", + "memberName": "votingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 36817, + "src": "1546:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1546:20:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35031, + "id": 35035, + "nodeType": "Return", + "src": "1539:27:40" + } + ] + }, + "baseFunctions": [ + 36258, + 36817 + ], + "functionSelector": "02a251a3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "votingPeriod", + "nameLocation": "1446:12:40", + "overrides": { + "id": 35028, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35026, + "name": "IGovernor", + "nameLocations": [ + "1482:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36348, + "src": "1482:9:40" + }, + { + "id": 35027, + "name": "GovernorSettings", + "nameLocations": [ + "1493:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1493:16:40" + } + ], + "src": "1473:37:40" + }, + "parameters": { + "id": 35025, + "nodeType": "ParameterList", + "parameters": [], + "src": "1458:2:40" + }, + "returnParameters": { + "id": 35031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35030, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35037, + "src": "1520:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1520:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1519:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35050, + "nodeType": "FunctionDefinition", + "src": "1579:169:40", + "nodes": [], + "body": { + "id": 35049, + "nodeType": "Block", + "src": "1687:61:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35045, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1704:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1710:29:40", + "memberName": "numAllowedProposalSubmissions", + "nodeType": "MemberAccess", + "referencedDeclaration": 36827, + "src": "1704:35:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1704:37:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35044, + "id": 35048, + "nodeType": "Return", + "src": "1697:44:40" + } + ] + }, + "baseFunctions": [ + 35386, + 36827 + ], + "functionSelector": "832009af", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "numAllowedProposalSubmissions", + "nameLocation": "1588:29:40", + "overrides": { + "id": 35041, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35039, + "name": "Governor", + "nameLocations": [ + "1641:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36037, + "src": "1641:8:40" + }, + { + "id": 35040, + "name": "GovernorSettings", + "nameLocations": [ + "1651:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1651:16:40" + } + ], + "src": "1632:36:40" + }, + "parameters": { + "id": 35038, + "nodeType": "ParameterList", + "parameters": [], + "src": "1617:2:40" + }, + "returnParameters": { + "id": 35044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35043, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35050, + "src": "1678:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1678:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1677:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35063, + "nodeType": "FunctionDefinition", + "src": "1754:143:40", + "nodes": [], + "body": { + "id": 35062, + "nodeType": "Block", + "src": "1849:48:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35058, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "1866:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1872:16:40", + "memberName": "maxProposalCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 36837, + "src": "1866:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1866:24:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35057, + "id": 35061, + "nodeType": "Return", + "src": "1859:31:40" + } + ] + }, + "baseFunctions": [ + 35395, + 36837 + ], + "functionSelector": "fb9bf8d4", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "maxProposalCount", + "nameLocation": "1763:16:40", + "overrides": { + "id": 35054, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35052, + "name": "Governor", + "nameLocations": [ + "1803:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36037, + "src": "1803:8:40" + }, + { + "id": 35053, + "name": "GovernorSettings", + "nameLocations": [ + "1813:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1813:16:40" + } + ], + "src": "1794:36:40" + }, + "parameters": { + "id": 35051, + "nodeType": "ParameterList", + "parameters": [], + "src": "1779:2:40" + }, + "returnParameters": { + "id": 35057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35056, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35063, + "src": "1840:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35055, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1840:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1839:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35076, + "nodeType": "FunctionDefinition", + "src": "1903:145:40", + "nodes": [], + "body": { + "id": 35075, + "nodeType": "Block", + "src": "1999:49:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35071, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2016:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2022:17:40", + "memberName": "downvotingAllowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 36847, + "src": "2016:23:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 35073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2016:25:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 35070, + "id": 35074, + "nodeType": "Return", + "src": "2009:32:40" + } + ] + }, + "baseFunctions": [ + 35404, + 36847 + ], + "functionSelector": "60506ff6", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "downvotingAllowed", + "nameLocation": "1912:17:40", + "overrides": { + "id": 35067, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35065, + "name": "Governor", + "nameLocations": [ + "1953:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36037, + "src": "1953:8:40" + }, + { + "id": 35066, + "name": "GovernorSettings", + "nameLocations": [ + "1963:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "1963:16:40" + } + ], + "src": "1944:36:40" + }, + "parameters": { + "id": 35064, + "nodeType": "ParameterList", + "parameters": [], + "src": "1929:2:40" + }, + "returnParameters": { + "id": 35070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35069, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35076, + "src": "1990:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1990:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1989:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 35089, + "nodeType": "FunctionDefinition", + "src": "2054:126:40", + "nodes": [], + "body": { + "id": 35088, + "nodeType": "Block", + "src": "2141:39:40", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 35084, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2158:5:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Contest_$35090_$", + "typeString": "type(contract super Contest)" + } + }, + "id": 35085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2164:7:40", + "memberName": "creator", + "nodeType": "MemberAccess", + "referencedDeclaration": 36857, + "src": "2158:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 35086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2158:15:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 35083, + "id": 35087, + "nodeType": "Return", + "src": "2151:22:40" + } + ] + }, + "baseFunctions": [ + 36264, + 36857 + ], + "functionSelector": "02d05d3f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "creator", + "nameLocation": "2063:7:40", + "overrides": { + "id": 35080, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 35078, + "name": "IGovernor", + "nameLocations": [ + "2094:9:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36348, + "src": "2094:9:40" + }, + { + "id": 35079, + "name": "GovernorSettings", + "nameLocations": [ + "2105:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "2105:16:40" + } + ], + "src": "2085:37:40" + }, + "parameters": { + "id": 35077, + "nodeType": "ParameterList", + "parameters": [], + "src": "2070:2:40" + }, + "returnParameters": { + "id": 35083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35082, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 35089, + "src": "2132:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 35081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2132:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2131:9:40" + }, + "scope": 35090, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 34950, + "name": "Governor", + "nameLocations": [ + "291:8:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36037, + "src": "291:8:40" + }, + "id": 34951, + "nodeType": "InheritanceSpecifier", + "src": "291:8:40" + }, + { + "baseName": { + "id": 34952, + "name": "GovernorSettings", + "nameLocations": [ + "301:16:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36977, + "src": "301:16:40" + }, + "id": 34953, + "nodeType": "InheritanceSpecifier", + "src": "301:16:40" + }, + { + "baseName": { + "id": 34954, + "name": "GovernorSorting", + "nameLocations": [ + "319:15:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37625, + "src": "319:15:40" + }, + "id": 34955, + "nodeType": "InheritanceSpecifier", + "src": "319:15:40" + }, + { + "baseName": { + "id": 34956, + "name": "GovernorModuleRegistry", + "nameLocations": [ + "336:22:40" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36678, + "src": "336:22:40" + }, + "id": 34957, + "nodeType": "InheritanceSpecifier", + "src": "336:22:40" + } + ], + "canonicalName": "Contest", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 35090, + 36678, + 37625, + 36618, + 36977, + 36037, + 36348, + 36119, + 31864, + 28998, + 32419, + 32431, + 30525 + ], + "name": "Contest", + "nameLocation": "280:7:40", + "scope": 35091, + "usedErrors": [ + 30538, + 30540, + 35159, + 36050 + ] + } + ], + "license": "MIT" + }, + "id": 40 +} \ No newline at end of file diff --git a/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.sol/Contest.json b/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.sol/Contest.json index 1e19f422a..c9f951b03 100644 --- a/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.sol/Contest.json +++ b/packages/react-app-revamp/contracts/bytecodeAndAbi/Contest.sol/Contest.json @@ -1593,12 +1593,12 @@ } ], "bytecode": { - "object": "0x6101a06040526016805460ff191690553480156200001c57600080fd5b50604051620046a0380380620046a08339810160408190526200003f9162000621565b8060008151811062000055576200005562000732565b60200260200101518160018151811062000073576200007362000732565b60200260200101518260028151811062000091576200009162000732565b602002602001015183600381518110620000af57620000af62000732565b602002602001015184600481518110620000cd57620000cd62000732565b602002602001015185600581518110620000eb57620000eb62000732565b60200260200101518a8a8a8a8181856200010a6200025060201b60201c565b620001178260006200026d565b61012052620001288160016200026d565b61014052815160208084019190912060e052815190820120610100524660a052620001b660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05261016091909152610180526007620001d88582620007d7565b506008620001e78482620007d7565b5050505050620001fd86620002a660201b60201c565b6200020885620002e7565b620002138462000328565b6200021e83620003cf565b620002298262000410565b620002348162000451565b6200023f3362000492565b5050505050505050505050620008fd565b60408051808201909152600381526219971960e91b602082015290565b60006020835110156200028d576200028583620004fb565b9050620002a0565b816200029a8482620007d7565b5060ff90505b92915050565b600c5460408051918252602082018390527fd299feb1d7d9345a48559601c471c3be7eea9a11f21d5e86809198f40a974db4910160405180910390a1600c55565b600d5460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600d55565b600081116200038e5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b600e5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600e55565b600f5460408051918252602082018390527fe971b819c7fb95c72451f557226aceb5baaf4994a9d39a79bbfa0040e87500b9910160405180910390a1600f55565b60105460408051918252602082018390527f4984ec996723330ee95979ed65a2a4b41edd914e68a187efe92596474643bdff910160405180910390a1601055565b60115460408051918252602082018390527f9c7b27f091caef3a83be73d89320404fa0c4a52993685ff0651672e49e6e55ab910160405180910390a1601155565b601254604080516001600160a01b03928316815291831660208301527fc30034fc2e9697980e08935bbc287db3eaa44a4aa113ef4c108b356adbf911ce910160405180910390a1601280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000529578260405163305a27a960e01b8152600401620003859190620008a3565b80516200053682620008d8565b179392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200057f576200057f6200053e565b604052919050565b60005b83811015620005a45781810151838201526020016200058a565b50506000910152565b600082601f830112620005bf57600080fd5b81516001600160401b03811115620005db57620005db6200053e565b620005f0601f8201601f191660200162000554565b8181528460208386010111156200060657600080fd5b6200061982602083016020870162000587565b949350505050565b600080600080600060a086880312156200063a57600080fd5b85516001600160401b03808211156200065257600080fd5b6200066089838a01620005ad565b96506020915081880151818111156200067857600080fd5b620006868a828b01620005ad565b9650506040880151945060608801519350608088015181811115620006aa57600080fd5b8801601f81018a13620006bc57600080fd5b805182811115620006d157620006d16200053e565b8060051b9250620006e484840162000554565b818152928201840192848101908c851115620006ff57600080fd5b928501925b848410156200071f5783518252928501929085019062000704565b8096505050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200075d57607f821691505b6020821081036200077e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d257600081815260208120601f850160051c81016020861015620007ad5750805b601f850160051c820191505b81811015620007ce57828155600101620007b9565b5050505b505050565b81516001600160401b03811115620007f357620007f36200053e565b6200080b8162000804845462000748565b8462000784565b602080601f8311600181146200084357600084156200082a5750858301515b600019600386901b1c1916600185901b178555620007ce565b600085815260208120601f198616915b82811015620008745788860151825594840194600190910190840162000853565b5085821015620008935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260008251806020840152620008c481604085016020870162000587565b601f01601f19169190910160400192915050565b805160208083015191908110156200077e5760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051613d256200097b60003960008181610a620152610ead01526000818161091a01528181610cf501528181610e480152611116015260006114730152600061144901526000505060005050600050506000505060005050613d256000f3fe60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b5060408051808201909152600381526219971960e91b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122051232e31cc9070ff428910f2844852a2762586fd7ab7bfda34e89216913a381064736f6c63430008130033", + "object": "0x6101a06040526016805460ff191690553480156200001c57600080fd5b50604051620046a0380380620046a08339810160408190526200003f9162000621565b8060008151811062000055576200005562000732565b60200260200101518160018151811062000073576200007362000732565b60200260200101518260028151811062000091576200009162000732565b602002602001015183600381518110620000af57620000af62000732565b602002602001015184600481518110620000cd57620000cd62000732565b602002602001015185600581518110620000eb57620000eb62000732565b60200260200101518a8a8a8a8181856200010a6200025060201b60201c565b620001178260006200026d565b61012052620001288160016200026d565b61014052815160208084019190912060e052815190820120610100524660a052620001b660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05261016091909152610180526007620001d88582620007d7565b506008620001e78482620007d7565b5050505050620001fd86620002a660201b60201c565b6200020885620002e7565b620002138462000328565b6200021e83620003cf565b620002298262000410565b620002348162000451565b6200023f3362000492565b5050505050505050505050620008fd565b604080518082019091526003815262332e3360e81b602082015290565b60006020835110156200028d576200028583620004fb565b9050620002a0565b816200029a8482620007d7565b5060ff90505b92915050565b600c5460408051918252602082018390527fd299feb1d7d9345a48559601c471c3be7eea9a11f21d5e86809198f40a974db4910160405180910390a1600c55565b600d5460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600d55565b600081116200038e5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b600e5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600e55565b600f5460408051918252602082018390527fe971b819c7fb95c72451f557226aceb5baaf4994a9d39a79bbfa0040e87500b9910160405180910390a1600f55565b60105460408051918252602082018390527f4984ec996723330ee95979ed65a2a4b41edd914e68a187efe92596474643bdff910160405180910390a1601055565b60115460408051918252602082018390527f9c7b27f091caef3a83be73d89320404fa0c4a52993685ff0651672e49e6e55ab910160405180910390a1601155565b601254604080516001600160a01b03928316815291831660208301527fc30034fc2e9697980e08935bbc287db3eaa44a4aa113ef4c108b356adbf911ce910160405180910390a1601280546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000529578260405163305a27a960e01b8152600401620003859190620008a3565b80516200053682620008d8565b179392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200057f576200057f6200053e565b604052919050565b60005b83811015620005a45781810151838201526020016200058a565b50506000910152565b600082601f830112620005bf57600080fd5b81516001600160401b03811115620005db57620005db6200053e565b620005f0601f8201601f191660200162000554565b8181528460208386010111156200060657600080fd5b6200061982602083016020870162000587565b949350505050565b600080600080600060a086880312156200063a57600080fd5b85516001600160401b03808211156200065257600080fd5b6200066089838a01620005ad565b96506020915081880151818111156200067857600080fd5b620006868a828b01620005ad565b9650506040880151945060608801519350608088015181811115620006aa57600080fd5b8801601f81018a13620006bc57600080fd5b805182811115620006d157620006d16200053e565b8060051b9250620006e484840162000554565b818152928201840192848101908c851115620006ff57600080fd5b928501925b848410156200071f5783518252928501929085019062000704565b8096505050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b600181811c908216806200075d57607f821691505b6020821081036200077e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d257600081815260208120601f850160051c81016020861015620007ad5750805b601f850160051c820191505b81811015620007ce57828155600101620007b9565b5050505b505050565b81516001600160401b03811115620007f357620007f36200053e565b6200080b8162000804845462000748565b8462000784565b602080601f8311600181146200084357600084156200082a5750858301515b600019600386901b1c1916600185901b178555620007ce565b600085815260208120601f198616915b82811015620008745788860151825594840194600190910190840162000853565b5085821015620008935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260008251806020840152620008c481604085016020870162000587565b601f01601f19169190910160400192915050565b805160208083015191908110156200077e5760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516101605161018051613d256200097b60003960008181610a620152610ead01526000818161091a01528181610cf501528181610e480152611116015260006114730152600061144901526000505060005050600050506000505060005050613d256000f3fe60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b50604080518082019091526003815262332e3360e81b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122024bf350849a566b9406441513436ab64c28ff31946a37b3a3a3504e93acb68ff64736f6c63430008130033", "sourceMap": "271:1911:40:-:0;;;273:55:47;;;-1:-1:-1;;273:55:47;;;365:716:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;678:21;700:1;678:24;;;;;;;;:::i;:::-;;;;;;;740:21;762:1;740:24;;;;;;;;:::i;:::-;;;;;;;802:21;824:1;802:24;;;;;;;;:::i;:::-;;;;;;;865:21;887:1;865:24;;;;;;;;:::i;:::-;;;;;;;945:21;967:1;945:24;;;;;;;;:::i;:::-;;;;;;;1011:21;1033:1;1011:24;;;;;;;;:::i;:::-;;;;;;;582:5;589:7;598:21;621:17;1957:21:41;1980:17;2014:5;2021:9;:7;;;:9;;:::i;:::-;3251:45:32;:4;3282:13;3251:30;:45::i;:::-;3243:53;;3317:51;:7;3351:16;3317:33;:51::i;:::-;3306:62;;3392:22;;;;;;;;;;3378:36;;3441:25;;;;;;3424:42;;3494:13;3477:30;;3542:23;4077:11;;4090:14;;4054:81;;;1929:95;4054:81;;;5649:25:51;5690:18;;;5683:34;;;;5733:18;;;5726:34;4106:13:32;5776:18:51;;;5769:34;4129:4:32;5819:19:51;;;5812:61;4018:7:32;;5621:19:51;;4054:81:32;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3542:23;3517:48;;-1:-1:-1;;3597:4:32;3575:27;;894:44:42;;;;;963:36;;2046:5:41::2;:13;2054:5:::0;2046;:13:::2;:::i;:::-;-1:-1:-1::0;2069:7:41::2;:17;2079:7:::0;2069;:17:::2;:::i;:::-;;1815:278:::0;;;;1483:37:46;1500:19;1483:16;;;:37;;:::i;:::-;1530:35;1546:18;1530:15;:35::i;:::-;1575:37;1592:19;1575:16;:37::i;:::-;1622:71;1656:36;1622:33;:71::i;:::-;1703:45;1724:23;1703:20;:45::i;:::-;1758:47;1780:24;1758:21;:47::i;:::-;1815:23;1827:10;1815:11;:23::i;:::-;1208:637;;;;;;365:716:40;;;;;271:1911;;2987:101:41;3069:12;;;;;;;;;;;;-1:-1:-1;;;3069:12:41;;;;;2987:101::o;2895:341:27:-;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1371:66:27;;-1:-1:-1;3014:216:27;2895:341;;;;:::o;3247:178:46:-;3346:13;;3330:47;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;3330:47:46;;6031:18:51;3330:47:46;;;;;;;3387:13;:31;3247:178::o;3543:171::-;3639:12;;3624:44;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;3624:44:46;;6031:18:51;3624:44:46;;;;;;;3678:12;:29;3543:171::o;3834:316::-;3995:1;3977:15;:19;3969:71;;;;-1:-1:-1;;;3969:71:46;;6339:2:51;3969:71:46;;;6321:21:51;6378:2;6358:18;;;6351:30;6417:34;6397:18;;;6390:62;-1:-1:-1;;;6468:18:51;;;6461:37;6515:19;;3969:71:46;;;;;;;;;4071:13;;4055:47;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4055:47:46;;6031:18:51;4055:47:46;;;;;;;4112:13;:31;3834:316::o;4337:297::-;4487:30;;4454:98;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4454:98:46;;6031:18:51;4454:98:46;;;;;;;4562:30;:65;4337:297::o;4763:206::-;4874:17;;4854:59;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;4854:59:46;;6031:18:51;4854:59:46;;;;;;;4923:17;:39;4763:206::o;5101:213::-;5215:18;;5194:62;;;6058:25:51;;;6114:2;6099:18;;6092:34;;;5194:62:46;;6031:18:51;5194:62:46;;;;;;;5266:18;:41;5101:213::o;5419:143::-;5503:8;;5492:32;;;-1:-1:-1;;;;;5503:8:46;;;6757:34:51;;6827:15;;;6822:2;6807:18;;6800:43;5492:32:46;;6692:18:51;5492:32:46;;;;;;;5534:8;:21;;-1:-1:-1;;;;;;5534:21:46;-1:-1:-1;;;;;5534:21:46;;;;;;;;;;5419:143::o;1689:286:27:-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;-1:-1:-1;;;1860:18:27;;;;;;;;:::i;1817:72::-;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:27:o;14:127:51:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:51;247:40;;-1:-1:-1;;;;;302:34:51;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:51:o;426:250::-;511:1;521:113;535:6;532:1;529:13;521:113;;;611:11;;;605:18;592:11;;;585:39;557:2;550:10;521:113;;;-1:-1:-1;;668:1:51;650:16;;643:27;426:250::o;681:510::-;735:5;788:3;781:4;773:6;769:17;765:27;755:55;;806:1;803;796:12;755:55;829:13;;-1:-1:-1;;;;;854:26:51;;851:52;;;883:18;;:::i;:::-;927:55;970:2;951:13;;-1:-1:-1;;947:27:51;976:4;943:38;927:55;:::i;:::-;1007:2;998:7;991:19;1053:3;1046:4;1041:2;1033:6;1029:15;1025:26;1022:35;1019:55;;;1070:1;1067;1060:12;1019:55;1083:77;1157:2;1150:4;1141:7;1137:18;1130:4;1122:6;1118:17;1083:77;:::i;:::-;1178:7;681:510;-1:-1:-1;;;;681:510:51:o;1196:1468::-;1347:6;1355;1363;1371;1379;1432:3;1420:9;1411:7;1407:23;1403:33;1400:53;;;1449:1;1446;1439:12;1400:53;1476:16;;-1:-1:-1;;;;;1541:14:51;;;1538:34;;;1568:1;1565;1558:12;1538:34;1591:61;1644:7;1635:6;1624:9;1620:22;1591:61;:::i;:::-;1581:71;;1671:2;1661:12;;1719:2;1708:9;1704:18;1698:25;1748:2;1738:8;1735:16;1732:36;;;1764:1;1761;1754:12;1732:36;1787:63;1842:7;1831:8;1820:9;1816:24;1787:63;:::i;:::-;1777:73;;;1890:2;1879:9;1875:18;1869:25;1859:35;;1934:2;1923:9;1919:18;1913:25;1903:35;;1984:3;1973:9;1969:19;1963:26;2014:2;2004:8;2001:16;1998:36;;;2030:1;2027;2020:12;1998:36;2053:24;;2108:4;2100:13;;2096:27;-1:-1:-1;2086:55:51;;2137:1;2134;2127:12;2086:55;2166:2;2160:9;2188:2;2184;2181:10;2178:36;;;2194:18;;:::i;:::-;2240:2;2237:1;2233:10;2223:20;;2263:28;2287:2;2283;2279:11;2263:28;:::i;:::-;2325:15;;;2395:11;;;2391:20;;;2356:12;;;;2423:19;;;2420:39;;;2455:1;2452;2445:12;2420:39;2479:11;;;;2499:135;2515:6;2510:3;2507:15;2499:135;;;2581:10;;2569:23;;2532:12;;;;2612;;;;2499:135;;;2653:5;2643:15;;;;;;;;1196:1468;;;;;;;;:::o;2669:127::-;2730:10;2725:3;2721:20;2718:1;2711:31;2761:4;2758:1;2751:15;2785:4;2782:1;2775:15;2801:380;2880:1;2876:12;;;;2923;;;2944:61;;2998:4;2990:6;2986:17;2976:27;;2944:61;3051:2;3043:6;3040:14;3020:18;3017:38;3014:161;;3097:10;3092:3;3088:20;3085:1;3078:31;3132:4;3129:1;3122:15;3160:4;3157:1;3150:15;3014:161;;2801:380;;;:::o;3312:545::-;3414:2;3409:3;3406:11;3403:448;;;3450:1;3475:5;3471:2;3464:17;3520:4;3516:2;3506:19;3590:2;3578:10;3574:19;3571:1;3567:27;3561:4;3557:38;3626:4;3614:10;3611:20;3608:47;;;-1:-1:-1;3649:4:51;3608:47;3704:2;3699:3;3695:12;3692:1;3688:20;3682:4;3678:31;3668:41;;3759:82;3777:2;3770:5;3767:13;3759:82;;;3822:17;;;3803:1;3792:13;3759:82;;;3763:3;;;3403:448;3312:545;;;:::o;4033:1352::-;4153:10;;-1:-1:-1;;;;;4175:30:51;;4172:56;;;4208:18;;:::i;:::-;4237:97;4327:6;4287:38;4319:4;4313:11;4287:38;:::i;:::-;4281:4;4237:97;:::i;:::-;4389:4;;4453:2;4442:14;;4470:1;4465:663;;;;5172:1;5189:6;5186:89;;;-1:-1:-1;5241:19:51;;;5235:26;5186:89;-1:-1:-1;;3990:1:51;3986:11;;;3982:24;3978:29;3968:40;4014:1;4010:11;;;3965:57;5288:81;;4435:944;;4465:663;3259:1;3252:14;;;3296:4;3283:18;;-1:-1:-1;;4501:20:51;;;4619:236;4633:7;4630:1;4627:14;4619:236;;;4722:19;;;4716:26;4701:42;;4814:27;;;;4782:1;4770:14;;;;4649:19;;4619:236;;;4623:3;4883:6;4874:7;4871:19;4868:201;;;4944:19;;;4938:26;-1:-1:-1;;5027:1:51;5023:14;;;5039:3;5019:24;5015:37;5011:42;4996:58;4981:74;;4868:201;-1:-1:-1;;;;;5115:1:51;5099:14;;;5095:22;5082:36;;-1:-1:-1;4033:1352:51:o;6854:396::-;7003:2;6992:9;6985:21;6966:4;7035:6;7029:13;7078:6;7073:2;7062:9;7058:18;7051:34;7094:79;7166:6;7161:2;7150:9;7146:18;7141:2;7133:6;7129:15;7094:79;:::i;:::-;7234:2;7213:15;-1:-1:-1;;7209:29:51;7194:45;;;;7241:2;7190:54;;6854:396;-1:-1:-1;;6854:396:51:o;7255:297::-;7373:12;;7420:4;7409:16;;;7403:23;;7373:12;7438:16;;7435:111;;;-1:-1:-1;;7512:4:51;7508:17;;;;7505:1;7501:25;7497:38;7486:50;;7255:297;-1:-1:-1;7255:297:51:o;:::-;271:1911:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b5060408051808201909152600381526219971960e91b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122051232e31cc9070ff428910f2844852a2762586fd7ab7bfda34e89216913a381064736f6c63430008130033", + "object": "0x60806040526004361061038f5760003560e01c80637de418d5116101dc578063d45a010b11610102578063e5eb5a48116100a0578063f0a7db0a1161006f578063f0a7db0a14610b66578063f4f3d7ec14610b86578063fb8ddab414610ba6578063fb9bf8d414610bc657600080fd5b8063e5eb5a4814610afa578063ea8a1af014610b27578063ebc18b9b14610b3c578063efa90d3614610b5157600080fd5b8063dd96a19d116100dc578063dd96a19d14610a50578063dea5f6a614610a84578063deaaa7cc14610ab1578063e031535b14610ae557600080fd5b8063d45a010b146109db578063d8891619146109f0578063dd4e2ba514610a0a57600080fd5b8063a1ac6cb21161017a578063c0ffaa7811610149578063c0ffaa781461093c578063c19d93fb1461095c578063c7f758a81461097e578063cb853950146109ab57600080fd5b8063a1ac6cb214610878578063aec116b6146108a5578063b323580d146108db578063bddc16411461090857600080fd5b806386187488116101b657806386187488146107fe5780638a9cd5501461081e578063930de9791461083357806396f0e9621461086357600080fd5b80637de418d5146107ab578063832009af146107c157806384b0196e146107d657600080fd5b8063427d56c2116102c157806354fd4d501161025f5780636ca1a2c71161022e5780636ca1a2c7146107435780636e4eb81014610758578063785ddfe5146107785780637c65d7111461079657600080fd5b806354fd4d50146106ac5780635f953a03146106d857806360506ff61461070e57806365f162631461072357600080fd5b80634d24a67f1161029b5780634d24a67f1461060a57806350a5e5241461061f578063531bd81214610642578063544ffc9c1461066257600080fd5b8063427d56c21461059d578063458da87d146105ca578063476f4d8a146105ea57600080fd5b80632399c6601161032e578063347cf66511610308578063347cf6651461051f5780633932abb11461053b5780633b6d199b14610550578063419c533c1461057d57600080fd5b80632399c660146104ca578063262e59e9146104ea57806332763c22146104ff57600080fd5b806302d05d3f1161036a57806302d05d3f1461040a57806306fdde0314610437578063070dc5d91461045957806320b3e845146104aa57600080fd5b80624114a81461039d57806301ffc9a7146103c557806302a251a3146103f557600080fd5b3661039857005b005b600080fd5b3480156103a957600080fd5b506103b2610bdb565b6040519081526020015b60405180910390f35b3480156103d157600080fd5b506103e56103e036600461308a565b610beb565b60405190151581526020016103bc565b34801561040157600080fd5b506103b2610c22565b34801561041657600080fd5b5061041f610c2d565b6040516001600160a01b0390911681526020016103bc565b34801561044357600080fd5b5061044c610c41565b6040516103bc91906130fa565b34801561046557600080fd5b5061049d61047436600461310d565b601560209081526000918252604091829020825180840190935280548352600101549082015281565b6040516103bc9190613126565b3480156104b657600080fd5b506103e56104c5366004613199565b610cd3565b3480156104d657600080fd5b506103e56104e536600461310d565b610d69565b3480156104f657600080fd5b506103b2610dad565b34801561050b57600080fd5b506103e561051a366004613202565b610dc9565b34801561052b57600080fd5b506103b2678ac7230489e8000081565b34801561054757600080fd5b506103b2610f06565b34801561055c57600080fd5b506103b261056b36600461310d565b60009081526006602052604090205490565b34801561058957600080fd5b506103b2610598366004613283565b610f11565b3480156105a957600080fd5b506105bd6105b83660046132f3565b610f49565b6040516103bc9190613349565b3480156105d657600080fd5b506103b26105e5366004613607565b6110e1565b3480156105f657600080fd5b506103b2610605366004613607565b611112565b34801561061657600080fd5b506103b2600281565b34801561062b57600080fd5b5061063461117c565b6040516103bc92919061363b565b34801561064e57600080fd5b506103e561065d3660046136a4565b611282565b34801561066e57600080fd5b5061069761067d36600461310d565b600090815260156020526040902080546001909101549091565b604080519283526020830191909152016103bc565b3480156106b857600080fd5b50604080518082019091526003815262332e3360e81b602082015261044c565b3480156106e457600080fd5b506103b26106f33660046136ff565b6001600160a01b03166000908152600b602052604090205490565b34801561071a57600080fd5b506103b26112ed565b34801561072f57600080fd5b506103b261073e36600461371c565b6112f8565b34801561074f57600080fd5b506103b26113c0565b34801561076457600080fd5b50610697610773366004613751565b6113ec565b34801561078457600080fd5b50601c546001600160a01b031661041f565b3480156107a257600080fd5b5061044c611421565b3480156107b757600080fd5b506103b260135481565b3480156107cd57600080fd5b506103b2611430565b3480156107e257600080fd5b506107eb61143b565b6040516103bc9796959493929190613781565b34801561080a57600080fd5b506103b261081936600461310d565b6114c3565b34801561082a57600080fd5b506105bd6114fb565b34801561083f57600080fd5b506103e561084e3660046136ff565b60036020526000908152604090205460ff1681565b34801561086f57600080fd5b50610396611575565b34801561088457600080fd5b506103b26108933660046136ff565b60146020526000908152604090205481565b3480156108b157600080fd5b506103b26108c03660046136ff565b6001600160a01b031660009081526014602052604090205490565b3480156108e757600080fd5b506108fb6108f636600461310d565b611889565b6040516103bc919061382a565b34801561091457600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b34801561094857600080fd5b506103b261095736600461383d565b6118fb565b34801561096857600080fd5b5061097161193f565b6040516103bc91906138ae565b34801561098a57600080fd5b5061099e61099936600461310d565b6119b1565b6040516103bc91906138d6565b3480156109b757600080fd5b506103e56109c63660046136ff565b60046020526000908152604090205460ff1681565b3480156109e757600080fd5b50610634611b2b565b3480156109fc57600080fd5b506016546103e59060ff1681565b348015610a1657600080fd5b5060408051808201909152601881527f737570706f72743d627261766f2671756f72756d3d666f720000000000000000602082015261044c565b348015610a5c57600080fd5b506103b27f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9057600080fd5b506103b2610a9f3660046136ff565b60026020526000908152604090205481565b348015610abd57600080fd5b506103b27f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b348015610af157600080fd5b506103b2611cf6565b348015610b0657600080fd5b506103b2610b1536600461310d565b60176020526000908152604090205481565b348015610b3357600080fd5b50610396611d08565b348015610b4857600080fd5b506103b2611df2565b348015610b5d57600080fd5b506105bd611e1e565b348015610b7257600080fd5b50610396610b8136600461395c565b611e74565b348015610b9257600080fd5b50610396610ba13660046136ff565b6120b7565b348015610bb257600080fd5b506103e5610bc1366004613607565b612152565b348015610bd257600080fd5b506103b26123dd565b6000610be6600c5490565b905090565b60006001600160e01b0319821663eed9776760e01b1480610c1c57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610be6600e5490565b6000610be66012546001600160a01b031690565b606060078054610c50906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7c906139ec565b8015610cc95780601f10610c9e57610100808354040283529160200191610cc9565b820191906000526020600020905b815481529060010190602001808311610cac57829003601f168201915b5050505050905090565b6001600160a01b03831660009081526004602052604081205460ff16610d5e577f0000000000000000000000000000000000000000000000000000000000000000600003610d2357506001610d62565b610d3984678ac7230489e8000085856000610dc9565b506001600160a01b0384166000908152600460205260409020805460ff191660011790555b5060015b9392505050565b60165460009060ff16610d975760405162461bcd60e51b8152600401610d8e90613a26565b60405180910390fd5b5060009081526018602052604090205460ff1690565b6000610db7610c22565b610dbf611cf6565b610be69190613aa7565b6040516bffffffffffffffffffffffff19606087901b166020820152603481018590526000908190605401604051602081830303815290604052805190602001209050600083610e7857610e738686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b610ed8565b610ed88686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f000000000000000000000000000000000000000000000000000000000000000092508691506123e89050565b905080610ef85760405163452c2df160e11b815260040160405180910390fd5b506001979650505050505050565b6000610be6600d5490565b600033610f2081878686611282565b50610f3d88828988604051806020016040528060008152506123fe565b98975050505050505050565b606060008083610f6057610f5b61117c565b610f68565b610f68611b2b565b915091506000825111610fd85760405162461bcd60e51b815260206004820152603260248201527f476f7665726e6f72536f7274696e673a2063616e6e6f7420736f72742061206c6044820152710d2e6e840decc40f4cae4de40d8cadccee8d60731b6064820152608401610d8e565b600082516001600160401b03811115610ff357610ff361335c565b60405190808252806020026020018201604052801561101c578160200160208202803683370190505b50905060005b82518110156110a05782818151811061103d5761103d613aba565b60200260200101516020015183828151811061105b5761105b613aba565b6020026020010151600001516110719190613ad0565b82828151811061108357611083613aba565b60209081029190910101528061109881613af7565b915050611022565b5060005b600184516110b29190613b10565b8110156110d7576110c4818386612618565b50806110cf81613af7565b9150506110a4565b5091949350505050565b6000816040516020016110f491906138d6565b60408051601f19818403018152919052805160209091012092915050565b60007f000000000000000000000000000000000000000000000000000000000000000015611169573360009081526004602052604090205460ff166111695760405162461bcd60e51b8152600401610d8e90613b23565b61117282612152565b50610c1c8261277e565b6060806000611189611e1e565b9050600081516001600160401b038111156111a6576111a661335c565b6040519080825280602002602001820160405280156111eb57816020015b60408051808201909152600080825260208201528152602001906001900390816111c45790505b50905060005b8251811015611278576015600084838151811061121057611210613aba565b602002602001015181526020019081526020016000206000016040518060400160405290816000820154815260200160018201548152505082828151811061125a5761125a613aba565b6020026020010181905250808061127090613af7565b9150506111f1565b5090939092509050565b6001600160a01b03841660009081526003602052604081205460ff166112e2576112b0858585856001610dc9565b506001600160a01b038516600090815260026020908152604080832087905560039091529020805460ff191660011790555b506001949350505050565b6000610be660115490565b3360008181526003602052604081205490919060ff1661139b5760405162461bcd60e51b815260206004820152605260248201527f476f7665726e6f723a20796f75206e65656420746f2063617374206120766f7460448201527f652077697468207468652070726f6f66206174206c65617374206f6e636520616064820152711b99081e5bdd481a185d995b89dd081e595d60721b608482015260a401610d8e565b6113b785828686604051806020016040528060008152506123fe565b95945050505050565b60165460009060ff166113e55760405162461bcd60e51b8152600401610d8e90613a26565b50601a5490565b60008281526015602090815260408083206001600160a01b0385168452600301909152902080546001909101545b9250929050565b606060088054610c50906139ec565b6000610be6600f5490565b60006060808280808361146e7f000000000000000000000000000000000000000000000000000000000000000083612b0b565b6114997f00000000000000000000000000000000000000000000000000000000000000006001612b0b565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60165460009060ff166114e85760405162461bcd60e51b8152600401610d8e90613a26565b5060009081526017602052604090205490565b60165460609060ff166115205760405162461bcd60e51b8152600401610d8e90613a26565b6019805480602002602001604051908101604052809291908181526020018280548015610cc957602002820191906000526020600020905b815481526020019060010190808311611558575050505050905090565b600461157f61193f565b600481111561159057611590613898565b146116135760405162461bcd60e51b815260206004820152604760248201527f476f7665726e6f72536f7274696e673a20636f6e74657374206d75737420626560448201527f20746f2063616c63756c61746520736f7274656420616e6420746965642070726064820152666f706f73616c7360c81b608482015260a401610d8e565b60165460ff16156116b25760405162461bcd60e51b815260206004820152605f60248201527f476f7665726e6f72536f7274696e673a20736574536f72746564416e6454696560448201527f6450726f706f73616c7328292068617320616c7265616479206265656e20727560648201527f6e20616e642069747320726573706563746976652076616c7565732073657400608482015260a401610d8e565b6116bc6001610f49565b80516116d091601991602090910190612f64565b506019546000906001906116e49082613aa7565b601b5560005b6019548110156118775760195460009061170690600190613b10565b905060008061174f601961171a8686613b10565b8154811061172a5761172a613aba565b9060005260206000200154600090815260156020526040902080546001909101549091565b909250905060006117608284613ad0565b9050846000036117a1576019549096508690600103611798576117838585613b10565b600087815260176020526040902055601a8690555b50505050611865565b8681036117f45760008681526018602052604090205460ff166117d8576000868152601860205260409020805460ff191660011790555b6019546117e6906001613aa7565b601b54036117f457601b8690555b86811461182d576118058585613b10565b611810906001613aa7565b6000878152601760205260409020558561182981613af7565b9650505b60195461183b866001613aa7565b0361185f5761184a8585613b10565b600087815260176020526040902055601a8690555b95505050505b8061186f81613af7565b9150506116ea565b50506016805460ff1916600117905550565b60008181526015602090815260409182902060028101805484518185028101850190955280855260609492938301828280156118ee57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118d0575b5050505050915050919050565b6000611908338484610cd3565b6119245760405162461bcd60e51b8152600401610d8e90613b23565b61192d84612152565b506119378461277e565b949350505050565b60095460009060ff16156119535750600290565b600061195d610bdb565b905042811061196e57600091505090565b6000611978611cf6565b905042811061198a5760039250505090565b6000611994610dad565b90504281106119a7576001935050505090565b6004935050505090565b6119b9612faf565b6000828152600a6020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b900460ff161515928101929092526001810180549293919291840191611a0b906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054611a37906139ec565b8015611a845780601f10611a5957610100808354040283529160200191611a84565b820191906000526020600020905b815481529060010190602001808311611a6757829003601f168201915b5050509183525050604080516020818101835260028501546001600160a01b03168252808401919091528151600385018054606093810283018401855282850181815294909501949193909284928491840182828015611b0d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611aef575b50505050508152602001600182015481525050815250509050919050565b6060806000611b38611e1e565b9050600081516001600160401b03811115611b5557611b5561335c565b604051908082528060200260200182016040528015611b7e578160200160208202803683370190505b509050600082516001600160401b03811115611b9c57611b9c61335c565b604051908082528060200260200182016040528015611be157816020015b6040805180820190915260008082526020820152815260200190600190039081611bba5790505b5090506000805b8451811015611cea57611c20858281518110611c0657611c06613aba565b602002602001015160009081526006602052604090205490565b600114611cd857848181518110611c3957611c39613aba565b6020026020010151848381518110611c5357611c53613aba565b60200260200101818152505060156000868381518110611c7557611c75613aba565b6020026020010151815260200190815260200160002060000160405180604001604052908160008201548152602001600182015481525050838381518110611cbf57611cbf613aba565b6020908102919091010152611cd5600183613aa7565b91505b80611ce281613af7565b915050611be8565b50919590945092505050565b6000611d00610f06565b610dbf610bdb565b611d10610c2d565b6001600160a01b0316336001600160a01b031614611d2d57600080fd5b6000611d3761193f565b90506002816004811115611d4d57611d4d613898565b14158015611d6d57506004816004811115611d6a57611d6a613898565b14155b611db95760405162461bcd60e51b815260206004820152601c60248201527f476f7665726e6f723a20636f6e74657374206e6f7420616374697665000000006044820152606401610d8e565b6009805460ff191660011790556040517f4cd963a081760a54f571abc0f1db4dde31b4a07d8d6da3e844b8c6f47eeaaa4290600090a150565b60165460009060ff16611e175760405162461bcd60e51b8152600401610d8e90613a26565b50601b5490565b60606005805480602002602001604051908101604052809291908181526020018280548015610cc95760200282019190600052602060002090815481526020019060010190808311611558575050505050905090565b611e7c610c2d565b6001600160a01b0316336001600160a01b031614611f025760405162461bcd60e51b815260206004820152603760248201527f476f7665726e6f723a206f6e6c792074686520636f6e7465737420637265617460448201527f6f722063616e2064656c6574652070726f706f73616c730000000000000000006064820152608401610d8e565b6004611f0c61193f565b6004811115611f1d57611f1d613898565b03611fa25760405162461bcd60e51b815260206004820152604960248201527f476f7665726e6f723a2064656c6574696f6e206f662070726f706f73616c732060448201527f61667465722074686520656e64206f66206120636f6e74657374206973206e6f6064820152681d08185b1b1bddd95960ba1b608482015260a401610d8e565b60005b815181101561207c5760066000838381518110611fc457611fc4613aba565b602002602001015181526020019081526020016000205460011461206a57600160066000848481518110611ffa57611ffa613aba565b60200260200101518152602001908152602001600020819055506040518060600160405280603d8152602001613cb3603d9139600a600084848151811061204357612043613aba565b6020026020010151815260200190815260200160002060010190816120689190613bc1565b505b8061207481613af7565b915050611fa5565b507f75a75cf5c561892f4cc5b26c1b8e933849b42238c96dd073d080d1ae96c51416816040516120ac9190613349565b60405180910390a150565b6120bf610c2d565b6001600160a01b0316336001600160a01b0316146120dc57600080fd5b60006120f0601c546001600160a01b031690565b601c80546001600160a01b0319166001600160a01b0385811691821790925560408051928416835260208301919091529192507f753a2cf8d360cff631674504210913e48247f8e56b3e6d2006c2103d4095999f910160405180910390a15050565b80516000906001600160a01b031633146121c75760405162461bcd60e51b815260206004820152603060248201527f476f7665726e6f723a207468652070726f706f73616c20617574686f72206d7560448201526f39ba1031329036b9b39739b2b73232b960811b6064820152608401610d8e565b60005b600281101561237f5760008160018111156121e7576121e7613898565b905060008160018111156121fd576121fd613898565b03612208575061236d565b600181600181111561221c5761221c613898565b0361235257608084015151516000036122ae5760405162461bcd60e51b815260206004820152604860248201527f476f7665726e6f724d6574616461746156616c69646174696f6e3a207468657260448201527f652063616e6e6f74206265207a65726f207369676e65727320696e20736166656064820152674d6574616461746160c01b608482015260a401610d8e565b83608001516020015160000361233a5760405162461bcd60e51b8152602060048201526044602482018190527f476f7665726e6f724d6574616461746156616c69646174696f6e3a2074687265908201527f73686f6c642063616e6e6f74206265207a65726f20696e20736166654d6574616064820152636461746160e01b608482015260a401610d8e565b6080840151515160000361234d57600080fd5b61236b565b6040516308b6566d60e11b815260040160405180910390fd5b505b8061237781613af7565b9150506121ca565b508160400151516000036123d55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c00000000000000006044820152606401610d8e565b506001919050565b6000610be660105490565b6000826123f58584612bb7565b14949350505050565b6000600161240a61193f565b600481111561241b5761241b613898565b146124745760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b6064820152608401610d8e565b600083116124d85760405162461bcd60e51b815260206004820152602b60248201527f476f7665726e6f723a2063616e6e6f7420766f746520776974682030206f722060448201526a666577657220766f74657360a81b6064820152608401610d8e565b6001600160a01b03851660009081526003602052604090205460ff1661257e5760405162461bcd60e51b815260206004820152604f60248201527f476f7665726e6f723a20796f75206e65656420746f2076657269667920796f7560448201527f72206e756d626572206f6620766f74657320616761696e737420746865206d6560648201526e1c9adb19481c9bdbdd08199a5c9cdd608a1b608482015260a401610d8e565b6125b086868686600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002054612c04565b846001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4878686866040516125ef9493929190613c80565b60405180910390a2505050506001600160a01b0316600090815260026020526040902054919050565b600083805b84518110156126765784828151811061263857612638613aba565b602002602001015185828151811061265257612652613aba565b60200260200101511215612664578091505b8061266e81613af7565b91505061261d565b50848103612688576000915050610d62565b600084868151811061269c5761269c613aba565b602002602001015190508482815181106126b8576126b8613aba565b60200260200101518587815181106126d2576126d2613aba565b602002602001018181525050808583815181106126f1576126f1613aba565b602002602001018181525050600084878151811061271157612711613aba565b6020026020010151905084838151811061272d5761272d613aba565b602002602001015185888151811061274757612747613aba565b6020026020010181815250508085848151811061276657612766613aba565b60209081029190910101525060019695505050505050565b6000600361278a61193f565b600481111561279b5761279b613898565b1461280e5760405162461bcd60e51b815260206004820152603e60248201527f476f7665726e6f723a20636f6e74657374206d7573742062652071756575656460448201527f20666f722070726f706f73616c7320746f206265207375626d697474656400006064820152608401610d8e565b612816611430565b336000908152600b6020526040902054106128cd5760405162461bcd60e51b815260206004820152606560248201527f476f7665726e6f723a207468652073616d6520616464726573732063616e6e6f60448201527f74207375626d6974206d6f7265207468616e20746865206e756d416c6c6f776560648201527f6450726f706f73616c5375626d697373696f6e7320666f72207468697320636f6084820152641b9d195cdd60da1b60a482015260c401610d8e565b6128d56123dd565b6005541061294b5760405162461bcd60e51b815260206004820152603960248201527f476f7665726e6f723a20746865206d6178206e756d626572206f662070726f7060448201527f6f73616c732068617665206265656e207375626d6974746564000000000000006064820152608401610d8e565b6000612956836110e1565b6000818152600a6020526040902054909150600160a01b900460ff16156129d15760405162461bcd60e51b815260206004820152602960248201527f476f7665726e6f723a206475706c69636174652070726f706f73616c73206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610d8e565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018290556000828152600a602090815260409182902086518154928801511515600160a01b026001600160a81b03199093166001600160a01b0390911617919091178155908501518592820190612a559082613bc1565b506060820151516002820180546001600160a01b0319166001600160a01b039092169190911790556080820151805180516003840191612a9a91839160200190613020565b50602091820151600191820155336000908152600b9092526040822080549194509250612ac8908490613aa7565b9091555050604080518281523360208201527fcd423cc1203c0af96b9b3d68d73b3064a69de2d14450bb7181c5e5df2132b358910160405180910390a192915050565b606060ff8314612b2557612b1e83612ed1565b9050610c1c565b818054612b31906139ec565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5d906139ec565b8015612baa5780601f10612b7f57610100808354040283529160200191612baa565b820191906000526020600020905b815481529060010190602001808311612b8d57829003601f168201915b5050505050905092915050565b600081815b8451811015612bfc57612be882868381518110612bdb57612bdb613aba565b6020026020010151612f10565b915080612bf481613af7565b915050612bbc565b509392505050565b60008581526015602090815260408083206001600160a01b0388168452601490925290912054612c349083613b10565b831115612c9f5760405162461bcd60e51b815260206004820152603360248201527f476f7665726e6f72566f74696e6753696d706c653a206e6f7420656e6f756768604482015272081d9bdd195cc81b19599d081d1bc818d85cdd606a1b6064820152608401610d8e565b6001600160a01b03851660009081526003820160205260409020541560ff8516612d1157815484908390600090612cd7908490613aa7565b90915550506001600160a01b038616600090815260038301602052604081208054869290612d06908490613aa7565b90915550612e4b9050565b60001960ff861601612de557612d256112ed565b600114612d9c576040805162461bcd60e51b81526020600482015260248101919091527f476f7665726e6f72566f74696e6753696d706c653a20646f776e766f74696e6760448201527f206973206e6f7420656e61626c656420666f72207468697320436f6e746573746064820152608401610d8e565b83826000016001016000828254612db39190613aa7565b90915550506001600160a01b038616600090815260038301602052604081206001018054869290612d06908490613aa7565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b6064820152608401610d8e565b8015612e8257600282018054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b6001600160a01b03861660009081526014602052604081208054869290612eaa908490613aa7565b925050819055508360136000828254612ec39190613aa7565b909155505050505050505050565b60606000612ede83612f3c565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000818310612f2c576000828152602084905260409020610d62565b5060009182526020526040902090565b600060ff8216601f811115610c1c57604051632cd44ac360e21b815260040160405180910390fd5b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f578251825591602001919060010190612f84565b50612fab929150613075565b5090565b6040518060a0016040528060006001600160a01b0316815260200160001515815260200160608152602001612ff9604051806020016040528060006001600160a01b031681525090565b815260200161301b604051806040016040528060608152602001600081525090565b905290565b828054828255906000526020600020908101928215612f9f579160200282015b82811115612f9f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613040565b5b80821115612fab5760008155600101613076565b60006020828403121561309c57600080fd5b81356001600160e01b031981168114610d6257600080fd5b6000815180845260005b818110156130da576020818501810151868301820152016130be565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610d6260208301846130b4565b60006020828403121561311f57600080fd5b5035919050565b815181526020808301519082015260408101610c1c565b6001600160a01b038116811461315257600080fd5b50565b60008083601f84011261316757600080fd5b5081356001600160401b0381111561317e57600080fd5b6020830191508360208260051b850101111561141a57600080fd5b6000806000604084860312156131ae57600080fd5b83356131b98161313d565b925060208401356001600160401b038111156131d457600080fd5b6131e086828701613155565b9497909650939450505050565b803580151581146131fd57600080fd5b919050565b60008060008060006080868803121561321a57600080fd5b85356132258161313d565b94506020860135935060408601356001600160401b0381111561324757600080fd5b61325388828901613155565b90945092506132669050606087016131ed565b90509295509295909350565b803560ff811681146131fd57600080fd5b60008060008060008060a0878903121561329c57600080fd5b863595506132ac60208801613272565b9450604087013593506060870135925060808701356001600160401b038111156132d557600080fd5b6132e189828a01613155565b979a9699509497509295939492505050565b60006020828403121561330557600080fd5b610d62826131ed565b600081518084526020808501945080840160005b8381101561333e57815187529582019590820190600101613322565b509495945050505050565b602081526000610d62602083018461330e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156133945761339461335c565b60405290565b60405160a081016001600160401b03811182821017156133945761339461335c565b604051601f8201601f191681016001600160401b03811182821017156133e4576133e461335c565b604052919050565b6000602082840312156133fe57600080fd5b604051602081018181106001600160401b03821117156134205761342061335c565b60405290508082356134318161313d565b905292915050565b60006001600160401b038211156134525761345261335c565b5060051b60200190565b60006040828403121561346e57600080fd5b613476613372565b905081356001600160401b0381111561348e57600080fd5b8201601f8101841361349f57600080fd5b803560206134b46134af83613439565b6133bc565b82815260059290921b830181019181810190878411156134d357600080fd5b938201935b838510156134fa5784356134eb8161313d565b825293820193908201906134d8565b85525093840135938301939093525092915050565b600060a0828403121561352157600080fd5b61352961339a565b905081356135368161313d565b815260206135458382016131ed565b8183015260408301356001600160401b038082111561356357600080fd5b818501915085601f83011261357757600080fd5b8135818111156135895761358961335c565b61359b601f8201601f191685016133bc565b81815287858386010111156135af57600080fd5b8185850186830137600085838301015280604087015250506135d486606087016133ec565b606085015260808501359250808311156135ed57600080fd5b50506135fb8482850161345c565b60808301525092915050565b60006020828403121561361957600080fd5b81356001600160401b0381111561362f57600080fd5b6119378482850161350f565b6000604080835261364e8184018661330e565b83810360208581019190915285518083528682019282019060005b818110156136965761368683865180518252602090810151910152565b9383019391850191600101613669565b509098975050505050505050565b600080600080606085870312156136ba57600080fd5b84356136c58161313d565b93506020850135925060408501356001600160401b038111156136e757600080fd5b6136f387828801613155565b95989497509550505050565b60006020828403121561371157600080fd5b8135610d628161313d565b60008060006060848603121561373157600080fd5b8335925061374160208501613272565b9150604084013590509250925092565b6000806040838503121561376457600080fd5b8235915060208301356137768161313d565b809150509250929050565b60ff60f81b8816815260e0602082015260006137a060e08301896130b4565b82810360408401526137b281896130b4565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506137e3818561330e565b9a9950505050505050505050565b600081518084526020808501945080840160005b8381101561333e5781516001600160a01b031687529582019590820190600101613805565b602081526000610d6260208301846137f1565b60008060006040848603121561385257600080fd5b83356001600160401b038082111561386957600080fd5b6138758783880161350f565b9450602086013591508082111561388b57600080fd5b506131e086828701613155565b634e487b7160e01b600052602160045260246000fd5b60208101600583106138d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600060018060a01b03808451166020840152602084015115156040840152604084015160a0606085015261391160c08501826130b4565b90508160608601515116608085015260808501519150601f198482030160a085015281516040825261394660408301826137f1565b6020938401519290930191909152509392505050565b6000602080838503121561396f57600080fd5b82356001600160401b0381111561398557600080fd5b8301601f8101851361399657600080fd5b80356139a46134af82613439565b81815260059190911b820183019083810190878311156139c357600080fd5b928401925b828410156139e1578335825292840192908401906139c8565b979650505050505050565b600181811c90821680613a0057607f821691505b602082108103613a2057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526045908201527f526577617264734d6f64756c653a2072756e20736574536f72746564416e645460408201527f69656450726f706f73616c73282920746f20706f70756c61746520746869732060608201526476616c756560d81b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c1c57610c1c613a91565b634e487b7160e01b600052603260045260246000fd5b8181036000831280158383131683831282161715613af057613af0613a91565b5092915050565b600060018201613b0957613b09613a91565b5060010190565b81810381811115610c1c57610c1c613a91565b6020808252602f908201527f476f7665726e6f723a2061646472657373206973206e6f74207065726d69737360408201526e1a5bdb9959081d1bc81cdd589b5a5d608a1b606082015260800190565b601f821115613bbc57600081815260208120601f850160051c81016020861015613b995750805b601f850160051c820191505b81811015613bb857828155600101613ba5565b5050505b505050565b81516001600160401b03811115613bda57613bda61335c565b613bee81613be884546139ec565b84613b72565b602080601f831160018114613c235760008415613c0b5750858301515b600019600386901b1c1916600185901b178555613bb8565b600085815260208120601f198616915b82811015613c5257888601518255948401946001909101908401613c33565b5085821015613c705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260ff84166020820152826040820152608060608201526000613ca860808301846130b4565b969550505050505056fe546869732070726f706f73616c20686173206265656e2064656c65746564206279207468652063726561746f72206f662074686520636f6e746573742ea264697066735822122024bf350849a566b9406441513436ab64c28ff31946a37b3a3a3504e93acb68ff64736f6c63430008130033", "sourceMap": "271:1911:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2289:37:41;271:1911:40;;;;;1155:136;;;;;;;;;;;;;:::i;:::-;;;160:25:51;;;148:2;133:18;1155:136:40;;;;;;;;2400:214:41;;;;;;;;;;-1:-1:-1;2400:214:41;;;;;:::i;:::-;;:::i;:::-;;;652:14:51;;645:22;627:41;;615:2;600:18;2400:214:41;487:187:51;1437:136:40;;;;;;;;;;;;;:::i;2054:126::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;843:32:51;;;825:51;;813:2;798:18;2054:126:40;679:203:51;2670:98:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;752:60:44:-;;;;;;;;;;-1:-1:-1;752:60:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7167:528:41:-;;;;;;;;;;-1:-1:-1;7167:528:41;;;;;:::i;:::-;;:::i;950:249:47:-;;;;;;;;;;-1:-1:-1;950:249:47;;;;;:::i;:::-;;:::i;5347:126:41:-;;;;;;;;;;;;;:::i;1304:539:42:-;;;;;;;;;;-1:-1:-1;1304:539:42;;;;;:::i;:::-;;:::i;1054:73:41:-;;;;;;;;;;;;1107:20;1054:73;;1297:134:40;;;;;;;;;;;;;:::i;6619:140:41:-;;;;;;;;;;-1:-1:-1;6619:140:41;;;;;:::i;:::-;6695:7;6721:31;;;:19;:31;;;;;;;6619:140;12649:353;;;;;;;;;;-1:-1:-1;12649:353:41;;;;;:::i;:::-;;:::i;5069:1024:47:-;;;;;;;;;;-1:-1:-1;5069:1024:47;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4034:163:41:-;;;;;;;;;;-1:-1:-1;4034:163:41;;;;;:::i;:::-;;:::i;9440:469::-;;;;;;;;;;-1:-1:-1;9440:469:41;;;;;:::i;:::-;;:::i;328:43:43:-;;;;;;;;;;;;370:1;328:43;;2610:566:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;12137:452:41:-;;;;;;;;;;-1:-1:-1;12137:452:41;;;;;:::i;:::-;;:::i;1152:302:44:-;;;;;;;;;;-1:-1:-1;1152:302:44;;;;;:::i;:::-;1224:16;1310:32;;;:20;:32;;;;;1360:40;;1402:44;;;;;1360:40;;1152:302;;;;;11918:25:51;;;11974:2;11959:18;;11952:34;;;;11891:18;1152:302:44;11744:248:51;2987:101:41;;;;;;;;;;-1:-1:-1;3069:12:41;;;;;;;;;;;;-1:-1:-1;;;3069:12:41;;;;2987:101;;6371:130;;;;;;;;;;-1:-1:-1;6371:130:41;;;;;:::i;:::-;-1:-1:-1;;;;;6470:24:41;6444:7;6470:24;;;:15;:24;;;;;;;6371:130;1903:145:40;;;;;;;;;;;;;:::i;13074:443:41:-;;;;;;;;;;-1:-1:-1;13074:443:41;;;;;:::i;:::-;;:::i;1956:242:47:-;;;;;;;;;;;;;:::i;1557:424:44:-;;;;;;;;;;-1:-1:-1;1557:424:44;;;;;:::i;:::-;;:::i;536:123:45:-;;;;;;;;;;-1:-1:-1;630:22:45;;-1:-1:-1;;;;;630:22:45;536:123;;2826:102:41;;;;;;;;;;;;;:::i;612:29:44:-;;;;;;;;;;;;;;;;1579:169:40;;;;;;;;;;;;;:::i;5021:633:32:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;1286:281:47:-;;;;;;;;;;-1:-1:-1;1286:281:47;;;;;:::i;:::-;;:::i;1632:259::-;;;;;;;;;;;;;:::i;1191:57:41:-;;;;;;;;;;-1:-1:-1;1191:57:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;6519:3166:47;;;;;;;;;;;;;:::i;685:61:44:-;;;;;;;;;;-1:-1:-1;685:61:44;;;;;:::i;:::-;;;;;;;;;;;;;;2425:215;;;;;;;;;;-1:-1:-1;2425:215:44;;;;;:::i;:::-;-1:-1:-1;;;;;2594:39:44;2545:26;2594:39;;;:26;:39;;;;;;;2425:215;2082:232;;;;;;;;;;-1:-1:-1;2082:232:44;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;378:45:42:-;;;;;;;;;;;;;;;9028:341:41;;;;;;;;;;-1:-1:-1;9028:341:41;;;;;:::i;:::-;;:::i;4254:675::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6140:137::-;;;;;;;;;;-1:-1:-1;6140:137:41;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1254:56::-;;;;;;;;;;-1:-1:-1;1254:56:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;3301:952:47;;;;;;;;;;;;;:::i;273:55::-;;;;;;;;;;-1:-1:-1;273:55:47;;;;;;;;931:128:44;;;;;;;;;;-1:-1:-1;1019:33:44;;;;;;;;;;;;;;;;;931:128;;429:41:42;;;;;;;;;;;;;;;1133:52:41;;;;;;;;;;-1:-1:-1;1133:52:41;;;;;:::i;:::-;;;;;;;;;;;;;;953:95;;;;;;;;;;;;995:53;953:95;;5158:122;;;;;;;;;;;;;:::i;334:62:47:-;;;;;;;;;;-1:-1:-1;334:62:47;;;;;:::i;:::-;;;;;;;;;;;;;;11774:300:41;;;;;;;;;;;;;:::i;2265:252:47:-;;;;;;;;;;;;;:::i;4985:112:41:-;;;;;;;;;;;;;:::i;10930:753::-;;;;;;;;;;-1:-1:-1;10930:753:41;;;;;:::i;:::-;;:::i;781:356:45:-;;;;;;;;;;-1:-1:-1;781:356:45;;;;;:::i;:::-;;:::i;7767:1202:41:-;;;;;;;;;;-1:-1:-1;7767:1202:41;;;;;:::i;:::-;;:::i;1754:143:40:-;;;;;;;;;;;;;:::i;1155:136::-;1238:7;1264:20;1997:13:46;;;1909:108;1264:20:40;1257:27;;1155:136;:::o;2400:214:41:-;2502:4;-1:-1:-1;;;;;;2525:42:41;;-1:-1:-1;;;2525:42:41;;:82;;-1:-1:-1;;;;;;;;;;937:40:35;;;2571:36:41;2518:89;2400:214;-1:-1:-1;;2400:214:41:o;1437:136:40:-;1520:7;1546:20;2338:13:46;;;2250:108;2054:126:40;2132:7;2158:15;3113:8:46;;-1:-1:-1;;;;;3113:8:46;;3030:98;2670::41;2724:13;2756:5;2749:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2670:98;:::o;7167:528::-;-1:-1:-1;;;;;7289:33:41;;7259:13;7289:33;;;:24;:33;;;;;;;;7284:384;;7342:20;7366:1;7342:25;7338:146;;-1:-1:-1;7465:4:41;7458:11;;7338:146;7497:61;7508:7;1107:20;7545:5;;7552;7497:10;:61::i;:::-;-1:-1:-1;;;;;;7617:33:41;;;;;;:24;:33;;;;;:40;;-1:-1:-1;;7617:40:41;7653:4;7617:40;;;7284:384;-1:-1:-1;7684:4:41;7167:528;;;;;;:::o;950:249:47:-;1041:35;;1004:4;;1041:35;;1020:139;;;;-1:-1:-1;;;1020:139:47;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1176:16:47;;;;:7;:16;;;;;;;;;950:249::o;5347:126:41:-;5412:7;5452:14;:12;:14::i;:::-;5438:11;:9;:11::i;:::-;:28;;;;:::i;1304:539:42:-;1559:40;;-1:-1:-1;;19622:2:51;19618:15;;;19614:53;1559:40:42;;;19602:66:51;19684:12;;;19677:28;;;1448:13:42;;;;19721:12:51;;1559:40:42;;;;;;;;;;;;1549:51;;;;;;1534:66;;1610:16;1629:6;:138;;1714:53;1733:5;;1714:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1740:20:42;;-1:-1:-1;1762:4:42;;-1:-1:-1;1714:18:42;;-1:-1:-1;1714:53:42:i;:::-;1629:138;;;1650:49;1669:5;;1650:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1676:16:42;;-1:-1:-1;1694:4:42;;-1:-1:-1;1650:18:42;;-1:-1:-1;1650:49:42:i;:::-;1610:157;;1782:11;1777:38;;1802:13;;-1:-1:-1;;;1802:13:42;;;;;;;;;;;1777:38;-1:-1:-1;1832:4:42;;1304:539;-1:-1:-1;;;;;;;1304:539:42:o;1297:134:40:-;1379:7;1405:19;2167:12:46;;;2080:106;12649:353:41;12831:7;12870:10;12890:37;12870:10;12909;12921:5;;12890:11;:37::i;:::-;;12944:51;12954:10;12966:5;12973:7;12982:8;12944:51;;;;;;;;;;;;:9;:51::i;:::-;12937:58;12649:353;-1:-1:-1;;;;;;;;12649:353:41:o;5069:1024:47:-;5185:40;5242:31;5275:43;5334:23;:89;;5400:23;:21;:23::i;:::-;5334:89;;;5360:37;:35;:37::i;:::-;5241:182;;;;5465:1;5441:14;:21;:25;5433:88;;;;-1:-1:-1;;;5433:88:47;;19946:2:51;5433:88:47;;;19928:21:51;19985:2;19965:18;;;19958:30;20024:34;20004:18;;;19997:62;-1:-1:-1;;;20075:18:51;;;20068:48;20133:19;;5433:88:47;19744:414:51;5433:88:47;5531:32;5579:14;:21;-1:-1:-1;;;;;5566:35:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5566:35:47;;5531:70;;5616:9;5611:217;5635:23;:30;5631:1;:34;5611:217;;;5777:23;5801:1;5777:26;;;;;;;;:::i;:::-;;;;;;;:39;;;5731:23;5755:1;5731:26;;;;;;;;:::i;:::-;;;;;;;:35;;;5724:93;;;;:::i;:::-;5686:16;5703:1;5686:19;;;;;;;;:::i;:::-;;;;;;;;;;:131;5667:3;;;;:::i;:::-;;;;5611:217;;;;5842:9;5837:219;5885:1;5861:14;:21;:25;;;;:::i;:::-;5857:1;:29;5837:219;;;5999:46;6009:1;6012:16;6030:14;5999:9;:46::i;:::-;-1:-1:-1;5888:3:47;;;;:::i;:::-;;;;5837:219;;;-1:-1:-1;6072:14:47;;5069:1024;-1:-1:-1;;;;5069:1024:47:o;4034:163:41:-;4124:7;4179:8;4168:20;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4168:20:41;;;;;;;;;4158:31;;4168:20;4158:31;;;;;4034:163;-1:-1:-1;;4034:163:41:o;9440:469::-;9532:7;9555:20;:25;9551:272;;9749:10;9724:36;;;;:24;:36;;;;;;;;9716:96;;;;-1:-1:-1;;;9716:96:41;;;;;;;:::i;:::-;9832:30;9853:8;9832:20;:30::i;:::-;;9879:23;9893:8;9879:13;:23::i;2610:566:47:-;2704:34;2740:49;2805:28;2836:19;:17;:19::i;:::-;2805:50;;2865:43;2928:11;:18;-1:-1:-1;;;;;2911:36:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2911:36:47;;;;;;;;;;;;;;;;2865:82;;2962:9;2957:158;2981:11;:18;2977:1;:22;2957:158;;;3049:20;:36;3070:11;3082:1;3070:14;;;;;;;;:::i;:::-;;;;;;;3049:36;;;;;;;;;;;:55;;3020:84;;;;;;;;;;;;;;;;;;;;;;;;;:23;3044:1;3020:26;;;;;;;;:::i;:::-;;;;;;:84;;;;3001:3;;;;;:::i;:::-;;;;2957:158;;;-1:-1:-1;3132:11:47;;3145:23;;-1:-1:-1;2610:566:47;-1:-1:-1;2610:566:47:o;12137:452:41:-;-1:-1:-1;;;;;12304:34:41;;12270:13;12304:34;;;:25;:34;;;;;;;;12299:263;;12354:44;12365:7;12374:10;12386:5;;12393:4;12354:10;:44::i;:::-;-1:-1:-1;;;;;;12457:26:41;;;;;;:17;:26;;;;;;;;:39;;;12510:25;:34;;;;;:41;;-1:-1:-1;;12510:41:41;12547:4;12510:41;;;12299:263;-1:-1:-1;12578:4:41;12137:452;;;;;;:::o;1903:145:40:-;1990:7;2016:25;2946:18:46;;;2853:118;13074:443:41;13261:10;13222:7;13302:32;;;:25;:32;;;;;;13222:7;;13261:10;13302:32;;13281:161;;;;-1:-1:-1;;;13281:161:41;;21391:2:51;13281:161:41;;;21373:21:51;21430:2;21410:18;;;21403:30;21469:34;21449:18;;;21442:62;21540:34;21520:18;;;21513:62;-1:-1:-1;;;21591:19:51;;;21584:49;21650:19;;13281:161:41;21189:486:51;13281:161:41;13459:51;13469:10;13481:5;13488:7;13497:8;13459:51;;;;;;;;;;;;:9;:51::i;:::-;13452:58;13074:443;-1:-1:-1;;;;;13074:443:41:o;1956:242:47:-;2042:35;;2002:7;;2042:35;;2021:139;;;;-1:-1:-1;;;2021:139:47;;;;;;;:::i;:::-;-1:-1:-1;2177:14:47;;;1956:242::o;1557:424:44:-;1689:16;1779:32;;;:20;:32;;;;;;;;-1:-1:-1;;;;;1842:43:44;;;;:30;;:43;;;;;:52;;1908:56;;;;;1557:424;;;;;;:::o;2826:102:41:-;2882:13;2914:7;2907:14;;;;;:::i;1579:169:40:-;1678:7;1704:37;2543:30:46;;;2438:142;5021:633:32;5136:13;5163:18;;5136:13;;;5163:18;5427:41;:5;5136:13;5427:26;:41::i;:::-;5482:47;:8;5512:16;5482:29;:47::i;:::-;5621:16;;;5605:1;5621:16;;;;;;;;;-1:-1:-1;;;5376:271:32;;;-1:-1:-1;5376:271:32;;-1:-1:-1;5543:13:32;;-1:-1:-1;5578:4:32;;-1:-1:-1;5605:1:32;-1:-1:-1;5621:16:32;-1:-1:-1;5376:271:32;-1:-1:-1;5021:633:32:o;1286:281:47:-;1389:35;;1349:7;;1389:35;;1368:139;;;;-1:-1:-1;;;1368:139:47;;;;;;;:::i;:::-;-1:-1:-1;1524:36:47;;;;:27;:36;;;;;;;1286:281::o;1632:259::-;1731:35;;1682:16;;1731:35;;1710:139;;;;-1:-1:-1;;;1710:139:47;;;;;;;:::i;:::-;1866:18;1859:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1632:259;:::o;6519:3166::-;6613:32;6602:7;:5;:7::i;:::-;:43;;;;;;;;:::i;:::-;;6581:161;;;;-1:-1:-1;;;6581:161:47;;21882:2:51;6581:161:47;;;21864:21:51;21921:2;21901:18;;;21894:30;21960:34;21940:18;;;21933:62;22031:34;22011:18;;;22004:62;-1:-1:-1;;;22082:19:51;;;22075:38;22130:19;;6581:161:47;21680:475:51;6581:161:47;6773:35;;;;:44;6752:186;;;;-1:-1:-1;;;6752:186:47;;22362:2:51;6752:186:47;;;22344:21:51;22401:2;22381:18;;;22374:30;22440:34;22420:18;;;22413:62;22511:34;22491:18;;;22484:62;22583:33;22562:19;;;22555:62;22634:19;;6752:186:47;22160:499:51;6752:186:47;6970:21;6986:4;6970:15;:21::i;:::-;6949:42;;;;:18;;:42;;;;;;:::i;:::-;-1:-1:-1;7096:18:47;:25;7002:21;;7063:1;;7096:29;;7063:1;7096:29;:::i;:::-;7074:19;:51;7198:9;7193:2433;7217:18;:25;7213:29;;7193:2433;;;7293:18;:25;7263:27;;7293:29;;7321:1;;7293:29;:::i;:::-;7263:59;-1:-1:-1;7397:23:47;;7469:58;7483:18;7502:23;7524:1;7263:59;7502:23;:::i;:::-;7483:43;;;;;;;;:::i;:::-;;;;;;;;;1224:16:44;1310:32;;;:20;:32;;;;;1360:40;;1402:44;;;;;1360:40;;1152:302;7469:58:47;7396:131;;-1:-1:-1;7396:131:47;-1:-1:-1;7541:24:47;7568:53;7396:131;;7568:53;:::i;:::-;7541:80;;7705:1;7710;7705:6;7701:474;;7929:18;:25;7748:17;;-1:-1:-1;7748:17:47;;7958:1;7929:30;7925:209;;8034:23;8056:1;8034:19;:23;:::i;:::-;7983:48;;;;:27;:48;;;;;:74;8079:14;:36;;;7925:209;8152:8;;;;;;7701:474;8279:14;8258:17;:35;8254:481;;8318:28;;;;:7;:28;;;;;;;;8313:161;;8420:28;;;;:7;:28;;;;;:35;;-1:-1:-1;;8420:35:47;8451:4;8420:35;;;8313:161;8518:18;:25;:29;;8546:1;8518:29;:::i;:::-;8495:19;;:52;8491:230;;8661:19;:41;;;8491:230;8968:14;8947:17;:35;8943:291;;9153:23;9175:1;9153:19;:23;:::i;:::-;:27;;9179:1;9153:27;:::i;:::-;9102:48;;;;:27;:48;;;;;:78;9130:19;9198:21;9130:19;9198:21;:::i;:::-;;;;8943:291;9379:18;:25;9370:5;:1;9374;9370:5;:::i;:::-;:34;9366:201;;9475:23;9497:1;9475:19;:23;:::i;:::-;9424:48;;;;:27;:48;;;;;:74;9516:14;:36;;;9366:201;9598:17;-1:-1:-1;;;;7193:2433:47;7244:3;;;;:::i;:::-;;;;7193:2433;;;-1:-1:-1;;9636:35:47;:42;;-1:-1:-1;;9636:42:47;9674:4;9636:42;;;-1:-1:-1;6519:3166:47:o;2082:232:44:-;2195:33;2231:32;;;:20;:32;;;;;;;;;2280:27;;;2273:34;;;;;;;;;;;;;;;;;2167:16;;2231:32;;2273:34;;2280:27;2273:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2273:34:44;;;;;;;;;;;;;;;;;;;;;;;;2082:232;;;:::o;9028:341:41:-;9166:7;9197:33;9212:10;9224:5;;9197:14;:33::i;:::-;9189:93;;;;-1:-1:-1;;;9189:93:41;;;;;;;:::i;:::-;9292:30;9313:8;9292:20;:30::i;:::-;;9339:23;9353:8;9339:13;:23::i;:::-;9332:30;9028:341;-1:-1:-1;;;;9028:341:41:o;4254:675::-;4337:9;;4309:12;;4337:9;;4333:68;;;-1:-1:-1;4369:21:41;;4254:675::o;4333:68::-;4411:29;4443:14;:12;:14::i;:::-;4411:46;;4497:15;4472:21;:40;4468:101;;4535:23;4528:30;;;4254:675;:::o;4468:101::-;4579:26;4608:11;:9;:11::i;:::-;4579:40;;4656:15;4634:18;:37;4630:94;;4694:19;4687:26;;;;4254:675;:::o;4630:94::-;4734:25;4762:17;:15;:17::i;:::-;4734:45;;4815:15;4794:17;:36;4790:93;;4853:19;4846:26;;;;;4254:675;:::o;4790:93::-;4900:22;4893:29;;;;;4254:675;:::o;6140:137::-;6210:19;;:::i;:::-;6248:22;;;;:10;:22;;;;;;;;;6241:29;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;-1:-1:-1;;;6241:29:41;;;;;;;;;;;;;;;;;;;;6248:22;;6241:29;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6241:29:41;;;-1:-1:-1;;6241:29:41;;;;;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6241:29:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6140:137;;;:::o;3301:952:47:-;3409:34;3445:49;3510:28;3541:19;:17;:19::i;:::-;3510:50;;3570:42;3629:11;:18;-1:-1:-1;;;;;3615:33:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3615:33:47;;3570:78;;3658:43;3721:11;:18;-1:-1:-1;;;;;3704:36:47;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;3704:36:47;;;;;;;;;;;;;;;;3658:82;;3751:29;3799:9;3794:384;3818:11;:18;3814:1;:22;3794:384;;;3863:33;3881:11;3893:1;3881:14;;;;;;;;:::i;:::-;;;;;;;6695:7:41;6721:31;;;:19;:31;;;;;;;6619:140;3863:33:47;3900:1;3863:38;3857:311;;3973:11;3985:1;3973:14;;;;;;;;:::i;:::-;;;;;;;3922:25;3948:21;3922:48;;;;;;;;:::i;:::-;;;;;;:65;;;;;4054:20;:36;4075:11;4087:1;4075:14;;;;;;;;:::i;:::-;;;;;;;4054:36;;;;;;;;;;;:55;;4005:104;;;;;;;;;;;;;;;;;;;;;;;;;:23;4029:21;4005:46;;;;;;;;:::i;:::-;;;;;;;;;;:104;4127:26;4152:1;4127:26;;:::i;:::-;;;3857:311;3838:3;;;;:::i;:::-;;;;3794:384;;;-1:-1:-1;4195:25:47;;4222:23;;-1:-1:-1;3301:952:47;-1:-1:-1;;;3301:952:47:o;5158:122:41:-;5217:7;5260:13;:11;:13::i;:::-;5243:14;:12;:14::i;11774:300::-;11839:9;:7;:9::i;:::-;-1:-1:-1;;;;;11825:23:41;:10;-1:-1:-1;;;;;11825:23:41;;11817:32;;;;;;11860:19;11882:7;:5;:7::i;:::-;11860:29;-1:-1:-1;11918:21:41;11908:6;:31;;;;;;;;:::i;:::-;;;:67;;;;-1:-1:-1;11953:22:41;11943:6;:32;;;;;;;;:::i;:::-;;;11908:67;11900:108;;;;-1:-1:-1;;;11900:108:41;;22866:2:51;11900:108:41;;;22848:21:51;22905:2;22885:18;;;22878:30;22944;22924:18;;;22917:58;22992:18;;11900:108:41;22664:352:51;11900:108:41;12018:9;:16;;-1:-1:-1;;12018:16:41;12030:4;12018:16;;;12050:17;;;;12018:9;;12050:17;11807:267;11774:300::o;2265:252:47:-;2356:35;;2316:7;;2356:35;;2335:139;;;;-1:-1:-1;;;2335:139:47;;;;;;;:::i;:::-;-1:-1:-1;2491:19:47;;;2265:252::o;4985:112:41:-;5043:16;5078:12;5071:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4985:112;:::o;10930:753::-;11032:9;:7;:9::i;:::-;-1:-1:-1;;;;;11018:23:41;:10;-1:-1:-1;;;;;11018:23:41;;11010:91;;;;-1:-1:-1;;;11010:91:41;;23223:2:51;11010:91:41;;;23205:21:51;23262:2;23242:18;;;23235:30;23301:34;23281:18;;;23274:62;23372:25;23352:18;;;23345:53;23415:19;;11010:91:41;23021:419:51;11010:91:41;11143:22;11132:7;:5;:7::i;:::-;:33;;;;;;;;:::i;:::-;;11111:153;;;;-1:-1:-1;;;11111:153:41;;23647:2:51;11111:153:41;;;23629:21:51;23686:2;23666:18;;;23659:30;23725:34;23705:18;;;23698:62;23796:34;23776:18;;;23769:62;-1:-1:-1;;;23847:19:51;;;23840:40;23897:19;;11111:153:41;23445:477:51;11111:153:41;11280:13;11275:357;11307:11;:18;11299:5;:26;11275:357;;;11354:19;:39;11374:11;11386:5;11374:18;;;;;;;;:::i;:::-;;;;;;;11354:39;;;;;;;;;;;;11397:1;11354:44;11350:272;;11460:1;11418:19;:39;11438:11;11450:5;11438:18;;;;;;;;:::i;:::-;;;;;;;11418:39;;;;;;;;;;;:43;;;;11479:128;;;;;;;;;;;;;;;;;:10;:30;11490:11;11502:5;11490:18;;;;;;;;:::i;:::-;;;;;;;11479:30;;;;;;;;;;;:42;;:128;;;;;;:::i;:::-;;11350:272;11327:7;;;;:::i;:::-;;;;11275:357;;;;11647:29;11664:11;11647:29;;;;;;:::i;:::-;;;;;;;;10930:753;:::o;781:356:45:-;900:9;:7;:9::i;:::-;-1:-1:-1;;;;;886:23:45;:10;-1:-1:-1;;;;;886:23:45;;878:32;;;;;;920:38;961:23;630:22;;-1:-1:-1;;;;;630:22:45;;536:123;961:23;994:22;:47;;-1:-1:-1;;;;;;994:47:45;-1:-1:-1;;;;;994:47:45;;;;;;;;;1056:74;;;26423:15:51;;;26405:34;;26470:2;26455:18;;26448:43;;;;920:64:45;;-1:-1:-1;1056:74:45;;26340:18:51;1056:74:45;;;;;;;868:269;781:356;:::o;7767:1202:41:-;7898:15;;7860:18;;-1:-1:-1;;;;;7898:29:41;7917:10;7898:29;7890:90;;;;-1:-1:-1;;;7890:90:41;;26704:2:51;7890:90:41;;;26686:21:51;26743:2;26723:18;;;26716:30;26782:34;26762:18;;;26755:62;-1:-1:-1;;;26833:18:51;;;26826:46;26889:19;;7890:90:41;26502:412:51;7890:90:41;7995:13;7990:866;370:1:43;8014:5:41;:23;7990:866;;;8062:25;8100:5;8090:16;;;;;;;;:::i;:::-;8062:44;-1:-1:-1;8143:16:41;8124:15;:35;;;;;;;;:::i;:::-;;8120:726;;8179:8;;;8120:726;8288:14;8269:15;:33;;;;;;;;:::i;:::-;;8265:581;;8351:21;;;;:29;:36;:29;:41;8322:184;;;;-1:-1:-1;;;8322:184:41;;27121:2:51;8322:184:41;;;27103:21:51;27160:2;27140:18;;;27133:30;27199:34;27179:18;;;27172:62;27270:34;27250:18;;;27243:62;-1:-1:-1;;;27321:19:51;;;27314:39;27370:19;;8322:184:41;26919:476:51;8322:184:41;8553:8;:21;;;:31;;;8588:1;8553:36;8524:175;;;;-1:-1:-1;;;8524:175:41;;27602:2:51;8524:175:41;;;27584:21:51;27641:2;27621:18;;;27614:30;;;27680:34;27660:18;;;27653:62;27751:34;27731:18;;;27724:62;-1:-1:-1;;;27802:19:51;;;27795:35;27847:19;;8524:175:41;27400:472:51;8524:175:41;8725:21;;;;:29;:36;:29;:41;8717:50;;;;;;8265:581;;;8813:18;;-1:-1:-1;;;8813:18:41;;;;;;;;;;;8265:581;8048:808;7990:866;8039:7;;;;:::i;:::-;;;;7990:866;;;;8879:8;:20;;;8873:34;8911:1;8873:39;8865:76;;;;-1:-1:-1;;;8865:76:41;;28079:2:51;8865:76:41;;;28061:21:51;28118:2;28098:18;;;28091:30;28157:26;28137:18;;;28130:54;28201:18;;8865:76:41;27877:348:51;8865:76:41;-1:-1:-1;8958:4:41;;7767:1202;-1:-1:-1;7767:1202:41:o;1754:143:40:-;1840:7;1866:24;2754:17:46;;;2662:116;1156:154:33;1247:4;1299;1270:25;1283:5;1290:4;1270:12;:25::i;:::-;:33;;1156:154;-1:-1:-1;;;;1156:154:33:o;13798:722:41:-;13959:7;14001:19;13990:7;:5;:7::i;:::-;:30;;;;;;;;:::i;:::-;;13982:78;;;;-1:-1:-1;;;13982:78:41;;28432:2:51;13982:78:41;;;28414:21:51;28471:2;28451:18;;;28444:30;28510:34;28490:18;;;28483:62;-1:-1:-1;;;28561:18:51;;;28554:33;28604:19;;13982:78:41;28230:399:51;13982:78:41;14089:1;14078:8;:12;14070:68;;;;-1:-1:-1;;;14070:68:41;;28836:2:51;14070:68:41;;;28818:21:51;28875:2;28855:18;;;28848:30;28914:34;28894:18;;;28887:62;-1:-1:-1;;;28965:18:51;;;28958:41;29016:19;;14070:68:41;28634:407:51;14070:68:41;-1:-1:-1;;;;;14170:34:41;;;;;;:25;:34;;;;;;;;14149:160;;;;-1:-1:-1;;;14149:160:41;;29248:2:51;14149:160:41;;;29230:21:51;29287:2;29267:18;;;29260:30;29326:34;29306:18;;;29299:62;29397:34;29377:18;;;29370:62;-1:-1:-1;;;29448:19:51;;;29441:46;29504:19;;14149:160:41;29046:483:51;14149:160:41;14319:78;14330:10;14342:7;14351;14360:8;14370:17;:26;14388:7;-1:-1:-1;;;;;14370:26:41;-1:-1:-1;;;;;14370:26:41;;;;;;;;;;;;;14319:10;:78::i;:::-;14422:7;-1:-1:-1;;;;;14413:56:41;;14431:10;14443:7;14452:8;14462:6;14413:56;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;;14487:26:41;;;;;:17;:26;;;;;;;13798:722;-1:-1:-1;13798:722:41:o;4259:717:47:-;4402:4;4437:3;;4450:171;4476:16;:23;4472:1;:27;4450:171;;;4546:16;4563:4;4546:22;;;;;;;;:::i;:::-;;;;;;;4524:16;4541:1;4524:19;;;;;;;;:::i;:::-;;;;;;;:44;4520:91;;;4595:1;4588:8;;4520:91;4501:3;;;;:::i;:::-;;;;4450:171;;;;4642:3;4634:4;:11;4630:29;;4654:5;4647:12;;;;;4630:29;4669:15;4687:16;4704:3;4687:21;;;;;;;;:::i;:::-;;;;;;;4669:39;;4742:16;4759:4;4742:22;;;;;;;;:::i;:::-;;;;;;;4718:16;4735:3;4718:21;;;;;;;;:::i;:::-;;;;;;:46;;;;;4799:8;4774:16;4791:4;4774:22;;;;;;;;:::i;:::-;;;;;;:33;;;;;4817:22;4842:11;4854:3;4842:16;;;;;;;;:::i;:::-;;;;;;;4817:41;;4887:11;4899:4;4887:17;;;;;;;;:::i;:::-;;;;;;;4868:11;4880:3;4868:16;;;;;;;;:::i;:::-;;;;;;:36;;;;;4934:14;4914:11;4926:4;4914:17;;;;;;;;:::i;:::-;;;;;;;;;;:34;-1:-1:-1;4965:4:47;;4259:717;-1:-1:-1;;;;;;4259:717:47:o;9915:905:41:-;9994:7;10032:19;10021:7;:5;:7::i;:::-;:30;;;;;;;;:::i;:::-;;10013:105;;;;-1:-1:-1;;;10013:105:41;;30183:2:51;10013:105:41;;;30165:21:51;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;30332:32;30312:18;;;30305:60;30382:19;;10013:105:41;29981:426:51;10013:105:41;10179:31;:29;:31::i;:::-;10165:10;10149:27;;;;:15;:27;;;;;;:61;10128:209;;;;-1:-1:-1;;;10128:209:41;;30614:2:51;10128:209:41;;;30596:21:51;30653:3;30633:18;;;30626:31;30693:34;30673:18;;;30666:62;30764:34;30744:18;;;30737:62;30836:34;30815:19;;;30808:63;-1:-1:-1;;;30887:19:51;;;30880:36;30933:19;;10128:209:41;30412:546:51;10128:209:41;10377:18;:16;:18::i;:::-;10355:12;:19;:40;10347:110;;;;-1:-1:-1;;;10347:110:41;;31165:2:51;10347:110:41;;;31147:21:51;31204:2;31184:18;;;31177:30;31243:34;31223:18;;;31216:62;31314:27;31294:18;;;31287:55;31359:19;;10347:110:41;30963:421:51;10347:110:41;10468:18;10489:22;10502:8;10489:12;:22::i;:::-;10530;;;;:10;:22;;;;;:29;:22;;-1:-1:-1;;;;10530:29:41;;;;10529:30;10521:84;;;;-1:-1:-1;;;10521:84:41;;31591:2:51;10521:84:41;;;31573:21:51;31630:2;31610:18;;;31603:30;31669:34;31649:18;;;31642:62;-1:-1:-1;;;31720:18:51;;;31713:39;31769:19;;10521:84:41;31389:405:51;10521:84:41;10616:12;:29;;;;;;;;;;;;;;-1:-1:-1;10655:22:41;;;:10;10616:29;10655:22;;;;;;;;:33;;;;;;;;;;-1:-1:-1;;;10655:33:41;-1:-1:-1;;;;;;10655:33:41;;;-1:-1:-1;;;;;10655:33:41;;;;;;;;;;;;;;10680:8;;10655:33;;;;;;;:::i;:::-;-1:-1:-1;10655:33:41;;;;;;;;;;-1:-1:-1;;;;;;10655:33:41;-1:-1:-1;;;;;10655:33:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10655:33:41;;;;;;;;;;10714:10;10698:27;;;;:15;:27;;;;;;:32;;10655:33;;-1:-1:-1;10698:27:41;-1:-1:-1;10698:32:41;;10655:33;;10698:32;:::i;:::-;;;;-1:-1:-1;;10746:39:41;;;31973:25:51;;;10774:10:41;32029:2:51;32014:18;;32007:60;10746:39:41;;31946:18:51;10746:39:41;;;;;;;10803:10;9915:905;-1:-1:-1;;9915:905:41:o;3367:268:27:-;3461:13;1371:66;3490:47;;3486:143;;3560:15;3569:5;3560:8;:15::i;:::-;3553:22;;;;3486:143;3613:5;3606:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:268;;;;:::o;1934:290:33:-;2017:7;2059:4;2017:7;2073:116;2097:5;:12;2093:1;:16;2073:116;;;2145:33;2155:12;2169:5;2175:1;2169:8;;;;;;;;:::i;:::-;;;;;;;2145:9;:33::i;:::-;2130:48;-1:-1:-1;2111:3:33;;;;:::i;:::-;;;;2073:116;;;-1:-1:-1;2205:12:33;1934:290;-1:-1:-1;;;1934:290:33:o;2780:1308:44:-;2954:33;2990:32;;;:20;:32;;;;;;;;-1:-1:-1;;;;;3080:35:44;;;;:26;:35;;;;;;;3067:48;;:10;:48;:::i;:::-;3054:8;:62;;3033:160;;;;-1:-1:-1;;;3033:160:44;;32280:2:51;3033:160:44;;;32262:21:51;32319:2;32299:18;;;32292:30;32358:34;32338:18;;;32331:62;-1:-1:-1;;;32409:18:51;;;32402:49;32468:19;;3033:160:44;32078:415:51;3033:160:44;-1:-1:-1;;;;;3227:39:44;;3204:20;3227:39;;;:30;;;:39;;;;;:48;:53;3295:30;;;3291:601;;3341:52;;3385:8;;3341:12;;:31;;:52;;3385:8;;3341:52;:::i;:::-;;;;-1:-1:-1;;;;;;;3407:39:44;;;;;;:30;;;:39;;;;;:60;;3459:8;;3407:39;:60;;3459:8;;3407:60;:::i;:::-;;;;-1:-1:-1;3291:601:44;;-1:-1:-1;3291:601:44;;-1:-1:-1;;3488:34:44;;;;3484:408;;3546:19;:17;:19::i;:::-;3569:1;3546:24;3538:101;;;;;-1:-1:-1;;;3538:101:44;;32700:2:51;3538:101:44;;;32682:21:51;32719:18;;;32712:30;;;;32778:34;32758:18;;;32751:62;32849:34;32829:18;;;32822:62;32901:19;;3538:101:44;32498:428:51;3538:101:44;3701:8;3653:12;:31;;:44;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3723:39:44;;;;;;:30;;;:39;;;;;:52;;:64;;3779:8;;3723:39;:64;;3779:8;;3723:64;:::i;3484:408::-;3818:63;;-1:-1:-1;;;3818:63:44;;33133:2:51;3818:63:44;;;33115:21:51;33172:2;33152:18;;;33145:30;33211:34;33191:18;;;33184:62;-1:-1:-1;;;33262:18:51;;;33255:51;33323:19;;3818:63:44;32931:417:51;3484:408:44;3906:15;3902:87;;;3937:27;;;:41;;;;;;;-1:-1:-1;3937:41:44;;;;;;;;;;-1:-1:-1;;;;;;3937:41:44;-1:-1:-1;;;;;3937:41:44;;;;;3902:87;-1:-1:-1;;;;;3998:35:44;;;;;;:26;:35;;;;;:47;;4037:8;;3998:35;:47;;4037:8;;3998:47;:::i;:::-;;;;;;;;4073:8;4055:14;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;2780:1308:44:o;2059:405:27:-;2118:13;2143:11;2157:16;2168:4;2157:10;:16::i;:::-;2281:14;;;2292:2;2281:14;;;;;;;;;2143:30;;-1:-1:-1;2261:17:27;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:27;;;-1:-1:-1;2416:4:27;2407:14;;2400:28;;;;-1:-1:-1;2371:16:27;2059:405::o;9205:147:33:-;9268:7;9298:1;9294;:5;:51;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9294:51;;;-1:-1:-1;9426:13:33;9517:15;;;9552:4;9545:15;9598:4;9582:21;;;9205:147::o;2536:245:27:-;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;-1:-1:-1;;;2721:20:27;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:286:51;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;349:23;;-1:-1:-1;;;;;;401:32:51;;391:43;;381:71;;448:1;445;438:12;887:423;929:3;967:5;961:12;994:6;989:3;982:19;1019:1;1029:162;1043:6;1040:1;1037:13;1029:162;;;1105:4;1161:13;;;1157:22;;1151:29;1133:11;;;1129:20;;1122:59;1058:12;1029:162;;;1033:3;1236:1;1229:4;1220:6;1215:3;1211:16;1207:27;1200:38;1299:4;1292:2;1288:7;1283:2;1275:6;1271:15;1267:29;1262:3;1258:39;1254:50;1247:57;;;887:423;;;;:::o;1315:220::-;1464:2;1453:9;1446:21;1427:4;1484:45;1525:2;1514:9;1510:18;1502:6;1484:45;:::i;1540:180::-;1599:6;1652:2;1640:9;1631:7;1627:23;1623:32;1620:52;;;1668:1;1665;1658:12;1620:52;-1:-1:-1;1691:23:51;;1540:180;-1:-1:-1;1540:180:51:o;1881:257::-;1801:12;;1789:25;;1863:4;1852:16;;;1846:23;1830:14;;;1823:47;2073:2;2058:18;;2085:47;1725:151;2143:131;-1:-1:-1;;;;;2218:31:51;;2208:42;;2198:70;;2264:1;2261;2254:12;2198:70;2143:131;:::o;2279:367::-;2342:8;2352:6;2406:3;2399:4;2391:6;2387:17;2383:27;2373:55;;2424:1;2421;2414:12;2373:55;-1:-1:-1;2447:20:51;;-1:-1:-1;;;;;2479:30:51;;2476:50;;;2522:1;2519;2512:12;2476:50;2559:4;2551:6;2547:17;2535:29;;2619:3;2612:4;2602:6;2599:1;2595:14;2587:6;2583:27;2579:38;2576:47;2573:67;;;2636:1;2633;2626:12;2651:572;2746:6;2754;2762;2815:2;2803:9;2794:7;2790:23;2786:32;2783:52;;;2831:1;2828;2821:12;2783:52;2870:9;2857:23;2889:31;2914:5;2889:31;:::i;:::-;2939:5;-1:-1:-1;2995:2:51;2980:18;;2967:32;-1:-1:-1;;;;;3011:30:51;;3008:50;;;3054:1;3051;3044:12;3008:50;3093:70;3155:7;3146:6;3135:9;3131:22;3093:70;:::i;:::-;2651:572;;3182:8;;-1:-1:-1;3067:96:51;;-1:-1:-1;;;;2651:572:51:o;3228:160::-;3293:20;;3349:13;;3342:21;3332:32;;3322:60;;3378:1;3375;3368:12;3322:60;3228:160;;;:::o;3393:709::-;3503:6;3511;3519;3527;3535;3588:3;3576:9;3567:7;3563:23;3559:33;3556:53;;;3605:1;3602;3595:12;3556:53;3644:9;3631:23;3663:31;3688:5;3663:31;:::i;:::-;3713:5;-1:-1:-1;3765:2:51;3750:18;;3737:32;;-1:-1:-1;3820:2:51;3805:18;;3792:32;-1:-1:-1;;;;;3836:30:51;;3833:50;;;3879:1;3876;3869:12;3833:50;3918:70;3980:7;3971:6;3960:9;3956:22;3918:70;:::i;:::-;4007:8;;-1:-1:-1;3892:96:51;-1:-1:-1;4061:35:51;;-1:-1:-1;4092:2:51;4077:18;;4061:35;:::i;:::-;4051:45;;3393:709;;;;;;;;:::o;4107:156::-;4173:20;;4233:4;4222:16;;4212:27;;4202:55;;4253:1;4250;4243:12;4268:713;4388:6;4396;4404;4412;4420;4428;4481:3;4469:9;4460:7;4456:23;4452:33;4449:53;;;4498:1;4495;4488:12;4449:53;4534:9;4521:23;4511:33;;4563:36;4595:2;4584:9;4580:18;4563:36;:::i;:::-;4553:46;;4646:2;4635:9;4631:18;4618:32;4608:42;;4697:2;4686:9;4682:18;4669:32;4659:42;;4752:3;4741:9;4737:19;4724:33;-1:-1:-1;;;;;4772:6:51;4769:30;4766:50;;;4812:1;4809;4802:12;4766:50;4851:70;4913:7;4904:6;4893:9;4889:22;4851:70;:::i;:::-;4268:713;;;;-1:-1:-1;4268:713:51;;-1:-1:-1;4268:713:51;;4940:8;;4268:713;-1:-1:-1;;;4268:713:51:o;4986:180::-;5042:6;5095:2;5083:9;5074:7;5070:23;5066:32;5063:52;;;5111:1;5108;5101:12;5063:52;5134:26;5150:9;5134:26;:::i;5171:435::-;5224:3;5262:5;5256:12;5289:6;5284:3;5277:19;5315:4;5344:2;5339:3;5335:12;5328:19;;5381:2;5374:5;5370:14;5402:1;5412:169;5426:6;5423:1;5420:13;5412:169;;;5487:13;;5475:26;;5521:12;;;;5556:15;;;;5448:1;5441:9;5412:169;;;-1:-1:-1;5597:3:51;;5171:435;-1:-1:-1;;;;;5171:435:51:o;5611:261::-;5790:2;5779:9;5772:21;5753:4;5810:56;5862:2;5851:9;5847:18;5839:6;5810:56;:::i;5877:127::-;5938:10;5933:3;5929:20;5926:1;5919:31;5969:4;5966:1;5959:15;5993:4;5990:1;5983:15;6009:257;6081:4;6075:11;;;6113:17;;-1:-1:-1;;;;;6145:34:51;;6181:22;;;6142:62;6139:88;;;6207:18;;:::i;:::-;6243:4;6236:24;6009:257;:::o;6271:253::-;6343:2;6337:9;6385:4;6373:17;;-1:-1:-1;;;;;6405:34:51;;6441:22;;;6402:62;6399:88;;;6467:18;;:::i;6529:275::-;6600:2;6594:9;6665:2;6646:13;;-1:-1:-1;;6642:27:51;6630:40;;-1:-1:-1;;;;;6685:34:51;;6721:22;;;6682:62;6679:88;;;6747:18;;:::i;:::-;6783:2;6776:22;6529:275;;-1:-1:-1;6529:275:51:o;6809:486::-;6870:5;6918:4;6906:9;6901:3;6897:19;6893:30;6890:50;;;6936:1;6933;6926:12;6890:50;6969:2;6963:9;7011:4;7003:6;6999:17;7082:6;7070:10;7067:22;-1:-1:-1;;;;;7034:10:51;7031:34;7028:62;7025:88;;;7093:18;;:::i;:::-;7129:2;7122:22;7162:6;-1:-1:-1;7162:6:51;7192:23;;7224:33;7192:23;7224:33;:::i;:::-;7266:23;;6809:486;;-1:-1:-1;;6809:486:51:o;7300:183::-;7360:4;-1:-1:-1;;;;;7385:6:51;7382:30;7379:56;;;7415:18;;:::i;:::-;-1:-1:-1;7460:1:51;7456:14;7472:4;7452:25;;7300:183::o;7488:1048::-;7547:5;7595:4;7583:9;7578:3;7574:19;7570:30;7567:50;;;7613:1;7610;7603:12;7567:50;7635:22;;:::i;:::-;7626:31;;7693:9;7680:23;-1:-1:-1;;;;;7718:6:51;7715:30;7712:50;;;7758:1;7755;7748:12;7712:50;7781:22;;7834:4;7826:13;;7822:23;-1:-1:-1;7812:51:51;;7859:1;7856;7849:12;7812:51;7895:2;7882:16;7917:4;7941:60;7957:43;7997:2;7957:43;:::i;:::-;7941:60;:::i;:::-;8035:15;;;8117:1;8113:10;;;;8105:19;;8101:28;;;8066:12;;;;8141:15;;;8138:35;;;8169:1;8166;8159:12;8138:35;8193:11;;;;8213:223;8229:6;8224:3;8221:15;8213:223;;;8311:3;8298:17;8328:33;8353:7;8328:33;:::i;:::-;8374:20;;8246:12;;;;8414;;;;8213:223;;;8445:20;;-1:-1:-1;8510:18:51;;;8497:32;8481:14;;;8474:56;;;;-1:-1:-1;8452:5:51;7488:1048;-1:-1:-1;;7488:1048:51:o;8541:1282::-;8600:5;8648:4;8636:9;8631:3;8627:19;8623:30;8620:50;;;8666:1;8663;8656:12;8620:50;8688:22;;:::i;:::-;8679:31;;8747:9;8734:23;8766:33;8791:7;8766:33;:::i;:::-;8808:22;;8849:2;8883:35;8899:18;;;8883:35;:::i;:::-;8878:2;8871:5;8867:14;8860:59;8970:2;8959:9;8955:18;8942:32;-1:-1:-1;;;;;9034:2:51;9026:6;9023:14;9020:34;;;9050:1;9047;9040:12;9020:34;9088:6;9077:9;9073:22;9063:32;;9133:3;9126:4;9122:2;9118:13;9114:23;9104:51;;9151:1;9148;9141:12;9104:51;9187:2;9174:16;9209:2;9205;9202:10;9199:36;;;9215:18;;:::i;:::-;9257:53;9300:2;9281:13;;-1:-1:-1;;9277:27:51;9273:36;;9257:53;:::i;:::-;9333:2;9326:5;9319:17;9373:3;9368:2;9363;9359;9355:11;9351:20;9348:29;9345:49;;;9390:1;9387;9380:12;9345:49;9445:2;9440;9436;9432:11;9427:2;9420:5;9416:14;9403:45;9489:1;9484:2;9479;9472:5;9468:14;9464:23;9457:34;9523:5;9518:2;9511:5;9507:14;9500:29;;;9561:57;9614:3;9609:2;9598:9;9594:18;9561:57;:::i;:::-;9556:2;9549:5;9545:14;9538:81;9672:3;9661:9;9657:19;9644:33;9628:49;;9702:2;9692:8;9689:16;9686:36;;;9718:1;9715;9708:12;9686:36;;;9755:61;9812:3;9801:8;9790:9;9786:24;9755:61;:::i;:::-;9749:3;9742:5;9738:15;9731:86;;8541:1282;;;;:::o;9828:356::-;9918:6;9971:2;9959:9;9950:7;9946:23;9942:32;9939:52;;;9987:1;9984;9977:12;9939:52;10027:9;10014:23;-1:-1:-1;;;;;10052:6:51;10049:30;10046:50;;;10092:1;10089;10082:12;10046:50;10115:63;10170:7;10161:6;10150:9;10146:22;10115:63;:::i;10189:905::-;10467:4;10496:2;10525;10514:9;10507:21;10551:56;10603:2;10592:9;10588:18;10580:6;10551:56;:::i;:::-;10664:22;;;10626:2;10644:18;;;10637:50;;;;10736:13;;10758:22;;;10834:15;;;;10796;;;10867:1;10877:191;10891:6;10888:1;10885:13;10877:191;;;10940:48;10984:3;10975:6;10969:13;1801:12;;1789:25;;1863:4;1852:16;;;1846:23;1830:14;;1823:47;1725:151;10940:48;11043:15;;;;11008:12;;;;10913:1;10906:9;10877:191;;;-1:-1:-1;11085:3:51;;10189:905;-1:-1:-1;;;;;;;;10189:905:51:o;11099:640::-;11203:6;11211;11219;11227;11280:2;11268:9;11259:7;11255:23;11251:32;11248:52;;;11296:1;11293;11286:12;11248:52;11335:9;11322:23;11354:31;11379:5;11354:31;:::i;:::-;11404:5;-1:-1:-1;11456:2:51;11441:18;;11428:32;;-1:-1:-1;11511:2:51;11496:18;;11483:32;-1:-1:-1;;;;;11527:30:51;;11524:50;;;11570:1;11567;11560:12;11524:50;11609:70;11671:7;11662:6;11651:9;11647:22;11609:70;:::i;:::-;11099:640;;;;-1:-1:-1;11698:8:51;-1:-1:-1;;;;11099:640:51:o;11997:247::-;12056:6;12109:2;12097:9;12088:7;12084:23;12080:32;12077:52;;;12125:1;12122;12115:12;12077:52;12164:9;12151:23;12183:31;12208:5;12183:31;:::i;12249:318::-;12324:6;12332;12340;12393:2;12381:9;12372:7;12368:23;12364:32;12361:52;;;12409:1;12406;12399:12;12361:52;12445:9;12432:23;12422:33;;12474:36;12506:2;12495:9;12491:18;12474:36;:::i;:::-;12464:46;;12557:2;12546:9;12542:18;12529:32;12519:42;;12249:318;;;;;:::o;12572:315::-;12640:6;12648;12701:2;12689:9;12680:7;12676:23;12672:32;12669:52;;;12717:1;12714;12707:12;12669:52;12753:9;12740:23;12730:33;;12813:2;12802:9;12798:18;12785:32;12826:31;12851:5;12826:31;:::i;:::-;12876:5;12866:15;;;12572:315;;;;;:::o;13131:920::-;13537:3;13532;13528:13;13520:6;13516:26;13505:9;13498:45;13579:3;13574:2;13563:9;13559:18;13552:31;13479:4;13606:46;13647:3;13636:9;13632:19;13624:6;13606:46;:::i;:::-;13700:9;13692:6;13688:22;13683:2;13672:9;13668:18;13661:50;13734:33;13760:6;13752;13734:33;:::i;:::-;13798:2;13783:18;;13776:34;;;-1:-1:-1;;;;;13847:32:51;;13841:3;13826:19;;13819:61;13867:3;13896:19;;13889:35;;;13961:22;;;13955:3;13940:19;;13933:51;13720:47;-1:-1:-1;14001:44:51;13720:47;14030:6;14001:44;:::i;:::-;13993:52;13131:920;-1:-1:-1;;;;;;;;;;13131:920:51:o;14056:461::-;14109:3;14147:5;14141:12;14174:6;14169:3;14162:19;14200:4;14229:2;14224:3;14220:12;14213:19;;14266:2;14259:5;14255:14;14287:1;14297:195;14311:6;14308:1;14305:13;14297:195;;;14376:13;;-1:-1:-1;;;;;14372:39:51;14360:52;;14432:12;;;;14467:15;;;;14408:1;14326:9;14297:195;;14522:261;14701:2;14690:9;14683:21;14664:4;14721:56;14773:2;14762:9;14758:18;14750:6;14721:56;:::i;14970:692::-;15096:6;15104;15112;15165:2;15153:9;15144:7;15140:23;15136:32;15133:52;;;15181:1;15178;15171:12;15133:52;15221:9;15208:23;-1:-1:-1;;;;;15291:2:51;15283:6;15280:14;15277:34;;;15307:1;15304;15297:12;15277:34;15330:63;15385:7;15376:6;15365:9;15361:22;15330:63;:::i;:::-;15320:73;;15446:2;15435:9;15431:18;15418:32;15402:48;;15475:2;15465:8;15462:16;15459:36;;;15491:1;15488;15481:12;15459:36;;15530:72;15594:7;15583:8;15572:9;15568:24;15530:72;:::i;15667:127::-;15728:10;15723:3;15719:20;15716:1;15709:31;15759:4;15756:1;15749:15;15783:4;15780:1;15773:15;15799:346;15949:2;15934:18;;15982:1;15971:13;;15961:144;;16027:10;16022:3;16018:20;16015:1;16008:31;16062:4;16059:1;16052:15;16090:4;16087:1;16080:15;15961:144;16114:25;;;15799:346;:::o;16150:994::-;16341:2;16330:9;16323:21;16304:4;16380:1;16376;16371:3;16367:11;16363:19;16437:2;16428:6;16422:13;16418:22;16413:2;16402:9;16398:18;16391:50;16509:2;16501:6;16497:15;16491:22;16484:30;16477:38;16472:2;16461:9;16457:18;16450:66;16563:2;16555:6;16551:15;16545:22;16603:4;16598:2;16587:9;16583:18;16576:32;16631:52;16678:3;16667:9;16663:19;16649:12;16631:52;:::i;:::-;16617:66;;16755:2;16748;16740:6;16736:15;16730:22;16724:29;16720:38;16714:3;16703:9;16699:19;16692:67;16808:3;16800:6;16796:16;16790:23;16768:45;;16883:2;16879:7;16867:9;16859:6;16855:22;16851:36;16844:4;16833:9;16829:20;16822:66;16925:14;16919:21;16964:2;16956:6;16949:18;16990:61;17047:2;17039:6;17035:15;17019:14;16990:61;:::i;:::-;17110:2;17090:23;;;17084:30;17067:15;;;;17060:55;;;;-1:-1:-1;16976:75:51;16150:994;-1:-1:-1;;;16150:994:51:o;17149:891::-;17233:6;17264:2;17307;17295:9;17286:7;17282:23;17278:32;17275:52;;;17323:1;17320;17313:12;17275:52;17363:9;17350:23;-1:-1:-1;;;;;17388:6:51;17385:30;17382:50;;;17428:1;17425;17418:12;17382:50;17451:22;;17504:4;17496:13;;17492:27;-1:-1:-1;17482:55:51;;17533:1;17530;17523:12;17482:55;17569:2;17556:16;17592:60;17608:43;17648:2;17608:43;:::i;17592:60::-;17686:15;;;17768:1;17764:10;;;;17756:19;;17752:28;;;17717:12;;;;17792:19;;;17789:39;;;17824:1;17821;17814:12;17789:39;17848:11;;;;17868:142;17884:6;17879:3;17876:15;17868:142;;;17950:17;;17938:30;;17901:12;;;;17988;;;;17868:142;;;18029:5;17149:891;-1:-1:-1;;;;;;;17149:891:51:o;18320:380::-;18399:1;18395:12;;;;18442;;;18463:61;;18517:4;18509:6;18505:17;18495:27;;18463:61;18570:2;18562:6;18559:14;18539:18;18536:38;18533:161;;18616:10;18611:3;18607:20;18604:1;18597:31;18651:4;18648:1;18641:15;18679:4;18676:1;18669:15;18533:161;;18320:380;;;:::o;18705:473::-;18907:2;18889:21;;;18946:2;18926:18;;;18919:30;18985:34;18980:2;18965:18;;18958:62;19056:34;19051:2;19036:18;;19029:62;-1:-1:-1;;;19122:3:51;19107:19;;19100:36;19168:3;19153:19;;18705:473::o;19183:127::-;19244:10;19239:3;19235:20;19232:1;19225:31;19275:4;19272:1;19265:15;19299:4;19296:1;19289:15;19315:125;19380:9;;;19401:10;;;19398:36;;;19414:18;;:::i;20163:127::-;20224:10;20219:3;20215:20;20212:1;20205:31;20255:4;20252:1;20245:15;20279:4;20276:1;20269:15;20295:200;20361:9;;;20334:4;20389:9;;20417:10;;20429:12;;;20413:29;20452:12;;;20444:21;;20410:56;20407:82;;;20469:18;;:::i;:::-;20407:82;20295:200;;;;:::o;20500:135::-;20539:3;20560:17;;;20557:43;;20580:18;;:::i;:::-;-1:-1:-1;20627:1:51;20616:13;;20500:135::o;20640:128::-;20707:9;;;20728:11;;;20725:37;;;20742:18;;:::i;20773:411::-;20975:2;20957:21;;;21014:2;20994:18;;;20987:30;21053:34;21048:2;21033:18;;21026:62;-1:-1:-1;;;21119:2:51;21104:18;;21097:45;21174:3;21159:19;;20773:411::o;24053:545::-;24155:2;24150:3;24147:11;24144:448;;;24191:1;24216:5;24212:2;24205:17;24261:4;24257:2;24247:19;24331:2;24319:10;24315:19;24312:1;24308:27;24302:4;24298:38;24367:4;24355:10;24352:20;24349:47;;;-1:-1:-1;24390:4:51;24349:47;24445:2;24440:3;24436:12;24433:1;24429:20;24423:4;24419:31;24409:41;;24500:82;24518:2;24511:5;24508:13;24500:82;;;24563:17;;;24544:1;24533:13;24500:82;;;24504:3;;;24144:448;24053:545;;;:::o;24774:1352::-;24900:3;24894:10;-1:-1:-1;;;;;24919:6:51;24916:30;24913:56;;;24949:18;;:::i;:::-;24978:97;25068:6;25028:38;25060:4;25054:11;25028:38;:::i;:::-;25022:4;24978:97;:::i;:::-;25130:4;;25194:2;25183:14;;25211:1;25206:663;;;;25913:1;25930:6;25927:89;;;-1:-1:-1;25982:19:51;;;25976:26;25927:89;-1:-1:-1;;24731:1:51;24727:11;;;24723:24;24719:29;24709:40;24755:1;24751:11;;;24706:57;26029:81;;25176:944;;25206:663;24000:1;23993:14;;;24037:4;24024:18;;-1:-1:-1;;25242:20:51;;;25360:236;25374:7;25371:1;25368:14;25360:236;;;25463:19;;;25457:26;25442:42;;25555:27;;;;25523:1;25511:14;;;;25390:19;;25360:236;;;25364:3;25624:6;25615:7;25612:19;25609:201;;;25685:19;;;25679:26;-1:-1:-1;;25768:1:51;25764:14;;;25780:3;25760:24;25756:37;25752:42;25737:58;25722:74;;25609:201;-1:-1:-1;;;;;25856:1:51;25840:14;;;25836:22;25823:36;;-1:-1:-1;24774:1352:51:o;29534:442::-;29763:6;29752:9;29745:25;29818:4;29810:6;29806:17;29801:2;29790:9;29786:18;29779:45;29860:6;29855:2;29844:9;29840:18;29833:34;29903:3;29898:2;29887:9;29883:18;29876:31;29726:4;29924:46;29965:3;29954:9;29950:19;29942:6;29924:46;:::i;:::-;29916:54;29534:442;-1:-1:-1;;;;;;29534:442:51:o", "linkReferences": {}, "immutableReferences": { @@ -1705,7 +1705,7 @@ "votingMerkleRoot()": "dd96a19d", "votingPeriod()": "02a251a3" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_prompt\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"_submissionMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_votingMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"_constructorIntParams\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInMerkle\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyMetadatas\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ContestCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldContestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newContestStart\",\"type\":\"uint256\"}],\"name\":\"ContestStartSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldCreator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newCreator\",\"type\":\"address\"}],\"name\":\"CreatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDownvotingAllowed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDownvotingAllowed\",\"type\":\"uint256\"}],\"name\":\"DownvotingAllowedSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxProposalCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxProposalCount\",\"type\":\"uint256\"}],\"name\":\"MaxProposalCountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldNumAllowedProposalSubmissions\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNumAllowedProposalSubmissions\",\"type\":\"uint256\"}],\"name\":\"NumAllowedProposalSubmissionsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"oldOfficialRewardsModule\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"newOfficialRewardsModule\",\"type\":\"address\"}],\"name\":\"OfficialRewardsModuleSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"ProposalsDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AMOUNT_FOR_SUMBITTER_PROOF\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"METADATAS_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressSubmitterVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalCastVoteCounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotesVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotesWithoutDeleted\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"}],\"name\":\"castVoteWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressToCheck\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"voting\",\"type\":\"bool\"}],\"name\":\"checkProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"contestAddressTotalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"userTotalVotesCast\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"deleteProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"downvotingAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNumSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"highestTiedRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"isProposalDeleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"isTied\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lowestRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxProposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numAllowedProposalSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"officialRewardsModule\",\"outputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"proposalAddressVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalAddressesHaveVoted\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalVotesStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts\",\"name\":\"proposalVoteCounts\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"proposeWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"rankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"officialRewardsModule_\",\"type\":\"address\"}],\"name\":\"setOfficialRewardsModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposalsHasBeenRun\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sortedProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"excludeDeletedProposals\",\"type\":\"bool\"}],\"name\":\"sortedProposals\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"sortedProposalIdsReturn\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ContestState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tiedAdjustedRankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"validateProposalData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"dataValidated\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyProposer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyVoter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"ContestCanceled()\":{\"details\":\"Emitted when a contest is canceled.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"ProposalCreated(uint256,address)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalsDeleted(uint256[])\":{\"details\":\"Emitted when proposals are deleted.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast. Note: `support` values should be seen as buckets. There interpretation depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"allProposalTotalVotes()\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"allProposalTotalVotesWithoutDeleted()\":{\"details\":\"Accessor to the internal vote counts for a given proposal that excludes deleted proposals.\"},\"cancel()\":{\"details\":\"Emits a {IGovernor-ContestCanceled} event.\"},\"castVote(uint256,uint8,uint256,uint256,bytes32[])\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteWithoutProof(uint256,uint8,uint256)\":{\"details\":\"See {IGovernor-castVoteWithoutProof}.\"},\"checkProof(address,uint256,bytes32[],bool)\":{\"params\":{\"addressToCheck\":\"address of claimee\",\"amount\":\"to check that the claimee has\",\"proof\":\"merkle proof to prove address and amount are in tree\"}},\"contestAddressTotalVotesCast(address)\":{\"details\":\"Accessor to how many votes an address has cast total for the contest so far.\"},\"contestDeadline()\":{\"details\":\"See {IGovernor-contestDeadline}.\"},\"deleteProposals(uint256[])\":{\"details\":\"Delete proposals. Emits a {IGovernor-ProposalsDeleted} event.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"getAllProposalIds()\":{\"details\":\"Return all proposals.\"},\"getNumSubmissions(address)\":{\"details\":\"Get the number of proposal submissions for a given address.\"},\"getProposal(uint256)\":{\"details\":\"Retrieve proposal data\\\"_.\"},\"hashProposal((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors accross multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"highestTiedRanking()\":{\"details\":\"Getter for highest tied ranking.\"},\"isProposalDeleted(uint256)\":{\"details\":\"Returns if a proposal has been deleted or not (0 if not, 1 if it has been deleted).\"},\"isTied(uint256)\":{\"details\":\"Getter if a given ranking is tied.\"},\"lowestRanking()\":{\"details\":\"Getter for the lowest ranking.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"officialRewardsModule()\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"prompt()\":{\"details\":\"See {IGovernor-prompt}.\"},\"proposalAddressVotes(uint256,address)\":{\"details\":\"Accessor to how many votes an address has cast for a given proposal.\"},\"proposalAddressesHaveVoted(uint256)\":{\"details\":\"Accessor to which addresses have cast a vote for a given proposal.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"propose((address,bool,string,(address),(address[],uint256)),bytes32[])\":{\"details\":\"See {IGovernor-propose}.\"},\"proposeWithoutProof((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-proposeWithoutProof}.\"},\"rankingPosition(uint256)\":{\"details\":\"Getter for tiedAdjustedRankingPosition of a ranking.\"},\"setOfficialRewardsModule(address)\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"setSortedAndTiedProposals()\":{\"details\":\"Setter for _sortedProposalIds, tiedAdjustedRankingPosition, _isTied, _lowestRanking, and _highestTiedRanking. Will only be called once and only needs to be called once because once the contest is complete these values don't change. Determines if a ranking is tied and also where the last iteration of a ranking is in the _sortedProposalIds list taking ties into account.\"},\"sortedProposalIds()\":{\"details\":\"Getter for _sortedProposalIds.\"},\"sortedProposals(bool)\":{\"details\":\"Accessor to sorted list of proposalIds in ascending order.\"},\"state()\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"validateProposalData((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-validateProposalData}.\"},\"verifyProposer(address,bytes32[])\":{\"details\":\"See {IGovernor-verifyProposer}.\"},\"verifyVoter(address,uint256,bytes32[])\":{\"details\":\"See {IGovernor-verifyVoter}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"voteStart()\":{\"details\":\"See {IGovernor-voteStart}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"NotInMerkle()\":[{\"notice\":\"Thrown if address/amount are not part of Merkle tree\"}],\"TooManyMetadatas()\":[{\"notice\":\"Thrown if there is metadata included in a proposal that isn't covered in data validation\"}]},\"kind\":\"user\",\"methods\":{\"checkProof(address,uint256,bytes32[],bool)\":{\"notice\":\"Allows checking of proofs for an address\"},\"submissionMerkleRoot()\":{\"notice\":\"ERC20-claimee inclusion root\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Contest.sol\":\"Contest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/Timers.sol\":{\"keccak256\":\"0x413dd6eccfbd25fff5e6c45500e049fc3b66f1a6c7d482d3ab88b8f4a5060ede\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f12296326560a2591d1e8d5cabcb55a1a82209a6752fe6a08b46bd9a3f9835f\",\"dweb:/ipfs/QmTgY5GkmvuMsrB4bzsfXj6SALnshYyXpKKR8WCXaMpoPM\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/Contest.sol\":{\"keccak256\":\"0xa471cab034594f2c2abee2478c60c024de57070152038716d4deaf704f79143c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19bde157cbcdaa4bc4a6e28390bc2f06a558abcf594d70038e0e4f7cab6ba363\",\"dweb:/ipfs/QmW8Hi3fPYwekpdzPuiYATh5NrHz9RkDSr1LjvTPXnG46V\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x149016f7b5ae5312fbfe6c83478b94b49a935bd1f8c0f5ae797c1ccb9d534057\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43c8bb6621377f18c421d71b59cde65be4a18d14c453da3b8950b90c279a675\",\"dweb:/ipfs/QmTmMycYCohESCwtHZh6GVUV2HuDt9RgXzh9S1Xchp7NPp\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorModuleRegistry.sol\":{\"keccak256\":\"0x62c9d2a2dcaeccf1b6b801595f34abf893416964997e6ba699c9828ada1abefc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18672ac920d4749fec025a7c8610c8cb866addb0ba20e9cfce5bedd91e062776\",\"dweb:/ipfs/QmNPWkqouY45jCeeFYi5metLX9d8BpSuGXLG55A5BZjH4D\"]},\"src/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0x03baf7fa5c11f3d9b50c9df1d193a73bf1e6799f792ce510ccdb4dc86a82d9a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d78ca667bc09e43d8abf0f9ac4e17deaea1a0196aa1bc78c9ac66d734e81cf95\",\"dweb:/ipfs/QmRwfFjbCA6HAn1SRDJ4CKSvmzBqyjce1sDfuwBThj7PWi\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x09fa3f379eeb816436c97a552662e694cbafe92885662325fb6309444cb3c22d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://546bb8afacbb7c4d08e623529d1b257a81d10184af0d420121f8fb91896b440f\",\"dweb:/ipfs/QmUYnJJbhq62uK6FqceXJBKbVAMtXBqYgSHKcSVrbonQGU\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_prompt\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"_submissionMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_votingMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"_constructorIntParams\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInMerkle\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyMetadatas\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ContestCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldContestStart\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newContestStart\",\"type\":\"uint256\"}],\"name\":\"ContestStartSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldCreator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newCreator\",\"type\":\"address\"}],\"name\":\"CreatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldDownvotingAllowed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newDownvotingAllowed\",\"type\":\"uint256\"}],\"name\":\"DownvotingAllowedSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaxProposalCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxProposalCount\",\"type\":\"uint256\"}],\"name\":\"MaxProposalCountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldNumAllowedProposalSubmissions\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNumAllowedProposalSubmissions\",\"type\":\"uint256\"}],\"name\":\"NumAllowedProposalSubmissionsSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"oldOfficialRewardsModule\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract RewardsModule\",\"name\":\"newOfficialRewardsModule\",\"type\":\"address\"}],\"name\":\"OfficialRewardsModuleSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"ProposalsDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VoteCast\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingDelay\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingDelay\",\"type\":\"uint256\"}],\"name\":\"VotingDelaySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldVotingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotingPeriod\",\"type\":\"uint256\"}],\"name\":\"VotingPeriodSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AMOUNT_FOR_SUMBITTER_PROOF\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BALLOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTING_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"METADATAS_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressSubmitterVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalCastVoteCounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressTotalVotesVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProposalTotalVotesWithoutDeleted\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIdsReturn\",\"type\":\"uint256[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts[]\",\"name\":\"proposalVoteCountsArrayReturn\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"castVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"support\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"numVotes\",\"type\":\"uint256\"}],\"name\":\"castVoteWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressToCheck\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool\",\"name\":\"voting\",\"type\":\"bool\"}],\"name\":\"checkProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"contestAddressTotalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"userTotalVotesCast\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contestStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"proposalIds\",\"type\":\"uint256[]\"}],\"name\":\"deleteProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"downvotingAllowed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNumSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"hashProposal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"highestTiedRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"isProposalDeleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"isTied\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lowestRanking\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxProposalCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numAllowedProposalSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"officialRewardsModule\",\"outputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prompt\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"proposalAddressVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalAddressesHaveVoted\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"proposalVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalVotesStructs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"forVotes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"againstVotes\",\"type\":\"uint256\"}],\"internalType\":\"struct GovernorCountingSimple.VoteCounts\",\"name\":\"proposalVoteCounts\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"proposeWithoutProof\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"rankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract RewardsModule\",\"name\":\"officialRewardsModule_\",\"type\":\"address\"}],\"name\":\"setOfficialRewardsModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposals\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setSortedAndTiedProposalsHasBeenRun\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sortedProposalIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"excludeDeletedProposals\",\"type\":\"bool\"}],\"name\":\"sortedProposals\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"sortedProposalIdsReturn\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum IGovernor.ContestState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"submissionMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tiedAdjustedRankingPosition\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalVotesCast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"targetAddress\",\"type\":\"address\"}],\"internalType\":\"struct IGovernor.TargetMetadata\",\"name\":\"targetMetadata\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IGovernor.SafeMetadata\",\"name\":\"safeMetadata\",\"type\":\"tuple\"}],\"internalType\":\"struct IGovernor.ProposalCore\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"validateProposalData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"dataValidated\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyProposer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"verifyVoter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"voteStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingMerkleRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"votingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"ContestCanceled()\":{\"details\":\"Emitted when a contest is canceled.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"ProposalCreated(uint256,address)\":{\"details\":\"Emitted when a proposal is created.\"},\"ProposalsDeleted(uint256[])\":{\"details\":\"Emitted when proposals are deleted.\"},\"VoteCast(address,uint256,uint8,uint256,string)\":{\"details\":\"Emitted when a vote is cast. Note: `support` values should be seen as buckets. There interpretation depends on the voting module used.\"}},\"kind\":\"dev\",\"methods\":{\"COUNTING_MODE()\":{\"details\":\"See {IGovernor-COUNTING_MODE}.\"},\"allProposalTotalVotes()\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"allProposalTotalVotesWithoutDeleted()\":{\"details\":\"Accessor to the internal vote counts for a given proposal that excludes deleted proposals.\"},\"cancel()\":{\"details\":\"Emits a {IGovernor-ContestCanceled} event.\"},\"castVote(uint256,uint8,uint256,uint256,bytes32[])\":{\"details\":\"See {IGovernor-castVote}.\"},\"castVoteWithoutProof(uint256,uint8,uint256)\":{\"details\":\"See {IGovernor-castVoteWithoutProof}.\"},\"checkProof(address,uint256,bytes32[],bool)\":{\"params\":{\"addressToCheck\":\"address of claimee\",\"amount\":\"to check that the claimee has\",\"proof\":\"merkle proof to prove address and amount are in tree\"}},\"contestAddressTotalVotesCast(address)\":{\"details\":\"Accessor to how many votes an address has cast total for the contest so far.\"},\"contestDeadline()\":{\"details\":\"See {IGovernor-contestDeadline}.\"},\"deleteProposals(uint256[])\":{\"details\":\"Delete proposals. Emits a {IGovernor-ProposalsDeleted} event.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"getAllProposalIds()\":{\"details\":\"Return all proposals.\"},\"getNumSubmissions(address)\":{\"details\":\"Get the number of proposal submissions for a given address.\"},\"getProposal(uint256)\":{\"details\":\"Retrieve proposal data\\\"_.\"},\"hashProposal((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-hashProposal}. The proposal id is produced by hashing the RLC encoded `targets` array, the `values` array, the `calldatas` array and the descriptionHash (bytes32 which itself is the keccak256 hash of the description string). This proposal id can be produced from the proposal data which is part of the {ProposalCreated} event. It can even be computed in advance, before the proposal is submitted. Note that the chainId and the governor address are not part of the proposal id computation. Consequently, the same proposal (with same operation and same description) will have the same id if submitted on multiple governors accross multiple networks. This also means that in order to execute the same operation twice (on the same governor) the proposer will have to change the description in order to avoid proposal id conflicts.\"},\"highestTiedRanking()\":{\"details\":\"Getter for highest tied ranking.\"},\"isProposalDeleted(uint256)\":{\"details\":\"Returns if a proposal has been deleted or not (0 if not, 1 if it has been deleted).\"},\"isTied(uint256)\":{\"details\":\"Getter if a given ranking is tied.\"},\"lowestRanking()\":{\"details\":\"Getter for the lowest ranking.\"},\"name()\":{\"details\":\"See {IGovernor-name}.\"},\"officialRewardsModule()\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"prompt()\":{\"details\":\"See {IGovernor-prompt}.\"},\"proposalAddressVotes(uint256,address)\":{\"details\":\"Accessor to how many votes an address has cast for a given proposal.\"},\"proposalAddressesHaveVoted(uint256)\":{\"details\":\"Accessor to which addresses have cast a vote for a given proposal.\"},\"proposalVotes(uint256)\":{\"details\":\"Accessor to the internal vote counts for a given proposal.\"},\"propose((address,bool,string,(address),(address[],uint256)),bytes32[])\":{\"details\":\"See {IGovernor-propose}.\"},\"proposeWithoutProof((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-proposeWithoutProof}.\"},\"rankingPosition(uint256)\":{\"details\":\"Getter for tiedAdjustedRankingPosition of a ranking.\"},\"setOfficialRewardsModule(address)\":{\"details\":\"Get the official rewards module contract for this contest (effectively reverse record).\"},\"setSortedAndTiedProposals()\":{\"details\":\"Setter for _sortedProposalIds, tiedAdjustedRankingPosition, _isTied, _lowestRanking, and _highestTiedRanking. Will only be called once and only needs to be called once because once the contest is complete these values don't change. Determines if a ranking is tied and also where the last iteration of a ranking is in the _sortedProposalIds list taking ties into account.\"},\"sortedProposalIds()\":{\"details\":\"Getter for _sortedProposalIds.\"},\"sortedProposals(bool)\":{\"details\":\"Accessor to sorted list of proposalIds in ascending order.\"},\"state()\":{\"details\":\"See {IGovernor-state}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"validateProposalData((address,bool,string,(address),(address[],uint256)))\":{\"details\":\"See {IGovernor-validateProposalData}.\"},\"verifyProposer(address,bytes32[])\":{\"details\":\"See {IGovernor-verifyProposer}.\"},\"verifyVoter(address,uint256,bytes32[])\":{\"details\":\"See {IGovernor-verifyVoter}.\"},\"version()\":{\"details\":\"See {IGovernor-version}.\"},\"voteStart()\":{\"details\":\"See {IGovernor-voteStart}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"NotInMerkle()\":[{\"notice\":\"Thrown if address/amount are not part of Merkle tree\"}],\"TooManyMetadatas()\":[{\"notice\":\"Thrown if there is metadata included in a proposal that isn't covered in data validation\"}]},\"kind\":\"user\",\"methods\":{\"checkProof(address,uint256,bytes32[],bool)\":{\"notice\":\"Allows checking of proofs for an address\"},\"submissionMerkleRoot()\":{\"notice\":\"ERC20-claimee inclusion root\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Contest.sol\":\"Contest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/Timers.sol\":{\"keccak256\":\"0x413dd6eccfbd25fff5e6c45500e049fc3b66f1a6c7d482d3ab88b8f4a5060ede\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f12296326560a2591d1e8d5cabcb55a1a82209a6752fe6a08b46bd9a3f9835f\",\"dweb:/ipfs/QmTgY5GkmvuMsrB4bzsfXj6SALnshYyXpKKR8WCXaMpoPM\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/Contest.sol\":{\"keccak256\":\"0xa471cab034594f2c2abee2478c60c024de57070152038716d4deaf704f79143c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19bde157cbcdaa4bc4a6e28390bc2f06a558abcf594d70038e0e4f7cab6ba363\",\"dweb:/ipfs/QmW8Hi3fPYwekpdzPuiYATh5NrHz9RkDSr1LjvTPXnG46V\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd\",\"dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorModuleRegistry.sol\":{\"keccak256\":\"0x62c9d2a2dcaeccf1b6b801595f34abf893416964997e6ba699c9828ada1abefc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18672ac920d4749fec025a7c8610c8cb866addb0ba20e9cfce5bedd91e062776\",\"dweb:/ipfs/QmNPWkqouY45jCeeFYi5metLX9d8BpSuGXLG55A5BZjH4D\"]},\"src/governance/extensions/GovernorSettings.sol\":{\"keccak256\":\"0x03baf7fa5c11f3d9b50c9df1d193a73bf1e6799f792ce510ccdb4dc86a82d9a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d78ca667bc09e43d8abf0f9ac4e17deaea1a0196aa1bc78c9ac66d734e81cf95\",\"dweb:/ipfs/QmRwfFjbCA6HAn1SRDJ4CKSvmzBqyjce1sDfuwBThj7PWi\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e\",\"dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -3444,13 +3444,13 @@ }, "settings": { "remappings": [ - ":@forge-std/=lib/forge-std/src/", - ":@openzeppelin/=lib/openzeppelin-contracts/contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/", - ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + "@forge-std/=lib/forge-std/src/", + "@openzeppelin/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, @@ -3626,10 +3626,10 @@ "license": "MIT" }, "src/governance/Governor.sol": { - "keccak256": "0x149016f7b5ae5312fbfe6c83478b94b49a935bd1f8c0f5ae797c1ccb9d534057", + "keccak256": "0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db", "urls": [ - "bzz-raw://b43c8bb6621377f18c421d71b59cde65be4a18d14c453da3b8950b90c279a675", - "dweb:/ipfs/QmTmMycYCohESCwtHZh6GVUV2HuDt9RgXzh9S1Xchp7NPp" + "bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd", + "dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB" ], "license": "MIT" }, @@ -3682,10 +3682,10 @@ "license": "MIT" }, "src/modules/RewardsModule.sol": { - "keccak256": "0x09fa3f379eeb816436c97a552662e694cbafe92885662325fb6309444cb3c22d", + "keccak256": "0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a", "urls": [ - "bzz-raw://546bb8afacbb7c4d08e623529d1b257a81d10184af0d420121f8fb91896b440f", - "dweb:/ipfs/QmUYnJJbhq62uK6FqceXJBKbVAMtXBqYgSHKcSVrbonQGU" + "bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e", + "dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA" ], "license": "MIT" } diff --git a/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.3.3.setCompilerTo8Dot19.sol/RewardsModule.json b/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.3.3.setCompilerTo8Dot19.sol/RewardsModule.json new file mode 100644 index 000000000..e4d55f33e --- /dev/null +++ b/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.3.3.setCompilerTo8Dot19.sol/RewardsModule.json @@ -0,0 +1,11843 @@ +{ + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "payees", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "shares_", + "type": "uint256[]" + }, + { + "internalType": "contract GovernorSorting", + "name": "underlyingContest_", + "type": "address" + }, + { + "internalType": "bool", + "name": "paysOutTarget_", + "type": "bool" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ERC20PaymentReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "by", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ERC20RewardWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "shares", + "type": "uint256" + } + ], + "name": "PayeeAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "PaymentReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "PaymentReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "by", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "RewardWithdrawn", + "type": "event" + }, + { + "inputs": [], + "name": "creator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayees", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "paysOutTarget", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "released", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "released", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "name": "shares", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "totalReleased", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalReleased", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalShares", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "underlyingContest", + "outputs": [ + { + "internalType": "contract GovernorCountingSimple", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "withdrawRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": { + "object": "0x6080604052604051620022bc380380620022bc833981016040819052620000269162000411565b8251845114620000965760405162461bcd60e51b815260206004820152603060248201527f526577617264734d6f64756c653a2070617965657320616e642073686172657360448201526f040d8cadccee8d040dad2e6dac2e8c6d60831b60648201526084015b60405180910390fd5b6000845111620000e95760405162461bcd60e51b815260206004820152601860248201527f526577617264734d6f64756c653a206e6f20706179656573000000000000000060448201526064016200008d565b60005b84518110156200015557620001408582815181106200010f576200010f620004b6565b60200260200101518583815181106200012c576200012c620004b6565b60200260200101516200019f60201b60201c565b806200014c81620004e2565b915050620000ec565b5060088054600780546001600160a01b039095166001600160a01b0319958616179055911515600160a01b02929092166001600160a81b03199091161733179055506200051a9050565b60008211620002065760405162461bcd60e51b815260206004820152602c60248201527f526577617264734d6f64756c653a2072616e6b696e6720697320302c206d757360448201526b3a1031329033b932b0ba32b960a11b60648201526084016200008d565b60008111620002585760405162461bcd60e51b815260206004820152601b60248201527f526577617264734d6f64756c653a20736861726573206172652030000000000060448201526064016200008d565b60008281526002602052604090205415620002c85760405162461bcd60e51b815260206004820152602960248201527f526577617264734d6f64756c653a206163636f756e7420616c7265616479206860448201526861732073686172657360b81b60648201526084016200008d565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905560008281526002602052604081208290555462000317908290620004fe565b60005560408051838152602081018390527f78bc0e219b874bf2620f7316737ec16d4bda1bb7136961e4dcb5ff0dc031cee4910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200037f57600080fd5b815160206001600160401b03808311156200039e576200039e62000357565b8260051b604051601f19603f83011681018181108482111715620003c657620003c662000357565b604052938452858101830193838101925087851115620003e557600080fd5b83870191505b848210156200040657815183529183019190830190620003eb565b979650505050505050565b600080600080608085870312156200042857600080fd5b84516001600160401b03808211156200044057600080fd5b6200044e888389016200036d565b955060208701519150808211156200046557600080fd5b5062000474878288016200036d565b604087015190945090506001600160a01b03811681146200049457600080fd5b60608601519092508015158114620004ab57600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620004f757620004f7620004cc565b5060010190565b80820180821115620005145762000514620004cc565b92915050565b611d92806200052a6000396000f3fe6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b506040805180820182526003815262332e3360e81b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea26469706673582212208b0aaaea5156fb33ec601651521f7f4e9d70cbee13876b1933fbde23ed5877a564736f6c63430008130033", + "sourceMap": "1515:11842:48:-:0;;;2806:572;;;;;;;;;;;;;;;;;;:::i;:::-;3007:7;:14;2990:6;:13;:31;2982:92;;;;-1:-1:-1;;;2982:92:48;;2226:2:51;2982:92:48;;;2208:21:51;2265:2;2245:18;;;2238:30;2304:34;2284:18;;;2277:62;-1:-1:-1;;;2355:18:51;;;2348:46;2411:19;;2982:92:48;;;;;;;;;3108:1;3092:6;:13;:17;3084:54;;;;-1:-1:-1;;;3084:54:48;;2643:2:51;3084:54:48;;;2625:21:51;2682:2;2662:18;;;2655:30;2721:26;2701:18;;;2694:54;2765:18;;3084:54:48;2441:348:51;3084:54:48;3154:9;3149:101;3173:6;:13;3169:1;:17;3149:101;;;3207:32;3217:6;3224:1;3217:9;;;;;;;;:::i;:::-;;;;;;;3228:7;3236:1;3228:10;;;;;;;;:::i;:::-;;;;;;;3207:9;;;:32;;:::i;:::-;3188:3;;;;:::i;:::-;;;;3149:101;;;-1:-1:-1;3260:14:48;:31;;3301:18;:39;;-1:-1:-1;;;;;3301:39:48;;;-1:-1:-1;;;;;;3301:39:48;;;;;;3260:31;;;-1:-1:-1;;;3260:31:48;3350:21;;;;-1:-1:-1;;;;;;3350:21:48;;;;3361:10;3350:21;;;-1:-1:-1;1515:11842:48;;-1:-1:-1;1515:11842:48;12905:450;12994:1;12984:7;:11;12976:68;;;;-1:-1:-1;;;12976:68:48;;3400:2:51;12976:68:48;;;3382:21:51;3439:2;3419:18;;;3412:30;3478:34;3458:18;;;3451:62;-1:-1:-1;;;3529:18:51;;;3522:42;3581:19;;12976:68:48;3198:408:51;12976:68:48;13072:1;13062:7;:11;13054:51;;;;-1:-1:-1;;;13054:51:48;;3813:2:51;13054:51:48;;;3795:21:51;3852:2;3832:18;;;3825:30;3891:29;3871:18;;;3864:57;3938:18;;13054:51:48;3611:351:51;13054:51:48;13123:16;;;;:7;:16;;;;;;:21;13115:75;;;;-1:-1:-1;;;13115:75:48;;4169:2:51;13115:75:48;;;4151:21:51;4208:2;4188:18;;;4181:30;4247:34;4227:18;;;4220:62;-1:-1:-1;;;4298:18:51;;;4291:39;4347:19;;13115:75:48;3967:405:51;13115:75:48;13201:7;:21;;;;;;;;;;;;;-1:-1:-1;13232:16:48;;;:7;13201:21;13232:16;;;;:26;;;13283:12;:22;;13251:7;;13283:22;:::i;:::-;13268:12;:37;13320:28;;;4681:25:51;;;4737:2;4722:18;;4715:34;;;13320:28:48;;4654:18:51;13320:28:48;;;;;;;12905:450;;:::o;14:127:51:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:899;211:5;264:3;257:4;249:6;245:17;241:27;231:55;;282:1;279;272:12;231:55;305:13;;337:4;-1:-1:-1;;;;;390:10:51;;;387:36;;;403:18;;:::i;:::-;449:2;446:1;442:10;481:2;475:9;544:2;540:7;535:2;531;527:11;523:25;515:6;511:38;599:6;587:10;584:22;579:2;567:10;564:18;561:46;558:72;;;610:18;;:::i;:::-;646:2;639:22;696:18;;;772:15;;;768:24;;;730:15;;;;-1:-1:-1;804:15:51;;;801:35;;;832:1;829;822:12;801:35;868:2;860:6;856:15;845:26;;880:135;896:6;891:3;888:15;880:135;;;962:10;;950:23;;993:12;;;;913;;;;880:135;;;1033:6;146:899;-1:-1:-1;;;;;;;146:899:51:o;1050:969::-;1219:6;1227;1235;1243;1296:3;1284:9;1275:7;1271:23;1267:33;1264:53;;;1313:1;1310;1303:12;1264:53;1340:16;;-1:-1:-1;;;;;1405:14:51;;;1402:34;;;1432:1;1429;1422:12;1402:34;1455:72;1519:7;1510:6;1499:9;1495:22;1455:72;:::i;:::-;1445:82;;1573:2;1562:9;1558:18;1552:25;1536:41;;1602:2;1592:8;1589:16;1586:36;;;1618:1;1615;1608:12;1586:36;;1641:74;1707:7;1696:8;1685:9;1681:24;1641:74;:::i;:::-;1758:2;1743:18;;1737:25;1631:84;;-1:-1:-1;1737:25:51;-1:-1:-1;;;;;;1791:31:51;;1781:42;;1771:70;;1837:1;1834;1827:12;1771:70;1910:2;1895:18;;1889:25;1860:5;;-1:-1:-1;1952:15:51;;1945:23;1933:36;;1923:64;;1983:1;1980;1973:12;1923:64;1050:969;;;;-1:-1:-1;1050:969:51;;-1:-1:-1;;1050:969:51:o;2794:127::-;2855:10;2850:3;2846:20;2843:1;2836:31;2886:4;2883:1;2876:15;2910:4;2907:1;2900:15;2926:127;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:135;3097:3;3118:17;;;3115:43;;3138:18;;:::i;:::-;-1:-1:-1;3185:1:51;3174:13;;3058:135::o;4377:125::-;4442:9;;;4463:10;;;4460:36;;;4476:18;;:::i;:::-;4377:125;;;;:::o;4507:248::-;1515:11842:48;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b506040805180820182526003815262332e3360e81b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea26469706673582212208b0aaaea5156fb33ec601651521f7f4e9d70cbee13876b1933fbde23ed5877a564736f6c63430008130033", + "sourceMap": "1515:11842:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:38;;;3956:10;188:51:51;;3968:9:48;270:2:51;255:18;;248:34;3940:38:48;;161:18:51;3940:38:48;;;;;;;1515:11842;;;;;4405:81;;;;;;;;;;-1:-1:-1;4471:8:48;;-1:-1:-1;;;;;4471:8:48;4405:81;;;-1:-1:-1;;;;;457:32:51;;;439:51;;427:2;412:18;4405:81:48;;;;;;;;9504:2287;;;;;;;;;;-1:-1:-1;9504:2287:48;;;;;:::i;:::-;;:::i;:::-;;5908:90;;;;;;;;;;-1:-1:-1;5977:14:48;;-1:-1:-1;;;5977:14:48;;;;5908:90;;1154:14:51;;1147:22;1129:41;;1117:2;1102:18;5908:90:48;989:187:51;6644:257:48;;;;;;;;;;-1:-1:-1;6644:257:48;;;;;:::i;:::-;;:::i;:::-;;;1327:25:51;;;1315:2;1300:18;6644:257:48;1181:177:51;5706:91:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7095:2148::-;;;;;;;;;;-1:-1:-1;7095:2148:48;;;;;:::i;:::-;;:::i;4233:89::-;;;;;;;;;;-1:-1:-1;4277:7:48;4303:12;4233:89;;12029:280;;;;;;;;;;-1:-1:-1;12029:280:48;;;;;:::i;:::-;;:::i;4063:92::-;;;;;;;;;;-1:-1:-1;4136:12:48;;;;;;;;;;;-1:-1:-1;;;4136:12:48;;;;4063:92;;;;4136:12;4063:92;:::i;5021:103::-;;;;;;;;;;-1:-1:-1;5021:103:48;;;;;:::i;:::-;5075:7;5101:16;;;:7;:16;;;;;;;5021:103;5218:107;;;;;;;;;;-1:-1:-1;5218:107:48;;;;;:::i;:::-;5274:7;5300:18;;;:9;:18;;;;;;;5218:107;11797:226;;;;;;;;;;;;;:::i;5488:133::-;;;;;;;;;;-1:-1:-1;5488:133:48;;;;;:::i;:::-;-1:-1:-1;;;;;5584:21:48;;;;5558:7;5584:21;;;:14;:21;;;;;;;;:30;;;;;;;;;5488:133;4819:117;;;;;;;;;;-1:-1:-1;4819:117:48;;;;;:::i;:::-;-1:-1:-1;;;;;4903:26:48;4877:7;4903:26;;;:19;:26;;;;;;;4819:117;4575:93;;;;;;;;;;-1:-1:-1;4647:14:48;;4575:93;;6268:222;;;;;;;;;;-1:-1:-1;6268:222:48;;;;;:::i;:::-;;:::i;6067:116::-;;;;;;;;;;-1:-1:-1;6158:18:48;;-1:-1:-1;;;;;6158:18:48;6067:116;;9504:2287;9585:7;9596:1;9585:12;9577:68;;;;-1:-1:-1;;;9577:68:48;;;;;;;:::i;:::-;;;;;;;;;9676:18;;:26;;;-1:-1:-1;;;9676:26:48;;;;9706:32;;-1:-1:-1;;;;;9676:18:48;;:24;;:26;;;;;;;;;;;;;:18;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;;;;;:::i;:::-;;9655:176;;;;-1:-1:-1;;;9655:176:48;;;;;;;:::i;:::-;9868:1;9849:16;;;:7;:16;;;;;;9841:69;;;;-1:-1:-1;;;9841:69:48;;;;;;;:::i;:::-;9921:15;9939:26;9950:5;9957:7;9939:10;:26::i;:::-;9921:44;;9997:7;10008:1;9997:12;9976:159;;;;-1:-1:-1;;;9976:159:48;;;;;;;:::i;:::-;-1:-1:-1;;;;;10396:26:48;;;;;;:19;:26;;;;;:37;;10426:7;;10396:26;:37;;10426:7;;10396:37;:::i;:::-;;;;-1:-1:-1;;;;;;;10467:21:48;;;;;;;:14;:21;;;;;;;;:30;;;;;;;;;:41;;;;;;10679:18;;:56;;-1:-1:-1;;;10679:56:48;;;;:18;;;:54;;:56;;;;;10467:21;10679:56;;;;;;:18;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10674:134;;10751:18;;;;;;;;;-1:-1:-1;;;;;10751:18:48;-1:-1:-1;;;;;10751:44:48;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10674:134;10850:18;;;;;;;;;-1:-1:-1;;;;;10850:18:48;-1:-1:-1;;;;;10850:32:48;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10839:7;:45;;10818:189;;;;-1:-1:-1;;;10818:189:48;;;;;;;:::i;:::-;11066:18;;11110:38;;;-1:-1:-1;;;11110:38:48;;;;11018:45;;-1:-1:-1;;;;;11066:18:48;;:30;;:18;;11110:36;;:38;;;;;11018:45;;11110:38;;;;;;;11066:18;11110:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11110:38:48;;;;;;;;;;;;:::i;:::-;11149:18;;:55;;-1:-1:-1;;;11149:55:48;;;;;1327:25:51;;;-1:-1:-1;;;;;11149:18:48;;;;:46;;1300:18:51;;11149:55:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:95;;;;;;;;:::i;:::-;;;;;;;11066:149;;;;;;;;;;;;;1327:25:51;;1315:2;1300:18;;1181:177;11066:149:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11066:149:48;;;;;;;;;;;;:::i;:::-;11018:197;;11320:31;11364:18;;;;;;;;;-1:-1:-1;;;;;11364:18:48;-1:-1:-1;;;;;11364:37:48;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11354:7;:49;:201;;4471:8;;-1:-1:-1;;;;;4471:8:48;11354:201;;;11418:14;;-1:-1:-1;;;11418:14:48;;;;:104;;11499:22;;11418:104;;;11443:30;;;;:44;11418:104;11320:235;-1:-1:-1;;;;;;11574:29:48;;11566:84;;;;-1:-1:-1;;;11566:84:48;;;;;;;:::i;:::-;11661:55;11684:5;11691:15;11708:7;11661:22;:55::i;:::-;11731:53;;;-1:-1:-1;;;;;206:32:51;;;188:51;;270:2;255:18;;248:34;;;11731:53:48;;;;;161:18:51;11731:53:48;;;;;;;9567:2224;;;9504:2287;;:::o;6644:257::-;-1:-1:-1;;;;;4903:26:48;;6716:7;4903:26;;;:19;:26;;;;;;6716:7;;6759:30;;-1:-1:-1;;;6759:30:48;;6783:4;6759:30;;;439:51:51;-1:-1:-1;;;;;6759:15:48;;;;;412:18:51;;6759:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;6735:77;;6829:65;6845:7;6854:13;6869:24;6878:5;6885:7;-1:-1:-1;;;;;5584:21:48;;;;5558:7;5584:21;;;:14;:21;;;;;;;;:30;;;;;;;;;5488:133;6869:24;6829:15;:65::i;:::-;6822:72;;;6644:257;;;;;:::o;5706:91::-;5748:16;5783:7;5776:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5706:91;:::o;7095:2148::-;7162:7;7173:1;7162:12;7154:68;;;;-1:-1:-1;;;7154:68:48;;;;;;;:::i;:::-;7253:18;;:26;;;-1:-1:-1;;;7253:26:48;;;;7283:32;;-1:-1:-1;;;;;7253:18:48;;:24;;:26;;;;;;;;;;;;;:18;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;;;;;:::i;:::-;;7232:176;;;;-1:-1:-1;;;7232:176:48;;;;;;;:::i;:::-;7445:1;7426:16;;;:7;:16;;;;;;7418:69;;;;-1:-1:-1;;;7418:69:48;;;;;;;:::i;:::-;7498:15;7516:19;7527:7;7516:10;:19::i;:::-;7498:37;;7567:7;7578:1;7567:12;7546:159;;;;-1:-1:-1;;;7546:159:48;;;;;;;:::i;:::-;7914:7;7896:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;7955:18:48;;;;:9;:18;;;;;;;;;:29;;;;;;8155:18;;:56;;-1:-1:-1;;;8155:56:48;;;;-1:-1:-1;;;;;8155:18:48;;;;:54;;:56;;;;;7955:18;;8155:56;;;;;:18;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8150:134;;8227:18;;;;;;;;;-1:-1:-1;;;;;8227:18:48;-1:-1:-1;;;;;8227:44:48;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8150:134;8326:18;;;;;;;;;-1:-1:-1;;;;;8326:18:48;-1:-1:-1;;;;;8326:32:48;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8315:7;:45;;8294:189;;;;-1:-1:-1;;;8294:189:48;;;;;;;:::i;:::-;8542:18;;8586:38;;;-1:-1:-1;;;8586:38:48;;;;8494:45;;-1:-1:-1;;;;;8542:18:48;;:30;;:18;;8586:36;;:38;;;;;8494:45;;8586:38;;;;;;;8542:18;8586:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8586:38:48;;;;;;;;;;;;:::i;:::-;8625:18;;:55;;-1:-1:-1;;;8625:55:48;;;;;1327:25:51;;;-1:-1:-1;;;;;8625:18:48;;;;:46;;1300:18:51;;8625:55:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8586:95;;;;;;;;:::i;:::-;;;;;;;8542:149;;;;;;;;;;;;;1327:25:51;;1315:2;1300:18;;1181:177;8542:149:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8542:149:48;;;;;;;;;;;;:::i;:::-;8494:197;;8796:31;8840:18;;;;;;;;;-1:-1:-1;;;;;8840:18:48;-1:-1:-1;;;;;8840:37:48;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8830:7;:49;:201;;4471:8;;-1:-1:-1;;;;;4471:8:48;8830:201;;;8894:14;;-1:-1:-1;;;8894:14:48;;;;:104;;8975:22;;8894:104;;;8919:30;;;;:44;8894:104;8796:235;-1:-1:-1;;;;;;9050:29:48;;9042:84;;;;-1:-1:-1;;;9042:84:48;;;;;;;:::i;:::-;9137:43;9155:15;9172:7;9137:17;:43::i;:::-;9195:41;;;-1:-1:-1;;;;;206:32:51;;188:51;;270:2;255:18;;248:34;;;9195:41:48;;161:18:51;9195:41:48;;;;;;;7144:2099;;;7095:2148;:::o;12029:280::-;4471:8;;-1:-1:-1;;;;;4471:8:48;12101:10;:23;12093:32;;;;;;12136:81;12159:5;12174:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;12174:9;12186:30;;-1:-1:-1;;;12186:30:48;;12210:4;12186:30;;;439:51:51;-1:-1:-1;;;;;12186:15:48;;;;;412:18:51;;12186:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:22;:81::i;:::-;12253:5;-1:-1:-1;;;;;12232:70:48;;12260:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;12260:9;12271:30;;-1:-1:-1;;;12271:30:48;;12295:4;12271:30;;;439:51:51;-1:-1:-1;;;;;12271:15:48;;;;;412:18:51;;12271:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12232:70;;;-1:-1:-1;;;;;206:32:51;;;188:51;;270:2;255:18;;248:34;;;;161:18;12232:70:48;;;;;;;12029:280;:::o;11797:226::-;4471:8;;-1:-1:-1;;;;;4471:8:48;11857:10;:23;11849:32;;;;;;11892:60;11918:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;11918:9;11930:21;11892:17;:60::i;:::-;11967:49;11983:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;11983:9;11967:49;;;-1:-1:-1;;;;;206:32:51;;;188:51;;11994:21:48;270:2:51;255:18;;248:34;161:18;11967:49:48;;;;;;;11797:226::o;6268:222::-;6326:7;6345:21;6393:15;4647:14;;;4575:93;6393:15;6369:39;;:21;:39;:::i;:::-;6345:63;;6425:58;6441:7;6450:13;6465:17;6474:7;5274;5300:18;;;:9;:18;;;;;;;5218:107;6425:58;6418:65;6268:222;-1:-1:-1;;;6268:222:48:o;941:175:24:-;1050:58;;;-1:-1:-1;;;;;206:32:51;;1050:58:24;;;188:51:51;255:18;;;;248:34;;;1050:58:24;;;;;;;;;;161:18:51;;;;1050:58:24;;;;;;;;-1:-1:-1;;;;;1050:58:24;-1:-1:-1;;;1050:58:24;;;1023:86;;1043:5;;1023:19;:86::i;:::-;941:175;;;:::o;12480:240:48:-;12616:7;12683:12;;12663:16;;;:7;:16;;;;;;12698:15;;12683:12;12647:32;;:13;:32;:::i;:::-;12646:49;;;;:::i;:::-;:67;;;;:::i;:::-;12639:74;12480:240;-1:-1:-1;;;;12480:240:48:o;2647:312:25:-;2761:6;2736:21;:31;;2728:73;;;;-1:-1:-1;;;2728:73:25;;13613:2:51;2728:73:25;;;13595:21:51;13652:2;13632:18;;;13625:30;13691:31;13671:18;;;13664:59;13740:18;;2728:73:25;13411:353:51;2728:73:25;2813:12;2831:9;-1:-1:-1;;;;;2831:14:25;2853:6;2831:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:52;;;2882:7;2874:78;;;;-1:-1:-1;;;2874:78:25;;14181:2:51;2874:78:25;;;14163:21:51;14220:2;14200:18;;;14193:30;14259:34;14239:18;;;14232:62;14330:28;14310:18;;;14303:56;14376:19;;2874:78:25;13979:422:51;5173:642:24;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;-1:-1:-1;;;;;5618:27:24;;;:69;;;;;:::i;:::-;5592:95;;5705:10;:17;5726:1;5705:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5697:111;;;;-1:-1:-1;;;5697:111:24;;14608:2:51;5697:111:24;;;14590:21:51;14647:2;14627:18;;;14620:30;14686:34;14666:18;;;14659:62;-1:-1:-1;;;14737:18:51;;;14730:40;14787:19;;5697:111:24;14406:406:51;4108:223:25;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:25;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:25:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:25;;;8113:60;;;;-1:-1:-1;;;8113:60:25;;15718:2:51;8113:60:25;;;15700:21:51;15757:2;15737:18;;;15730:30;15796:31;15776:18;;;15769:59;15845:18;;8113:60:25;15516:353:51;8113:60:25;-1:-1:-1;8208:10:25;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:25;;;;;;;;:::i;501:139:51:-;-1:-1:-1;;;;;584:31:51;;574:42;;564:70;;630:1;627;620:12;564:70;501:139;:::o;645:339::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:39;897:5;864:39;:::i;:::-;922:5;974:2;959:18;;;;946:32;;-1:-1:-1;;;645:339:51:o;1363:632::-;1534:2;1586:21;;;1656:13;;1559:18;;;1678:22;;;1505:4;;1534:2;1757:15;;;;1731:2;1716:18;;;1505:4;1800:169;1814:6;1811:1;1808:13;1800:169;;;1875:13;;1863:26;;1944:15;;;;1909:12;;;;1836:1;1829:9;1800:169;;;-1:-1:-1;1986:3:51;;1363:632;-1:-1:-1;;;;;;1363:632:51:o;2000:180::-;2059:6;2112:2;2100:9;2091:7;2087:23;2083:32;2080:52;;;2128:1;2125;2118:12;2080:52;-1:-1:-1;2151:23:51;;2000:180;-1:-1:-1;2000:180:51:o;2185:271::-;2260:6;2313:2;2301:9;2292:7;2288:23;2284:32;2281:52;;;2329:1;2326;2319:12;2281:52;2368:9;2355:23;2387:39;2420:5;2387:39;:::i;2461:250::-;2546:1;2556:113;2570:6;2567:1;2564:13;2556:113;;;2646:11;;;2640:18;2627:11;;;2620:39;2592:2;2585:10;2556:113;;;-1:-1:-1;;2703:1:51;2685:16;;2678:27;2461:250::o;2716:396::-;2865:2;2854:9;2847:21;2828:4;2897:6;2891:13;2940:6;2935:2;2924:9;2920:18;2913:34;2956:79;3028:6;3023:2;3012:9;3008:18;3003:2;2995:6;2991:15;2956:79;:::i;:::-;3096:2;3075:15;-1:-1:-1;;3071:29:51;3056:45;;;;3103:2;3052:54;;2716:396;-1:-1:-1;;2716:396:51:o;3365:407::-;3567:2;3549:21;;;3606:2;3586:18;;;3579:30;3645:34;3640:2;3625:18;;3618:62;-1:-1:-1;;;3711:2:51;3696:18;;3689:41;3762:3;3747:19;;3365:407::o;3777:127::-;3838:10;3833:3;3829:20;3826:1;3819:31;3869:4;3866:1;3859:15;3893:4;3890:1;3883:15;3909:278;3997:6;4050:2;4038:9;4029:7;4025:23;4021:32;4018:52;;;4066:1;4063;4056:12;4018:52;4098:9;4092:16;4137:1;4130:5;4127:12;4117:40;;4153:1;4150;4143:12;4192:471;4394:2;4376:21;;;4433:2;4413:18;;;4406:30;4472:34;4467:2;4452:18;;4445:62;4543:34;4538:2;4523:18;;4516:62;-1:-1:-1;;;4609:3:51;4594:19;;4587:34;4653:3;4638:19;;4192:471::o;4668:400::-;4870:2;4852:21;;;4909:2;4889:18;;;4882:30;4948:34;4943:2;4928:18;;4921:62;-1:-1:-1;;;5014:2:51;4999:18;;4992:34;5058:3;5043:19;;4668:400::o;5073:545::-;5275:2;5257:21;;;5314:3;5294:18;;;5287:31;5354:34;5349:2;5334:18;;5327:62;5425:34;5420:2;5405:18;;5398:62;5497:34;5491:3;5476:19;;5469:63;-1:-1:-1;;;5563:3:51;5548:19;;5541:35;5608:3;5593:19;;5073:545::o;5623:127::-;5684:10;5679:3;5675:20;5672:1;5665:31;5715:4;5712:1;5705:15;5739:4;5736:1;5729:15;5755:125;5820:9;;;5841:10;;;5838:36;;;5854:18;;:::i;5885:164::-;5961:13;;6010;;6003:21;5993:32;;5983:60;;6039:1;6036;6029:12;5983:60;5885:164;;;:::o;6054:202::-;6121:6;6174:2;6162:9;6153:7;6149:23;6145:32;6142:52;;;6190:1;6187;6180:12;6142:52;6213:37;6240:9;6213:37;:::i;6261:184::-;6331:6;6384:2;6372:9;6363:7;6359:23;6355:32;6352:52;;;6400:1;6397;6390:12;6352:52;-1:-1:-1;6423:16:51;;6261:184;-1:-1:-1;6261:184:51:o;6450:541::-;6652:2;6634:21;;;6691:2;6671:18;;;6664:30;6730:34;6725:2;6710:18;;6703:62;6801:34;6796:2;6781:18;;6774:62;6873:34;6867:3;6852:19;;6845:63;-1:-1:-1;;;6939:3:51;6924:19;;6917:32;6981:3;6966:19;;6450:541::o;6996:127::-;7057:10;7052:3;7048:20;7045:1;7038:31;7088:4;7085:1;7078:15;7112:4;7109:1;7102:15;7128:257;7200:4;7194:11;;;7232:17;;7279:18;7264:34;;7300:22;;;7261:62;7258:88;;;7326:18;;:::i;:::-;7362:4;7355:24;7128:257;:::o;7390:253::-;7462:2;7456:9;7504:4;7492:17;;7539:18;7524:34;;7560:22;;;7521:62;7518:88;;;7586:18;;:::i;7648:275::-;7719:2;7713:9;7784:2;7765:13;;-1:-1:-1;;7761:27:51;7749:40;;7819:18;7804:34;;7840:22;;;7801:62;7798:88;;;7866:18;;:::i;:::-;7902:2;7895:22;7648:275;;-1:-1:-1;7648:275:51:o;7928:183::-;7988:4;8021:18;8013:6;8010:30;8007:56;;;8043:18;;:::i;:::-;-1:-1:-1;8088:1:51;8084:14;8100:4;8080:25;;7928:183::o;8116:881::-;8211:6;8242:2;8285;8273:9;8264:7;8260:23;8256:32;8253:52;;;8301:1;8298;8291:12;8253:52;8334:9;8328:16;8367:18;8359:6;8356:30;8353:50;;;8399:1;8396;8389:12;8353:50;8422:22;;8475:4;8467:13;;8463:27;-1:-1:-1;8453:55:51;;8504:1;8501;8494:12;8453:55;8533:2;8527:9;8556:60;8572:43;8612:2;8572:43;:::i;:::-;8556:60;:::i;:::-;8650:15;;;8732:1;8728:10;;;;8720:19;;8716:28;;;8681:12;;;;8756:19;;;8753:39;;;8788:1;8785;8778:12;8753:39;8812:11;;;;8832:135;8848:6;8843:3;8840:15;8832:135;;;8914:10;;8902:23;;8865:12;;;;8945;;;;8832:135;;9002:127;9063:10;9058:3;9054:20;9051:1;9044:31;9094:4;9091:1;9084:15;9118:4;9115:1;9108:15;9134:498;9206:5;9254:4;9242:9;9237:3;9233:19;9229:30;9226:50;;;9272:1;9269;9262:12;9226:50;9305:2;9299:9;9347:4;9339:6;9335:17;9418:6;9406:10;9403:22;9382:18;9370:10;9367:34;9364:62;9361:88;;;9429:18;;:::i;:::-;9469:10;9465:2;9458:22;;9498:6;9489:15;;9534:9;9528:16;9553:41;9586:7;9553:41;:::i;:::-;9603:23;;9134:498;;-1:-1:-1;;9134:498:51:o;9637:1039::-;9707:5;9755:4;9743:9;9738:3;9734:19;9730:30;9727:50;;;9773:1;9770;9763:12;9727:50;9795:22;;:::i;:::-;9786:31;;9846:9;9840:16;9879:18;9871:6;9868:30;9865:50;;;9911:1;9908;9901:12;9865:50;9934:22;;9987:4;9979:13;;9975:23;-1:-1:-1;9965:51:51;;10012:1;10009;10002:12;9965:51;10041:2;10035:9;10063:4;10087:60;10103:43;10143:2;10103:43;:::i;10087:60::-;10181:15;;;10263:1;10259:10;;;;10251:19;;10247:28;;;10212:12;;;;10287:15;;;10284:35;;;10315:1;10312;10305:12;10284:35;10339:11;;;;10359:224;10375:6;10370:3;10367:15;10359:224;;;10450:3;10444:10;10467:41;10500:7;10467:41;:::i;:::-;10521:20;;10392:12;;;;10561;;;;10359:224;;;10592:20;;-1:-1:-1;10650:18:51;;;10644:25;10628:14;;;10621:49;;;;-1:-1:-1;10599:5:51;9637:1039;-1:-1:-1;;9637:1039:51:o;10681:1499::-;10782:6;10813:2;10856;10844:9;10835:7;10831:23;10827:32;10824:52;;;10872:1;10869;10862:12;10824:52;10905:9;10899:16;10934:18;10975:2;10967:6;10964:14;10961:34;;;10991:1;10988;10981:12;10961:34;11014:22;;;;11070:4;11052:16;;;11048:27;11045:47;;;11088:1;11085;11078:12;11045:47;11114:22;;:::i;:::-;11166:2;11160:9;11178:41;11211:7;11178:41;:::i;:::-;11228:22;;11282:39;11309:11;;;11282:39;:::i;:::-;11277:2;11270:5;11266:14;11259:63;11361:2;11357;11353:11;11347:18;11390:2;11380:8;11377:16;11374:36;;;11406:1;11403;11396:12;11374:36;11429:17;;11477:4;11469:13;;11465:27;-1:-1:-1;11455:55:51;;11506:1;11503;11496:12;11455:55;11535:2;11529:9;11557:2;11553;11550:10;11547:36;;;11563:18;;:::i;:::-;11605:53;11648:2;11629:13;;-1:-1:-1;;11625:27:51;11621:36;;11605:53;:::i;:::-;11681:2;11674:5;11667:17;11721:7;11716:2;11711;11707;11703:11;11699:20;11696:33;11693:53;;;11742:1;11739;11732:12;11693:53;11755:67;11819:2;11814;11807:5;11803:14;11798:2;11794;11790:11;11755:67;:::i;:::-;11849:2;11838:14;;11831:29;-1:-1:-1;11892:65:51;;-1:-1:-1;11949:7:51;11944:2;11936:11;;11892:65;:::i;:::-;11887:2;11880:5;11876:14;11869:89;11997:3;11993:2;11989:12;11983:19;11967:35;;12027:2;12017:8;12014:16;12011:36;;;12043:1;12040;12033:12;12011:36;12080:69;12141:7;12130:8;12126:2;12122:17;12080:69;:::i;:::-;12074:3;12063:15;;12056:94;12067:5;10681:1499;-1:-1:-1;;;;;;10681:1499:51:o;12185:406::-;12387:2;12369:21;;;12426:2;12406:18;;;12399:30;12465:34;12460:2;12445:18;;12438:62;-1:-1:-1;;;12531:2:51;12516:18;;12509:40;12581:3;12566:19;;12185:406::o;12883:168::-;12956:9;;;12987;;13004:15;;;12998:22;;12984:37;12974:71;;13025:18;;:::i;13056:217::-;13096:1;13122;13112:132;;13166:10;13161:3;13157:20;13154:1;13147:31;13201:4;13198:1;13191:15;13229:4;13226:1;13219:15;13112:132;-1:-1:-1;13258:9:51;;13056:217::o;13278:128::-;13345:9;;;13366:11;;;13363:37;;;13380:18;;:::i;15224:287::-;15353:3;15391:6;15385:13;15407:66;15466:6;15461:3;15454:4;15446:6;15442:17;15407:66;:::i;:::-;15489:16;;;;;15224:287;-1:-1:-1;;15224:287:51:o", + "linkReferences": {} + }, + "methodIdentifiers": { + "creator()": "02d05d3f", + "getPayees()": "27f38113", + "paysOutTarget()": "1e5b4634", + "releasable(address,uint256)": "2081d631", + "releasable(uint256)": "e4bf01a8", + "release(address,uint256)": "0357371d", + "release(uint256)": "37bdc99b", + "released(address,uint256)": "cfe83070", + "released(uint256)": "a94d373b", + "shares(uint256)": "57a858fc", + "totalReleased()": "e33b7de3", + "totalReleased(address)": "d79779b2", + "totalShares()": "3a98ef39", + "underlyingContest()": "f3f44fb7", + "version()": "54fd4d50", + "withdrawRewards()": "c7b8981c", + "withdrawRewards(address)": "42d86693" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"payees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares_\",\"type\":\"uint256[]\"},{\"internalType\":\"contract GovernorSorting\",\"name\":\"underlyingContest_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"paysOutTarget_\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20RewardWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayees\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paysOutTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlyingContest\",\"outputs\":[{\"internalType\":\"contract GovernorCountingSimple\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware that the Ether will be split in this way, since it is handled transparently by the contract. The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the time of contract deployment and can't be updated thereafter. `RewardsModule` follows a _pull payment_ model. This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} function. NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you to run tests before sending real value to this contract.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates an instance of `RewardsModule` where each ranking in `payees` is assigned the number of shares at the matching position in the `shares` array. All rankings in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`.\"},\"creator()\":{\"details\":\"Getter for the creator of this rewards contract.\"},\"getPayees()\":{\"details\":\"Getter for list of rankings that will be paid out.\"},\"paysOutTarget()\":{\"details\":\"Getter for whether this pays out the target address or author of a proposal.\"},\"releasable(address,uint256)\":{\"details\":\"Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract.\"},\"releasable(uint256)\":{\"details\":\"Getter for the amount of payee's releasable Ether.\"},\"release(address,uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract.\"},\"release(uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals.\"},\"released(address,uint256)\":{\"details\":\"Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract.\"},\"released(uint256)\":{\"details\":\"Getter for the amount of Ether already released to a payee.\"},\"shares(uint256)\":{\"details\":\"Getter for the amount of shares held by a ranking.\"},\"totalReleased()\":{\"details\":\"Getter for the total amount of Ether already released.\"},\"totalReleased(address)\":{\"details\":\"Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract.\"},\"totalShares()\":{\"details\":\"Getter for the total shares held by payees.\"},\"underlyingContest()\":{\"details\":\"Getter for the underlying contest.\"},\"version()\":{\"details\":\"Version of the rewards module. Default: \\\"1\\\"\"}},\"title\":\"RewardsModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/RewardsModule.sol\":\"RewardsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd\",\"dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e\",\"dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "payees", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "shares_", + "type": "uint256[]" + }, + { + "internalType": "contract GovernorSorting", + "name": "underlyingContest_", + "type": "address" + }, + { + "internalType": "bool", + "name": "paysOutTarget_", + "type": "bool" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "ERC20PaymentReleased", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "by", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "ERC20RewardWithdrawn", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "shares", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "PayeeAdded", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "PaymentReceived", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "PaymentReleased", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "by", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "RewardWithdrawn", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "creator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getPayees", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "paysOutTarget", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "releasable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "release" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "release" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "released", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "released", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ranking", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "shares", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "totalReleased", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalReleased", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "totalShares", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "underlyingContest", + "outputs": [ + { + "internalType": "contract GovernorCountingSimple", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdrawRewards" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdrawRewards" + }, + { + "inputs": [], + "stateMutability": "payable", + "type": "receive" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "constructor": { + "details": "Creates an instance of `RewardsModule` where each ranking in `payees` is assigned the number of shares at the matching position in the `shares` array. All rankings in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`." + }, + "creator()": { + "details": "Getter for the creator of this rewards contract." + }, + "getPayees()": { + "details": "Getter for list of rankings that will be paid out." + }, + "paysOutTarget()": { + "details": "Getter for whether this pays out the target address or author of a proposal." + }, + "releasable(address,uint256)": { + "details": "Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract." + }, + "releasable(uint256)": { + "details": "Getter for the amount of payee's releasable Ether." + }, + "release(address,uint256)": { + "details": "Triggers a transfer to `ranking` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract." + }, + "release(uint256)": { + "details": "Triggers a transfer to `ranking` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals." + }, + "released(address,uint256)": { + "details": "Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract." + }, + "released(uint256)": { + "details": "Getter for the amount of Ether already released to a payee." + }, + "shares(uint256)": { + "details": "Getter for the amount of shares held by a ranking." + }, + "totalReleased()": { + "details": "Getter for the total amount of Ether already released." + }, + "totalReleased(address)": { + "details": "Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract." + }, + "totalShares()": { + "details": "Getter for the total shares held by payees." + }, + "underlyingContest()": { + "details": "Getter for the underlying contest." + }, + "version()": { + "details": "Version of the rewards module. Default: \"1\"" + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@forge-std/=lib/forge-std/src/", + "@openzeppelin/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/modules/RewardsModule.sol": "RewardsModule" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol": { + "keccak256": "0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f", + "urls": [ + "bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc", + "dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", + "urls": [ + "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", + "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": { + "keccak256": "0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a", + "urls": [ + "bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a", + "dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": { + "keccak256": "0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa", + "urls": [ + "bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4", + "dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", + "urls": [ + "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", + "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol": { + "keccak256": "0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256", + "urls": [ + "bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516", + "dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { + "keccak256": "0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899", + "urls": [ + "bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da", + "dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0", + "urls": [ + "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f", + "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": { + "keccak256": "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58", + "urls": [ + "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2", + "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol": { + "keccak256": "0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd", + "urls": [ + "bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a", + "dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": { + "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac", + "urls": [ + "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04", + "dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol": { + "keccak256": "0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b", + "urls": [ + "bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3", + "dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": { + "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", + "urls": [ + "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", + "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", + "urls": [ + "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", + "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3", + "urls": [ + "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c", + "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": { + "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad", + "urls": [ + "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278", + "dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", + "urls": [ + "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", + "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" + ], + "license": "MIT" + }, + "src/governance/Governor.sol": { + "keccak256": "0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db", + "urls": [ + "bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd", + "dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB" + ], + "license": "MIT" + }, + "src/governance/GovernorMerkleVotes.sol": { + "keccak256": "0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec", + "urls": [ + "bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d", + "dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU" + ], + "license": "AGPL-3.0-only" + }, + "src/governance/IGovernor.sol": { + "keccak256": "0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767", + "urls": [ + "bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d", + "dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorCountingSimple.sol": { + "keccak256": "0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d", + "urls": [ + "bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563", + "dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe" + ], + "license": "MIT" + }, + "src/governance/extensions/GovernorSorting.sol": { + "keccak256": "0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04", + "urls": [ + "bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d", + "dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa" + ], + "license": "MIT" + }, + "src/modules/RewardsModule.sol": { + "keccak256": "0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a", + "urls": [ + "bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e", + "dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/modules/RewardsModule.sol", + "id": 38439, + "exportedSymbols": { + "Address": [ + 30503 + ], + "Context": [ + 30525 + ], + "ECDSA": [ + 31660 + ], + "EIP712": [ + 31864 + ], + "ERC165": [ + 32419 + ], + "Governor": [ + 36037 + ], + "GovernorCountingSimple": [ + 36618 + ], + "GovernorMerkleVotes": [ + 36119 + ], + "GovernorSorting": [ + 37625 + ], + "IERC165": [ + 32431 + ], + "IERC20": [ + 29663 + ], + "IERC20Permit": [ + 29768 + ], + "IERC5267": [ + 28998 + ], + "IGovernor": [ + 36348 + ], + "Math": [ + 33297 + ], + "MerkleProof": [ + 32392 + ], + "RewardsModule": [ + 38438 + ], + "SafeCast": [ + 34838 + ], + "SafeERC20": [ + 30173 + ], + "ShortString": [ + 30530 + ], + "ShortStrings": [ + 30741 + ], + "SignedMath": [ + 34943 + ], + "StorageSlot": [ + 30851 + ], + "Strings": [ + 31080 + ] + }, + "nodeType": "SourceUnit", + "src": "33:13325:48", + "nodes": [ + { + "id": 37627, + "nodeType": "PragmaDirective", + "src": "33:23:48", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 37628, + "nodeType": "ImportDirective", + "src": "58:55:48", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol", + "file": "@openzeppelin/token/ERC20/utils/SafeERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 38439, + "sourceUnit": 30174, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 37629, + "nodeType": "ImportDirective", + "src": "114:41:48", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "file": "@openzeppelin/utils/Address.sol", + "nameLocation": "-1:-1:-1", + "scope": 38439, + "sourceUnit": 30504, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 37630, + "nodeType": "ImportDirective", + "src": "156:41:48", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Context.sol", + "file": "@openzeppelin/utils/Context.sol", + "nameLocation": "-1:-1:-1", + "scope": 38439, + "sourceUnit": 30526, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 37631, + "nodeType": "ImportDirective", + "src": "198:37:48", + "nodes": [], + "absolutePath": "src/governance/IGovernor.sol", + "file": "../governance/IGovernor.sol", + "nameLocation": "-1:-1:-1", + "scope": 38439, + "sourceUnit": 36349, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 37632, + "nodeType": "ImportDirective", + "src": "236:54:48", + "nodes": [], + "absolutePath": "src/governance/extensions/GovernorSorting.sol", + "file": "../governance/extensions/GovernorSorting.sol", + "nameLocation": "-1:-1:-1", + "scope": 38439, + "sourceUnit": 37626, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 38438, + "nodeType": "ContractDefinition", + "src": "1515:11842:48", + "nodes": [ + { + "id": 37641, + "nodeType": "EventDefinition", + "src": "1555:50:48", + "nodes": [], + "anonymous": false, + "eventSelector": "78bc0e219b874bf2620f7316737ec16d4bda1bb7136961e4dcb5ff0dc031cee4", + "name": "PayeeAdded", + "nameLocation": "1561:10:48", + "parameters": { + "id": 37640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37637, + "indexed": false, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "1580:7:48", + "nodeType": "VariableDeclaration", + "scope": 37641, + "src": "1572:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1572:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37639, + "indexed": false, + "mutability": "mutable", + "name": "shares", + "nameLocation": "1597:6:48", + "nodeType": "VariableDeclaration", + "scope": 37641, + "src": "1589:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1571:33:48" + } + }, + { + "id": 37647, + "nodeType": "EventDefinition", + "src": "1610:50:48", + "nodes": [], + "anonymous": false, + "eventSelector": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056", + "name": "PaymentReleased", + "nameLocation": "1616:15:48", + "parameters": { + "id": 37646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37643, + "indexed": false, + "mutability": "mutable", + "name": "to", + "nameLocation": "1640:2:48", + "nodeType": "VariableDeclaration", + "scope": 37647, + "src": "1632:10:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1632:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37645, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1652:6:48", + "nodeType": "VariableDeclaration", + "scope": 37647, + "src": "1644:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1644:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1631:28:48" + } + }, + { + "id": 37656, + "nodeType": "EventDefinition", + "src": "1665:77:48", + "nodes": [], + "anonymous": false, + "eventSelector": "3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a", + "name": "ERC20PaymentReleased", + "nameLocation": "1671:20:48", + "parameters": { + "id": 37655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37650, + "indexed": true, + "mutability": "mutable", + "name": "token", + "nameLocation": "1707:5:48", + "nodeType": "VariableDeclaration", + "scope": 37656, + "src": "1692:20:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 37649, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37648, + "name": "IERC20", + "nameLocations": [ + "1692:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "1692:6:48" + }, + "referencedDeclaration": 29663, + "src": "1692:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37652, + "indexed": false, + "mutability": "mutable", + "name": "to", + "nameLocation": "1722:2:48", + "nodeType": "VariableDeclaration", + "scope": 37656, + "src": "1714:10:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1714:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37654, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1734:6:48", + "nodeType": "VariableDeclaration", + "scope": 37656, + "src": "1726:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1726:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1691:50:48" + } + }, + { + "id": 37662, + "nodeType": "EventDefinition", + "src": "1747:52:48", + "nodes": [], + "anonymous": false, + "eventSelector": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770", + "name": "PaymentReceived", + "nameLocation": "1753:15:48", + "parameters": { + "id": 37661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37658, + "indexed": false, + "mutability": "mutable", + "name": "from", + "nameLocation": "1777:4:48", + "nodeType": "VariableDeclaration", + "scope": 37662, + "src": "1769:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1769:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37660, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1791:6:48", + "nodeType": "VariableDeclaration", + "scope": 37662, + "src": "1783:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1768:30:48" + } + }, + { + "id": 37668, + "nodeType": "EventDefinition", + "src": "1804:50:48", + "nodes": [], + "anonymous": false, + "eventSelector": "1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e1337", + "name": "RewardWithdrawn", + "nameLocation": "1810:15:48", + "parameters": { + "id": 37667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37664, + "indexed": false, + "mutability": "mutable", + "name": "by", + "nameLocation": "1834:2:48", + "nodeType": "VariableDeclaration", + "scope": 37668, + "src": "1826:10:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37663, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37666, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1846:6:48", + "nodeType": "VariableDeclaration", + "scope": 37668, + "src": "1838:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1838:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1825:28:48" + } + }, + { + "id": 37677, + "nodeType": "EventDefinition", + "src": "1859:77:48", + "nodes": [], + "anonymous": false, + "eventSelector": "6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f7572", + "name": "ERC20RewardWithdrawn", + "nameLocation": "1865:20:48", + "parameters": { + "id": 37676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37671, + "indexed": true, + "mutability": "mutable", + "name": "token", + "nameLocation": "1901:5:48", + "nodeType": "VariableDeclaration", + "scope": 37677, + "src": "1886:20:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 37670, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37669, + "name": "IERC20", + "nameLocations": [ + "1886:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "1886:6:48" + }, + "referencedDeclaration": 29663, + "src": "1886:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37673, + "indexed": false, + "mutability": "mutable", + "name": "by", + "nameLocation": "1916:2:48", + "nodeType": "VariableDeclaration", + "scope": 37677, + "src": "1908:10:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1908:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37675, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1928:6:48", + "nodeType": "VariableDeclaration", + "scope": 37677, + "src": "1920:14:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1920:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1885:50:48" + } + }, + { + "id": 37679, + "nodeType": "VariableDeclaration", + "src": "1942:28:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_totalShares", + "nameLocation": "1958:12:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1942:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "id": 37681, + "nodeType": "VariableDeclaration", + "src": "1976:30:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_totalReleased", + "nameLocation": "1992:14:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1976:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "id": 37685, + "nodeType": "VariableDeclaration", + "src": "2013:43:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_shares", + "nameLocation": "2049:7:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 37684, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 37682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2021:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2013:27:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 37683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2032:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "id": 37689, + "nodeType": "VariableDeclaration", + "src": "2062:45:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_released", + "nameLocation": "2098:9:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 37688, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 37686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2070:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2062:27:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 37687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2081:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "id": 37692, + "nodeType": "VariableDeclaration", + "src": "2113:25:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_payees", + "nameLocation": "2131:7:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 37690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2113:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37691, + "nodeType": "ArrayTypeName", + "src": "2113:9:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "private" + }, + { + "id": 37697, + "nodeType": "VariableDeclaration", + "src": "2145:54:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_erc20TotalReleased", + "nameLocation": "2180:19:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_uint256_$", + "typeString": "mapping(contract IERC20 => uint256)" + }, + "typeName": { + "id": 37696, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 37694, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37693, + "name": "IERC20", + "nameLocations": [ + "2153:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "2153:6:48" + }, + "referencedDeclaration": 29663, + "src": "2153:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "nodeType": "Mapping", + "src": "2145:26:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_uint256_$", + "typeString": "mapping(contract IERC20 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 37695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2163:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "id": 37704, + "nodeType": "VariableDeclaration", + "src": "2205:69:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_erc20Released", + "nameLocation": "2260:14:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(contract IERC20 => mapping(uint256 => uint256))" + }, + "typeName": { + "id": 37703, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 37699, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37698, + "name": "IERC20", + "nameLocations": [ + "2213:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "2213:6:48" + }, + "referencedDeclaration": 29663, + "src": "2213:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "nodeType": "Mapping", + "src": "2205:46:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(contract IERC20 => mapping(uint256 => uint256))" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 37702, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 37700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2231:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2223:27:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 37701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2242:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "visibility": "private" + }, + { + "id": 37707, + "nodeType": "VariableDeclaration", + "src": "2281:42:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_underlyingContest", + "nameLocation": "2305:18:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + }, + "typeName": { + "id": 37706, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37705, + "name": "GovernorSorting", + "nameLocations": [ + "2281:15:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37625, + "src": "2281:15:48" + }, + "referencedDeclaration": 37625, + "src": "2281:15:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "visibility": "private" + }, + { + "id": 37709, + "nodeType": "VariableDeclaration", + "src": "2329:24:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_creator", + "nameLocation": "2345:8:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2329:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "private" + }, + { + "id": 37711, + "nodeType": "VariableDeclaration", + "src": "2359:27:48", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "_paysOutTarget", + "nameLocation": "2372:14:48", + "scope": 38438, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37710, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2359:4:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "private" + }, + { + "id": 37779, + "nodeType": "FunctionDefinition", + "src": "2806:572:48", + "nodes": [], + "body": { + "id": 37778, + "nodeType": "Block", + "src": "2972:406:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 37727, + "name": "payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37715, + "src": "2990:6:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2997:6:48", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2990:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 37729, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37718, + "src": "3007:7:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3015:6:48", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3007:14:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2990:31:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2070617965657320616e6420736861726573206c656e677468206d69736d61746368", + "id": 37732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3023:50:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00095308d5117037b4b8ad9776a0a686966e9acdbd7eeba6536f92c0fb5b3d98", + "typeString": "literal_string \"RewardsModule: payees and shares length mismatch\"" + }, + "value": "RewardsModule: payees and shares length mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_00095308d5117037b4b8ad9776a0a686966e9acdbd7eeba6536f92c0fb5b3d98", + "typeString": "literal_string \"RewardsModule: payees and shares length mismatch\"" + } + ], + "id": 37726, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2982:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 37733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2982:92:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37734, + "nodeType": "ExpressionStatement", + "src": "2982:92:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 37736, + "name": "payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37715, + "src": "3092:6:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3099:6:48", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3092:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 37738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3108:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3092:17:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206e6f20706179656573", + "id": 37740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3111:26:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3d7dbca05ea83bc81881da627bb38e518536d8c65a389071fe91b092e74484b", + "typeString": "literal_string \"RewardsModule: no payees\"" + }, + "value": "RewardsModule: no payees" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3d7dbca05ea83bc81881da627bb38e518536d8c65a389071fe91b092e74484b", + "typeString": "literal_string \"RewardsModule: no payees\"" + } + ], + "id": 37735, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3084:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 37741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3084:54:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37742, + "nodeType": "ExpressionStatement", + "src": "3084:54:48" + }, + { + "body": { + "id": 37763, + "nodeType": "Block", + "src": "3193:57:48", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 37755, + "name": "payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37715, + "src": "3217:6:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37757, + "indexExpression": { + "id": 37756, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37744, + "src": "3224:1:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3217:9:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 37758, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37718, + "src": "3228:7:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37760, + "indexExpression": { + "id": 37759, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37744, + "src": "3236:1:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3228:10:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37754, + "name": "_addPayee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38437, + "src": "3207:9:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 37761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3207:32:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37762, + "nodeType": "ExpressionStatement", + "src": "3207:32:48" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 37747, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37744, + "src": "3169:1:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 37748, + "name": "payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37715, + "src": "3173:6:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 37749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3180:6:48", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3173:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3169:17:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 37764, + "initializationExpression": { + "assignments": [ + 37744 + ], + "declarations": [ + { + "constant": false, + "id": 37744, + "mutability": "mutable", + "name": "i", + "nameLocation": "3162:1:48", + "nodeType": "VariableDeclaration", + "scope": 37764, + "src": "3154:9:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3154:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 37746, + "initialValue": { + "hexValue": "30", + "id": 37745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3166:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3154:13:48" + }, + "loopExpression": { + "expression": { + "id": 37752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3188:3:48", + "subExpression": { + "id": 37751, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37744, + "src": "3188:1:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37753, + "nodeType": "ExpressionStatement", + "src": "3188:3:48" + }, + "nodeType": "ForStatement", + "src": "3149:101:48" + }, + { + "expression": { + "id": 37767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 37765, + "name": "_paysOutTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37711, + "src": "3260:14:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 37766, + "name": "paysOutTarget_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37723, + "src": "3277:14:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3260:31:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 37768, + "nodeType": "ExpressionStatement", + "src": "3260:31:48" + }, + { + "expression": { + "id": 37771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 37769, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "3301:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 37770, + "name": "underlyingContest_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37721, + "src": "3322:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "src": "3301:39:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 37772, + "nodeType": "ExpressionStatement", + "src": "3301:39:48" + }, + { + "expression": { + "id": 37776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 37773, + "name": "_creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37709, + "src": "3350:8:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 37774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3361:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 37775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3365:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3361:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3350:21:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 37777, + "nodeType": "ExpressionStatement", + "src": "3350:21:48" + } + ] + }, + "documentation": { + "id": 37712, + "nodeType": "StructuredDocumentation", + "src": "2463:338:48", + "text": " @dev Creates an instance of `RewardsModule` where each ranking in `payees` is assigned the number of shares at\n the matching position in the `shares` array.\n All rankings in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no\n duplicates in `payees`." + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 37724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37715, + "mutability": "mutable", + "name": "payees", + "nameLocation": "2844:6:48", + "nodeType": "VariableDeclaration", + "scope": 37779, + "src": "2827:23:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 37713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2827:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37714, + "nodeType": "ArrayTypeName", + "src": "2827:9:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37718, + "mutability": "mutable", + "name": "shares_", + "nameLocation": "2877:7:48", + "nodeType": "VariableDeclaration", + "scope": 37779, + "src": "2860:24:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 37716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2860:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37717, + "nodeType": "ArrayTypeName", + "src": "2860:9:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37721, + "mutability": "mutable", + "name": "underlyingContest_", + "nameLocation": "2910:18:48", + "nodeType": "VariableDeclaration", + "scope": 37779, + "src": "2894:34:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + }, + "typeName": { + "id": 37720, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37719, + "name": "GovernorSorting", + "nameLocations": [ + "2894:15:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 37625, + "src": "2894:15:48" + }, + "referencedDeclaration": 37625, + "src": "2894:15:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37723, + "mutability": "mutable", + "name": "paysOutTarget_", + "nameLocation": "2943:14:48", + "nodeType": "VariableDeclaration", + "scope": 37779, + "src": "2938:19:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2938:4:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2817:146:48" + }, + "returnParameters": { + "id": 37725, + "nodeType": "ParameterList", + "parameters": [], + "src": "2972:0:48" + }, + "scope": 38438, + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "id": 37791, + "nodeType": "FunctionDefinition", + "src": "3890:95:48", + "nodes": [], + "body": { + "id": 37790, + "nodeType": "Block", + "src": "3925:60:48", + "nodes": [], + "statements": [ + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 37784, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3956:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 37785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3960:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3956:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 37786, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3968:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 37787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3972:5:48", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3968:9:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37783, + "name": "PaymentReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37662, + "src": "3940:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 37788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3940:38:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37789, + "nodeType": "EmitStatement", + "src": "3935:43:48" + } + ] + }, + "documentation": { + "id": 37780, + "nodeType": "StructuredDocumentation", + "src": "3384:501:48", + "text": " @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully\n reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the\n reliability of the events, and not the actual splitting of Ether.\n To learn more about this see the Solidity documentation for\n https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback\n functions]." + }, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 37781, + "nodeType": "ParameterList", + "parameters": [], + "src": "3897:2:48" + }, + "returnParameters": { + "id": 37782, + "nodeType": "ParameterList", + "parameters": [], + "src": "3925:0:48" + }, + "scope": 38438, + "stateMutability": "payable", + "virtual": true, + "visibility": "external" + }, + { + "id": 37800, + "nodeType": "FunctionDefinition", + "src": "4063:92:48", + "nodes": [], + "body": { + "id": 37799, + "nodeType": "Block", + "src": "4126:29:48", + "nodes": [], + "statements": [ + { + "expression": { + "hexValue": "332e33", + "id": 37797, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4143:5:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8076ec3abbf3272059b84ffbba4ae4514e699cf80b934f3d5ac63e5348f67967", + "typeString": "literal_string \"3.3\"" + }, + "value": "3.3" + }, + "functionReturnParameters": 37796, + "id": 37798, + "nodeType": "Return", + "src": "4136:12:48" + } + ] + }, + "documentation": { + "id": 37792, + "nodeType": "StructuredDocumentation", + "src": "3991:67:48", + "text": " @dev Version of the rewards module. Default: \"1\"" + }, + "functionSelector": "54fd4d50", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "version", + "nameLocation": "4072:7:48", + "parameters": { + "id": 37793, + "nodeType": "ParameterList", + "parameters": [], + "src": "4079:2:48" + }, + "returnParameters": { + "id": 37796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37795, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37800, + "src": "4111:13:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 37794, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4111:6:48", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4110:15:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "id": 37809, + "nodeType": "FunctionDefinition", + "src": "4233:89:48", + "nodes": [], + "body": { + "id": 37808, + "nodeType": "Block", + "src": "4286:36:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37806, + "name": "_totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37679, + "src": "4303:12:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37805, + "id": 37807, + "nodeType": "Return", + "src": "4296:19:48" + } + ] + }, + "documentation": { + "id": 37801, + "nodeType": "StructuredDocumentation", + "src": "4161:67:48", + "text": " @dev Getter for the total shares held by payees." + }, + "functionSelector": "3a98ef39", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalShares", + "nameLocation": "4242:11:48", + "parameters": { + "id": 37802, + "nodeType": "ParameterList", + "parameters": [], + "src": "4253:2:48" + }, + "returnParameters": { + "id": 37805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37804, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37809, + "src": "4277:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4277:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4276:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37818, + "nodeType": "FunctionDefinition", + "src": "4405:81:48", + "nodes": [], + "body": { + "id": 37817, + "nodeType": "Block", + "src": "4454:32:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37815, + "name": "_creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37709, + "src": "4471:8:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 37814, + "id": 37816, + "nodeType": "Return", + "src": "4464:15:48" + } + ] + }, + "documentation": { + "id": 37810, + "nodeType": "StructuredDocumentation", + "src": "4328:72:48", + "text": " @dev Getter for the creator of this rewards contract." + }, + "functionSelector": "02d05d3f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "creator", + "nameLocation": "4414:7:48", + "parameters": { + "id": 37811, + "nodeType": "ParameterList", + "parameters": [], + "src": "4421:2:48" + }, + "returnParameters": { + "id": 37814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37813, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37818, + "src": "4445:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4445:7:48", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4444:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37827, + "nodeType": "FunctionDefinition", + "src": "4575:93:48", + "nodes": [], + "body": { + "id": 37826, + "nodeType": "Block", + "src": "4630:38:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37824, + "name": "_totalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37681, + "src": "4647:14:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37823, + "id": 37825, + "nodeType": "Return", + "src": "4640:21:48" + } + ] + }, + "documentation": { + "id": 37819, + "nodeType": "StructuredDocumentation", + "src": "4492:78:48", + "text": " @dev Getter for the total amount of Ether already released." + }, + "functionSelector": "e33b7de3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReleased", + "nameLocation": "4584:13:48", + "parameters": { + "id": 37820, + "nodeType": "ParameterList", + "parameters": [], + "src": "4597:2:48" + }, + "returnParameters": { + "id": 37823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37822, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37827, + "src": "4621:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4621:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4620:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37841, + "nodeType": "FunctionDefinition", + "src": "4819:117:48", + "nodes": [], + "body": { + "id": 37840, + "nodeType": "Block", + "src": "4886:50:48", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "id": 37836, + "name": "_erc20TotalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37697, + "src": "4903:19:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_uint256_$", + "typeString": "mapping(contract IERC20 => uint256)" + } + }, + "id": 37838, + "indexExpression": { + "id": 37837, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37831, + "src": "4923:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4903:26:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37835, + "id": 37839, + "nodeType": "Return", + "src": "4896:33:48" + } + ] + }, + "documentation": { + "id": 37828, + "nodeType": "StructuredDocumentation", + "src": "4674:140:48", + "text": " @dev Getter for the total amount of `token` already released. `token` should be the address of an IERC20\n contract." + }, + "functionSelector": "d79779b2", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReleased", + "nameLocation": "4828:13:48", + "parameters": { + "id": 37832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37831, + "mutability": "mutable", + "name": "token", + "nameLocation": "4849:5:48", + "nodeType": "VariableDeclaration", + "scope": 37841, + "src": "4842:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 37830, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37829, + "name": "IERC20", + "nameLocations": [ + "4842:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "4842:6:48" + }, + "referencedDeclaration": 29663, + "src": "4842:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "4841:14:48" + }, + "returnParameters": { + "id": 37835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37834, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37841, + "src": "4877:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4877:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4876:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37854, + "nodeType": "FunctionDefinition", + "src": "5021:103:48", + "nodes": [], + "body": { + "id": 37853, + "nodeType": "Block", + "src": "5084:40:48", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "id": 37849, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "5101:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 37851, + "indexExpression": { + "id": 37850, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37844, + "src": "5109:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5101:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37848, + "id": 37852, + "nodeType": "Return", + "src": "5094:23:48" + } + ] + }, + "documentation": { + "id": 37842, + "nodeType": "StructuredDocumentation", + "src": "4942:74:48", + "text": " @dev Getter for the amount of shares held by a ranking." + }, + "functionSelector": "57a858fc", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "shares", + "nameLocation": "5030:6:48", + "parameters": { + "id": 37845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37844, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "5045:7:48", + "nodeType": "VariableDeclaration", + "scope": 37854, + "src": "5037:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5037:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5036:17:48" + }, + "returnParameters": { + "id": 37848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37847, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37854, + "src": "5075:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37846, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5075:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5074:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37867, + "nodeType": "FunctionDefinition", + "src": "5218:107:48", + "nodes": [], + "body": { + "id": 37866, + "nodeType": "Block", + "src": "5283:42:48", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "id": 37862, + "name": "_released", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37689, + "src": "5300:9:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 37864, + "indexExpression": { + "id": 37863, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37857, + "src": "5310:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5300:18:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37861, + "id": 37865, + "nodeType": "Return", + "src": "5293:25:48" + } + ] + }, + "documentation": { + "id": 37855, + "nodeType": "StructuredDocumentation", + "src": "5130:83:48", + "text": " @dev Getter for the amount of Ether already released to a payee." + }, + "functionSelector": "a94d373b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "released", + "nameLocation": "5227:8:48", + "parameters": { + "id": 37858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37857, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "5244:7:48", + "nodeType": "VariableDeclaration", + "scope": 37867, + "src": "5236:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5236:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5235:17:48" + }, + "returnParameters": { + "id": 37861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37860, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37867, + "src": "5274:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37859, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5274:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5273:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37885, + "nodeType": "FunctionDefinition", + "src": "5488:133:48", + "nodes": [], + "body": { + "id": 37884, + "nodeType": "Block", + "src": "5567:54:48", + "nodes": [], + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 37878, + "name": "_erc20Released", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37704, + "src": "5584:14:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(contract IERC20 => mapping(uint256 => uint256))" + } + }, + "id": 37880, + "indexExpression": { + "id": 37879, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37871, + "src": "5599:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5584:21:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 37882, + "indexExpression": { + "id": 37881, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37873, + "src": "5606:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5584:30:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37877, + "id": 37883, + "nodeType": "Return", + "src": "5577:37:48" + } + ] + }, + "documentation": { + "id": 37868, + "nodeType": "StructuredDocumentation", + "src": "5331:152:48", + "text": " @dev Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an\n IERC20 contract." + }, + "functionSelector": "cfe83070", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "released", + "nameLocation": "5497:8:48", + "parameters": { + "id": 37874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37871, + "mutability": "mutable", + "name": "token", + "nameLocation": "5513:5:48", + "nodeType": "VariableDeclaration", + "scope": 37885, + "src": "5506:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 37870, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37869, + "name": "IERC20", + "nameLocations": [ + "5506:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "5506:6:48" + }, + "referencedDeclaration": 29663, + "src": "5506:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37873, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "5528:7:48", + "nodeType": "VariableDeclaration", + "scope": 37885, + "src": "5520:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5520:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5505:31:48" + }, + "returnParameters": { + "id": 37877, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37876, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37885, + "src": "5558:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5558:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5557:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37895, + "nodeType": "FunctionDefinition", + "src": "5706:91:48", + "nodes": [], + "body": { + "id": 37894, + "nodeType": "Block", + "src": "5766:31:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37892, + "name": "_payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37692, + "src": "5783:7:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "functionReturnParameters": 37891, + "id": 37893, + "nodeType": "Return", + "src": "5776:14:48" + } + ] + }, + "documentation": { + "id": 37886, + "nodeType": "StructuredDocumentation", + "src": "5627:74:48", + "text": " @dev Getter for list of rankings that will be paid out." + }, + "functionSelector": "27f38113", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPayees", + "nameLocation": "5715:9:48", + "parameters": { + "id": 37887, + "nodeType": "ParameterList", + "parameters": [], + "src": "5724:2:48" + }, + "returnParameters": { + "id": 37891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37890, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37895, + "src": "5748:16:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 37888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5748:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 37889, + "nodeType": "ArrayTypeName", + "src": "5748:9:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5747:18:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37904, + "nodeType": "FunctionDefinition", + "src": "5908:90:48", + "nodes": [], + "body": { + "id": 37903, + "nodeType": "Block", + "src": "5960:38:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37901, + "name": "_paysOutTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37711, + "src": "5977:14:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 37900, + "id": 37902, + "nodeType": "Return", + "src": "5970:21:48" + } + ] + }, + "documentation": { + "id": 37896, + "nodeType": "StructuredDocumentation", + "src": "5803:100:48", + "text": " @dev Getter for whether this pays out the target address or author of a proposal." + }, + "functionSelector": "1e5b4634", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paysOutTarget", + "nameLocation": "5917:13:48", + "parameters": { + "id": 37897, + "nodeType": "ParameterList", + "parameters": [], + "src": "5930:2:48" + }, + "returnParameters": { + "id": 37900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37899, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37904, + "src": "5954:4:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 37898, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5954:4:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5953:6:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37914, + "nodeType": "FunctionDefinition", + "src": "6067:116:48", + "nodes": [], + "body": { + "id": 37913, + "nodeType": "Block", + "src": "6141:42:48", + "nodes": [], + "statements": [ + { + "expression": { + "id": 37911, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "6158:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "functionReturnParameters": 37910, + "id": 37912, + "nodeType": "Return", + "src": "6151:25:48" + } + ] + }, + "documentation": { + "id": 37905, + "nodeType": "StructuredDocumentation", + "src": "6004:58:48", + "text": " @dev Getter for the underlying contest." + }, + "functionSelector": "f3f44fb7", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "underlyingContest", + "nameLocation": "6076:17:48", + "parameters": { + "id": 37906, + "nodeType": "ParameterList", + "parameters": [], + "src": "6093:2:48" + }, + "returnParameters": { + "id": 37910, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37909, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37914, + "src": "6117:22:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorCountingSimple_$36618", + "typeString": "contract GovernorCountingSimple" + }, + "typeName": { + "id": 37908, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37907, + "name": "GovernorCountingSimple", + "nameLocations": [ + "6117:22:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36618, + "src": "6117:22:48" + }, + "referencedDeclaration": 36618, + "src": "6117:22:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorCountingSimple_$36618", + "typeString": "contract GovernorCountingSimple" + } + }, + "visibility": "internal" + } + ], + "src": "6116:24:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37942, + "nodeType": "FunctionDefinition", + "src": "6268:222:48", + "nodes": [], + "body": { + "id": 37941, + "nodeType": "Block", + "src": "6335:155:48", + "nodes": [], + "statements": [ + { + "assignments": [ + 37923 + ], + "declarations": [ + { + "constant": false, + "id": 37923, + "mutability": "mutable", + "name": "totalReceived", + "nameLocation": "6353:13:48", + "nodeType": "VariableDeclaration", + "scope": 37941, + "src": "6345:21:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6345:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 37932, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 37926, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6377:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 37925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6369:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6369:7:48", + "typeDescriptions": {} + } + }, + "id": 37927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6369:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 37928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6383:7:48", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "6369:21:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 37929, + "name": "totalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37827, + 37841 + ], + "referencedDeclaration": 37827, + "src": "6393:13:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 37930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6393:15:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6369:39:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6345:63:48" + }, + { + "expression": { + "arguments": [ + { + "id": 37934, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37917, + "src": "6441:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 37935, + "name": "totalReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37923, + "src": "6450:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 37937, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37917, + "src": "6474:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37936, + "name": "released", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37867, + 37885 + ], + "referencedDeclaration": 37867, + "src": "6465:8:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 37938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6465:17:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37933, + "name": "_pendingPayment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38382, + "src": "6425:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 37939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6425:58:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37921, + "id": 37940, + "nodeType": "Return", + "src": "6418:65:48" + } + ] + }, + "documentation": { + "id": 37915, + "nodeType": "StructuredDocumentation", + "src": "6189:74:48", + "text": " @dev Getter for the amount of payee's releasable Ether." + }, + "functionSelector": "e4bf01a8", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "releasable", + "nameLocation": "6277:10:48", + "parameters": { + "id": 37918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37917, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "6296:7:48", + "nodeType": "VariableDeclaration", + "scope": 37942, + "src": "6288:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6288:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6287:17:48" + }, + "returnParameters": { + "id": 37921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37920, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37942, + "src": "6326:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6326:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6325:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 37977, + "nodeType": "FunctionDefinition", + "src": "6644:257:48", + "nodes": [], + "body": { + "id": 37976, + "nodeType": "Block", + "src": "6725:176:48", + "nodes": [], + "statements": [ + { + "assignments": [ + 37954 + ], + "declarations": [ + { + "constant": false, + "id": 37954, + "mutability": "mutable", + "name": "totalReceived", + "nameLocation": "6743:13:48", + "nodeType": "VariableDeclaration", + "scope": 37976, + "src": "6735:21:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6735:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 37966, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 37959, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6783:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 37958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6775:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 37957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6775:7:48", + "typeDescriptions": {} + } + }, + "id": 37960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6775:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 37955, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37946, + "src": "6759:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "id": 37956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6765:9:48", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29620, + "src": "6759:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 37961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6759:30:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "id": 37963, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37946, + "src": "6806:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + ], + "id": 37962, + "name": "totalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37827, + 37841 + ], + "referencedDeclaration": 37841, + "src": "6792:13:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$29663_$returns$_t_uint256_$", + "typeString": "function (contract IERC20) view returns (uint256)" + } + }, + "id": 37964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6792:20:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6759:53:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6735:77:48" + }, + { + "expression": { + "arguments": [ + { + "id": 37968, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37948, + "src": "6845:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 37969, + "name": "totalReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37954, + "src": "6854:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 37971, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37946, + "src": "6878:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "id": 37972, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37948, + "src": "6885:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37970, + "name": "released", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37867, + 37885 + ], + "referencedDeclaration": 37885, + "src": "6869:8:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$29663_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20,uint256) view returns (uint256)" + } + }, + "id": 37973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6869:24:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 37967, + "name": "_pendingPayment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38382, + "src": "6829:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 37974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6829:65:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 37952, + "id": 37975, + "nodeType": "Return", + "src": "6822:72:48" + } + ] + }, + "documentation": { + "id": 37943, + "nodeType": "StructuredDocumentation", + "src": "6496:143:48", + "text": " @dev Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an\n IERC20 contract." + }, + "functionSelector": "2081d631", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "releasable", + "nameLocation": "6653:10:48", + "parameters": { + "id": 37949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37946, + "mutability": "mutable", + "name": "token", + "nameLocation": "6671:5:48", + "nodeType": "VariableDeclaration", + "scope": 37977, + "src": "6664:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 37945, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 37944, + "name": "IERC20", + "nameLocations": [ + "6664:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "6664:6:48" + }, + "referencedDeclaration": 29663, + "src": "6664:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 37948, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "6686:7:48", + "nodeType": "VariableDeclaration", + "scope": 37977, + "src": "6678:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6678:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6663:31:48" + }, + "returnParameters": { + "id": 37952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37951, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 37977, + "src": "6716:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6716:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6715:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 38121, + "nodeType": "FunctionDefinition", + "src": "7095:2148:48", + "nodes": [], + "body": { + "id": 38120, + "nodeType": "Block", + "src": "7144:2099:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 37986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 37984, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "7162:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 37985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7173:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7162:12:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2072616e6b696e67206d7573742062652031206f722067726561746572", + "id": 37987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7176:45:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4bbe7c5df000fad63438a8f9bf699f922a8e7770dfd8060f04e09f385890c27b", + "typeString": "literal_string \"RewardsModule: ranking must be 1 or greater\"" + }, + "value": "RewardsModule: ranking must be 1 or greater" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4bbe7c5df000fad63438a8f9bf699f922a8e7770dfd8060f04e09f385890c27b", + "typeString": "literal_string \"RewardsModule: ranking must be 1 or greater\"" + } + ], + "id": 37983, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7154:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 37988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7154:68:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37989, + "nodeType": "ExpressionStatement", + "src": "7154:68:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + }, + "id": 37997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 37991, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "7253:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 37992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7272:5:48", + "memberName": "state", + "nodeType": "MemberAccess", + "referencedDeclaration": 35339, + "src": "7253:24:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_enum$_ContestState_$36131_$", + "typeString": "function () view external returns (enum IGovernor.ContestState)" + } + }, + "id": 37993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7253:26:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 37994, + "name": "IGovernor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36348, + "src": "7283:9:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGovernor_$36348_$", + "typeString": "type(contract IGovernor)" + } + }, + "id": 37995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7293:12:48", + "memberName": "ContestState", + "nodeType": "MemberAccess", + "referencedDeclaration": 36131, + "src": "7283:22:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContestState_$36131_$", + "typeString": "type(enum IGovernor.ContestState)" + } + }, + "id": 37996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7306:9:48", + "memberName": "Completed", + "nodeType": "MemberAccess", + "referencedDeclaration": 36130, + "src": "7283:32:48", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + } + }, + "src": "7253:62:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a20636f6e74657374206d75737420626520636f6d706c6574656420666f72207265776172647320746f2062652070616964206f7574", + "id": 37998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:69:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b6190b48e9c509be2467f7f949d419819fd7213ac09205f043f6a8d25a7e823", + "typeString": "literal_string \"RewardsModule: contest must be completed for rewards to be paid out\"" + }, + "value": "RewardsModule: contest must be completed for rewards to be paid out" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b6190b48e9c509be2467f7f949d419819fd7213ac09205f043f6a8d25a7e823", + "typeString": "literal_string \"RewardsModule: contest must be completed for rewards to be paid out\"" + } + ], + "id": 37990, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7232:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 37999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7232:176:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38000, + "nodeType": "ExpressionStatement", + "src": "7232:176:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 38002, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "7426:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38004, + "indexExpression": { + "id": 38003, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "7434:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7426:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 38005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7445:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7426:20:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2072616e6b696e6720686173206e6f20736861726573", + "id": 38007, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7448:38:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ee2fcd7bb8d642bb45788f50661aa82c77f1e826be62221a8759e7d48fe4266d", + "typeString": "literal_string \"RewardsModule: ranking has no shares\"" + }, + "value": "RewardsModule: ranking has no shares" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ee2fcd7bb8d642bb45788f50661aa82c77f1e826be62221a8759e7d48fe4266d", + "typeString": "literal_string \"RewardsModule: ranking has no shares\"" + } + ], + "id": 38001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7418:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7418:69:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38009, + "nodeType": "ExpressionStatement", + "src": "7418:69:48" + }, + { + "assignments": [ + 38011 + ], + "declarations": [ + { + "constant": false, + "id": 38011, + "mutability": "mutable", + "name": "payment", + "nameLocation": "7506:7:48", + "nodeType": "VariableDeclaration", + "scope": 38120, + "src": "7498:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7498:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 38015, + "initialValue": { + "arguments": [ + { + "id": 38013, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "7527:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38012, + "name": "releasable", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37942, + 37977 + ], + "referencedDeclaration": 37942, + "src": "7516:10:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 38014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7516:19:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7498:37:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38017, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38011, + "src": "7567:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 38018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7578:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7567:12:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206163636f756e742069736e277420647565207061796d656e742061732074686572652069736e277420616e79206e61746976652063757272656e637920696e20746865206d6f64756c6520746f20706179206f7574", + "id": 38020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7593:102:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_92fec8d8b4d0e6e8f94290bbfa77644168534739f94b30c260dc7ff8a08190b9", + "typeString": "literal_string \"RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out\"" + }, + "value": "RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_92fec8d8b4d0e6e8f94290bbfa77644168534739f94b30c260dc7ff8a08190b9", + "typeString": "literal_string \"RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out\"" + } + ], + "id": 38016, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7546:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7546:159:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38022, + "nodeType": "ExpressionStatement", + "src": "7546:159:48" + }, + { + "expression": { + "id": 38025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 38023, + "name": "_totalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37681, + "src": "7896:14:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 38024, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38011, + "src": "7914:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7896:25:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38026, + "nodeType": "ExpressionStatement", + "src": "7896:25:48" + }, + { + "id": 38033, + "nodeType": "UncheckedBlock", + "src": "7931:64:48", + "statements": [ + { + "expression": { + "id": 38031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 38027, + "name": "_released", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37689, + "src": "7955:9:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38029, + "indexExpression": { + "id": 38028, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "7965:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7955:18:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 38030, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38011, + "src": "7977:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7955:29:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38032, + "nodeType": "ExpressionStatement", + "src": "7955:29:48" + } + ] + }, + { + "condition": { + "id": 38037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8154:57:48", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38034, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8155:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8174:35:48", + "memberName": "setSortedAndTiedProposalsHasBeenRun", + "nodeType": "MemberAccess", + "referencedDeclaration": 36986, + "src": "8155:54:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 38036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8155:56:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38044, + "nodeType": "IfStatement", + "src": "8150:134:48", + "trueBody": { + "id": 38043, + "nodeType": "Block", + "src": "8213:71:48", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38038, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8227:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8246:25:48", + "memberName": "setSortedAndTiedProposals", + "nodeType": "MemberAccess", + "referencedDeclaration": 37624, + "src": "8227:44:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 38041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8227:46:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38042, + "nodeType": "ExpressionStatement", + "src": "8227:46:48" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38046, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "8315:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38047, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8326:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8345:13:48", + "memberName": "lowestRanking", + "nodeType": "MemberAccess", + "referencedDeclaration": 37066, + "src": "8326:32:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 38049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8326:34:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8315:45:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f7567682070726f706f73616c7320666f7220746861742072616e6b696e6720746f2065786973742c2074616b696e67207469657320696e746f206163636f756e74", + "id": 38051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8374:99:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b6b0ed0490e2fb501cf0ff79c295b5a966d5a0e486f97b851862fe9b15b9b610", + "typeString": "literal_string \"RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account\"" + }, + "value": "RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b6b0ed0490e2fb501cf0ff79c295b5a966d5a0e486f97b851862fe9b15b9b610", + "typeString": "literal_string \"RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account\"" + } + ], + "id": 38045, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8294:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8294:189:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38053, + "nodeType": "ExpressionStatement", + "src": "8294:189:48" + }, + { + "assignments": [ + 38058 + ], + "declarations": [ + { + "constant": false, + "id": 38058, + "mutability": "mutable", + "name": "rankingProposal", + "nameLocation": "8524:15:48", + "nodeType": "VariableDeclaration", + "scope": 38120, + "src": "8494:45:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore" + }, + "typeName": { + "id": 38057, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38056, + "name": "IGovernor.ProposalCore", + "nameLocations": [ + "8494:9:48", + "8504:12:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36159, + "src": "8494:22:48" + }, + "referencedDeclaration": 36159, + "src": "8494:22:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_storage_ptr", + "typeString": "struct IGovernor.ProposalCore" + } + }, + "visibility": "internal" + } + ], + "id": 38070, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38061, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8586:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8605:17:48", + "memberName": "sortedProposalIds", + "nodeType": "MemberAccess", + "referencedDeclaration": 37052, + "src": "8586:36:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () view external returns (uint256[] memory)" + } + }, + "id": 38063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8586:38:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 38068, + "indexExpression": { + "arguments": [ + { + "id": 38066, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "8672:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38064, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8625:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8644:27:48", + "memberName": "tiedAdjustedRankingPosition", + "nodeType": "MemberAccess", + "referencedDeclaration": 36990, + "src": "8625:46:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 38067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8625:55:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8586:95:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38059, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8542:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8561:11:48", + "memberName": "getProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 35418, + "src": "8542:30:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ProposalCore_$36159_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IGovernor.ProposalCore memory)" + } + }, + "id": 38069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8542:149:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8494:197:48" + }, + { + "assignments": [ + 38072 + ], + "declarations": [ + { + "constant": false, + "id": 38072, + "mutability": "mutable", + "name": "addressToPayOut", + "nameLocation": "8812:15:48", + "nodeType": "VariableDeclaration", + "scope": 38120, + "src": "8796:31:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 38071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8796:15:48", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "id": 38097, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38073, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37980, + "src": "8830:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38074, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "8840:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8859:18:48", + "memberName": "highestTiedRanking", + "nodeType": "MemberAccess", + "referencedDeclaration": 37080, + "src": "8840:37:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 38076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8840:39:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8830:49:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38093, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "9021:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9021:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9013:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9013:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9013:18:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 38096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8830:201:48", + "trueExpression": { + "condition": { + "id": 38078, + "name": "_paysOutTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37711, + "src": "8894:14:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "expression": { + "id": 38087, + "name": "rankingProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38058, + "src": "8975:15:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "id": 38088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8991:6:48", + "memberName": "author", + "nodeType": "MemberAccess", + "referencedDeclaration": 36148, + "src": "8975:22:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8967:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8967:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8967:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 38090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8894:104:48", + "trueExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 38081, + "name": "rankingProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38058, + "src": "8919:15:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "id": 38082, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8935:14:48", + "memberName": "targetMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 36155, + "src": "8919:30:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TargetMetadata_$36140_memory_ptr", + "typeString": "struct IGovernor.TargetMetadata memory" + } + }, + "id": 38083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8950:13:48", + "memberName": "targetAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 36139, + "src": "8919:44:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8911:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8911:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8911:53:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8796:235:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 38104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38099, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38072, + "src": "9050:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 38102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9077:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9069:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9069:7:48", + "typeDescriptions": {} + } + }, + "id": 38103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9069:10:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9050:29:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206163636f756e7420697320746865207a65726f2061646472657373", + "id": 38105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9081:44:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a0402efcb8e4d8fadf2c156dba8e5f28bf003c6b18e6763ea6c49d248e456ffb", + "typeString": "literal_string \"RewardsModule: account is the zero address\"" + }, + "value": "RewardsModule: account is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a0402efcb8e4d8fadf2c156dba8e5f28bf003c6b18e6763ea6c49d248e456ffb", + "typeString": "literal_string \"RewardsModule: account is the zero address\"" + } + ], + "id": 38098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9042:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9042:84:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38107, + "nodeType": "ExpressionStatement", + "src": "9042:84:48" + }, + { + "expression": { + "arguments": [ + { + "id": 38111, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38072, + "src": "9155:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 38112, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38011, + "src": "9172:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38108, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30503, + "src": "9137:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$30503_$", + "typeString": "type(library Address)" + } + }, + "id": 38110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9145:9:48", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 30225, + "src": "9137:17:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 38113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9137:43:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38114, + "nodeType": "ExpressionStatement", + "src": "9137:43:48" + }, + { + "eventCall": { + "arguments": [ + { + "id": 38116, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38072, + "src": "9211:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 38117, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38011, + "src": "9228:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38115, + "name": "PaymentReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37647, + "src": "9195:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 38118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9195:41:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38119, + "nodeType": "EmitStatement", + "src": "9190:46:48" + } + ] + }, + "documentation": { + "id": 37978, + "nodeType": "StructuredDocumentation", + "src": "6907:183:48", + "text": " @dev Triggers a transfer to `ranking` of the amount of Ether they are owed, according to their percentage of the\n total shares and their previous withdrawals." + }, + "functionSelector": "37bdc99b", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "release", + "nameLocation": "7104:7:48", + "parameters": { + "id": 37981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37980, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "7120:7:48", + "nodeType": "VariableDeclaration", + "scope": 38121, + "src": "7112:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37979, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7112:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7111:17:48" + }, + "returnParameters": { + "id": 37982, + "nodeType": "ParameterList", + "parameters": [], + "src": "7144:0:48" + }, + "scope": 38438, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 38275, + "nodeType": "FunctionDefinition", + "src": "9504:2287:48", + "nodes": [], + "body": { + "id": 38274, + "nodeType": "Block", + "src": "9567:2224:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38131, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "9585:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 38132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9596:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9585:12:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2072616e6b696e67206d7573742062652031206f722067726561746572", + "id": 38134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9599:45:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4bbe7c5df000fad63438a8f9bf699f922a8e7770dfd8060f04e09f385890c27b", + "typeString": "literal_string \"RewardsModule: ranking must be 1 or greater\"" + }, + "value": "RewardsModule: ranking must be 1 or greater" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4bbe7c5df000fad63438a8f9bf699f922a8e7770dfd8060f04e09f385890c27b", + "typeString": "literal_string \"RewardsModule: ranking must be 1 or greater\"" + } + ], + "id": 38130, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9577:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9577:68:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38136, + "nodeType": "ExpressionStatement", + "src": "9577:68:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + }, + "id": 38144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38138, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "9676:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9695:5:48", + "memberName": "state", + "nodeType": "MemberAccess", + "referencedDeclaration": 35339, + "src": "9676:24:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_enum$_ContestState_$36131_$", + "typeString": "function () view external returns (enum IGovernor.ContestState)" + } + }, + "id": 38140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9676:26:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 38141, + "name": "IGovernor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36348, + "src": "9706:9:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IGovernor_$36348_$", + "typeString": "type(contract IGovernor)" + } + }, + "id": 38142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9716:12:48", + "memberName": "ContestState", + "nodeType": "MemberAccess", + "referencedDeclaration": 36131, + "src": "9706:22:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContestState_$36131_$", + "typeString": "type(enum IGovernor.ContestState)" + } + }, + "id": 38143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9729:9:48", + "memberName": "Completed", + "nodeType": "MemberAccess", + "referencedDeclaration": 36130, + "src": "9706:32:48", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContestState_$36131", + "typeString": "enum IGovernor.ContestState" + } + }, + "src": "9676:62:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a20636f6e74657374206d75737420626520636f6d706c6574656420666f72207265776172647320746f2062652070616964206f7574", + "id": 38145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9752:69:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b6190b48e9c509be2467f7f949d419819fd7213ac09205f043f6a8d25a7e823", + "typeString": "literal_string \"RewardsModule: contest must be completed for rewards to be paid out\"" + }, + "value": "RewardsModule: contest must be completed for rewards to be paid out" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b6190b48e9c509be2467f7f949d419819fd7213ac09205f043f6a8d25a7e823", + "typeString": "literal_string \"RewardsModule: contest must be completed for rewards to be paid out\"" + } + ], + "id": 38137, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9655:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9655:176:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38147, + "nodeType": "ExpressionStatement", + "src": "9655:176:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 38149, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "9849:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38151, + "indexExpression": { + "id": 38150, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "9857:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9849:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 38152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9868:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9849:20:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2072616e6b696e6720686173206e6f20736861726573", + "id": 38154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9871:38:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ee2fcd7bb8d642bb45788f50661aa82c77f1e826be62221a8759e7d48fe4266d", + "typeString": "literal_string \"RewardsModule: ranking has no shares\"" + }, + "value": "RewardsModule: ranking has no shares" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ee2fcd7bb8d642bb45788f50661aa82c77f1e826be62221a8759e7d48fe4266d", + "typeString": "literal_string \"RewardsModule: ranking has no shares\"" + } + ], + "id": 38148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9841:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9841:69:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38156, + "nodeType": "ExpressionStatement", + "src": "9841:69:48" + }, + { + "assignments": [ + 38158 + ], + "declarations": [ + { + "constant": false, + "id": 38158, + "mutability": "mutable", + "name": "payment", + "nameLocation": "9929:7:48", + "nodeType": "VariableDeclaration", + "scope": 38274, + "src": "9921:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9921:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 38163, + "initialValue": { + "arguments": [ + { + "id": 38160, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38125, + "src": "9950:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "id": 38161, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "9957:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38159, + "name": "releasable", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 37942, + 37977 + ], + "referencedDeclaration": 37977, + "src": "9939:10:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$29663_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (contract IERC20,uint256) view returns (uint256)" + } + }, + "id": 38162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9939:26:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9921:44:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38165, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38158, + "src": "9997:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 38166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10008:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9997:12:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206163636f756e742069736e277420647565207061796d656e742061732074686572652069736e277420616e79206e61746976652063757272656e637920696e20746865206d6f64756c6520746f20706179206f7574", + "id": 38168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10023:102:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_92fec8d8b4d0e6e8f94290bbfa77644168534739f94b30c260dc7ff8a08190b9", + "typeString": "literal_string \"RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out\"" + }, + "value": "RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_92fec8d8b4d0e6e8f94290bbfa77644168534739f94b30c260dc7ff8a08190b9", + "typeString": "literal_string \"RewardsModule: account isn't due payment as there isn't any native currency in the module to pay out\"" + } + ], + "id": 38164, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9976:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9976:159:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38170, + "nodeType": "ExpressionStatement", + "src": "9976:159:48" + }, + { + "expression": { + "id": 38175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 38171, + "name": "_erc20TotalReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37697, + "src": "10396:19:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_uint256_$", + "typeString": "mapping(contract IERC20 => uint256)" + } + }, + "id": 38173, + "indexExpression": { + "id": 38172, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38125, + "src": "10416:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10396:26:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 38174, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38158, + "src": "10426:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10396:37:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38176, + "nodeType": "ExpressionStatement", + "src": "10396:37:48" + }, + { + "id": 38185, + "nodeType": "UncheckedBlock", + "src": "10443:76:48", + "statements": [ + { + "expression": { + "id": 38183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 38177, + "name": "_erc20Released", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37704, + "src": "10467:14:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_contract$_IERC20_$29663_$_t_mapping$_t_uint256_$_t_uint256_$_$", + "typeString": "mapping(contract IERC20 => mapping(uint256 => uint256))" + } + }, + "id": 38180, + "indexExpression": { + "id": 38178, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38125, + "src": "10482:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10467:21:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38181, + "indexExpression": { + "id": 38179, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "10489:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10467:30:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 38182, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38158, + "src": "10501:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10467:41:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38184, + "nodeType": "ExpressionStatement", + "src": "10467:41:48" + } + ] + }, + { + "condition": { + "id": 38189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10678:57:48", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38186, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "10679:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10698:35:48", + "memberName": "setSortedAndTiedProposalsHasBeenRun", + "nodeType": "MemberAccess", + "referencedDeclaration": 36986, + "src": "10679:54:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 38188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10679:56:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 38196, + "nodeType": "IfStatement", + "src": "10674:134:48", + "trueBody": { + "id": 38195, + "nodeType": "Block", + "src": "10737:71:48", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38190, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "10751:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10770:25:48", + "memberName": "setSortedAndTiedProposals", + "nodeType": "MemberAccess", + "referencedDeclaration": 37624, + "src": "10751:44:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 38193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10751:46:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38194, + "nodeType": "ExpressionStatement", + "src": "10751:46:48" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38198, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "10839:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38199, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "10850:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10869:13:48", + "memberName": "lowestRanking", + "nodeType": "MemberAccess", + "referencedDeclaration": 37066, + "src": "10850:32:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 38201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10850:34:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10839:45:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f7567682070726f706f73616c7320666f7220746861742072616e6b696e6720746f2065786973742c2074616b696e67207469657320696e746f206163636f756e74", + "id": 38203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10898:99:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b6b0ed0490e2fb501cf0ff79c295b5a966d5a0e486f97b851862fe9b15b9b610", + "typeString": "literal_string \"RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account\"" + }, + "value": "RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b6b0ed0490e2fb501cf0ff79c295b5a966d5a0e486f97b851862fe9b15b9b610", + "typeString": "literal_string \"RewardsModule: there are not enough proposals for that ranking to exist, taking ties into account\"" + } + ], + "id": 38197, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10818:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10818:189:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38205, + "nodeType": "ExpressionStatement", + "src": "10818:189:48" + }, + { + "assignments": [ + 38210 + ], + "declarations": [ + { + "constant": false, + "id": 38210, + "mutability": "mutable", + "name": "rankingProposal", + "nameLocation": "11048:15:48", + "nodeType": "VariableDeclaration", + "scope": 38274, + "src": "11018:45:48", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore" + }, + "typeName": { + "id": 38209, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38208, + "name": "IGovernor.ProposalCore", + "nameLocations": [ + "11018:9:48", + "11028:12:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 36159, + "src": "11018:22:48" + }, + "referencedDeclaration": 36159, + "src": "11018:22:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_storage_ptr", + "typeString": "struct IGovernor.ProposalCore" + } + }, + "visibility": "internal" + } + ], + "id": 38222, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38213, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "11110:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11129:17:48", + "memberName": "sortedProposalIds", + "nodeType": "MemberAccess", + "referencedDeclaration": 37052, + "src": "11110:36:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function () view external returns (uint256[] memory)" + } + }, + "id": 38215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11110:38:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 38220, + "indexExpression": { + "arguments": [ + { + "id": 38218, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "11196:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38216, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "11149:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11168:27:48", + "memberName": "tiedAdjustedRankingPosition", + "nodeType": "MemberAccess", + "referencedDeclaration": 36990, + "src": "11149:46:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 38219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11149:55:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11110:95:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38211, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "11066:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11085:11:48", + "memberName": "getProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 35418, + "src": "11066:30:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_ProposalCore_$36159_memory_ptr_$", + "typeString": "function (uint256) view external returns (struct IGovernor.ProposalCore memory)" + } + }, + "id": 38221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11066:149:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11018:197:48" + }, + { + "assignments": [ + 38224 + ], + "declarations": [ + { + "constant": false, + "id": 38224, + "mutability": "mutable", + "name": "addressToPayOut", + "nameLocation": "11336:15:48", + "nodeType": "VariableDeclaration", + "scope": 38274, + "src": "11320:31:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 38223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11320:15:48", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "id": 38249, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38225, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38127, + "src": "11354:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 38226, + "name": "_underlyingContest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37707, + "src": "11364:18:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernorSorting_$37625", + "typeString": "contract GovernorSorting" + } + }, + "id": 38227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11383:18:48", + "memberName": "highestTiedRanking", + "nodeType": "MemberAccess", + "referencedDeclaration": 37080, + "src": "11364:37:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 38228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11364:39:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11354:49:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38245, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "11545:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11545:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11537:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11537:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11537:18:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 38248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11354:201:48", + "trueExpression": { + "condition": { + "id": 38230, + "name": "_paysOutTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37711, + "src": "11418:14:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "expression": { + "id": 38239, + "name": "rankingProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38210, + "src": "11499:15:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "id": 38240, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11515:6:48", + "memberName": "author", + "nodeType": "MemberAccess", + "referencedDeclaration": 36148, + "src": "11499:22:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11491:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11491:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11491:31:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 38242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "11418:104:48", + "trueExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 38233, + "name": "rankingProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38210, + "src": "11443:15:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProposalCore_$36159_memory_ptr", + "typeString": "struct IGovernor.ProposalCore memory" + } + }, + "id": 38234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11459:14:48", + "memberName": "targetMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": 36155, + "src": "11443:30:48", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TargetMetadata_$36140_memory_ptr", + "typeString": "struct IGovernor.TargetMetadata memory" + } + }, + "id": 38235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11474:13:48", + "memberName": "targetAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 36139, + "src": "11443:44:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11435:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11435:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11435:53:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11320:235:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 38256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38251, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38224, + "src": "11574:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 38254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11601:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 38253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11593:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38252, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11593:7:48", + "typeDescriptions": {} + } + }, + "id": 38255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11593:10:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11574:29:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206163636f756e7420697320746865207a65726f2061646472657373", + "id": 38257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11605:44:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a0402efcb8e4d8fadf2c156dba8e5f28bf003c6b18e6763ea6c49d248e456ffb", + "typeString": "literal_string \"RewardsModule: account is the zero address\"" + }, + "value": "RewardsModule: account is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a0402efcb8e4d8fadf2c156dba8e5f28bf003c6b18e6763ea6c49d248e456ffb", + "typeString": "literal_string \"RewardsModule: account is the zero address\"" + } + ], + "id": 38250, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11566:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11566:84:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38259, + "nodeType": "ExpressionStatement", + "src": "11566:84:48" + }, + { + "expression": { + "arguments": [ + { + "id": 38263, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38125, + "src": "11684:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "id": 38264, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38224, + "src": "11691:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 38265, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38158, + "src": "11708:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38260, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30173, + "src": "11661:9:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeERC20_$30173_$", + "typeString": "type(library SafeERC20)" + } + }, + "id": 38262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11671:12:48", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 29830, + "src": "11661:22:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$29663_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 38266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11661:55:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38267, + "nodeType": "ExpressionStatement", + "src": "11661:55:48" + }, + { + "eventCall": { + "arguments": [ + { + "id": 38269, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38125, + "src": "11752:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "id": 38270, + "name": "addressToPayOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38224, + "src": "11759:15:48", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 38271, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38158, + "src": "11776:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38268, + "name": "ERC20PaymentReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37656, + "src": "11731:20:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC20_$29663_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 38272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11731:53:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38273, + "nodeType": "EmitStatement", + "src": "11726:58:48" + } + ] + }, + "documentation": { + "id": 38122, + "nodeType": "StructuredDocumentation", + "src": "9249:250:48", + "text": " @dev Triggers a transfer to `ranking` of the amount of `token` tokens they are owed, according to their\n percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20\n contract." + }, + "functionSelector": "0357371d", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "release", + "nameLocation": "9513:7:48", + "parameters": { + "id": 38128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38125, + "mutability": "mutable", + "name": "token", + "nameLocation": "9528:5:48", + "nodeType": "VariableDeclaration", + "scope": 38275, + "src": "9521:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 38124, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38123, + "name": "IERC20", + "nameLocations": [ + "9521:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "9521:6:48" + }, + "referencedDeclaration": 29663, + "src": "9521:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38127, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "9543:7:48", + "nodeType": "VariableDeclaration", + "scope": 38275, + "src": "9535:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9535:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9520:31:48" + }, + "returnParameters": { + "id": 38129, + "nodeType": "ParameterList", + "parameters": [], + "src": "9567:0:48" + }, + "scope": 38438, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 38312, + "nodeType": "FunctionDefinition", + "src": "11797:226:48", + "nodes": [], + "body": { + "id": 38311, + "nodeType": "Block", + "src": "11839:184:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 38283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11857:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11861:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "11857:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38281, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "11871:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11871:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11857:23:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38278, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11849:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 38284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11849:32:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38285, + "nodeType": "ExpressionStatement", + "src": "11849:32:48" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38291, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "11918:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11918:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11910:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38289, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11910:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11910:18:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "arguments": [ + { + "id": 38296, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11938:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 38295, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11930:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11930:7:48", + "typeDescriptions": {} + } + }, + "id": 38297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11930:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 38298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11944:7:48", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "11930:21:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38286, + "name": "Address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30503, + "src": "11892:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Address_$30503_$", + "typeString": "type(library Address)" + } + }, + "id": 38288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11900:9:48", + "memberName": "sendValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 30225, + "src": "11892:17:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256)" + } + }, + "id": 38299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11892:60:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38300, + "nodeType": "ExpressionStatement", + "src": "11892:60:48" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38302, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "11983:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11983:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 38306, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "12002:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 38305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11994:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11994:7:48", + "typeDescriptions": {} + } + }, + "id": 38307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11994:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 38308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12008:7:48", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "11994:21:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38301, + "name": "RewardWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37668, + "src": "11967:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 38309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11967:49:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38310, + "nodeType": "EmitStatement", + "src": "11962:54:48" + } + ] + }, + "functionSelector": "c7b8981c", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawRewards", + "nameLocation": "11806:15:48", + "parameters": { + "id": 38276, + "nodeType": "ParameterList", + "parameters": [], + "src": "11821:2:48" + }, + "returnParameters": { + "id": 38277, + "nodeType": "ParameterList", + "parameters": [], + "src": "11839:0:48" + }, + "scope": 38438, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 38358, + "nodeType": "FunctionDefinition", + "src": "12029:280:48", + "nodes": [], + "body": { + "id": 38357, + "nodeType": "Block", + "src": "12083:226:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 38323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 38319, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12101:3:48", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 38320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12105:6:48", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "12101:10:48", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38321, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "12115:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12115:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12101:23:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 38318, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12093:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 38324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12093:32:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38325, + "nodeType": "ExpressionStatement", + "src": "12093:32:48" + }, + { + "expression": { + "arguments": [ + { + "id": 38329, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38315, + "src": "12159:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38332, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "12174:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12174:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 38331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12166:8:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 38330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12166:8:48", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 38334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12166:18:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 38339, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "12210:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 38338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12202:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12202:7:48", + "typeDescriptions": {} + } + }, + "id": 38340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12202:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 38335, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38315, + "src": "12186:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "id": 38336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12192:9:48", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29620, + "src": "12186:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 38341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12186:30:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38326, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30173, + "src": "12136:9:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeERC20_$30173_$", + "typeString": "type(library SafeERC20)" + } + }, + "id": 38328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12146:12:48", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 29830, + "src": "12136:22:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$29663_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 38342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12136:81:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38343, + "nodeType": "ExpressionStatement", + "src": "12136:81:48" + }, + { + "eventCall": { + "arguments": [ + { + "id": 38345, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38315, + "src": "12253:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 38346, + "name": "creator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37818, + "src": "12260:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 38347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12260:9:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 38352, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "12295:4:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RewardsModule_$38438", + "typeString": "contract RewardsModule" + } + ], + "id": 38351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12287:7:48", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 38350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12287:7:48", + "typeDescriptions": {} + } + }, + "id": 38353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12287:13:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 38348, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38315, + "src": "12271:5:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "id": 38349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12277:9:48", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 29620, + "src": "12271:15:48", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 38354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12271:30:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38344, + "name": "ERC20RewardWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37677, + "src": "12232:20:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC20_$29663_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 38355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12232:70:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38356, + "nodeType": "EmitStatement", + "src": "12227:75:48" + } + ] + }, + "functionSelector": "42d86693", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawRewards", + "nameLocation": "12038:15:48", + "parameters": { + "id": 38316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38315, + "mutability": "mutable", + "name": "token", + "nameLocation": "12061:5:48", + "nodeType": "VariableDeclaration", + "scope": 38358, + "src": "12054:12:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 38314, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 38313, + "name": "IERC20", + "nameLocations": [ + "12054:6:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 29663, + "src": "12054:6:48" + }, + "referencedDeclaration": 29663, + "src": "12054:6:48", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$29663", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "src": "12053:14:48" + }, + "returnParameters": { + "id": 38317, + "nodeType": "ParameterList", + "parameters": [], + "src": "12083:0:48" + }, + "scope": 38438, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "id": 38382, + "nodeType": "FunctionDefinition", + "src": "12480:240:48", + "nodes": [], + "body": { + "id": 38381, + "nodeType": "Block", + "src": "12629:91:48", + "nodes": [], + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38370, + "name": "totalReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38363, + "src": "12647:13:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "baseExpression": { + "id": 38371, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "12663:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38373, + "indexExpression": { + "id": 38372, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38361, + "src": "12671:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12663:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12647:32:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 38375, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12646:34:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 38376, + "name": "_totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37679, + "src": "12683:12:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12646:49:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 38378, + "name": "alreadyReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38365, + "src": "12698:15:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12646:67:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 38369, + "id": 38380, + "nodeType": "Return", + "src": "12639:74:48" + } + ] + }, + "documentation": { + "id": 38359, + "nodeType": "StructuredDocumentation", + "src": "12315:160:48", + "text": " @dev internal logic for computing the pending payment of a `ranking` given the token historical balances and\n already released amounts." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_pendingPayment", + "nameLocation": "12489:15:48", + "parameters": { + "id": 38366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38361, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "12513:7:48", + "nodeType": "VariableDeclaration", + "scope": 38382, + "src": "12505:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38360, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12505:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38363, + "mutability": "mutable", + "name": "totalReceived", + "nameLocation": "12530:13:48", + "nodeType": "VariableDeclaration", + "scope": 38382, + "src": "12522:21:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12522:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38365, + "mutability": "mutable", + "name": "alreadyReleased", + "nameLocation": "12553:15:48", + "nodeType": "VariableDeclaration", + "scope": 38382, + "src": "12545:23:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12545:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12504:65:48" + }, + "returnParameters": { + "id": 38369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38368, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 38382, + "src": "12616:7:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12616:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12615:9:48" + }, + "scope": 38438, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 38437, + "nodeType": "FunctionDefinition", + "src": "12905:450:48", + "nodes": [], + "body": { + "id": 38436, + "nodeType": "Block", + "src": "12966:389:48", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38391, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38385, + "src": "12984:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 38392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12994:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12984:11:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a2072616e6b696e6720697320302c206d7573742062652067726561746572", + "id": 38394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12997:46:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5c8750fbc77205e90016e92fc9df4e0da093870121f5a3e947e4c0542a5c0222", + "typeString": "literal_string \"RewardsModule: ranking is 0, must be greater\"" + }, + "value": "RewardsModule: ranking is 0, must be greater" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5c8750fbc77205e90016e92fc9df4e0da093870121f5a3e947e4c0542a5c0222", + "typeString": "literal_string \"RewardsModule: ranking is 0, must be greater\"" + } + ], + "id": 38390, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12976:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12976:68:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38396, + "nodeType": "ExpressionStatement", + "src": "12976:68:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38398, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38387, + "src": "13062:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 38399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13072:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13062:11:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a20736861726573206172652030", + "id": 38401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13075:29:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5c43ffc6b514f35890c975ced62679261ef8688e3fc6258b0d1227aa4acdebfc", + "typeString": "literal_string \"RewardsModule: shares are 0\"" + }, + "value": "RewardsModule: shares are 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5c43ffc6b514f35890c975ced62679261ef8688e3fc6258b0d1227aa4acdebfc", + "typeString": "literal_string \"RewardsModule: shares are 0\"" + } + ], + "id": 38397, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13054:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13054:51:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38403, + "nodeType": "ExpressionStatement", + "src": "13054:51:48" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 38405, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "13123:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38407, + "indexExpression": { + "id": 38406, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38385, + "src": "13131:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13123:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 38408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13143:1:48", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13123:21:48", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526577617264734d6f64756c653a206163636f756e7420616c72656164792068617320736861726573", + "id": 38410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13146:43:48", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ee96b6b8b7a538f96966ef790d7793933b9e525eed11119e4b79b70f7ecbc8a", + "typeString": "literal_string \"RewardsModule: account already has shares\"" + }, + "value": "RewardsModule: account already has shares" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4ee96b6b8b7a538f96966ef790d7793933b9e525eed11119e4b79b70f7ecbc8a", + "typeString": "literal_string \"RewardsModule: account already has shares\"" + } + ], + "id": 38404, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13115:7:48", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 38411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13115:75:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38412, + "nodeType": "ExpressionStatement", + "src": "13115:75:48" + }, + { + "expression": { + "arguments": [ + { + "id": 38416, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38385, + "src": "13214:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 38413, + "name": "_payees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37692, + "src": "13201:7:48", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 38415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13209:4:48", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "13201:12:48", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256)" + } + }, + "id": 38417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13201:21:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38418, + "nodeType": "ExpressionStatement", + "src": "13201:21:48" + }, + { + "expression": { + "id": 38423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 38419, + "name": "_shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37685, + "src": "13232:7:48", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 38421, + "indexExpression": { + "id": 38420, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38385, + "src": "13240:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13232:16:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 38422, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38387, + "src": "13251:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13232:26:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38424, + "nodeType": "ExpressionStatement", + "src": "13232:26:48" + }, + { + "expression": { + "id": 38429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 38425, + "name": "_totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37679, + "src": "13268:12:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 38426, + "name": "_totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37679, + "src": "13283:12:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 38427, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38387, + "src": "13298:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13283:22:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13268:37:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 38430, + "nodeType": "ExpressionStatement", + "src": "13268:37:48" + }, + { + "eventCall": { + "arguments": [ + { + "id": 38432, + "name": "ranking", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38385, + "src": "13331:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 38433, + "name": "shares_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38387, + "src": "13340:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 38431, + "name": "PayeeAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37641, + "src": "13320:10:48", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 38434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13320:28:48", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 38435, + "nodeType": "EmitStatement", + "src": "13315:33:48" + } + ] + }, + "documentation": { + "id": 38383, + "nodeType": "StructuredDocumentation", + "src": "12726:174:48", + "text": " @dev Add a new payee to the contract.\n @param ranking The ranking of the payee to add.\n @param shares_ The number of shares owned by the payee." + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addPayee", + "nameLocation": "12914:9:48", + "parameters": { + "id": 38388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 38385, + "mutability": "mutable", + "name": "ranking", + "nameLocation": "12932:7:48", + "nodeType": "VariableDeclaration", + "scope": 38437, + "src": "12924:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12924:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38387, + "mutability": "mutable", + "name": "shares_", + "nameLocation": "12949:7:48", + "nodeType": "VariableDeclaration", + "scope": 38437, + "src": "12941:15:48", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12941:7:48", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12923:34:48" + }, + "returnParameters": { + "id": 38389, + "nodeType": "ParameterList", + "parameters": [], + "src": "12966:0:48" + }, + "scope": 38438, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 37634, + "name": "Context", + "nameLocations": [ + "1541:7:48" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 30525, + "src": "1541:7:48" + }, + "id": 37635, + "nodeType": "InheritanceSpecifier", + "src": "1541:7:48" + } + ], + "canonicalName": "RewardsModule", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 37633, + "nodeType": "StructuredDocumentation", + "src": "292:1222:48", + "text": " @title RewardsModule\n @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware\n that the Ether will be split in this way, since it is handled transparently by the contract.\n The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each\n account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim\n an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the\n time of contract deployment and can't be updated thereafter.\n `RewardsModule` follows a _pull payment_ model. This means that payments are not automatically forwarded to the\n accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}\n function.\n NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and\n tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you\n to run tests before sending real value to this contract." + }, + "fullyImplemented": true, + "linearizedBaseContracts": [ + 38438, + 30525 + ], + "name": "RewardsModule", + "nameLocation": "1524:13:48", + "scope": 38439, + "usedErrors": [] + } + ], + "license": "MIT" + }, + "id": 48 +} \ No newline at end of file diff --git a/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.sol/RewardsModule.json b/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.sol/RewardsModule.json index 981bb7644..e4d55f33e 100644 --- a/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.sol/RewardsModule.json +++ b/packages/react-app-revamp/contracts/bytecodeAndAbi/modules/RewardsModule.sol/RewardsModule.json @@ -424,12 +424,12 @@ } ], "bytecode": { - "object": "0x6080604052604051620022bc380380620022bc833981016040819052620000269162000411565b8251845114620000965760405162461bcd60e51b815260206004820152603060248201527f526577617264734d6f64756c653a2070617965657320616e642073686172657360448201526f040d8cadccee8d040dad2e6dac2e8c6d60831b60648201526084015b60405180910390fd5b6000845111620000e95760405162461bcd60e51b815260206004820152601860248201527f526577617264734d6f64756c653a206e6f20706179656573000000000000000060448201526064016200008d565b60005b84518110156200015557620001408582815181106200010f576200010f620004b6565b60200260200101518583815181106200012c576200012c620004b6565b60200260200101516200019f60201b60201c565b806200014c81620004e2565b915050620000ec565b5060088054600780546001600160a01b039095166001600160a01b0319958616179055911515600160a01b02929092166001600160a81b03199091161733179055506200051a9050565b60008211620002065760405162461bcd60e51b815260206004820152602c60248201527f526577617264734d6f64756c653a2072616e6b696e6720697320302c206d757360448201526b3a1031329033b932b0ba32b960a11b60648201526084016200008d565b60008111620002585760405162461bcd60e51b815260206004820152601b60248201527f526577617264734d6f64756c653a20736861726573206172652030000000000060448201526064016200008d565b60008281526002602052604090205415620002c85760405162461bcd60e51b815260206004820152602960248201527f526577617264734d6f64756c653a206163636f756e7420616c7265616479206860448201526861732073686172657360b81b60648201526084016200008d565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905560008281526002602052604081208290555462000317908290620004fe565b60005560408051838152602081018390527f78bc0e219b874bf2620f7316737ec16d4bda1bb7136961e4dcb5ff0dc031cee4910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200037f57600080fd5b815160206001600160401b03808311156200039e576200039e62000357565b8260051b604051601f19603f83011681018181108482111715620003c657620003c662000357565b604052938452858101830193838101925087851115620003e557600080fd5b83870191505b848210156200040657815183529183019190830190620003eb565b979650505050505050565b600080600080608085870312156200042857600080fd5b84516001600160401b03808211156200044057600080fd5b6200044e888389016200036d565b955060208701519150808211156200046557600080fd5b5062000474878288016200036d565b604087015190945090506001600160a01b03811681146200049457600080fd5b60608601519092508015158114620004ab57600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620004f757620004f7620004cc565b5060010190565b80820180821115620005145762000514620004cc565b92915050565b611d92806200052a6000396000f3fe6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b50604080518082018252600381526219971960e91b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea2646970667358221220171f4f6d20bb03d02bcea28a81d0bbb5ff107d72376a6f122f3ae6da31112fcf64736f6c63430008130033", + "object": "0x6080604052604051620022bc380380620022bc833981016040819052620000269162000411565b8251845114620000965760405162461bcd60e51b815260206004820152603060248201527f526577617264734d6f64756c653a2070617965657320616e642073686172657360448201526f040d8cadccee8d040dad2e6dac2e8c6d60831b60648201526084015b60405180910390fd5b6000845111620000e95760405162461bcd60e51b815260206004820152601860248201527f526577617264734d6f64756c653a206e6f20706179656573000000000000000060448201526064016200008d565b60005b84518110156200015557620001408582815181106200010f576200010f620004b6565b60200260200101518583815181106200012c576200012c620004b6565b60200260200101516200019f60201b60201c565b806200014c81620004e2565b915050620000ec565b5060088054600780546001600160a01b039095166001600160a01b0319958616179055911515600160a01b02929092166001600160a81b03199091161733179055506200051a9050565b60008211620002065760405162461bcd60e51b815260206004820152602c60248201527f526577617264734d6f64756c653a2072616e6b696e6720697320302c206d757360448201526b3a1031329033b932b0ba32b960a11b60648201526084016200008d565b60008111620002585760405162461bcd60e51b815260206004820152601b60248201527f526577617264734d6f64756c653a20736861726573206172652030000000000060448201526064016200008d565b60008281526002602052604090205415620002c85760405162461bcd60e51b815260206004820152602960248201527f526577617264734d6f64756c653a206163636f756e7420616c7265616479206860448201526861732073686172657360b81b60648201526084016200008d565b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905560008281526002602052604081208290555462000317908290620004fe565b60005560408051838152602081018390527f78bc0e219b874bf2620f7316737ec16d4bda1bb7136961e4dcb5ff0dc031cee4910160405180910390a15050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200037f57600080fd5b815160206001600160401b03808311156200039e576200039e62000357565b8260051b604051601f19603f83011681018181108482111715620003c657620003c662000357565b604052938452858101830193838101925087851115620003e557600080fd5b83870191505b848210156200040657815183529183019190830190620003eb565b979650505050505050565b600080600080608085870312156200042857600080fd5b84516001600160401b03808211156200044057600080fd5b6200044e888389016200036d565b955060208701519150808211156200046557600080fd5b5062000474878288016200036d565b604087015190945090506001600160a01b03811681146200049457600080fd5b60608601519092508015158114620004ab57600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620004f757620004f7620004cc565b5060010190565b80820180821115620005145762000514620004cc565b92915050565b611d92806200052a6000396000f3fe6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b506040805180820182526003815262332e3360e81b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea26469706673582212208b0aaaea5156fb33ec601651521f7f4e9d70cbee13876b1933fbde23ed5877a564736f6c63430008130033", "sourceMap": "1515:11842:48:-:0;;;2806:572;;;;;;;;;;;;;;;;;;:::i;:::-;3007:7;:14;2990:6;:13;:31;2982:92;;;;-1:-1:-1;;;2982:92:48;;2226:2:51;2982:92:48;;;2208:21:51;2265:2;2245:18;;;2238:30;2304:34;2284:18;;;2277:62;-1:-1:-1;;;2355:18:51;;;2348:46;2411:19;;2982:92:48;;;;;;;;;3108:1;3092:6;:13;:17;3084:54;;;;-1:-1:-1;;;3084:54:48;;2643:2:51;3084:54:48;;;2625:21:51;2682:2;2662:18;;;2655:30;2721:26;2701:18;;;2694:54;2765:18;;3084:54:48;2441:348:51;3084:54:48;3154:9;3149:101;3173:6;:13;3169:1;:17;3149:101;;;3207:32;3217:6;3224:1;3217:9;;;;;;;;:::i;:::-;;;;;;;3228:7;3236:1;3228:10;;;;;;;;:::i;:::-;;;;;;;3207:9;;;:32;;:::i;:::-;3188:3;;;;:::i;:::-;;;;3149:101;;;-1:-1:-1;3260:14:48;:31;;3301:18;:39;;-1:-1:-1;;;;;3301:39:48;;;-1:-1:-1;;;;;;3301:39:48;;;;;;3260:31;;;-1:-1:-1;;;3260:31:48;3350:21;;;;-1:-1:-1;;;;;;3350:21:48;;;;3361:10;3350:21;;;-1:-1:-1;1515:11842:48;;-1:-1:-1;1515:11842:48;12905:450;12994:1;12984:7;:11;12976:68;;;;-1:-1:-1;;;12976:68:48;;3400:2:51;12976:68:48;;;3382:21:51;3439:2;3419:18;;;3412:30;3478:34;3458:18;;;3451:62;-1:-1:-1;;;3529:18:51;;;3522:42;3581:19;;12976:68:48;3198:408:51;12976:68:48;13072:1;13062:7;:11;13054:51;;;;-1:-1:-1;;;13054:51:48;;3813:2:51;13054:51:48;;;3795:21:51;3852:2;3832:18;;;3825:30;3891:29;3871:18;;;3864:57;3938:18;;13054:51:48;3611:351:51;13054:51:48;13123:16;;;;:7;:16;;;;;;:21;13115:75;;;;-1:-1:-1;;;13115:75:48;;4169:2:51;13115:75:48;;;4151:21:51;4208:2;4188:18;;;4181:30;4247:34;4227:18;;;4220:62;-1:-1:-1;;;4298:18:51;;;4291:39;4347:19;;13115:75:48;3967:405:51;13115:75:48;13201:7;:21;;;;;;;;;;;;;-1:-1:-1;13232:16:48;;;:7;13201:21;13232:16;;;;:26;;;13283:12;:22;;13251:7;;13283:22;:::i;:::-;13268:12;:37;13320:28;;;4681:25:51;;;4737:2;4722:18;;4715:34;;;13320:28:48;;4654:18:51;13320:28:48;;;;;;;12905:450;;:::o;14:127:51:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:899;211:5;264:3;257:4;249:6;245:17;241:27;231:55;;282:1;279;272:12;231:55;305:13;;337:4;-1:-1:-1;;;;;390:10:51;;;387:36;;;403:18;;:::i;:::-;449:2;446:1;442:10;481:2;475:9;544:2;540:7;535:2;531;527:11;523:25;515:6;511:38;599:6;587:10;584:22;579:2;567:10;564:18;561:46;558:72;;;610:18;;:::i;:::-;646:2;639:22;696:18;;;772:15;;;768:24;;;730:15;;;;-1:-1:-1;804:15:51;;;801:35;;;832:1;829;822:12;801:35;868:2;860:6;856:15;845:26;;880:135;896:6;891:3;888:15;880:135;;;962:10;;950:23;;993:12;;;;913;;;;880:135;;;1033:6;146:899;-1:-1:-1;;;;;;;146:899:51:o;1050:969::-;1219:6;1227;1235;1243;1296:3;1284:9;1275:7;1271:23;1267:33;1264:53;;;1313:1;1310;1303:12;1264:53;1340:16;;-1:-1:-1;;;;;1405:14:51;;;1402:34;;;1432:1;1429;1422:12;1402:34;1455:72;1519:7;1510:6;1499:9;1495:22;1455:72;:::i;:::-;1445:82;;1573:2;1562:9;1558:18;1552:25;1536:41;;1602:2;1592:8;1589:16;1586:36;;;1618:1;1615;1608:12;1586:36;;1641:74;1707:7;1696:8;1685:9;1681:24;1641:74;:::i;:::-;1758:2;1743:18;;1737:25;1631:84;;-1:-1:-1;1737:25:51;-1:-1:-1;;;;;;1791:31:51;;1781:42;;1771:70;;1837:1;1834;1827:12;1771:70;1910:2;1895:18;;1889:25;1860:5;;-1:-1:-1;1952:15:51;;1945:23;1933:36;;1923:64;;1983:1;1980;1973:12;1923:64;1050:969;;;;-1:-1:-1;1050:969:51;;-1:-1:-1;;1050:969:51:o;2794:127::-;2855:10;2850:3;2846:20;2843:1;2836:31;2886:4;2883:1;2876:15;2910:4;2907:1;2900:15;2926:127;2987:10;2982:3;2978:20;2975:1;2968:31;3018:4;3015:1;3008:15;3042:4;3039:1;3032:15;3058:135;3097:3;3118:17;;;3115:43;;3138:18;;:::i;:::-;-1:-1:-1;3185:1:51;3174:13;;3058:135::o;4377:125::-;4442:9;;;4463:10;;;4460:36;;;4476:18;;:::i;:::-;4377:125;;;;:::o;4507:248::-;1515:11842:48;;;;;;", "linkReferences": {} }, "deployedBytecode": { - "object": "0x6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b50604080518082018252600381526219971960e91b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea2646970667358221220171f4f6d20bb03d02bcea28a81d0bbb5ff107d72376a6f122f3ae6da31112fcf64736f6c63430008130033", + "object": "0x6080604052600436106101025760003560e01c806354fd4d5011610095578063cfe8307011610064578063cfe830701461030f578063d79779b214610352578063e33b7de314610388578063e4bf01a81461039d578063f3f44fb7146103bd57600080fd5b806354fd4d501461026e57806357a858fc146102a0578063a94d373b146102cd578063c7b8981c146102fa57600080fd5b806327f38113116100d157806327f38113146101f757806337bdc99b146102195780633a98ef391461023957806342d866931461024e57600080fd5b806302d05d3f146101465780630357371d1461017d5780631e5b46341461019f5780632081d631146101c957600080fd5b3661014157604080513381523460208201527f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770910160405180910390a1005b600080fd5b34801561015257600080fd5b506008546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561018957600080fd5b5061019d610198366004611582565b6103db565b005b3480156101ab57600080fd5b50600854600160a01b900460ff166040519015158152602001610174565b3480156101d557600080fd5b506101e96101e4366004611582565b610943565b604051908152602001610174565b34801561020357600080fd5b5061020c610a13565b60405161017491906115ae565b34801561022557600080fd5b5061019d6102343660046115f2565b610a6b565b34801561024557600080fd5b506000546101e9565b34801561025a57600080fd5b5061019d61026936600461160b565b610fa3565b34801561027a57600080fd5b506040805180820182526003815262332e3360e81b60208201529051610174919061164c565b3480156102ac57600080fd5b506101e96102bb3660046115f2565b60009081526002602052604090205490565b3480156102d957600080fd5b506101e96102e83660046115f2565b60009081526003602052604090205490565b34801561030657600080fd5b5061019d611107565b34801561031b57600080fd5b506101e961032a366004611582565b6001600160a01b03919091166000908152600660209081526040808320938352929052205490565b34801561035e57600080fd5b506101e961036d36600461160b565b6001600160a01b031660009081526005602052604090205490565b34801561039457600080fd5b506001546101e9565b3480156103a957600080fd5b506101e96103b83660046115f2565b61118e565b3480156103c957600080fd5b506007546001600160a01b0316610160565b806000036104045760405162461bcd60e51b81526004016103fb9061167f565b60405180910390fd5b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047091906116e0565b6004811115610481576104816116ca565b1461049e5760405162461bcd60e51b81526004016103fb90611701565b6000818152600260205260409020546104c95760405162461bcd60e51b81526004016103fb9061176a565b60006104d58383610943565b9050806000036104f75760405162461bcd60e51b81526004016103fb906117ae565b6001600160a01b0383166000908152600560205260408120805483929061051f908490611854565b90915550506001600160a01b038084166000908152600660209081526040808320868452825291829020805485019055600754825163d889161960e01b8152925193169263d88916199260048082019392918290030181865afa15801561058a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ae919061187c565b61061b57600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106929190611897565b8211156106b15760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610702573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261072a91908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610773573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107979190611897565b815181106107a7576107a7611a7f565b60200260200101516040518263ffffffff1660e01b81526004016107cd91815260200190565b600060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108129190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088d9190611897565b84106108a4576008546001600160a01b03166108c3565b600854600160a01b900460ff166108bc5781516108c3565b6060820151515b90506001600160a01b0381166108eb5760405162461bcd60e51b81526004016103fb90611caa565b6108f68582856111c8565b604080516001600160a01b038381168252602082018690528716917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a25050505050565b6001600160a01b03821660009081526005602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a0823190602401602060405180830381865afa1580156109a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c69190611897565b6109d09190611854565b9050610a098382610a0487876001600160a01b03919091166000908152600660209081526040808320938352929052205490565b61121f565b9150505b92915050565b60606004805480602002602001604051908101604052809291908181526020018280548015610a6157602002820191906000526020600020905b815481526020019060010190808311610a4d575b5050505050905090565b80600003610a8b5760405162461bcd60e51b81526004016103fb9061167f565b6007546040805163c19d93fb60e01b815290516004926001600160a01b03169163c19d93fb918185019160209190819003860181865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af791906116e0565b6004811115610b0857610b086116ca565b14610b255760405162461bcd60e51b81526004016103fb90611701565b600081815260026020526040902054610b505760405162461bcd60e51b81526004016103fb9061176a565b6000610b5b8261118e565b905080600003610b7d5760405162461bcd60e51b81526004016103fb906117ae565b8060016000828254610b8f9190611854565b9091555050600082815260036020908152604091829020805484019055600754825163d889161960e01b815292516001600160a01b039091169263d88916199260048083019391928290030181865afa158015610bf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c14919061187c565b610c8157600760009054906101000a90046001600160a01b03166001600160a01b03166396f0e9626040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505b600760009054906101000a90046001600160a01b03166001600160a01b0316636ca1a2c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf89190611897565b821115610d175760405162461bcd60e51b81526004016103fb906118b0565b600754604080516308a9cd5560e41b815290516000926001600160a01b03169163c7f758a8918391638a9cd55091600480830192889291908290030181865afa158015610d68573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9091908101906119f4565b600754604051631cbd6b4960e31b8152600481018890526001600160a01b039091169063e5eb5a4890602401602060405180830381865afa158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd9190611897565b81518110610e0d57610e0d611a7f565b60200260200101516040518263ffffffff1660e01b8152600401610e3391815260200190565b600060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e789190810190611b94565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663ebc18b9b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef39190611897565b8410610f0a576008546001600160a01b0316610f29565b600854600160a01b900460ff16610f22578151610f29565b6060820151515b90506001600160a01b038116610f515760405162461bcd60e51b81526004016103fb90611caa565b610f5b8184611259565b604080516001600160a01b0383168152602081018590527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a150505050565b6008546001600160a01b03163314610fba57600080fd5b61103d81610fd06008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190611897565b6111c8565b806001600160a01b03167f6e5fc1cbd1629d9837bd657d23cf585bbc4e9127184972606cc4c0dd406f757261107a6008546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156110be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e29190611897565b604080516001600160a01b03909316835260208301919091520160405180910390a250565b6008546001600160a01b0316331461111e57600080fd5b6111396111336008546001600160a01b031690565b47611259565b7f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133761116c6008546001600160a01b031690565b604080516001600160a01b0390921682524760208301520160405180910390a1565b60008061119a60015490565b6111a49047611854565b90506111c18382610a048660009081526003602052604090205490565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261121a908490611372565b505050565b600080548482526002602052604082205483919061123d9086611cf4565b6112479190611d0b565b6112519190611d2d565b949350505050565b804710156112a95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103fb565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f6576040519150601f19603f3d011682016040523d82523d6000602084013e6112fb565b606091505b505090508061121a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103fb565b60006113c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166114479092919063ffffffff16565b90508051600014806113e85750808060200190518101906113e8919061187c565b61121a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103fb565b6060611251848460008585600080866001600160a01b0316858760405161146e9190611d40565b60006040518083038185875af1925050503d80600081146114ab576040519150601f19603f3d011682016040523d82523d6000602084013e6114b0565b606091505b50915091506114c1878383876114cc565b979650505050505050565b6060831561153b578251600003611534576001600160a01b0385163b6115345760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103fb565b5081611251565b61125183838151156115505781518083602001fd5b8060405162461bcd60e51b81526004016103fb919061164c565b6001600160a01b038116811461157f57600080fd5b50565b6000806040838503121561159557600080fd5b82356115a08161156a565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b818110156115e6578351835292840192918401916001016115ca565b50909695505050505050565b60006020828403121561160457600080fd5b5035919050565b60006020828403121561161d57600080fd5b81356111c18161156a565b60005b8381101561164357818101518382015260200161162b565b50506000910152565b602081526000825180602084015261166b816040850160208701611628565b601f01601f19169190910160400192915050565b6020808252602b908201527f526577617264734d6f64756c653a2072616e6b696e67206d757374206265203160408201526a1037b91033b932b0ba32b960a91b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156116f257600080fd5b8151600581106111c157600080fd5b60208082526043908201527f526577617264734d6f64756c653a20636f6e74657374206d757374206265206360408201527f6f6d706c6574656420666f72207265776172647320746f2062652070616964206060820152621bdd5d60ea1b608082015260a00190565b60208082526024908201527f526577617264734d6f64756c653a2072616e6b696e6720686173206e6f2073686040820152636172657360e01b606082015260800190565b60208082526064908201527f526577617264734d6f64756c653a206163636f756e742069736e27742064756560408201527f207061796d656e742061732074686572652069736e277420616e79206e61746960608201527f76652063757272656e637920696e20746865206d6f64756c6520746f20706179608082015263081bdd5d60e21b60a082015260c00190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d61183e565b8051801515811461187757600080fd5b919050565b60006020828403121561188e57600080fd5b6111c182611867565b6000602082840312156118a957600080fd5b5051919050565b60208082526061908201527f526577617264734d6f64756c653a20746865726520617265206e6f7420656e6f60408201527f7567682070726f706f73616c7320666f7220746861742072616e6b696e67207460608201527f6f2065786973742c2074616b696e67207469657320696e746f206163636f756e6080820152601d60fa1b60a082015260c00190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156119765761197661193d565b60405290565b60405160a0810167ffffffffffffffff811182821017156119765761197661193d565b604051601f8201601f1916810167ffffffffffffffff811182821017156119c8576119c861193d565b604052919050565b600067ffffffffffffffff8211156119ea576119ea61193d565b5060051b60200190565b60006020808385031215611a0757600080fd5b825167ffffffffffffffff811115611a1e57600080fd5b8301601f81018513611a2f57600080fd5b8051611a42611a3d826119d0565b61199f565b81815260059190911b82018301908381019087831115611a6157600080fd5b928401925b828410156114c157835182529284019290840190611a66565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611aa757600080fd5b6040516020810181811067ffffffffffffffff82111715611aca57611aca61193d565b80604052508091508251611add8161156a565b905292915050565b600060408284031215611af757600080fd5b611aff611953565b9050815167ffffffffffffffff811115611b1857600080fd5b8201601f81018413611b2957600080fd5b80516020611b39611a3d836119d0565b82815260059290921b83018101918181019087841115611b5857600080fd5b938201935b83851015611b7f578451611b708161156a565b82529382019390820190611b5d565b85525093840151938301939093525092915050565b60006020808385031215611ba757600080fd5b825167ffffffffffffffff80821115611bbf57600080fd5b9084019060a08287031215611bd357600080fd5b611bdb61197c565b8251611be68161156a565b8152611bf3838501611867565b84820152604083015182811115611c0957600080fd5b8301601f81018813611c1a57600080fd5b805183811115611c2c57611c2c61193d565b611c3e601f8201601f1916870161199f565b8181528987838501011115611c5257600080fd5b611c6182888301898601611628565b604084015250611c7690508760608501611a95565b60608201526080830151935081841115611c8f57600080fd5b611c9b87858501611ae5565b60808201529695505050505050565b6020808252602a908201527f526577617264734d6f64756c653a206163636f756e7420697320746865207a65604082015269726f206164647265737360b01b606082015260800190565b8082028115828204841417610a0d57610a0d61183e565b600082611d2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610a0d57610a0d61183e565b60008251611d52818460208701611628565b919091019291505056fea26469706673582212208b0aaaea5156fb33ec601651521f7f4e9d70cbee13876b1933fbde23ed5877a564736f6c63430008130033", "sourceMap": "1515:11842:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3940:38;;;3956:10;188:51:51;;3968:9:48;270:2:51;255:18;;248:34;3940:38:48;;161:18:51;3940:38:48;;;;;;;1515:11842;;;;;4405:81;;;;;;;;;;-1:-1:-1;4471:8:48;;-1:-1:-1;;;;;4471:8:48;4405:81;;;-1:-1:-1;;;;;457:32:51;;;439:51;;427:2;412:18;4405:81:48;;;;;;;;9504:2287;;;;;;;;;;-1:-1:-1;9504:2287:48;;;;;:::i;:::-;;:::i;:::-;;5908:90;;;;;;;;;;-1:-1:-1;5977:14:48;;-1:-1:-1;;;5977:14:48;;;;5908:90;;1154:14:51;;1147:22;1129:41;;1117:2;1102:18;5908:90:48;989:187:51;6644:257:48;;;;;;;;;;-1:-1:-1;6644:257:48;;;;;:::i;:::-;;:::i;:::-;;;1327:25:51;;;1315:2;1300:18;6644:257:48;1181:177:51;5706:91:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7095:2148::-;;;;;;;;;;-1:-1:-1;7095:2148:48;;;;;:::i;:::-;;:::i;4233:89::-;;;;;;;;;;-1:-1:-1;4277:7:48;4303:12;4233:89;;12029:280;;;;;;;;;;-1:-1:-1;12029:280:48;;;;;:::i;:::-;;:::i;4063:92::-;;;;;;;;;;-1:-1:-1;4136:12:48;;;;;;;;;;;-1:-1:-1;;;4136:12:48;;;;4063:92;;;;4136:12;4063:92;:::i;5021:103::-;;;;;;;;;;-1:-1:-1;5021:103:48;;;;;:::i;:::-;5075:7;5101:16;;;:7;:16;;;;;;;5021:103;5218:107;;;;;;;;;;-1:-1:-1;5218:107:48;;;;;:::i;:::-;5274:7;5300:18;;;:9;:18;;;;;;;5218:107;11797:226;;;;;;;;;;;;;:::i;5488:133::-;;;;;;;;;;-1:-1:-1;5488:133:48;;;;;:::i;:::-;-1:-1:-1;;;;;5584:21:48;;;;5558:7;5584:21;;;:14;:21;;;;;;;;:30;;;;;;;;;5488:133;4819:117;;;;;;;;;;-1:-1:-1;4819:117:48;;;;;:::i;:::-;-1:-1:-1;;;;;4903:26:48;4877:7;4903:26;;;:19;:26;;;;;;;4819:117;4575:93;;;;;;;;;;-1:-1:-1;4647:14:48;;4575:93;;6268:222;;;;;;;;;;-1:-1:-1;6268:222:48;;;;;:::i;:::-;;:::i;6067:116::-;;;;;;;;;;-1:-1:-1;6158:18:48;;-1:-1:-1;;;;;6158:18:48;6067:116;;9504:2287;9585:7;9596:1;9585:12;9577:68;;;;-1:-1:-1;;;9577:68:48;;;;;;;:::i;:::-;;;;;;;;;9676:18;;:26;;;-1:-1:-1;;;9676:26:48;;;;9706:32;;-1:-1:-1;;;;;9676:18:48;;:24;;:26;;;;;;;;;;;;;:18;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;;;;;:::i;:::-;;9655:176;;;;-1:-1:-1;;;9655:176:48;;;;;;;:::i;:::-;9868:1;9849:16;;;:7;:16;;;;;;9841:69;;;;-1:-1:-1;;;9841:69:48;;;;;;;:::i;:::-;9921:15;9939:26;9950:5;9957:7;9939:10;:26::i;:::-;9921:44;;9997:7;10008:1;9997:12;9976:159;;;;-1:-1:-1;;;9976:159:48;;;;;;;:::i;:::-;-1:-1:-1;;;;;10396:26:48;;;;;;:19;:26;;;;;:37;;10426:7;;10396:26;:37;;10426:7;;10396:37;:::i;:::-;;;;-1:-1:-1;;;;;;;10467:21:48;;;;;;;:14;:21;;;;;;;;:30;;;;;;;;;:41;;;;;;10679:18;;:56;;-1:-1:-1;;;10679:56:48;;;;:18;;;:54;;:56;;;;;10467:21;10679:56;;;;;;:18;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10674:134;;10751:18;;;;;;;;;-1:-1:-1;;;;;10751:18:48;-1:-1:-1;;;;;10751:44:48;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10674:134;10850:18;;;;;;;;;-1:-1:-1;;;;;10850:18:48;-1:-1:-1;;;;;10850:32:48;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10839:7;:45;;10818:189;;;;-1:-1:-1;;;10818:189:48;;;;;;;:::i;:::-;11066:18;;11110:38;;;-1:-1:-1;;;11110:38:48;;;;11018:45;;-1:-1:-1;;;;;11066:18:48;;:30;;:18;;11110:36;;:38;;;;;11018:45;;11110:38;;;;;;;11066:18;11110:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11110:38:48;;;;;;;;;;;;:::i;:::-;11149:18;;:55;;-1:-1:-1;;;11149:55:48;;;;;1327:25:51;;;-1:-1:-1;;;;;11149:18:48;;;;:46;;1300:18:51;;11149:55:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11110:95;;;;;;;;:::i;:::-;;;;;;;11066:149;;;;;;;;;;;;;1327:25:51;;1315:2;1300:18;;1181:177;11066:149:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11066:149:48;;;;;;;;;;;;:::i;:::-;11018:197;;11320:31;11364:18;;;;;;;;;-1:-1:-1;;;;;11364:18:48;-1:-1:-1;;;;;11364:37:48;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11354:7;:49;:201;;4471:8;;-1:-1:-1;;;;;4471:8:48;11354:201;;;11418:14;;-1:-1:-1;;;11418:14:48;;;;:104;;11499:22;;11418:104;;;11443:30;;;;:44;11418:104;11320:235;-1:-1:-1;;;;;;11574:29:48;;11566:84;;;;-1:-1:-1;;;11566:84:48;;;;;;;:::i;:::-;11661:55;11684:5;11691:15;11708:7;11661:22;:55::i;:::-;11731:53;;;-1:-1:-1;;;;;206:32:51;;;188:51;;270:2;255:18;;248:34;;;11731:53:48;;;;;161:18:51;11731:53:48;;;;;;;9567:2224;;;9504:2287;;:::o;6644:257::-;-1:-1:-1;;;;;4903:26:48;;6716:7;4903:26;;;:19;:26;;;;;;6716:7;;6759:30;;-1:-1:-1;;;6759:30:48;;6783:4;6759:30;;;439:51:51;-1:-1:-1;;;;;6759:15:48;;;;;412:18:51;;6759:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;;;:::i;:::-;6735:77;;6829:65;6845:7;6854:13;6869:24;6878:5;6885:7;-1:-1:-1;;;;;5584:21:48;;;;5558:7;5584:21;;;:14;:21;;;;;;;;:30;;;;;;;;;5488:133;6869:24;6829:15;:65::i;:::-;6822:72;;;6644:257;;;;;:::o;5706:91::-;5748:16;5783:7;5776:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5706:91;:::o;7095:2148::-;7162:7;7173:1;7162:12;7154:68;;;;-1:-1:-1;;;7154:68:48;;;;;;;:::i;:::-;7253:18;;:26;;;-1:-1:-1;;;7253:26:48;;;;7283:32;;-1:-1:-1;;;;;7253:18:48;;:24;;:26;;;;;;;;;;;;;:18;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;;;;;:::i;:::-;;7232:176;;;;-1:-1:-1;;;7232:176:48;;;;;;;:::i;:::-;7445:1;7426:16;;;:7;:16;;;;;;7418:69;;;;-1:-1:-1;;;7418:69:48;;;;;;;:::i;:::-;7498:15;7516:19;7527:7;7516:10;:19::i;:::-;7498:37;;7567:7;7578:1;7567:12;7546:159;;;;-1:-1:-1;;;7546:159:48;;;;;;;:::i;:::-;7914:7;7896:14;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;7955:18:48;;;;:9;:18;;;;;;;;;:29;;;;;;8155:18;;:56;;-1:-1:-1;;;8155:56:48;;;;-1:-1:-1;;;;;8155:18:48;;;;:54;;:56;;;;;7955:18;;8155:56;;;;;:18;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8150:134;;8227:18;;;;;;;;;-1:-1:-1;;;;;8227:18:48;-1:-1:-1;;;;;8227:44:48;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8150:134;8326:18;;;;;;;;;-1:-1:-1;;;;;8326:18:48;-1:-1:-1;;;;;8326:32:48;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8315:7;:45;;8294:189;;;;-1:-1:-1;;;8294:189:48;;;;;;;:::i;:::-;8542:18;;8586:38;;;-1:-1:-1;;;8586:38:48;;;;8494:45;;-1:-1:-1;;;;;8542:18:48;;:30;;:18;;8586:36;;:38;;;;;8494:45;;8586:38;;;;;;;8542:18;8586:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8586:38:48;;;;;;;;;;;;:::i;:::-;8625:18;;:55;;-1:-1:-1;;;8625:55:48;;;;;1327:25:51;;;-1:-1:-1;;;;;8625:18:48;;;;:46;;1300:18:51;;8625:55:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8586:95;;;;;;;;:::i;:::-;;;;;;;8542:149;;;;;;;;;;;;;1327:25:51;;1315:2;1300:18;;1181:177;8542:149:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8542:149:48;;;;;;;;;;;;:::i;:::-;8494:197;;8796:31;8840:18;;;;;;;;;-1:-1:-1;;;;;8840:18:48;-1:-1:-1;;;;;8840:37:48;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8830:7;:49;:201;;4471:8;;-1:-1:-1;;;;;4471:8:48;8830:201;;;8894:14;;-1:-1:-1;;;8894:14:48;;;;:104;;8975:22;;8894:104;;;8919:30;;;;:44;8894:104;8796:235;-1:-1:-1;;;;;;9050:29:48;;9042:84;;;;-1:-1:-1;;;9042:84:48;;;;;;;:::i;:::-;9137:43;9155:15;9172:7;9137:17;:43::i;:::-;9195:41;;;-1:-1:-1;;;;;206:32:51;;188:51;;270:2;255:18;;248:34;;;9195:41:48;;161:18:51;9195:41:48;;;;;;;7144:2099;;;7095:2148;:::o;12029:280::-;4471:8;;-1:-1:-1;;;;;4471:8:48;12101:10;:23;12093:32;;;;;;12136:81;12159:5;12174:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;12174:9;12186:30;;-1:-1:-1;;;12186:30:48;;12210:4;12186:30;;;439:51:51;-1:-1:-1;;;;;12186:15:48;;;;;412:18:51;;12186:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:22;:81::i;:::-;12253:5;-1:-1:-1;;;;;12232:70:48;;12260:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;12260:9;12271:30;;-1:-1:-1;;;12271:30:48;;12295:4;12271:30;;;439:51:51;-1:-1:-1;;;;;12271:15:48;;;;;412:18:51;;12271:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12232:70;;;-1:-1:-1;;;;;206:32:51;;;188:51;;270:2;255:18;;248:34;;;;161:18;12232:70:48;;;;;;;12029:280;:::o;11797:226::-;4471:8;;-1:-1:-1;;;;;4471:8:48;11857:10;:23;11849:32;;;;;;11892:60;11918:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;11918:9;11930:21;11892:17;:60::i;:::-;11967:49;11983:9;4471:8;;-1:-1:-1;;;;;4471:8:48;;4405:81;11983:9;11967:49;;;-1:-1:-1;;;;;206:32:51;;;188:51;;11994:21:48;270:2:51;255:18;;248:34;161:18;11967:49:48;;;;;;;11797:226::o;6268:222::-;6326:7;6345:21;6393:15;4647:14;;;4575:93;6393:15;6369:39;;:21;:39;:::i;:::-;6345:63;;6425:58;6441:7;6450:13;6465:17;6474:7;5274;5300:18;;;:9;:18;;;;;;;5218:107;6425:58;6418:65;6268:222;-1:-1:-1;;;6268:222:48:o;941:175:24:-;1050:58;;;-1:-1:-1;;;;;206:32:51;;1050:58:24;;;188:51:51;255:18;;;;248:34;;;1050:58:24;;;;;;;;;;161:18:51;;;;1050:58:24;;;;;;;;-1:-1:-1;;;;;1050:58:24;-1:-1:-1;;;1050:58:24;;;1023:86;;1043:5;;1023:19;:86::i;:::-;941:175;;;:::o;12480:240:48:-;12616:7;12683:12;;12663:16;;;:7;:16;;;;;;12698:15;;12683:12;12647:32;;:13;:32;:::i;:::-;12646:49;;;;:::i;:::-;:67;;;;:::i;:::-;12639:74;12480:240;-1:-1:-1;;;;12480:240:48:o;2647:312:25:-;2761:6;2736:21;:31;;2728:73;;;;-1:-1:-1;;;2728:73:25;;13613:2:51;2728:73:25;;;13595:21:51;13652:2;13632:18;;;13625:30;13691:31;13671:18;;;13664:59;13740:18;;2728:73:25;13411:353:51;2728:73:25;2813:12;2831:9;-1:-1:-1;;;;;2831:14:25;2853:6;2831:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:52;;;2882:7;2874:78;;;;-1:-1:-1;;;2874:78:25;;14181:2:51;2874:78:25;;;14163:21:51;14220:2;14200:18;;;14193:30;14259:34;14239:18;;;14232:62;14330:28;14310:18;;;14303:56;14376:19;;2874:78:25;13979:422:51;5173:642:24;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;-1:-1:-1;;;;;5618:27:24;;;:69;;;;;:::i;:::-;5592:95;;5705:10;:17;5726:1;5705:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5697:111;;;;-1:-1:-1;;;5697:111:24;;14608:2:51;5697:111:24;;;14590:21:51;14647:2;14627:18;;;14620:30;14686:34;14666:18;;;14659:62;-1:-1:-1;;;14737:18:51;;;14730:40;14787:19;;5697:111:24;14406:406:51;4108:223:25;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:25;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:25:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:25;;;8113:60;;;;-1:-1:-1;;;8113:60:25;;15718:2:51;8113:60:25;;;15700:21:51;15757:2;15737:18;;;15730:30;15796:31;15776:18;;;15769:59;15845:18;;8113:60:25;15516:353:51;8113:60:25;-1:-1:-1;8208:10:25;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:25;;;;;;;;:::i;501:139:51:-;-1:-1:-1;;;;;584:31:51;;574:42;;564:70;;630:1;627;620:12;564:70;501:139;:::o;645:339::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:39;897:5;864:39;:::i;:::-;922:5;974:2;959:18;;;;946:32;;-1:-1:-1;;;645:339:51:o;1363:632::-;1534:2;1586:21;;;1656:13;;1559:18;;;1678:22;;;1505:4;;1534:2;1757:15;;;;1731:2;1716:18;;;1505:4;1800:169;1814:6;1811:1;1808:13;1800:169;;;1875:13;;1863:26;;1944:15;;;;1909:12;;;;1836:1;1829:9;1800:169;;;-1:-1:-1;1986:3:51;;1363:632;-1:-1:-1;;;;;;1363:632:51:o;2000:180::-;2059:6;2112:2;2100:9;2091:7;2087:23;2083:32;2080:52;;;2128:1;2125;2118:12;2080:52;-1:-1:-1;2151:23:51;;2000:180;-1:-1:-1;2000:180:51:o;2185:271::-;2260:6;2313:2;2301:9;2292:7;2288:23;2284:32;2281:52;;;2329:1;2326;2319:12;2281:52;2368:9;2355:23;2387:39;2420:5;2387:39;:::i;2461:250::-;2546:1;2556:113;2570:6;2567:1;2564:13;2556:113;;;2646:11;;;2640:18;2627:11;;;2620:39;2592:2;2585:10;2556:113;;;-1:-1:-1;;2703:1:51;2685:16;;2678:27;2461:250::o;2716:396::-;2865:2;2854:9;2847:21;2828:4;2897:6;2891:13;2940:6;2935:2;2924:9;2920:18;2913:34;2956:79;3028:6;3023:2;3012:9;3008:18;3003:2;2995:6;2991:15;2956:79;:::i;:::-;3096:2;3075:15;-1:-1:-1;;3071:29:51;3056:45;;;;3103:2;3052:54;;2716:396;-1:-1:-1;;2716:396:51:o;3365:407::-;3567:2;3549:21;;;3606:2;3586:18;;;3579:30;3645:34;3640:2;3625:18;;3618:62;-1:-1:-1;;;3711:2:51;3696:18;;3689:41;3762:3;3747:19;;3365:407::o;3777:127::-;3838:10;3833:3;3829:20;3826:1;3819:31;3869:4;3866:1;3859:15;3893:4;3890:1;3883:15;3909:278;3997:6;4050:2;4038:9;4029:7;4025:23;4021:32;4018:52;;;4066:1;4063;4056:12;4018:52;4098:9;4092:16;4137:1;4130:5;4127:12;4117:40;;4153:1;4150;4143:12;4192:471;4394:2;4376:21;;;4433:2;4413:18;;;4406:30;4472:34;4467:2;4452:18;;4445:62;4543:34;4538:2;4523:18;;4516:62;-1:-1:-1;;;4609:3:51;4594:19;;4587:34;4653:3;4638:19;;4192:471::o;4668:400::-;4870:2;4852:21;;;4909:2;4889:18;;;4882:30;4948:34;4943:2;4928:18;;4921:62;-1:-1:-1;;;5014:2:51;4999:18;;4992:34;5058:3;5043:19;;4668:400::o;5073:545::-;5275:2;5257:21;;;5314:3;5294:18;;;5287:31;5354:34;5349:2;5334:18;;5327:62;5425:34;5420:2;5405:18;;5398:62;5497:34;5491:3;5476:19;;5469:63;-1:-1:-1;;;5563:3:51;5548:19;;5541:35;5608:3;5593:19;;5073:545::o;5623:127::-;5684:10;5679:3;5675:20;5672:1;5665:31;5715:4;5712:1;5705:15;5739:4;5736:1;5729:15;5755:125;5820:9;;;5841:10;;;5838:36;;;5854:18;;:::i;5885:164::-;5961:13;;6010;;6003:21;5993:32;;5983:60;;6039:1;6036;6029:12;5983:60;5885:164;;;:::o;6054:202::-;6121:6;6174:2;6162:9;6153:7;6149:23;6145:32;6142:52;;;6190:1;6187;6180:12;6142:52;6213:37;6240:9;6213:37;:::i;6261:184::-;6331:6;6384:2;6372:9;6363:7;6359:23;6355:32;6352:52;;;6400:1;6397;6390:12;6352:52;-1:-1:-1;6423:16:51;;6261:184;-1:-1:-1;6261:184:51:o;6450:541::-;6652:2;6634:21;;;6691:2;6671:18;;;6664:30;6730:34;6725:2;6710:18;;6703:62;6801:34;6796:2;6781:18;;6774:62;6873:34;6867:3;6852:19;;6845:63;-1:-1:-1;;;6939:3:51;6924:19;;6917:32;6981:3;6966:19;;6450:541::o;6996:127::-;7057:10;7052:3;7048:20;7045:1;7038:31;7088:4;7085:1;7078:15;7112:4;7109:1;7102:15;7128:257;7200:4;7194:11;;;7232:17;;7279:18;7264:34;;7300:22;;;7261:62;7258:88;;;7326:18;;:::i;:::-;7362:4;7355:24;7128:257;:::o;7390:253::-;7462:2;7456:9;7504:4;7492:17;;7539:18;7524:34;;7560:22;;;7521:62;7518:88;;;7586:18;;:::i;7648:275::-;7719:2;7713:9;7784:2;7765:13;;-1:-1:-1;;7761:27:51;7749:40;;7819:18;7804:34;;7840:22;;;7801:62;7798:88;;;7866:18;;:::i;:::-;7902:2;7895:22;7648:275;;-1:-1:-1;7648:275:51:o;7928:183::-;7988:4;8021:18;8013:6;8010:30;8007:56;;;8043:18;;:::i;:::-;-1:-1:-1;8088:1:51;8084:14;8100:4;8080:25;;7928:183::o;8116:881::-;8211:6;8242:2;8285;8273:9;8264:7;8260:23;8256:32;8253:52;;;8301:1;8298;8291:12;8253:52;8334:9;8328:16;8367:18;8359:6;8356:30;8353:50;;;8399:1;8396;8389:12;8353:50;8422:22;;8475:4;8467:13;;8463:27;-1:-1:-1;8453:55:51;;8504:1;8501;8494:12;8453:55;8533:2;8527:9;8556:60;8572:43;8612:2;8572:43;:::i;:::-;8556:60;:::i;:::-;8650:15;;;8732:1;8728:10;;;;8720:19;;8716:28;;;8681:12;;;;8756:19;;;8753:39;;;8788:1;8785;8778:12;8753:39;8812:11;;;;8832:135;8848:6;8843:3;8840:15;8832:135;;;8914:10;;8902:23;;8865:12;;;;8945;;;;8832:135;;9002:127;9063:10;9058:3;9054:20;9051:1;9044:31;9094:4;9091:1;9084:15;9118:4;9115:1;9108:15;9134:498;9206:5;9254:4;9242:9;9237:3;9233:19;9229:30;9226:50;;;9272:1;9269;9262:12;9226:50;9305:2;9299:9;9347:4;9339:6;9335:17;9418:6;9406:10;9403:22;9382:18;9370:10;9367:34;9364:62;9361:88;;;9429:18;;:::i;:::-;9469:10;9465:2;9458:22;;9498:6;9489:15;;9534:9;9528:16;9553:41;9586:7;9553:41;:::i;:::-;9603:23;;9134:498;;-1:-1:-1;;9134:498:51:o;9637:1039::-;9707:5;9755:4;9743:9;9738:3;9734:19;9730:30;9727:50;;;9773:1;9770;9763:12;9727:50;9795:22;;:::i;:::-;9786:31;;9846:9;9840:16;9879:18;9871:6;9868:30;9865:50;;;9911:1;9908;9901:12;9865:50;9934:22;;9987:4;9979:13;;9975:23;-1:-1:-1;9965:51:51;;10012:1;10009;10002:12;9965:51;10041:2;10035:9;10063:4;10087:60;10103:43;10143:2;10103:43;:::i;10087:60::-;10181:15;;;10263:1;10259:10;;;;10251:19;;10247:28;;;10212:12;;;;10287:15;;;10284:35;;;10315:1;10312;10305:12;10284:35;10339:11;;;;10359:224;10375:6;10370:3;10367:15;10359:224;;;10450:3;10444:10;10467:41;10500:7;10467:41;:::i;:::-;10521:20;;10392:12;;;;10561;;;;10359:224;;;10592:20;;-1:-1:-1;10650:18:51;;;10644:25;10628:14;;;10621:49;;;;-1:-1:-1;10599:5:51;9637:1039;-1:-1:-1;;9637:1039:51:o;10681:1499::-;10782:6;10813:2;10856;10844:9;10835:7;10831:23;10827:32;10824:52;;;10872:1;10869;10862:12;10824:52;10905:9;10899:16;10934:18;10975:2;10967:6;10964:14;10961:34;;;10991:1;10988;10981:12;10961:34;11014:22;;;;11070:4;11052:16;;;11048:27;11045:47;;;11088:1;11085;11078:12;11045:47;11114:22;;:::i;:::-;11166:2;11160:9;11178:41;11211:7;11178:41;:::i;:::-;11228:22;;11282:39;11309:11;;;11282:39;:::i;:::-;11277:2;11270:5;11266:14;11259:63;11361:2;11357;11353:11;11347:18;11390:2;11380:8;11377:16;11374:36;;;11406:1;11403;11396:12;11374:36;11429:17;;11477:4;11469:13;;11465:27;-1:-1:-1;11455:55:51;;11506:1;11503;11496:12;11455:55;11535:2;11529:9;11557:2;11553;11550:10;11547:36;;;11563:18;;:::i;:::-;11605:53;11648:2;11629:13;;-1:-1:-1;;11625:27:51;11621:36;;11605:53;:::i;:::-;11681:2;11674:5;11667:17;11721:7;11716:2;11711;11707;11703:11;11699:20;11696:33;11693:53;;;11742:1;11739;11732:12;11693:53;11755:67;11819:2;11814;11807:5;11803:14;11798:2;11794;11790:11;11755:67;:::i;:::-;11849:2;11838:14;;11831:29;-1:-1:-1;11892:65:51;;-1:-1:-1;11949:7:51;11944:2;11936:11;;11892:65;:::i;:::-;11887:2;11880:5;11876:14;11869:89;11997:3;11993:2;11989:12;11983:19;11967:35;;12027:2;12017:8;12014:16;12011:36;;;12043:1;12040;12033:12;12011:36;12080:69;12141:7;12130:8;12126:2;12122:17;12080:69;:::i;:::-;12074:3;12063:15;;12056:94;12067:5;10681:1499;-1:-1:-1;;;;;;10681:1499:51:o;12185:406::-;12387:2;12369:21;;;12426:2;12406:18;;;12399:30;12465:34;12460:2;12445:18;;12438:62;-1:-1:-1;;;12531:2:51;12516:18;;12509:40;12581:3;12566:19;;12185:406::o;12883:168::-;12956:9;;;12987;;13004:15;;;12998:22;;12984:37;12974:71;;13025:18;;:::i;13056:217::-;13096:1;13122;13112:132;;13166:10;13161:3;13157:20;13154:1;13147:31;13201:4;13198:1;13191:15;13229:4;13226:1;13219:15;13112:132;-1:-1:-1;13258:9:51;;13056:217::o;13278:128::-;13345:9;;;13366:11;;;13363:37;;;13380:18;;:::i;15224:287::-;15353:3;15391:6;15385:13;15407:66;15466:6;15461:3;15454:4;15446:6;15442:17;15407:66;:::i;:::-;15489:16;;;;;15224:287;-1:-1:-1;;15224:287:51:o", "linkReferences": {} }, @@ -452,7 +452,7 @@ "withdrawRewards()": "c7b8981c", "withdrawRewards(address)": "42d86693" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"payees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares_\",\"type\":\"uint256[]\"},{\"internalType\":\"contract GovernorSorting\",\"name\":\"underlyingContest_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"paysOutTarget_\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20RewardWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayees\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paysOutTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlyingContest\",\"outputs\":[{\"internalType\":\"contract GovernorCountingSimple\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware that the Ether will be split in this way, since it is handled transparently by the contract. The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the time of contract deployment and can't be updated thereafter. `RewardsModule` follows a _pull payment_ model. This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} function. NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you to run tests before sending real value to this contract.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates an instance of `RewardsModule` where each ranking in `payees` is assigned the number of shares at the matching position in the `shares` array. All rankings in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`.\"},\"creator()\":{\"details\":\"Getter for the creator of this rewards contract.\"},\"getPayees()\":{\"details\":\"Getter for list of rankings that will be paid out.\"},\"paysOutTarget()\":{\"details\":\"Getter for whether this pays out the target address or author of a proposal.\"},\"releasable(address,uint256)\":{\"details\":\"Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract.\"},\"releasable(uint256)\":{\"details\":\"Getter for the amount of payee's releasable Ether.\"},\"release(address,uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract.\"},\"release(uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals.\"},\"released(address,uint256)\":{\"details\":\"Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract.\"},\"released(uint256)\":{\"details\":\"Getter for the amount of Ether already released to a payee.\"},\"shares(uint256)\":{\"details\":\"Getter for the amount of shares held by a ranking.\"},\"totalReleased()\":{\"details\":\"Getter for the total amount of Ether already released.\"},\"totalReleased(address)\":{\"details\":\"Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract.\"},\"totalShares()\":{\"details\":\"Getter for the total shares held by payees.\"},\"underlyingContest()\":{\"details\":\"Getter for the underlying contest.\"},\"version()\":{\"details\":\"Version of the rewards module. Default: \\\"1\\\"\"}},\"title\":\"RewardsModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/RewardsModule.sol\":\"RewardsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x149016f7b5ae5312fbfe6c83478b94b49a935bd1f8c0f5ae797c1ccb9d534057\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43c8bb6621377f18c421d71b59cde65be4a18d14c453da3b8950b90c279a675\",\"dweb:/ipfs/QmTmMycYCohESCwtHZh6GVUV2HuDt9RgXzh9S1Xchp7NPp\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x09fa3f379eeb816436c97a552662e694cbafe92885662325fb6309444cb3c22d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://546bb8afacbb7c4d08e623529d1b257a81d10184af0d420121f8fb91896b440f\",\"dweb:/ipfs/QmUYnJJbhq62uK6FqceXJBKbVAMtXBqYgSHKcSVrbonQGU\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"payees\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shares_\",\"type\":\"uint256[]\"},{\"internalType\":\"contract GovernorSorting\",\"name\":\"underlyingContest_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"paysOutTarget_\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ERC20RewardWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"PayeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PaymentReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"RewardWithdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayees\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paysOutTarget\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"releasable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"released\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ranking\",\"type\":\"uint256\"}],\"name\":\"shares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalReleased\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlyingContest\",\"outputs\":[{\"internalType\":\"contract GovernorCountingSimple\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawRewards\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware that the Ether will be split in this way, since it is handled transparently by the contract. The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the time of contract deployment and can't be updated thereafter. `RewardsModule` follows a _pull payment_ model. This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release} function. NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you to run tests before sending real value to this contract.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Creates an instance of `RewardsModule` where each ranking in `payees` is assigned the number of shares at the matching position in the `shares` array. All rankings in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no duplicates in `payees`.\"},\"creator()\":{\"details\":\"Getter for the creator of this rewards contract.\"},\"getPayees()\":{\"details\":\"Getter for list of rankings that will be paid out.\"},\"paysOutTarget()\":{\"details\":\"Getter for whether this pays out the target address or author of a proposal.\"},\"releasable(address,uint256)\":{\"details\":\"Getter for the amount of payee's releasable `token` tokens. `token` should be the address of an IERC20 contract.\"},\"releasable(uint256)\":{\"details\":\"Getter for the amount of payee's releasable Ether.\"},\"release(address,uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of `token` tokens they are owed, according to their percentage of the total shares and their previous withdrawals. `token` must be the address of an IERC20 contract.\"},\"release(uint256)\":{\"details\":\"Triggers a transfer to `ranking` of the amount of Ether they are owed, according to their percentage of the total shares and their previous withdrawals.\"},\"released(address,uint256)\":{\"details\":\"Getter for the amount of `token` tokens already released to a payee. `token` should be the address of an IERC20 contract.\"},\"released(uint256)\":{\"details\":\"Getter for the amount of Ether already released to a payee.\"},\"shares(uint256)\":{\"details\":\"Getter for the amount of shares held by a ranking.\"},\"totalReleased()\":{\"details\":\"Getter for the total amount of Ether already released.\"},\"totalReleased(address)\":{\"details\":\"Getter for the total amount of `token` already released. `token` should be the address of an IERC20 contract.\"},\"totalShares()\":{\"details\":\"Getter for the total shares held by payees.\"},\"underlyingContest()\":{\"details\":\"Getter for the underlying contest.\"},\"version()\":{\"details\":\"Version of the rewards module. Default: \\\"1\\\"\"}},\"title\":\"RewardsModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/RewardsModule.sol\":\"RewardsModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forge-std/=lib/forge-std/src/\",\":@openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol\":{\"keccak256\":\"0xea30c402170bc240354b74e6c6f6a8e5bdb1935d90d168cc58c0654461c6a72b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://95cbddf89006e6dbbc200eb091eb90025c97a9980310f2325c9bda2c4fdc97e3\",\"dweb:/ipfs/QmT67Dt3xrKEQSDC4XyDcrKwZUYsJzddrRFjEopRZNP9yR\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/governance/Governor.sol\":{\"keccak256\":\"0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd\",\"dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB\"]},\"src/governance/GovernorMerkleVotes.sol\":{\"keccak256\":\"0xdf37902c07f4229349c80ae7335d7d7112265e62428a38e2786584382bc8f0ec\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://73866fb05fb57229990cbb10d7788098ad66e0a821bb8622d91eb0e9cb836d5d\",\"dweb:/ipfs/Qmeg5mnXTsXYyrkGhMYfX1XjBAT6Y2wwwrcQZxKVkKHRgU\"]},\"src/governance/IGovernor.sol\":{\"keccak256\":\"0x9f376eceb5dc9f607aef2f32a689e4d3da0138c9ff3df736de980a58857dc767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d6e4fe4cebd0e609645ff903f971af4b7397187c8443cee7d38ed256688df0d\",\"dweb:/ipfs/QmYWVLSsbmJngrvAvEnJAS6S3nJUGDDdyHeF4tQGhwcVSK\"]},\"src/governance/extensions/GovernorCountingSimple.sol\":{\"keccak256\":\"0x0826e704a30c41b3b862a0ab49aa7b6b304df357b36ae01c594f1a06eefe706d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ca6a0f71e0d3f52c5adf79ec69425925d5399edd47305b1c178100f6c26563\",\"dweb:/ipfs/QmaYWdZYwt4Tv86gzytWBZyPY2uiLCo2gtPcAhpQ5v7PRe\"]},\"src/governance/extensions/GovernorSorting.sol\":{\"keccak256\":\"0x11308fa953975df46225fbae1cc0281a3595f45a47ce2c74580e314fd4b18a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ba97efac2b0c511a82011f729d185bc8b1f2ebcfb2fa94bf28e5562c1c03b0d\",\"dweb:/ipfs/QmWSKMU5WmsPxk3bSwhFPR9qBJnA9DXAnqGz1MdtSJDJSa\"]},\"src/modules/RewardsModule.sol\":{\"keccak256\":\"0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e\",\"dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -942,13 +942,13 @@ }, "settings": { "remappings": [ - ":@forge-std/=lib/forge-std/src/", - ":@openzeppelin/=lib/openzeppelin-contracts/contracts/", - ":ds-test/=lib/forge-std/lib/ds-test/src/", - ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", - ":forge-std/=lib/forge-std/src/", - ":openzeppelin-contracts/=lib/openzeppelin-contracts/", - ":openzeppelin/=lib/openzeppelin-contracts/contracts/" + "@forge-std/=lib/forge-std/src/", + "@openzeppelin/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/" ], "optimizer": { "enabled": true, @@ -1108,10 +1108,10 @@ "license": "MIT" }, "src/governance/Governor.sol": { - "keccak256": "0x149016f7b5ae5312fbfe6c83478b94b49a935bd1f8c0f5ae797c1ccb9d534057", + "keccak256": "0x616e1eb65f309c5c1edd1da86dbfc208f35f3708491d9aad4e4086183b3796db", "urls": [ - "bzz-raw://b43c8bb6621377f18c421d71b59cde65be4a18d14c453da3b8950b90c279a675", - "dweb:/ipfs/QmTmMycYCohESCwtHZh6GVUV2HuDt9RgXzh9S1Xchp7NPp" + "bzz-raw://381cb39be64c591cc745b858c5e6c21cf32f50227ec294e492fb032307cedcdd", + "dweb:/ipfs/Qme7TpULoczTp2qUSd3SfKQ6JqJggPVnfHMd9Z38jxa9yB" ], "license": "MIT" }, @@ -1148,10 +1148,10 @@ "license": "MIT" }, "src/modules/RewardsModule.sol": { - "keccak256": "0x09fa3f379eeb816436c97a552662e694cbafe92885662325fb6309444cb3c22d", + "keccak256": "0x004bce7bf1082d08bbd432a403101f4056ec33f28ea2bb37bb983b0a0a930e9a", "urls": [ - "bzz-raw://546bb8afacbb7c4d08e623529d1b257a81d10184af0d420121f8fb91896b440f", - "dweb:/ipfs/QmUYnJJbhq62uK6FqceXJBKbVAMtXBqYgSHKcSVrbonQGU" + "bzz-raw://6930e806ac71b39efa5a8d614667f8fef805da5a5b41a13735f5846f5249163e", + "dweb:/ipfs/QmZecCnubKk7AmbZH5sjJv16qN6A31MgpmYwqLvVku93SA" ], "license": "MIT" } @@ -3287,7 +3287,7 @@ "statements": [ { "expression": { - "hexValue": "332e32", + "hexValue": "332e33", "id": 37797, "isConstant": false, "isLValue": false, @@ -3297,10 +3297,10 @@ "nodeType": "Literal", "src": "4143:5:48", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d257b9ae557d8b164ee9dd057c1f4a043941ce6bd698ec0334ccaf71e512dc69", - "typeString": "literal_string \"3.2\"" + "typeIdentifier": "t_stringliteral_8076ec3abbf3272059b84ffbba4ae4514e699cf80b934f3d5ac63e5348f67967", + "typeString": "literal_string \"3.3\"" }, - "value": "3.2" + "value": "3.3" }, "functionReturnParameters": 37796, "id": 37798,