diff --git a/contracts/validator/contract/validator.go b/contracts/validator/contract/validator.go index c372dc7ab..2f783cd77 100644 --- a/contracts/validator/contract/validator.go +++ b/contracts/validator/contract/validator.go @@ -16,10 +16,10 @@ import ( ) // XDCValidatorABI is the input ABI used to generate the binding from. -const XDCValidatorABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"unvote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCandidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"hasVotedInvalid\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getWithdrawCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"kycString\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWithdrawBlockNumbers\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getLatestKYC\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"candidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorsState\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"isCandidate\",\"type\":\"bool\"},{\"name\":\"cap\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minCandidateNum\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getGrandMasters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"grandMasterMap\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_invalidCandidate\",\"type\":\"address\"}],\"name\":\"invalidPercent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voters\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"grandMasters\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getOwnerToCandidateLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"invalidKYCCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voterWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"resign\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getHashCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxValidatorNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"isCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwnerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_invalidCandidate\",\"type\":\"address\"}],\"name\":\"voteInvalidKYC\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"kychash\",\"type\":\"string\"}],\"name\":\"uploadKYC\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_candidates\",\"type\":\"address[]\"},{\"name\":\"_caps\",\"type\":\"uint256[]\"},{\"name\":\"_firstOwner\",\"type\":\"address\"},{\"name\":\"_minCandidateCap\",\"type\":\"uint256\"},{\"name\":\"_minVoterCap\",\"type\":\"uint256\"},{\"name\":\"_maxValidatorNumber\",\"type\":\"uint256\"},{\"name\":\"_candidateWithdrawDelay\",\"type\":\"uint256\"},{\"name\":\"_voterWithdrawDelay\",\"type\":\"uint256\"},{\"name\":\"_grandMasters\",\"type\":\"address[]\"},{\"name\":\"_minCandidateNum\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Vote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Unvote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Propose\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"Resign\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kycHash\",\"type\":\"string\"}],\"name\":\"UploadedKYC\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_masternodeOwner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_masternodes\",\"type\":\"address[]\"}],\"name\":\"InvalidatedNode\",\"type\":\"event\"}]" +const XDCValidatorABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"unvote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCandidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"removeCandidatesZeroAddresses\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ownerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"hasVotedInvalid\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getWithdrawCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"ownerToCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getVoters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWithdrawBlockNumbers\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"},{\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"candidates\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorsState\",\"outputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"isCandidate\",\"type\":\"bool\"},{\"name\":\"cap\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minCandidateNum\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"grandMasterMap\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"invalidPercent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voters\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"grandMasters\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getOwnerToCandidateLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"removeOwnersZeroAddresses\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"invalidKYCCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voterWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"resign\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"invalidCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"getCandidateOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxValidatorNumber\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"candidateWithdrawDelay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"isCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minCandidateCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"invalidOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwnerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"voteInvalidKYC\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minVoterCap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_candidates\",\"type\":\"address[]\"},{\"name\":\"_caps\",\"type\":\"uint256[]\"},{\"name\":\"_firstOwner\",\"type\":\"address\"},{\"name\":\"_minCandidateCap\",\"type\":\"uint256\"},{\"name\":\"_minVoterCap\",\"type\":\"uint256\"},{\"name\":\"_maxValidatorNumber\",\"type\":\"uint256\"},{\"name\":\"_candidateWithdrawDelay\",\"type\":\"uint256\"},{\"name\":\"_voterWithdrawDelay\",\"type\":\"uint256\"},{\"name\":\"_grandMasters\",\"type\":\"address[]\"},{\"name\":\"_minCandidateNum\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Vote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Unvote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Propose\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_candidate\",\"type\":\"address\"}],\"name\":\"Resign\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"kycHash\",\"type\":\"string\"}],\"name\":\"UploadedKYC\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_masternodeOwner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_masternodes\",\"type\":\"address[]\"}],\"name\":\"InvalidatedNode\",\"type\":\"event\"}]" // XDCValidatorBin is the compiled bytecode used for deploying new contracts. -const XDCValidatorBin = `0x60806040523480156200001157600080fd5b50604051620028bb380380620028bb83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e08801516101008901516101208a01516009819055600a879055600b869055600c859055600d849055600e8390556007805460018101825560009182527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a031916600160a060020a038b16179055988b019a998a01999798969795969495939492939190910191805b8b51821015620002e85760088c83815181101515620000f757fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a039092169190911790558d519091908e90859081106200014457fe5b6020908102909101810151600160a060020a03908116835290820192909252604001600020805460a060020a60ff0219928d16600160a060020a03199091161791909116740100000000000000000000000000000000000000001781558b519091508b9083908110620001b357fe5b906020019060200201518160010181905550600260008d84815181101515620001d857fe5b6020908102909101810151600160a060020a03908116835282820193909352604091820160009081208054600181018255908252828220018054948f16600160a060020a0319909516851790559283526006905290208c518d90849081106200023d57fe5b6020908102919091018101518254600181018455600093845291909220018054600160a060020a031916600160a060020a039092169190911790558a518b90839081106200028757fe5b90602001906020020151600160008e85815181101515620002a457fe5b6020908102909101810151600160a060020a0390811683528282019390935260409182016000908120938f16815260029093019052902055600190910190620000dc565b600091505b83518210156200039657600f84838151811015156200030857fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a03909216919091179055855190916010918790869081106200035757fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560019190910190620002ed565b50505050505050505050505061250980620003b26000396000f3006080604052600436106101d75763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630126795181146101dc578063025e7c27146101f257806302aa9be21461022657806306a49fce1461024a5780630e3e4fb8146102af57806315febd68146102ea57806327a6296b146103145780632a3640b1146103ad5780632d15cc04146103d15780632f9c4bba146103f2578063302b687214610407578063326586521461042e5780633477ee2e1461044f5780634110a48914610467578063441a3e70146104b057806349e971be146104cb57806352b3ed16146104e057806358e7525f146104f55780635b6e3963146105165780635b860d27146105375780635c134d66146105585780636132cd831461057c57806367134e70146105945780636dd7d8ea146105b557806372e44a38146105c9578063a9a981a3146105ea578063a9ff959e146105ff578063ae6e43f514610614578063b642facd14610635578063c45607df14610656578063d09f1ab414610677578063d161c7671461068c578063d51b9e93146106a1578063d55b7dff146106c2578063ef18374a146106d7578063f2ee3c7d146106ec578063f5c951251461070d578063f8ac9dd51461072d575b600080fd5b6101f0600160a060020a0360043516610742565b005b3480156101fe57600080fd5b5061020a600435610a7e565b60408051600160a060020a039092168252519081900360200190f35b34801561023257600080fd5b506101f0600160a060020a0360043516602435610aa6565b34801561025657600080fd5b5061025f610d32565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561029b578181015183820152602001610283565b505050509050019250505060405180910390f35b3480156102bb57600080fd5b506102d6600160a060020a0360043581169060243516610d95565b604080519115158252519081900360200190f35b3480156102f657600080fd5b50610302600435610db5565b60408051918252519081900360200190f35b34801561032057600080fd5b50610338600160a060020a0360043516602435610dd4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b957600080fd5b5061020a600160a060020a0360043516602435610e8a565b3480156103dd57600080fd5b5061025f600160a060020a0360043516610ec1565b3480156103fe57600080fd5b5061025f610f37565b34801561041357600080fd5b50610302600160a060020a0360043581169060243516610f98565b34801561043a57600080fd5b50610338600160a060020a0360043516610fc7565b34801561045b57600080fd5b5061020a6004356110fd565b34801561047357600080fd5b50610488600160a060020a036004351661110b565b60408051600160a060020a039094168452911515602084015282820152519081900360600190f35b3480156104bc57600080fd5b506101f060043560243561113a565b3480156104d757600080fd5b50610302611396565b3480156104ec57600080fd5b5061025f61139c565b34801561050157600080fd5b50610302600160a060020a03600435166113fc565b34801561052257600080fd5b506102d6600160a060020a036004351661141b565b34801561054357600080fd5b50610302600160a060020a0360043516611430565b34801561056457600080fd5b5061020a600160a060020a03600435166024356114dc565b34801561058857600080fd5b5061020a6004356114f7565b3480156105a057600080fd5b50610302600160a060020a0360043516611505565b6101f0600160a060020a0360043516611520565b3480156105d557600080fd5b50610302600160a060020a036004351661178e565b3480156105f657600080fd5b506103026117a0565b34801561060b57600080fd5b506103026117a6565b34801561062057600080fd5b506101f0600160a060020a03600435166117ac565b34801561064157600080fd5b5061020a600160a060020a0360043516611b02565b34801561066257600080fd5b50610302600160a060020a0360043516611b20565b34801561068357600080fd5b50610302611b3b565b34801561069857600080fd5b50610302611b41565b3480156106ad57600080fd5b506102d6600160a060020a0360043516611b47565b3480156106ce57600080fd5b50610302611b6c565b3480156106e357600080fd5b50610302611b72565b3480156106f857600080fd5b506101f0600160a060020a0360043516611b78565b34801561071957600080fd5b506101f0600480356024810191013561211d565b34801561073957600080fd5b506103026121aa565b600080600a5434101515156107a1576040805160e560020a62461bcd02815260206004820152601160248201527f4c6f772043616e64696461746520436170000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260016020526040902054839060a060020a900460ff161561081b576040805160e560020a62461bcd02815260206004820152601160248201527f416c72656164792043616e646964617465000000000000000000000000000000604482015290519081900360640190fd5b3360009081526010602052604090205460ff161515600114610887576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020819052604090912001546108b4903463ffffffff6121b016565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018054600160a060020a038816600160a060020a03199182168117909255600091825260208381526040808420805474ff0000000000000000000000000000000000000000199416339081179490941660a060020a1781559485018690559183526002840190529020549194509250610960903463ffffffff6121b016565b600160a060020a038516600090815260016020908152604080832033845260020182528083209390935560069052205415156109d957600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a031916331790555b336000818152600660209081526040808320805460018181018355918552838520018054600160a060020a038b16600160a060020a031991821681179092558186526002855283862080549384018155865294849020909101805490941685179093558051938452908301919091523482820152517f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c19181900360600190a150505050565b6007805482908110610a8c57fe5b600091825260209091200154600160a060020a0316905081565b600160a060020a038216600090815260016020908152604080832033845260020190915281205483908390811115610b28576040805160e560020a62461bcd02815260206004820152601560248201527f496e73756666696369656e7420566f7465204361700000000000000000000000604482015290519081900360640190fd5b600160a060020a0382811660009081526001602052604090205416331415610bda57600a54600160a060020a0383166000908152600160209081526040808320338452600201909152902054610b84908363ffffffff6121c616565b1015610bda576040805160e560020a62461bcd02815260206004820152600d60248201527f42656c6f77204d696e2043617000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03851660009081526001602081905260409091200154610c07908563ffffffff6121c616565b600160a060020a038616600090815260016020818152604080842092830194909455338352600290910190522054610c45908563ffffffff6121c616565b600160a060020a0386166000908152600160209081526040808320338452600201909152902055600e54610c7f904363ffffffff6121b016565b33600090815260208181526040808320848452909152902054909350610cab908563ffffffff6121b016565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0388169282019290925280820186905290517faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa29181900360600190a15050505050565b60606008805480602002602001604051908101604052809291908181526020018280548015610d8a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d6c575b505050505090505b90565b600560209081526000928352604080842090915290825290205460ff1681565b336000908152602081815260408083208484529091529020545b919050565b600360205281600052604060002081815481101515610def57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152945090925090830182828015610e825780601f10610e5757610100808354040283529160200191610e82565b820191906000526020600020905b815481529060010190602001808311610e6557829003601f168201915b505050505081565b600660205281600052604060002081815481101515610ea557fe5b600091825260209091200154600160a060020a03169150829050565b600160a060020a038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610f2b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f0d575b50505050509050919050565b3360009081526020818152604091829020600101805483518184028101840190945280845260609392830182828015610d8a57602002820191906000526020600020905b815481526020019060010190808311610f7b575050505050905090565b600160a060020a0391821660009081526001602090815260408083209390941682526002909201909152205490565b6060610fd282611b47565b156110d55760036000610fe484611b02565b600160a060020a0316600160a060020a0316815260200190815260200160002060016003600061101386611b02565b600160a060020a03168152602081019190915260400160002054825491900390811061103b57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156110c95780601f1061109e576101008083540402835291602001916110c9565b820191906000526020600020905b8154815290600101906020018083116110ac57829003601f168201915b50505050509050610dcf565b600160a060020a03821660009081526003602052604090208054600019810190811061103b57fe5b6008805482908110610a8c57fe5b60016020819052600091825260409091208054910154600160a060020a0382169160a060020a900460ff169083565b60008282828211611195576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420426c6f636b204e756d626572000000000000000000000000604482015290519081900360640190fd5b438211156111ed576040805160e560020a62461bcd02815260206004820152601560248201527f426c6f636b204e756d62657220546f6f20486967680000000000000000000000604482015290519081900360640190fd5b336000908152602081815260408083208584529091528120541161125b576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420576974686472617720436170000000000000000000000000604482015290519081900360640190fd5b33600090815260208190526040902060010180548391908390811061127c57fe5b90600052602060002001541415156112de576040805160e560020a62461bcd02815260206004820152601560248201527f4d69736d6174636820426c6f636b204e756d6265720000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208984528083529083208054908490559383529190526001018054919450908590811061131657fe5b60009182526020822001819055604051339185156108fc02918691818181858888f1935050505015801561134e573d6000803e3d6000fd5b50604080513381526020810187905280820185905290517ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360600190a15050505050565b60095481565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d8a57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d6c575050505050905090565b600160a060020a03166000908152600160208190526040909120015490565b60106020526000908152604090205460ff1681565b600160a060020a0381166000908152600160205260408120548190839060a060020a900460ff16151561149b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b6114a484611b02565b91506114ae611b72565b600160a060020a0383166000908152600460205260409020546064028115156114d357fe5b04949350505050565b600260205281600052604060002081815481101515610ea557fe5b600f805482908110610a8c57fe5b600160a060020a031660009081526006602052604090205490565b600b5434101561157a576040805160e560020a62461bcd02815260206004820152600d60248201527f4c6f7720566f7465722043617000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054819060a060020a900460ff1615156115e3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b3360009081526010602052604090205460ff16151560011461164f576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382166000908152600160208190526040909120015461167c903463ffffffff6121b016565b600160a060020a03831660009081526001602081815260408084209283019490945533835260029091019052205415156116e957600160a060020a0382166000908152600260209081526040822080546001810182559083529120018054600160a060020a031916331790555b600160a060020a0382166000908152600160209081526040808320338452600201909152902054611720903463ffffffff6121b016565b600160a060020a0383166000818152600160209081526040808320338085526002909101835292819020949094558351918252810191909152348183015290517f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc9181900360600190a15050565b60046020526000908152604090205481565b60085490565b600e5481565b600160a060020a038082166000908152600160205260408120549091829182918591163314611825576040805160e560020a62461bcd02815260206004820152600960248201527f4e6f74204f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600090815260016020526040902054859060a060020a900460ff1615156118a0576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f742043616e64696461746500000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0386166000908152600160205260408120805474ff00000000000000000000000000000000000000001916905594505b60085485101561194c5785600160a060020a03166008868154811015156118fa57fe5b600091825260209091200154600160a060020a0316141561194157600880548690811061192357fe5b60009182526020909120018054600160a060020a031916905561194c565b6001909401936118d7565b6119af60088054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611987575b50505050506121d8565b80516119c3916008916020909101906122fa565b506119cc61229c565b600160a060020a038616600081815260016020818152604080842033855260028101835290842054949093528190520154909450611a10908563ffffffff6121c616565b600160a060020a0387166000908152600160208181526040808420928301949094553383526002909101905290812055600d54611a53904363ffffffff6121b016565b33600090815260208181526040808320848452909152902054909350611a7f908563ffffffff6121b016565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0389169282019290925281517f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3929181900390910190a1505050505050565b600160a060020a039081166000908152600160205260409020541690565b600160a060020a031660009081526003602052604090205490565b600c5481565b600d5481565b600160a060020a031660009081526001602052604090205460a060020a900460ff1690565b600a5481565b60075490565b336000818152600160205260408120549091829160609183918291829160a060020a900460ff161515611be3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b600160a060020a038816600090815260016020526040902054889060a060020a900460ff161515611c4c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b611c5533611b02565b9750611c6089611b02565b600160a060020a03808a1660009081526005602090815260408083209385168352929052205490975060ff1615611ce1576040805160e560020a62461bcd02815260206004820152601560248201527f416c726561647920566f74656420496e76616c69640000000000000000000000604482015290519081900360640190fd5b600160a060020a038089166000908152600560209081526040808320938b168352928152828220805460ff19166001908117909155600490915291902080549091019055604b611d2f611b72565b600160a060020a038916600090815260046020526040902054606402811515611d5457fe5b041061211257600160088054905003604051908082528060200260200182016040528015611d8c578160200160208202803883390190505b50955060009450600093505b600854841015611f145786600160a060020a0316611dd8600886815481101515611dbe57fe5b600091825260209091200154600160a060020a0316611b02565b600160a060020a03161415611f09576008805485908110611df557fe5b60009182526020909120015486516001870196600160a060020a039092169188918110611e1e57fe5b600160a060020a039092166020928302909101909101526008805485908110611e4357fe5b600091825260208220018054600160a060020a031916905560088054600192919087908110611e6e57fe5b6000918252602080832090910154600160a060020a0390811684528382019490945260409283018220805474ffffffffffffffffffffffffffffffffffffffffff19168155600101829055928a16815260039092528120611ece9161235f565b600160a060020a0387166000908152600660205260408120611eef91612380565b600160a060020a0387166000908152600460205260408120555b600190930192611d98565b611f7560088054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116119875750505050506121d8565b8051611f89916008916020909101906122fa565b50611f9261229c565b600092505b60075483101561200c5786600160a060020a0316600784815481101515611fba57fe5b600091825260209091200154600160a060020a03161415612001576007805484908110611fe357fe5b60009182526020909120018054600160a060020a031916905561200c565b600190920191611f97565b61206d60078054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116119875750505050506121d8565b8051612081916007916020909101906122fa565b507fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e87876040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156120fd5781810151838201526020016120e5565b50505050905001935050505060405180910390a15b505050505050505050565b33600090815260036020908152604082208054600181018083559184529190922061214a9101848461239e565b50506040805133808252602082018381529282018490527f949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a9290918591859190606082018484808284376040519201829003965090945050505050a15050565b600b5481565b6000828201838110156121bf57fe5b9392505050565b6000828211156121d257fe5b50900390565b6060806000808451604051908082528060200260200182016040528015612209578160200160208202803883390190505b50925060009150600090505b845181101561229357845160009086908390811061222f57fe5b60209081029091010151600160a060020a03161461228b57848181518110151561225557fe5b90602001906020020151838381518110151561226d57fe5b600160a060020a039092166020928302909101909101526001909101905b600101612215565b50815292915050565b60095460085410156122f8576040805160e560020a62461bcd02815260206004820152601360248201527f4c6f772043616e64696461746520436f756e7400000000000000000000000000604482015290519081900360640190fd5b565b82805482825590600052602060002090810192821561234f579160200282015b8281111561234f5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019061231a565b5061235b929150612418565b5090565b508054600082559060005260206000209081019061237d919061243c565b50565b508054600082559060005260206000209081019061237d919061245f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123df5782800160ff1982351617855561240c565b8280016001018555821561240c579182015b8281111561240c5782358255916020019190600101906123f1565b5061235b92915061245f565b610d9291905b8082111561235b578054600160a060020a031916815560010161241e565b610d9291905b8082111561235b5760006124568282612479565b50600101612442565b610d9291905b8082111561235b5760008155600101612465565b50805460018160011615610100020316600290046000825580601f1061249f575061237d565b601f01602090049060005260206000209081019061237d919061245f56004e6f742056616c69642043616e64696461746500000000000000000000000000a165627a7a7230582066e183b30548c8470ddf44cf0a263594e7a273211523d4487293ec58fc8f13880029` +const XDCValidatorBin = `0x6080604052600060085560006009553480156200001b57600080fd5b5060405162002aa238038062002aa283398101604090815281516020830151918301516060840151608085015160a086015160c087015160e08801516101008901516101208a0151600a819055600b879055600c869055600d859055600e849055600f839055978a018051600855600680546001808201835560009283527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054600160a060020a031916600160a060020a038c16179055600980549091019055909a998a01999798969795969495939492939190910191905b8a518110156200032f5760078b828151811015156200011357fe5b602090810291909101810151825460018082018555600094855293839020018054600160a060020a031916600160a060020a0392831617905560408051606081018252918d168252918101929092528b51908201908c90849081106200017557fe5b90602001906020020151815250600160008d848151811015156200019557fe5b602090810291909101810151600160a060020a03908116835282820193909352604091820160009081208551815493870151600160a060020a031990941695169490941760a060020a60ff02191674010000000000000000000000000000000000000000921515929092029190911783559201516001909101558b51600291908d90849081106200022257fe5b6020908102909101810151600160a060020a03908116835282820193909352604091820160009081208054600181018255908252828220018054948e16600160a060020a0319909516851790559283526005905290208b518c90839081106200028757fe5b6020908102919091018101518254600181018455600093845291909220018054600160a060020a031916600160a060020a0390921691909117905589518a9082908110620002d157fe5b90602001906020020151600160008d84815181101515620002ee57fe5b6020908102909101810151600160a060020a0390811683528282019390935260409182016000908120938e16815260029093019052902055600101620000f8565b5060005b8251811015620003d857601283828151811015156200034e57fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a03909216919091179055845190916013918690859081106200039d57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000333565b50505050505050505050506126af80620003f36000396000f3006080604052600436106101e25763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630126795181146101e7578063025e7c27146101fd57806302aa9be21461023157806306a49fce146102555780630999ec79146102ba5780630db02622146102cf5780630e3e4fb8146102f657806315febd68146103315780632a3640b1146103495780632d15cc041461036d5780632f54bf6e1461038e5780632f9c4bba146103ca578063302b6872146103df5780633477ee2e146104065780634110a4891461041e578063441a3e701461046757806349e971be1461048257806358e7525f146104975780635b6e3963146104b85780635b860d27146104d95780635c134d66146104fa5780636132cd831461051e57806367134e7014610536578063681d8bf2146105575780636dd7d8ea1461056c57806372e44a3814610580578063a9a981a3146105a1578063a9ff959e146105b6578063ae6e43f5146105cb578063b622f141146105ec578063b642facd1461060d578063d09f1ab41461062e578063d161c76714610643578063d51b9e9314610658578063d55b7dff14610679578063db11daef1461068e578063ef18374a146106af578063f2ee3c7d146106c4578063f8ac9dd5146106e5575b600080fd5b6101fb600160a060020a03600435166106fa565b005b34801561020957600080fd5b50610215600435610ae7565b60408051600160a060020a039092168252519081900360200190f35b34801561023d57600080fd5b506101fb600160a060020a0360043516602435610b0f565b34801561026157600080fd5b5061026a610d9b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a657818101518382015260200161028e565b505050509050019250505060405180910390f35b3480156102c657600080fd5b506101fb610dfe565b3480156102db57600080fd5b506102e4610ee6565b60408051918252519081900360200190f35b34801561030257600080fd5b5061031d600160a060020a0360043581169060243516610eec565b604080519115158252519081900360200190f35b34801561033d57600080fd5b506102e4600435610f0c565b34801561035557600080fd5b50610215600160a060020a0360043516602435610f27565b34801561037957600080fd5b5061026a600160a060020a0360043516610f5e565b34801561039a57600080fd5b506103af600160a060020a0360043516610fd4565b60408051921515835260208301919091528051918290030190f35b3480156103d657600080fd5b5061026a611039565b3480156103eb57600080fd5b506102e4600160a060020a036004358116906024351661109a565b34801561041257600080fd5b506102156004356110c9565b34801561042a57600080fd5b5061043f600160a060020a03600435166110d7565b60408051600160a060020a039094168452911515602084015282820152519081900360600190f35b34801561047357600080fd5b506101fb600435602435611106565b34801561048e57600080fd5b506102e46113f1565b3480156104a357600080fd5b506102e4600160a060020a03600435166113f7565b3480156104c457600080fd5b5061031d600160a060020a0360043516611416565b3480156104e557600080fd5b506102e4600160a060020a036004351661142b565b34801561050657600080fd5b50610215600160a060020a0360043516602435611528565b34801561052a57600080fd5b50610215600435611543565b34801561054257600080fd5b506102e4600160a060020a0360043516611551565b34801561056357600080fd5b506101fb61156c565b6101fb600160a060020a036004351661164e565b34801561058c57600080fd5b506102e4600160a060020a036004351661191b565b3480156105ad57600080fd5b506102e461192d565b3480156105c257600080fd5b506102e4611933565b3480156105d757600080fd5b506101fb600160a060020a0360043516611939565b3480156105f857600080fd5b5061031d600160a060020a0360043516611d27565b34801561061957600080fd5b50610215600160a060020a0360043516611d3c565b34801561063a57600080fd5b506102e4611d5a565b34801561064f57600080fd5b506102e4611d60565b34801561066457600080fd5b5061031d600160a060020a0360043516611d66565b34801561068557600080fd5b506102e4611d8b565b34801561069a57600080fd5b5061031d600160a060020a0360043516611d91565b3480156106bb57600080fd5b506102e4611da6565b3480156106d057600080fd5b506101fb600160a060020a0360043516611dac565b3480156106f157600080fd5b506102e4612255565b600b54600090341015610757576040805160e560020a62461bcd02815260206004820152601560248201527f496e76616c69642043616e646964617465204361700000000000000000000000604482015290519081900360640190fd5b600160a060020a038216600090815260116020526040902054829060ff16156107b8576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff1615610830576040805160e560020a62461bcd02815260206004820152601360248201527f416c726561647920612063616e64696461746500000000000000000000000000604482015290519081900360640190fd5b3360009081526013602052604090205460ff16151560011461089c576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260016020819052604090912001546108c9903463ffffffff61225b16565b6007805460018181019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a03808816600160a060020a03199283168117909355604080516060810182523380825260208281018881528385018a81526000988952898352858920945185549251151560a060020a0274ff00000000000000000000000000000000000000001991909816929098169190911796909616949094178255935195810195909555918352600290930190925220549092506109a0903463ffffffff61225b16565b600160a060020a0384166000908152600160208181526040808420338552600201909152909120919091556008546109dd9163ffffffff61225b16565b600855336000908152600560205260409020541515610a435760068054600181810183556000929092527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018054600160a060020a031916331790556009805490910190555b336000818152600560209081526040808320805460018181018355918552838520018054600160a060020a038a16600160a060020a031991821681179092558186526002855283862080549384018155865294849020909101805490941685179093558051938452908301919091523482820152517f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c19181900360600190a1505050565b6006805482908110610af557fe5b600091825260209091200154600160a060020a0316905081565b600160a060020a038216600090815260016020908152604080832033845260020190915281205483908390811115610b91576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c696420566f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382811660009081526001602052604090205416331415610c4357600b54600160a060020a0383166000908152600160209081526040808320338452600201909152902054610bed908363ffffffff61227116565b1015610c43576040805160e560020a62461bcd02815260206004820181905260248201527f4d696e696d756d206361702073686f756c64206265206d61696e7461696e6564604482015290519081900360640190fd5b600160a060020a03851660009081526001602081905260409091200154610c70908563ffffffff61227116565b600160a060020a038616600090815260016020818152604080842092830194909455338352600290910190522054610cae908563ffffffff61227116565b600160a060020a0386166000908152600160209081526040808320338452600201909152902055600f54610ce8904363ffffffff61225b16565b33600090815260208181526040808320848452909152902054909350610d14908563ffffffff61225b16565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0388169282019290925280820186905290517faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa29181900360600190a15050505050565b60606007805480602002602001604051908101604052809291908181526020018280548015610df357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610dd5575b505050505090505b90565b6060600080600780549050604051908082528060200260200182016040528015610e32578160200160208202803883390190505b50925060009150600090505b600754811015610ece57600780546000919083908110610e5a57fe5b600091825260209091200154600160a060020a031614610ec6576007805482908110610e8257fe5b6000918252602090912001548351600160a060020a0390911690849084908110610ea857fe5b600160a060020a039092166020928302909101909101526001909101905b600101610e3e565b818352610ee06007602085018461257b565b50505050565b60095481565b600460209081526000928352604080842090915290825290205460ff1681565b33600090815260208181526040808320938352929052205490565b600560205281600052604060002081815481101515610f4257fe5b600091825260209091200154600160a060020a03169150829050565b600160a060020a038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610fc857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610faa575b50505050509050919050565b600080805b60065481101561102b5783600160a060020a0316600682815481101515610ffc57fe5b600091825260209091200154600160a060020a031614156110235760018192509250611033565b600101610fd9565b600092508291505b50915091565b3360009081526020818152604091829020600101805483518184028101840190945280845260609392830182828015610df357602002820191906000526020600020905b81548152602001906001019080831161107d575050505050905090565b600160a060020a0391821660009081526001602090815260408083209390941682526002909201909152205490565b6007805482908110610af557fe5b60016020819052600091825260409091208054910154600160a060020a0382169160a060020a900460ff169083565b336000908152601060205260408120548390839060ff1615611172576040805160e560020a62461bcd02815260206004820152600d60248201527f496e76616c6964204f776e657200000000000000000000000000000000000000604482015290519081900360640190fd5b600082116111ca576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420626c6f636b206e756d626572000000000000000000000000604482015290519081900360640190fd5b43821115611248576040805160e560020a62461bcd02815260206004820152603560248201527f426c6f636b206e756d6265722073686f756c64206265206c657373207468616e60448201527f2063757272656e7420626c6f636b206e756d6265720000000000000000000000606482015290519081900360840190fd5b33600090815260208181526040808320858452909152812054116112b6576040805160e560020a62461bcd02815260206004820152601260248201527f4e6f2063617020746f2077697468647261770000000000000000000000000000604482015290519081900360640190fd5b3360009081526020819052604090206001018054839190839081106112d757fe5b9060005260206000200154141515611339576040805160e560020a62461bcd02815260206004820152600d60248201527f496e76616c696420696e64657800000000000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208984528083529083208054908490559383529190526001018054919450908590811061137157fe5b60009182526020822001819055604051339185156108fc02918691818181858888f193505050501580156113a9573d6000803e3d6000fd5b50604080513381526020810187905280820185905290517ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360600190a15050505050565b600a5481565b600160a060020a03166000908152600160208190526040909120015490565b60136020526000908152604090205460ff1681565b600160a060020a038116600090815260116020526040812054829060ff161561148c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff1615156114f3576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b6114fb611da6565b600160a060020a03841660009081526003602052604090205460640281151561152057fe5b049392505050565b600260205281600052604060002081815481101515610f4257fe5b6012805482908110610af557fe5b600160a060020a031660009081526005602052604090205490565b60606000806006805490506040519080825280602002602001820160405280156115a0578160200160208202803883390190505b50925060009150600090505b60065481101561163c576006805460009190839081106115c857fe5b600091825260209091200154600160a060020a0316146116345760068054829081106115f057fe5b6000918252602090912001548351600160a060020a039091169084908490811061161657fe5b600160a060020a039092166020928302909101909101526001909101905b6001016115ac565b818352610ee06006602085018461257b565b600c543410156116a8576040805160e560020a62461bcd02815260206004820152601160248201527f496e76616c696420566f74657220436170000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260116020526040902054819060ff1615611709576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff161515611770576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b3360009081526013602052604090205460ff1615156001146117dc576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526001602081905260409091200154611809903463ffffffff61225b16565b600160a060020a038316600090815260016020818152604080842092830194909455338352600290910190522054151561187657600160a060020a0382166000908152600260209081526040822080546001810182559083529120018054600160a060020a031916331790555b600160a060020a03821660009081526001602090815260408083203384526002019091529020546118ad903463ffffffff61225b16565b600160a060020a0383166000818152600160209081526040808320338085526002909101835292819020949094558351918252810191909152348183015290517f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc9181900360600190a15050565b60036020526000908152604090205481565b60085481565b600f5481565b600160a060020a038082166000908152600160205260408120549091829182918291829187911633146119dc576040805160e560020a62461bcd02815260206004820152602160248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038716600090815260016020526040902054879060a060020a900460ff161515611a7d576040805160e560020a62461bcd02815260206004820152602560248201527f4f6e6c792063616e6469646174652063616e2063616c6c20746869732066756e60448201527f6374696f6e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0388166000908152600160208190526040909120805474ff000000000000000000000000000000000000000019169055600854611ac69163ffffffff61227116565b600855611ad288612283565b611ada612377565b3360009081526005602052604081208054909850965094505b85851015611bde5787600160a060020a03168786815481101515611b1357fe5b600091825260209091200154600160a060020a03161415611bd3578660018703815481101515611b3f57fe5b6000918252602090912001548754600160a060020a0390911690889087908110611b6557fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055508660018703815481101515611ba457fe5b60009182526020909120018054600160a060020a03191690558654611bcd8860001983016125e0565b50611bde565b600190940193611af3565b86541515611bef57611bef336123d5565b600160a060020a038816600081815260016020818152604080842033855260028101835290842054949093528190520154909450611c33908563ffffffff61227116565b600160a060020a0389166000908152600160208181526040808420928301949094553383526002909101905290812055600e54611c76904363ffffffff61225b16565b33600090815260208181526040808320848452909152902054909350611ca2908563ffffffff61225b16565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a038b169282019290925281517f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3929181900390910190a15050505050505050565b60116020526000908152604090205460ff1681565b600160a060020a039081166000908152600160205260409020541690565b600d5481565b600e5481565b600160a060020a031660009081526001602052604090205460a060020a900460ff1690565b600b5481565b60106020526000908152604090205460ff1681565b60095490565b33600081815260116020526040812054909182918291829182916060918291849182919060ff1615611e16576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff161515611e7d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b611e8633611d3c565b9950600460008b600160a060020a0316600160a060020a0316815260200190815260200160002060008c600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff16151515611f35576040805160e560020a62461bcd02815260206004820152600d60248201527f416c726561647920766f74656400000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03808b166000908152600460209081526040808320938f168352928152828220805460ff19166001908117909155600390915291902080549091019055604b611f83611da6565b600160a060020a038d16600090815260036020526040902054606402811515611fa857fe5b041061224857600160a060020a038b166000908152601060205260409020805460ff19166001179055611fda8b610fd4565b9850985088156122485760075460408051828152602080840282010190915260009850889750908015612017578160200160208202803883390190505b506007546040805182815260208084028201019091529196508015612046578160200160208202803883390190505b509350600092505b60075483101561218d57600780548490811061206657fe5b600091825260209091200154600160a060020a0390811692508b1661208a83611d3c565b600160a060020a03161415612156576008546120ad90600163ffffffff61227116565b60085584516001870196839187919081106120c457fe5b600160a060020a0392831660209182029092018101919091528382166000908152601182526040808220805460ff19166001908117909155808452818320805474ffffffffffffffffffffffffffffffffffffffffff1916815501829055928e168152600590915290812061213891612604565b600160a060020a038b16600090815260036020526040812055612182565b835160018801978391869190811061216a57fe5b600160a060020a039092166020928302909101909101525b60019092019161204e565b86845285855283516121a690600790602087019061257b565b506121af612377565b6121b8886124ce565b7fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e8b866040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561223357818101518382015260200161221b565b50505050905001935050505060405180910390a15b5050505050505050505050565b600c5481565b60008282018381101561226a57fe5b9392505050565b60008282111561227d57fe5b50900390565b60075460005b818110156123725782600160a060020a03166007828154811015156122aa57fe5b600091825260209091200154600160a060020a0316141561236a576007805460001984019081106122d757fe5b60009182526020909120015460078054600160a060020a0390921691839081106122fd57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560078054600019840190811061233857fe5b60009182526020909120018054600160a060020a031916905560078054906123649060001983016125e0565b50612372565b600101612289565b505050565b600a5460075410156123d3576040805160e560020a62461bcd02815260206004820152601360248201527f4c6f772043616e64696461746520436f756e7400000000000000000000000000604482015290519081900360640190fd5b565b60065460005b818110156123725782600160a060020a03166006828154811015156123fc57fe5b600091825260209091200154600160a060020a031614156124c65760068054600019840190811061242957fe5b60009182526020909120015460068054600160a060020a03909216918390811061244f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560068054600019840190811061248a57fe5b60009182526020909120018054600160a060020a031916905560068054906124b69060001983016125e0565b5060098054600019019055612372565b6001016123db565b6006805460001981019190829081106124e357fe5b60009182526020909120015460068054600160a060020a03909216918490811061250957fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600680548290811061254057fe5b60009182526020909120018054600160a060020a0319169055600680549061256c9060001983016125e0565b50506009805460001901905550565b8280548282559060005260206000209081019282156125d0579160200282015b828111156125d05782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019061259b565b506125dc929150612625565b5090565b81548183558181111561237257600083815260209020612372918101908301612649565b50805460008255906000526020600020908101906126229190612649565b50565b610dfb91905b808211156125dc578054600160a060020a031916815560010161262b565b610dfb91905b808211156125dc576000815560010161264f5600496e76616c69642043616e646964617465000000000000000000000000000000a165627a7a72305820a3c9003c2029e4c0361e562415306dfa5577554f6a337d6e48717a8dc7542e3d0029` // DeployXDCValidator deploys a new Ethereum contract, binding an instance of XDCValidator to it. func DeployXDCValidator(auth *bind.TransactOpts, backend bind.ContractBackend, _candidates []common.Address, _caps []*big.Int, _firstOwner common.Address, _minCandidateCap *big.Int, _minVoterCap *big.Int, _maxValidatorNumber *big.Int, _candidateWithdrawDelay *big.Int, _voterWithdrawDelay *big.Int, _grandMasters []common.Address, _minCandidateNum *big.Int) (common.Address, *types.Transaction, *XDCValidator, error) { @@ -332,84 +332,6 @@ func (_XDCValidator *XDCValidatorCallerSession) GetCandidates() ([]common.Addres return _XDCValidator.Contract.GetCandidates(&_XDCValidator.CallOpts) } -// GetGrandMasters is a free data retrieval call binding the contract method 0x52b3ed16. -// -// Solidity: function getGrandMasters() constant returns(address[]) -func (_XDCValidator *XDCValidatorCaller) GetGrandMasters(opts *bind.CallOpts) ([]common.Address, error) { - var ( - ret0 = new([]common.Address) - ) - out := ret0 - err := _XDCValidator.contract.Call(opts, out, "getGrandMasters") - return *ret0, err -} - -// GetGrandMasters is a free data retrieval call binding the contract method 0x52b3ed16. -// -// Solidity: function getGrandMasters() constant returns(address[]) -func (_XDCValidator *XDCValidatorSession) GetGrandMasters() ([]common.Address, error) { - return _XDCValidator.Contract.GetGrandMasters(&_XDCValidator.CallOpts) -} - -// GetGrandMasters is a free data retrieval call binding the contract method 0x52b3ed16. -// -// Solidity: function getGrandMasters() constant returns(address[]) -func (_XDCValidator *XDCValidatorCallerSession) GetGrandMasters() ([]common.Address, error) { - return _XDCValidator.Contract.GetGrandMasters(&_XDCValidator.CallOpts) -} - -// GetHashCount is a free data retrieval call binding the contract method 0xc45607df. -// -// Solidity: function getHashCount(_address address) constant returns(uint256) -func (_XDCValidator *XDCValidatorCaller) GetHashCount(opts *bind.CallOpts, _address common.Address) (*big.Int, error) { - var ( - ret0 = new(*big.Int) - ) - out := ret0 - err := _XDCValidator.contract.Call(opts, out, "getHashCount", _address) - return *ret0, err -} - -// GetHashCount is a free data retrieval call binding the contract method 0xc45607df. -// -// Solidity: function getHashCount(_address address) constant returns(uint256) -func (_XDCValidator *XDCValidatorSession) GetHashCount(_address common.Address) (*big.Int, error) { - return _XDCValidator.Contract.GetHashCount(&_XDCValidator.CallOpts, _address) -} - -// GetHashCount is a free data retrieval call binding the contract method 0xc45607df. -// -// Solidity: function getHashCount(_address address) constant returns(uint256) -func (_XDCValidator *XDCValidatorCallerSession) GetHashCount(_address common.Address) (*big.Int, error) { - return _XDCValidator.Contract.GetHashCount(&_XDCValidator.CallOpts, _address) -} - -// GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. -// -// Solidity: function getLatestKYC(_address address) constant returns(string) -func (_XDCValidator *XDCValidatorCaller) GetLatestKYC(opts *bind.CallOpts, _address common.Address) (string, error) { - var ( - ret0 = new(string) - ) - out := ret0 - err := _XDCValidator.contract.Call(opts, out, "getLatestKYC", _address) - return *ret0, err -} - -// GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. -// -// Solidity: function getLatestKYC(_address address) constant returns(string) -func (_XDCValidator *XDCValidatorSession) GetLatestKYC(_address common.Address) (string, error) { - return _XDCValidator.Contract.GetLatestKYC(&_XDCValidator.CallOpts, _address) -} - -// GetLatestKYC is a free data retrieval call binding the contract method 0x32658652. -// -// Solidity: function getLatestKYC(_address address) constant returns(string) -func (_XDCValidator *XDCValidatorCallerSession) GetLatestKYC(_address common.Address) (string, error) { - return _XDCValidator.Contract.GetLatestKYC(&_XDCValidator.CallOpts, _address) -} - // GetOwnerCount is a free data retrieval call binding the contract method 0xef18374a. // // Solidity: function getOwnerCount() constant returns(uint256) @@ -644,6 +566,32 @@ func (_XDCValidator *XDCValidatorCallerSession) HasVotedInvalid(arg0 common.Addr return _XDCValidator.Contract.HasVotedInvalid(&_XDCValidator.CallOpts, arg0, arg1) } +// InvalidCandidate is a free data retrieval call binding the contract method 0xb622f141. +// +// Solidity: function invalidCandidate( address) constant returns(bool) +func (_XDCValidator *XDCValidatorCaller) InvalidCandidate(opts *bind.CallOpts, arg0 common.Address) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _XDCValidator.contract.Call(opts, out, "invalidCandidate", arg0) + return *ret0, err +} + +// InvalidCandidate is a free data retrieval call binding the contract method 0xb622f141. +// +// Solidity: function invalidCandidate( address) constant returns(bool) +func (_XDCValidator *XDCValidatorSession) InvalidCandidate(arg0 common.Address) (bool, error) { + return _XDCValidator.Contract.InvalidCandidate(&_XDCValidator.CallOpts, arg0) +} + +// InvalidCandidate is a free data retrieval call binding the contract method 0xb622f141. +// +// Solidity: function invalidCandidate( address) constant returns(bool) +func (_XDCValidator *XDCValidatorCallerSession) InvalidCandidate(arg0 common.Address) (bool, error) { + return _XDCValidator.Contract.InvalidCandidate(&_XDCValidator.CallOpts, arg0) +} + // InvalidKYCCount is a free data retrieval call binding the contract method 0x72e44a38. // // Solidity: function invalidKYCCount( address) constant returns(uint256) @@ -670,30 +618,56 @@ func (_XDCValidator *XDCValidatorCallerSession) InvalidKYCCount(arg0 common.Addr return _XDCValidator.Contract.InvalidKYCCount(&_XDCValidator.CallOpts, arg0) } +// InvalidOwner is a free data retrieval call binding the contract method 0xdb11daef. +// +// Solidity: function invalidOwner( address) constant returns(bool) +func (_XDCValidator *XDCValidatorCaller) InvalidOwner(opts *bind.CallOpts, arg0 common.Address) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _XDCValidator.contract.Call(opts, out, "invalidOwner", arg0) + return *ret0, err +} + +// InvalidOwner is a free data retrieval call binding the contract method 0xdb11daef. +// +// Solidity: function invalidOwner( address) constant returns(bool) +func (_XDCValidator *XDCValidatorSession) InvalidOwner(arg0 common.Address) (bool, error) { + return _XDCValidator.Contract.InvalidOwner(&_XDCValidator.CallOpts, arg0) +} + +// InvalidOwner is a free data retrieval call binding the contract method 0xdb11daef. +// +// Solidity: function invalidOwner( address) constant returns(bool) +func (_XDCValidator *XDCValidatorCallerSession) InvalidOwner(arg0 common.Address) (bool, error) { + return _XDCValidator.Contract.InvalidOwner(&_XDCValidator.CallOpts, arg0) +} + // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. // -// Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) -func (_XDCValidator *XDCValidatorCaller) InvalidPercent(opts *bind.CallOpts, _invalidCandidate common.Address) (*big.Int, error) { +// Solidity: function invalidPercent(_owner address) constant returns(uint256) +func (_XDCValidator *XDCValidatorCaller) InvalidPercent(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { var ( ret0 = new(*big.Int) ) out := ret0 - err := _XDCValidator.contract.Call(opts, out, "invalidPercent", _invalidCandidate) + err := _XDCValidator.contract.Call(opts, out, "invalidPercent", _owner) return *ret0, err } // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. // -// Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) -func (_XDCValidator *XDCValidatorSession) InvalidPercent(_invalidCandidate common.Address) (*big.Int, error) { - return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _invalidCandidate) +// Solidity: function invalidPercent(_owner address) constant returns(uint256) +func (_XDCValidator *XDCValidatorSession) InvalidPercent(_owner common.Address) (*big.Int, error) { + return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _owner) } // InvalidPercent is a free data retrieval call binding the contract method 0x5b860d27. // -// Solidity: function invalidPercent(_invalidCandidate address) constant returns(uint256) -func (_XDCValidator *XDCValidatorCallerSession) InvalidPercent(_invalidCandidate common.Address) (*big.Int, error) { - return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _invalidCandidate) +// Solidity: function invalidPercent(_owner address) constant returns(uint256) +func (_XDCValidator *XDCValidatorCallerSession) InvalidPercent(_owner common.Address) (*big.Int, error) { + return _XDCValidator.Contract.InvalidPercent(&_XDCValidator.CallOpts, _owner) } // IsCandidate is a free data retrieval call binding the contract method 0xd51b9e93. @@ -722,30 +696,34 @@ func (_XDCValidator *XDCValidatorCallerSession) IsCandidate(_candidate common.Ad return _XDCValidator.Contract.IsCandidate(&_XDCValidator.CallOpts, _candidate) } -// KycString is a free data retrieval call binding the contract method 0x27a6296b. +// IsOwner is a free data retrieval call binding the contract method 0x2f54bf6e. // -// Solidity: function kycString( address, uint256) constant returns(string) -func (_XDCValidator *XDCValidatorCaller) KycString(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (string, error) { +// Solidity: function isOwner(owner address) constant returns(bool, uint256) +func (_XDCValidator *XDCValidatorCaller) IsOwner(opts *bind.CallOpts, owner common.Address) (bool, *big.Int, error) { var ( - ret0 = new(string) + ret0 = new(bool) + ret1 = new(*big.Int) ) - out := ret0 - err := _XDCValidator.contract.Call(opts, out, "kycString", arg0, arg1) - return *ret0, err + out := &[]interface{}{ + ret0, + ret1, + } + err := _XDCValidator.contract.Call(opts, out, "isOwner", owner) + return *ret0, *ret1, err } -// KycString is a free data retrieval call binding the contract method 0x27a6296b. +// IsOwner is a free data retrieval call binding the contract method 0x2f54bf6e. // -// Solidity: function kycString( address, uint256) constant returns(string) -func (_XDCValidator *XDCValidatorSession) KycString(arg0 common.Address, arg1 *big.Int) (string, error) { - return _XDCValidator.Contract.KycString(&_XDCValidator.CallOpts, arg0, arg1) +// Solidity: function isOwner(owner address) constant returns(bool, uint256) +func (_XDCValidator *XDCValidatorSession) IsOwner(owner common.Address) (bool, *big.Int, error) { + return _XDCValidator.Contract.IsOwner(&_XDCValidator.CallOpts, owner) } -// KycString is a free data retrieval call binding the contract method 0x27a6296b. +// IsOwner is a free data retrieval call binding the contract method 0x2f54bf6e. // -// Solidity: function kycString( address, uint256) constant returns(string) -func (_XDCValidator *XDCValidatorCallerSession) KycString(arg0 common.Address, arg1 *big.Int) (string, error) { - return _XDCValidator.Contract.KycString(&_XDCValidator.CallOpts, arg0, arg1) +// Solidity: function isOwner(owner address) constant returns(bool, uint256) +func (_XDCValidator *XDCValidatorCallerSession) IsOwner(owner common.Address) (bool, *big.Int, error) { + return _XDCValidator.Contract.IsOwner(&_XDCValidator.CallOpts, owner) } // MaxValidatorNumber is a free data retrieval call binding the contract method 0xd09f1ab4. @@ -852,6 +830,32 @@ func (_XDCValidator *XDCValidatorCallerSession) MinVoterCap() (*big.Int, error) return _XDCValidator.Contract.MinVoterCap(&_XDCValidator.CallOpts) } +// OwnerCount is a free data retrieval call binding the contract method 0x0db02622. +// +// Solidity: function ownerCount() constant returns(uint256) +func (_XDCValidator *XDCValidatorCaller) OwnerCount(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _XDCValidator.contract.Call(opts, out, "ownerCount") + return *ret0, err +} + +// OwnerCount is a free data retrieval call binding the contract method 0x0db02622. +// +// Solidity: function ownerCount() constant returns(uint256) +func (_XDCValidator *XDCValidatorSession) OwnerCount() (*big.Int, error) { + return _XDCValidator.Contract.OwnerCount(&_XDCValidator.CallOpts) +} + +// OwnerCount is a free data retrieval call binding the contract method 0x0db02622. +// +// Solidity: function ownerCount() constant returns(uint256) +func (_XDCValidator *XDCValidatorCallerSession) OwnerCount() (*big.Int, error) { + return _XDCValidator.Contract.OwnerCount(&_XDCValidator.CallOpts) +} + // OwnerToCandidate is a free data retrieval call binding the contract method 0x2a3640b1. // // Solidity: function ownerToCandidate( address, uint256) constant returns(address) @@ -1017,6 +1021,48 @@ func (_XDCValidator *XDCValidatorTransactorSession) Propose(_candidate common.Ad return _XDCValidator.Contract.Propose(&_XDCValidator.TransactOpts, _candidate) } +// RemoveCandidatesZeroAddresses is a paid mutator transaction binding the contract method 0x0999ec79. +// +// Solidity: function removeCandidatesZeroAddresses() returns() +func (_XDCValidator *XDCValidatorTransactor) RemoveCandidatesZeroAddresses(opts *bind.TransactOpts) (*types.Transaction, error) { + return _XDCValidator.contract.Transact(opts, "removeCandidatesZeroAddresses") +} + +// RemoveCandidatesZeroAddresses is a paid mutator transaction binding the contract method 0x0999ec79. +// +// Solidity: function removeCandidatesZeroAddresses() returns() +func (_XDCValidator *XDCValidatorSession) RemoveCandidatesZeroAddresses() (*types.Transaction, error) { + return _XDCValidator.Contract.RemoveCandidatesZeroAddresses(&_XDCValidator.TransactOpts) +} + +// RemoveCandidatesZeroAddresses is a paid mutator transaction binding the contract method 0x0999ec79. +// +// Solidity: function removeCandidatesZeroAddresses() returns() +func (_XDCValidator *XDCValidatorTransactorSession) RemoveCandidatesZeroAddresses() (*types.Transaction, error) { + return _XDCValidator.Contract.RemoveCandidatesZeroAddresses(&_XDCValidator.TransactOpts) +} + +// RemoveOwnersZeroAddresses is a paid mutator transaction binding the contract method 0x681d8bf2. +// +// Solidity: function removeOwnersZeroAddresses() returns() +func (_XDCValidator *XDCValidatorTransactor) RemoveOwnersZeroAddresses(opts *bind.TransactOpts) (*types.Transaction, error) { + return _XDCValidator.contract.Transact(opts, "removeOwnersZeroAddresses") +} + +// RemoveOwnersZeroAddresses is a paid mutator transaction binding the contract method 0x681d8bf2. +// +// Solidity: function removeOwnersZeroAddresses() returns() +func (_XDCValidator *XDCValidatorSession) RemoveOwnersZeroAddresses() (*types.Transaction, error) { + return _XDCValidator.Contract.RemoveOwnersZeroAddresses(&_XDCValidator.TransactOpts) +} + +// RemoveOwnersZeroAddresses is a paid mutator transaction binding the contract method 0x681d8bf2. +// +// Solidity: function removeOwnersZeroAddresses() returns() +func (_XDCValidator *XDCValidatorTransactorSession) RemoveOwnersZeroAddresses() (*types.Transaction, error) { + return _XDCValidator.Contract.RemoveOwnersZeroAddresses(&_XDCValidator.TransactOpts) +} + // Resign is a paid mutator transaction binding the contract method 0xae6e43f5. // // Solidity: function resign(_candidate address) returns() @@ -1059,27 +1105,6 @@ func (_XDCValidator *XDCValidatorTransactorSession) Unvote(_candidate common.Add return _XDCValidator.Contract.Unvote(&_XDCValidator.TransactOpts, _candidate, _cap) } -// UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. -// -// Solidity: function uploadKYC(kychash string) returns() -func (_XDCValidator *XDCValidatorTransactor) UploadKYC(opts *bind.TransactOpts, kychash string) (*types.Transaction, error) { - return _XDCValidator.contract.Transact(opts, "uploadKYC", kychash) -} - -// UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. -// -// Solidity: function uploadKYC(kychash string) returns() -func (_XDCValidator *XDCValidatorSession) UploadKYC(kychash string) (*types.Transaction, error) { - return _XDCValidator.Contract.UploadKYC(&_XDCValidator.TransactOpts, kychash) -} - -// UploadKYC is a paid mutator transaction binding the contract method 0xf5c95125. -// -// Solidity: function uploadKYC(kychash string) returns() -func (_XDCValidator *XDCValidatorTransactorSession) UploadKYC(kychash string) (*types.Transaction, error) { - return _XDCValidator.Contract.UploadKYC(&_XDCValidator.TransactOpts, kychash) -} - // Vote is a paid mutator transaction binding the contract method 0x6dd7d8ea. // // Solidity: function vote(_candidate address) returns() @@ -1103,23 +1128,23 @@ func (_XDCValidator *XDCValidatorTransactorSession) Vote(_candidate common.Addre // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. // -// Solidity: function voteInvalidKYC(_invalidCandidate address) returns() -func (_XDCValidator *XDCValidatorTransactor) VoteInvalidKYC(opts *bind.TransactOpts, _invalidCandidate common.Address) (*types.Transaction, error) { - return _XDCValidator.contract.Transact(opts, "voteInvalidKYC", _invalidCandidate) +// Solidity: function voteInvalidKYC(_owner address) returns() +func (_XDCValidator *XDCValidatorTransactor) VoteInvalidKYC(opts *bind.TransactOpts, _owner common.Address) (*types.Transaction, error) { + return _XDCValidator.contract.Transact(opts, "voteInvalidKYC", _owner) } // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. // -// Solidity: function voteInvalidKYC(_invalidCandidate address) returns() -func (_XDCValidator *XDCValidatorSession) VoteInvalidKYC(_invalidCandidate common.Address) (*types.Transaction, error) { - return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _invalidCandidate) +// Solidity: function voteInvalidKYC(_owner address) returns() +func (_XDCValidator *XDCValidatorSession) VoteInvalidKYC(_owner common.Address) (*types.Transaction, error) { + return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _owner) } // VoteInvalidKYC is a paid mutator transaction binding the contract method 0xf2ee3c7d. // -// Solidity: function voteInvalidKYC(_invalidCandidate address) returns() -func (_XDCValidator *XDCValidatorTransactorSession) VoteInvalidKYC(_invalidCandidate common.Address) (*types.Transaction, error) { - return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _invalidCandidate) +// Solidity: function voteInvalidKYC(_owner address) returns() +func (_XDCValidator *XDCValidatorTransactorSession) VoteInvalidKYC(_owner common.Address) (*types.Transaction, error) { + return _XDCValidator.Contract.VoteInvalidKYC(&_XDCValidator.TransactOpts, _owner) } // Withdraw is a paid mutator transaction binding the contract method 0x441a3e70. diff --git a/contracts/validator/src/abi b/contracts/validator/src/abi index ecd07cc0e..ff70dfc45 100644 --- a/contracts/validator/src/abi +++ b/contracts/validator/src/abi @@ -64,6 +64,29 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "removeCandidatesZeroAddresses", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ownerCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -118,11 +141,11 @@ "type": "uint256" } ], - "name": "kycString", + "name": "ownerToCandidate", "outputs": [ { "name": "", - "type": "string" + "type": "address" } ], "payable": false, @@ -133,19 +156,15 @@ "constant": true, "inputs": [ { - "name": "", + "name": "_candidate", "type": "address" - }, - { - "name": "", - "type": "uint256" } ], - "name": "ownerToCandidate", + "name": "getVoters", "outputs": [ { "name": "", - "type": "address" + "type": "address[]" } ], "payable": false, @@ -156,15 +175,19 @@ "constant": true, "inputs": [ { - "name": "_candidate", + "name": "owner", "type": "address" } ], - "name": "getVoters", + "name": "isOwner", "outputs": [ { "name": "", - "type": "address[]" + "type": "bool" + }, + { + "name": "", + "type": "uint256" } ], "payable": false, @@ -208,25 +231,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "_address", - "type": "address" - } - ], - "name": "getLatestKYC", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [ @@ -305,20 +309,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "getGrandMasters", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [ @@ -361,7 +351,7 @@ "constant": true, "inputs": [ { - "name": "_invalidCandidate", + "name": "_owner", "type": "address" } ], @@ -437,6 +427,15 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "removeOwnersZeroAddresses", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -516,15 +515,15 @@ "constant": true, "inputs": [ { - "name": "_candidate", + "name": "", "type": "address" } ], - "name": "getCandidateOwner", + "name": "invalidCandidate", "outputs": [ { "name": "", - "type": "address" + "type": "bool" } ], "payable": false, @@ -535,15 +534,15 @@ "constant": true, "inputs": [ { - "name": "_address", + "name": "_candidate", "type": "address" } ], - "name": "getHashCount", + "name": "getCandidateOwner", "outputs": [ { "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, @@ -613,12 +612,17 @@ }, { "constant": true, - "inputs": [], - "name": "getOwnerCount", + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "invalidOwner", "outputs": [ { "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, @@ -626,28 +630,28 @@ "type": "function" }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "getOwnerCount", + "outputs": [ { - "name": "_invalidCandidate", - "type": "address" + "name": "", + "type": "uint256" } ], - "name": "voteInvalidKYC", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "kychash", - "type": "string" + "name": "_owner", + "type": "address" } ], - "name": "uploadKYC", + "name": "voteInvalidKYC", "outputs": [], "payable": false, "stateMutability": "nonpayable", diff --git a/contracts/validator/src/bytecode b/contracts/validator/src/bytecode index 814d09efc..721b03309 100644 --- a/contracts/validator/src/bytecode +++ b/contracts/validator/src/bytecode @@ -1 +1 @@ -0x60806040523480156200001157600080fd5b50604051620028bb380380620028bb83398101604090815281516020830151918301516060840151608085015160a086015160c087015160e08801516101008901516101208a01516009819055600a879055600b869055600c859055600d849055600e8390556007805460018101825560009182527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a031916600160a060020a038b16179055988b019a998a01999798969795969495939492939190910191805b8b51821015620002e85760088c83815181101515620000f757fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a039092169190911790558d519091908e90859081106200014457fe5b6020908102909101810151600160a060020a03908116835290820192909252604001600020805460a060020a60ff0219928d16600160a060020a03199091161791909116740100000000000000000000000000000000000000001781558b519091508b9083908110620001b357fe5b906020019060200201518160010181905550600260008d84815181101515620001d857fe5b6020908102909101810151600160a060020a03908116835282820193909352604091820160009081208054600181018255908252828220018054948f16600160a060020a0319909516851790559283526006905290208c518d90849081106200023d57fe5b6020908102919091018101518254600181018455600093845291909220018054600160a060020a031916600160a060020a039092169190911790558a518b90839081106200028757fe5b90602001906020020151600160008e85815181101515620002a457fe5b6020908102909101810151600160a060020a0390811683528282019390935260409182016000908120938f16815260029093019052902055600190910190620000dc565b600091505b83518210156200039657600f84838151811015156200030857fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a03909216919091179055855190916010918790869081106200035757fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560019190910190620002ed565b50505050505050505050505061250980620003b26000396000f3006080604052600436106101d75763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630126795181146101dc578063025e7c27146101f257806302aa9be21461022657806306a49fce1461024a5780630e3e4fb8146102af57806315febd68146102ea57806327a6296b146103145780632a3640b1146103ad5780632d15cc04146103d15780632f9c4bba146103f2578063302b687214610407578063326586521461042e5780633477ee2e1461044f5780634110a48914610467578063441a3e70146104b057806349e971be146104cb57806352b3ed16146104e057806358e7525f146104f55780635b6e3963146105165780635b860d27146105375780635c134d66146105585780636132cd831461057c57806367134e70146105945780636dd7d8ea146105b557806372e44a38146105c9578063a9a981a3146105ea578063a9ff959e146105ff578063ae6e43f514610614578063b642facd14610635578063c45607df14610656578063d09f1ab414610677578063d161c7671461068c578063d51b9e93146106a1578063d55b7dff146106c2578063ef18374a146106d7578063f2ee3c7d146106ec578063f5c951251461070d578063f8ac9dd51461072d575b600080fd5b6101f0600160a060020a0360043516610742565b005b3480156101fe57600080fd5b5061020a600435610a7e565b60408051600160a060020a039092168252519081900360200190f35b34801561023257600080fd5b506101f0600160a060020a0360043516602435610aa6565b34801561025657600080fd5b5061025f610d32565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561029b578181015183820152602001610283565b505050509050019250505060405180910390f35b3480156102bb57600080fd5b506102d6600160a060020a0360043581169060243516610d95565b604080519115158252519081900360200190f35b3480156102f657600080fd5b50610302600435610db5565b60408051918252519081900360200190f35b34801561032057600080fd5b50610338600160a060020a0360043516602435610dd4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561037257818101518382015260200161035a565b50505050905090810190601f16801561039f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103b957600080fd5b5061020a600160a060020a0360043516602435610e8a565b3480156103dd57600080fd5b5061025f600160a060020a0360043516610ec1565b3480156103fe57600080fd5b5061025f610f37565b34801561041357600080fd5b50610302600160a060020a0360043581169060243516610f98565b34801561043a57600080fd5b50610338600160a060020a0360043516610fc7565b34801561045b57600080fd5b5061020a6004356110fd565b34801561047357600080fd5b50610488600160a060020a036004351661110b565b60408051600160a060020a039094168452911515602084015282820152519081900360600190f35b3480156104bc57600080fd5b506101f060043560243561113a565b3480156104d757600080fd5b50610302611396565b3480156104ec57600080fd5b5061025f61139c565b34801561050157600080fd5b50610302600160a060020a03600435166113fc565b34801561052257600080fd5b506102d6600160a060020a036004351661141b565b34801561054357600080fd5b50610302600160a060020a0360043516611430565b34801561056457600080fd5b5061020a600160a060020a03600435166024356114dc565b34801561058857600080fd5b5061020a6004356114f7565b3480156105a057600080fd5b50610302600160a060020a0360043516611505565b6101f0600160a060020a0360043516611520565b3480156105d557600080fd5b50610302600160a060020a036004351661178e565b3480156105f657600080fd5b506103026117a0565b34801561060b57600080fd5b506103026117a6565b34801561062057600080fd5b506101f0600160a060020a03600435166117ac565b34801561064157600080fd5b5061020a600160a060020a0360043516611b02565b34801561066257600080fd5b50610302600160a060020a0360043516611b20565b34801561068357600080fd5b50610302611b3b565b34801561069857600080fd5b50610302611b41565b3480156106ad57600080fd5b506102d6600160a060020a0360043516611b47565b3480156106ce57600080fd5b50610302611b6c565b3480156106e357600080fd5b50610302611b72565b3480156106f857600080fd5b506101f0600160a060020a0360043516611b78565b34801561071957600080fd5b506101f0600480356024810191013561211d565b34801561073957600080fd5b506103026121aa565b600080600a5434101515156107a1576040805160e560020a62461bcd02815260206004820152601160248201527f4c6f772043616e64696461746520436170000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260016020526040902054839060a060020a900460ff161561081b576040805160e560020a62461bcd02815260206004820152601160248201527f416c72656164792043616e646964617465000000000000000000000000000000604482015290519081900360640190fd5b3360009081526010602052604090205460ff161515600114610887576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038416600090815260016020819052604090912001546108b4903463ffffffff6121b016565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018054600160a060020a038816600160a060020a03199182168117909255600091825260208381526040808420805474ff0000000000000000000000000000000000000000199416339081179490941660a060020a1781559485018690559183526002840190529020549194509250610960903463ffffffff6121b016565b600160a060020a038516600090815260016020908152604080832033845260020182528083209390935560069052205415156109d957600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a031916331790555b336000818152600660209081526040808320805460018181018355918552838520018054600160a060020a038b16600160a060020a031991821681179092558186526002855283862080549384018155865294849020909101805490941685179093558051938452908301919091523482820152517f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c19181900360600190a150505050565b6007805482908110610a8c57fe5b600091825260209091200154600160a060020a0316905081565b600160a060020a038216600090815260016020908152604080832033845260020190915281205483908390811115610b28576040805160e560020a62461bcd02815260206004820152601560248201527f496e73756666696369656e7420566f7465204361700000000000000000000000604482015290519081900360640190fd5b600160a060020a0382811660009081526001602052604090205416331415610bda57600a54600160a060020a0383166000908152600160209081526040808320338452600201909152902054610b84908363ffffffff6121c616565b1015610bda576040805160e560020a62461bcd02815260206004820152600d60248201527f42656c6f77204d696e2043617000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03851660009081526001602081905260409091200154610c07908563ffffffff6121c616565b600160a060020a038616600090815260016020818152604080842092830194909455338352600290910190522054610c45908563ffffffff6121c616565b600160a060020a0386166000908152600160209081526040808320338452600201909152902055600e54610c7f904363ffffffff6121b016565b33600090815260208181526040808320848452909152902054909350610cab908563ffffffff6121b016565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0388169282019290925280820186905290517faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa29181900360600190a15050505050565b60606008805480602002602001604051908101604052809291908181526020018280548015610d8a57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610d6c575b505050505090505b90565b600560209081526000928352604080842090915290825290205460ff1681565b336000908152602081815260408083208484529091529020545b919050565b600360205281600052604060002081815481101515610def57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152945090925090830182828015610e825780601f10610e5757610100808354040283529160200191610e82565b820191906000526020600020905b815481529060010190602001808311610e6557829003601f168201915b505050505081565b600660205281600052604060002081815481101515610ea557fe5b600091825260209091200154600160a060020a03169150829050565b600160a060020a038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610f2b57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610f0d575b50505050509050919050565b3360009081526020818152604091829020600101805483518184028101840190945280845260609392830182828015610d8a57602002820191906000526020600020905b815481526020019060010190808311610f7b575050505050905090565b600160a060020a0391821660009081526001602090815260408083209390941682526002909201909152205490565b6060610fd282611b47565b156110d55760036000610fe484611b02565b600160a060020a0316600160a060020a0316815260200190815260200160002060016003600061101386611b02565b600160a060020a03168152602081019190915260400160002054825491900390811061103b57fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156110c95780601f1061109e576101008083540402835291602001916110c9565b820191906000526020600020905b8154815290600101906020018083116110ac57829003601f168201915b50505050509050610dcf565b600160a060020a03821660009081526003602052604090208054600019810190811061103b57fe5b6008805482908110610a8c57fe5b60016020819052600091825260409091208054910154600160a060020a0382169160a060020a900460ff169083565b60008282828211611195576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420426c6f636b204e756d626572000000000000000000000000604482015290519081900360640190fd5b438211156111ed576040805160e560020a62461bcd02815260206004820152601560248201527f426c6f636b204e756d62657220546f6f20486967680000000000000000000000604482015290519081900360640190fd5b336000908152602081815260408083208584529091528120541161125b576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420576974686472617720436170000000000000000000000000604482015290519081900360640190fd5b33600090815260208190526040902060010180548391908390811061127c57fe5b90600052602060002001541415156112de576040805160e560020a62461bcd02815260206004820152601560248201527f4d69736d6174636820426c6f636b204e756d6265720000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208984528083529083208054908490559383529190526001018054919450908590811061131657fe5b60009182526020822001819055604051339185156108fc02918691818181858888f1935050505015801561134e573d6000803e3d6000fd5b50604080513381526020810187905280820185905290517ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360600190a15050505050565b60095481565b6060600f805480602002602001604051908101604052809291908181526020018280548015610d8a57602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610d6c575050505050905090565b600160a060020a03166000908152600160208190526040909120015490565b60106020526000908152604090205460ff1681565b600160a060020a0381166000908152600160205260408120548190839060a060020a900460ff16151561149b576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b6114a484611b02565b91506114ae611b72565b600160a060020a0383166000908152600460205260409020546064028115156114d357fe5b04949350505050565b600260205281600052604060002081815481101515610ea557fe5b600f805482908110610a8c57fe5b600160a060020a031660009081526006602052604090205490565b600b5434101561157a576040805160e560020a62461bcd02815260206004820152600d60248201527f4c6f7720566f7465722043617000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260016020526040902054819060a060020a900460ff1615156115e3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b3360009081526010602052604090205460ff16151560011461164f576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382166000908152600160208190526040909120015461167c903463ffffffff6121b016565b600160a060020a03831660009081526001602081815260408084209283019490945533835260029091019052205415156116e957600160a060020a0382166000908152600260209081526040822080546001810182559083529120018054600160a060020a031916331790555b600160a060020a0382166000908152600160209081526040808320338452600201909152902054611720903463ffffffff6121b016565b600160a060020a0383166000818152600160209081526040808320338085526002909101835292819020949094558351918252810191909152348183015290517f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc9181900360600190a15050565b60046020526000908152604090205481565b60085490565b600e5481565b600160a060020a038082166000908152600160205260408120549091829182918591163314611825576040805160e560020a62461bcd02815260206004820152600960248201527f4e6f74204f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600090815260016020526040902054859060a060020a900460ff1615156118a0576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f742043616e64696461746500000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0386166000908152600160205260408120805474ff00000000000000000000000000000000000000001916905594505b60085485101561194c5785600160a060020a03166008868154811015156118fa57fe5b600091825260209091200154600160a060020a0316141561194157600880548690811061192357fe5b60009182526020909120018054600160a060020a031916905561194c565b6001909401936118d7565b6119af60088054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611987575b50505050506121d8565b80516119c3916008916020909101906122fa565b506119cc61229c565b600160a060020a038616600081815260016020818152604080842033855260028101835290842054949093528190520154909450611a10908563ffffffff6121c616565b600160a060020a0387166000908152600160208181526040808420928301949094553383526002909101905290812055600d54611a53904363ffffffff6121b016565b33600090815260208181526040808320848452909152902054909350611a7f908563ffffffff6121b016565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0389169282019290925281517f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3929181900390910190a1505050505050565b600160a060020a039081166000908152600160205260409020541690565b600160a060020a031660009081526003602052604090205490565b600c5481565b600d5481565b600160a060020a031660009081526001602052604090205460a060020a900460ff1690565b600a5481565b60075490565b336000818152600160205260408120549091829160609183918291829160a060020a900460ff161515611be3576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b600160a060020a038816600090815260016020526040902054889060a060020a900460ff161515611c4c576040805160e560020a62461bcd02815260206004820152601360248201526000805160206124be833981519152604482015290519081900360640190fd5b611c5533611b02565b9750611c6089611b02565b600160a060020a03808a1660009081526005602090815260408083209385168352929052205490975060ff1615611ce1576040805160e560020a62461bcd02815260206004820152601560248201527f416c726561647920566f74656420496e76616c69640000000000000000000000604482015290519081900360640190fd5b600160a060020a038089166000908152600560209081526040808320938b168352928152828220805460ff19166001908117909155600490915291902080549091019055604b611d2f611b72565b600160a060020a038916600090815260046020526040902054606402811515611d5457fe5b041061211257600160088054905003604051908082528060200260200182016040528015611d8c578160200160208202803883390190505b50955060009450600093505b600854841015611f145786600160a060020a0316611dd8600886815481101515611dbe57fe5b600091825260209091200154600160a060020a0316611b02565b600160a060020a03161415611f09576008805485908110611df557fe5b60009182526020909120015486516001870196600160a060020a039092169188918110611e1e57fe5b600160a060020a039092166020928302909101909101526008805485908110611e4357fe5b600091825260208220018054600160a060020a031916905560088054600192919087908110611e6e57fe5b6000918252602080832090910154600160a060020a0390811684528382019490945260409283018220805474ffffffffffffffffffffffffffffffffffffffffff19168155600101829055928a16815260039092528120611ece9161235f565b600160a060020a0387166000908152600660205260408120611eef91612380565b600160a060020a0387166000908152600460205260408120555b600190930192611d98565b611f7560088054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116119875750505050506121d8565b8051611f89916008916020909101906122fa565b50611f9261229c565b600092505b60075483101561200c5786600160a060020a0316600784815481101515611fba57fe5b600091825260209091200154600160a060020a03161415612001576007805484908110611fe357fe5b60009182526020909120018054600160a060020a031916905561200c565b600190920191611f97565b61206d60078054806020026020016040519081016040528092919081815260200182805480156119a557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116119875750505050506121d8565b8051612081916007916020909101906122fa565b507fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e87876040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156120fd5781810151838201526020016120e5565b50505050905001935050505060405180910390a15b505050505050505050565b33600090815260036020908152604082208054600181018083559184529190922061214a9101848461239e565b50506040805133808252602082018381529282018490527f949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a9290918591859190606082018484808284376040519201829003965090945050505050a15050565b600b5481565b6000828201838110156121bf57fe5b9392505050565b6000828211156121d257fe5b50900390565b6060806000808451604051908082528060200260200182016040528015612209578160200160208202803883390190505b50925060009150600090505b845181101561229357845160009086908390811061222f57fe5b60209081029091010151600160a060020a03161461228b57848181518110151561225557fe5b90602001906020020151838381518110151561226d57fe5b600160a060020a039092166020928302909101909101526001909101905b600101612215565b50815292915050565b60095460085410156122f8576040805160e560020a62461bcd02815260206004820152601360248201527f4c6f772043616e64696461746520436f756e7400000000000000000000000000604482015290519081900360640190fd5b565b82805482825590600052602060002090810192821561234f579160200282015b8281111561234f5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019061231a565b5061235b929150612418565b5090565b508054600082559060005260206000209081019061237d919061243c565b50565b508054600082559060005260206000209081019061237d919061245f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123df5782800160ff1982351617855561240c565b8280016001018555821561240c579182015b8281111561240c5782358255916020019190600101906123f1565b5061235b92915061245f565b610d9291905b8082111561235b578054600160a060020a031916815560010161241e565b610d9291905b8082111561235b5760006124568282612479565b50600101612442565b610d9291905b8082111561235b5760008155600101612465565b50805460018160011615610100020316600290046000825580601f1061249f575061237d565b601f01602090049060005260206000209081019061237d919061245f56004e6f742056616c69642043616e64696461746500000000000000000000000000a165627a7a7230582066e183b30548c8470ddf44cf0a263594e7a273211523d4487293ec58fc8f13880029 \ No newline at end of file +0x6080604052600060085560006009553480156200001b57600080fd5b5060405162002aa238038062002aa283398101604090815281516020830151918301516060840151608085015160a086015160c087015160e08801516101008901516101208a0151600a819055600b879055600c869055600d859055600e849055600f839055978a018051600855600680546001808201835560009283527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054600160a060020a031916600160a060020a038c16179055600980549091019055909a998a01999798969795969495939492939190910191905b8a518110156200032f5760078b828151811015156200011357fe5b602090810291909101810151825460018082018555600094855293839020018054600160a060020a031916600160a060020a0392831617905560408051606081018252918d168252918101929092528b51908201908c90849081106200017557fe5b90602001906020020151815250600160008d848151811015156200019557fe5b602090810291909101810151600160a060020a03908116835282820193909352604091820160009081208551815493870151600160a060020a031990941695169490941760a060020a60ff02191674010000000000000000000000000000000000000000921515929092029190911783559201516001909101558b51600291908d90849081106200022257fe5b6020908102909101810151600160a060020a03908116835282820193909352604091820160009081208054600181018255908252828220018054948e16600160a060020a0319909516851790559283526005905290208b518c90839081106200028757fe5b6020908102919091018101518254600181018455600093845291909220018054600160a060020a031916600160a060020a0390921691909117905589518a9082908110620002d157fe5b90602001906020020151600160008d84815181101515620002ee57fe5b6020908102909101810151600160a060020a0390811683528282019390935260409182016000908120938e16815260029093019052902055600101620000f8565b5060005b8251811015620003d857601283828151811015156200034e57fe5b6020908102919091018101518254600180820185556000948552928420018054600160a060020a031916600160a060020a03909216919091179055845190916013918690859081106200039d57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000333565b50505050505050505050506126af80620003f36000396000f3006080604052600436106101e25763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630126795181146101e7578063025e7c27146101fd57806302aa9be21461023157806306a49fce146102555780630999ec79146102ba5780630db02622146102cf5780630e3e4fb8146102f657806315febd68146103315780632a3640b1146103495780632d15cc041461036d5780632f54bf6e1461038e5780632f9c4bba146103ca578063302b6872146103df5780633477ee2e146104065780634110a4891461041e578063441a3e701461046757806349e971be1461048257806358e7525f146104975780635b6e3963146104b85780635b860d27146104d95780635c134d66146104fa5780636132cd831461051e57806367134e7014610536578063681d8bf2146105575780636dd7d8ea1461056c57806372e44a3814610580578063a9a981a3146105a1578063a9ff959e146105b6578063ae6e43f5146105cb578063b622f141146105ec578063b642facd1461060d578063d09f1ab41461062e578063d161c76714610643578063d51b9e9314610658578063d55b7dff14610679578063db11daef1461068e578063ef18374a146106af578063f2ee3c7d146106c4578063f8ac9dd5146106e5575b600080fd5b6101fb600160a060020a03600435166106fa565b005b34801561020957600080fd5b50610215600435610ae7565b60408051600160a060020a039092168252519081900360200190f35b34801561023d57600080fd5b506101fb600160a060020a0360043516602435610b0f565b34801561026157600080fd5b5061026a610d9b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102a657818101518382015260200161028e565b505050509050019250505060405180910390f35b3480156102c657600080fd5b506101fb610dfe565b3480156102db57600080fd5b506102e4610ee6565b60408051918252519081900360200190f35b34801561030257600080fd5b5061031d600160a060020a0360043581169060243516610eec565b604080519115158252519081900360200190f35b34801561033d57600080fd5b506102e4600435610f0c565b34801561035557600080fd5b50610215600160a060020a0360043516602435610f27565b34801561037957600080fd5b5061026a600160a060020a0360043516610f5e565b34801561039a57600080fd5b506103af600160a060020a0360043516610fd4565b60408051921515835260208301919091528051918290030190f35b3480156103d657600080fd5b5061026a611039565b3480156103eb57600080fd5b506102e4600160a060020a036004358116906024351661109a565b34801561041257600080fd5b506102156004356110c9565b34801561042a57600080fd5b5061043f600160a060020a03600435166110d7565b60408051600160a060020a039094168452911515602084015282820152519081900360600190f35b34801561047357600080fd5b506101fb600435602435611106565b34801561048e57600080fd5b506102e46113f1565b3480156104a357600080fd5b506102e4600160a060020a03600435166113f7565b3480156104c457600080fd5b5061031d600160a060020a0360043516611416565b3480156104e557600080fd5b506102e4600160a060020a036004351661142b565b34801561050657600080fd5b50610215600160a060020a0360043516602435611528565b34801561052a57600080fd5b50610215600435611543565b34801561054257600080fd5b506102e4600160a060020a0360043516611551565b34801561056357600080fd5b506101fb61156c565b6101fb600160a060020a036004351661164e565b34801561058c57600080fd5b506102e4600160a060020a036004351661191b565b3480156105ad57600080fd5b506102e461192d565b3480156105c257600080fd5b506102e4611933565b3480156105d757600080fd5b506101fb600160a060020a0360043516611939565b3480156105f857600080fd5b5061031d600160a060020a0360043516611d27565b34801561061957600080fd5b50610215600160a060020a0360043516611d3c565b34801561063a57600080fd5b506102e4611d5a565b34801561064f57600080fd5b506102e4611d60565b34801561066457600080fd5b5061031d600160a060020a0360043516611d66565b34801561068557600080fd5b506102e4611d8b565b34801561069a57600080fd5b5061031d600160a060020a0360043516611d91565b3480156106bb57600080fd5b506102e4611da6565b3480156106d057600080fd5b506101fb600160a060020a0360043516611dac565b3480156106f157600080fd5b506102e4612255565b600b54600090341015610757576040805160e560020a62461bcd02815260206004820152601560248201527f496e76616c69642043616e646964617465204361700000000000000000000000604482015290519081900360640190fd5b600160a060020a038216600090815260116020526040902054829060ff16156107b8576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff1615610830576040805160e560020a62461bcd02815260206004820152601360248201527f416c726561647920612063616e64696461746500000000000000000000000000604482015290519081900360640190fd5b3360009081526013602052604090205460ff16151560011461089c576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260016020819052604090912001546108c9903463ffffffff61225b16565b6007805460018181019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018054600160a060020a03808816600160a060020a03199283168117909355604080516060810182523380825260208281018881528385018a81526000988952898352858920945185549251151560a060020a0274ff00000000000000000000000000000000000000001991909816929098169190911796909616949094178255935195810195909555918352600290930190925220549092506109a0903463ffffffff61225b16565b600160a060020a0384166000908152600160208181526040808420338552600201909152909120919091556008546109dd9163ffffffff61225b16565b600855336000908152600560205260409020541515610a435760068054600181810183556000929092527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018054600160a060020a031916331790556009805490910190555b336000818152600560209081526040808320805460018181018355918552838520018054600160a060020a038a16600160a060020a031991821681179092558186526002855283862080549384018155865294849020909101805490941685179093558051938452908301919091523482820152517f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c19181900360600190a1505050565b6006805482908110610af557fe5b600091825260209091200154600160a060020a0316905081565b600160a060020a038216600090815260016020908152604080832033845260020190915281205483908390811115610b91576040805160e560020a62461bcd02815260206004820152600c60248201527f496e76616c696420566f74650000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382811660009081526001602052604090205416331415610c4357600b54600160a060020a0383166000908152600160209081526040808320338452600201909152902054610bed908363ffffffff61227116565b1015610c43576040805160e560020a62461bcd02815260206004820181905260248201527f4d696e696d756d206361702073686f756c64206265206d61696e7461696e6564604482015290519081900360640190fd5b600160a060020a03851660009081526001602081905260409091200154610c70908563ffffffff61227116565b600160a060020a038616600090815260016020818152604080842092830194909455338352600290910190522054610cae908563ffffffff61227116565b600160a060020a0386166000908152600160209081526040808320338452600201909152902055600f54610ce8904363ffffffff61225b16565b33600090815260208181526040808320848452909152902054909350610d14908563ffffffff61225b16565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a0388169282019290925280820186905290517faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa29181900360600190a15050505050565b60606007805480602002602001604051908101604052809291908181526020018280548015610df357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610dd5575b505050505090505b90565b6060600080600780549050604051908082528060200260200182016040528015610e32578160200160208202803883390190505b50925060009150600090505b600754811015610ece57600780546000919083908110610e5a57fe5b600091825260209091200154600160a060020a031614610ec6576007805482908110610e8257fe5b6000918252602090912001548351600160a060020a0390911690849084908110610ea857fe5b600160a060020a039092166020928302909101909101526001909101905b600101610e3e565b818352610ee06007602085018461257b565b50505050565b60095481565b600460209081526000928352604080842090915290825290205460ff1681565b33600090815260208181526040808320938352929052205490565b600560205281600052604060002081815481101515610f4257fe5b600091825260209091200154600160a060020a03169150829050565b600160a060020a038116600090815260026020908152604091829020805483518184028101840190945280845260609392830182828015610fc857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610faa575b50505050509050919050565b600080805b60065481101561102b5783600160a060020a0316600682815481101515610ffc57fe5b600091825260209091200154600160a060020a031614156110235760018192509250611033565b600101610fd9565b600092508291505b50915091565b3360009081526020818152604091829020600101805483518184028101840190945280845260609392830182828015610df357602002820191906000526020600020905b81548152602001906001019080831161107d575050505050905090565b600160a060020a0391821660009081526001602090815260408083209390941682526002909201909152205490565b6007805482908110610af557fe5b60016020819052600091825260409091208054910154600160a060020a0382169160a060020a900460ff169083565b336000908152601060205260408120548390839060ff1615611172576040805160e560020a62461bcd02815260206004820152600d60248201527f496e76616c6964204f776e657200000000000000000000000000000000000000604482015290519081900360640190fd5b600082116111ca576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c696420626c6f636b206e756d626572000000000000000000000000604482015290519081900360640190fd5b43821115611248576040805160e560020a62461bcd02815260206004820152603560248201527f426c6f636b206e756d6265722073686f756c64206265206c657373207468616e60448201527f2063757272656e7420626c6f636b206e756d6265720000000000000000000000606482015290519081900360840190fd5b33600090815260208181526040808320858452909152812054116112b6576040805160e560020a62461bcd02815260206004820152601260248201527f4e6f2063617020746f2077697468647261770000000000000000000000000000604482015290519081900360640190fd5b3360009081526020819052604090206001018054839190839081106112d757fe5b9060005260206000200154141515611339576040805160e560020a62461bcd02815260206004820152600d60248201527f496e76616c696420696e64657800000000000000000000000000000000000000604482015290519081900360640190fd5b336000818152602081815260408083208984528083529083208054908490559383529190526001018054919450908590811061137157fe5b60009182526020822001819055604051339185156108fc02918691818181858888f193505050501580156113a9573d6000803e3d6000fd5b50604080513381526020810187905280820185905290517ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360600190a15050505050565b600a5481565b600160a060020a03166000908152600160208190526040909120015490565b60136020526000908152604090205460ff1681565b600160a060020a038116600090815260116020526040812054829060ff161561148c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff1615156114f3576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b6114fb611da6565b600160a060020a03841660009081526003602052604090205460640281151561152057fe5b049392505050565b600260205281600052604060002081815481101515610f4257fe5b6012805482908110610af557fe5b600160a060020a031660009081526005602052604090205490565b60606000806006805490506040519080825280602002602001820160405280156115a0578160200160208202803883390190505b50925060009150600090505b60065481101561163c576006805460009190839081106115c857fe5b600091825260209091200154600160a060020a0316146116345760068054829081106115f057fe5b6000918252602090912001548351600160a060020a039091169084908490811061161657fe5b600160a060020a039092166020928302909101909101526001909101905b6001016115ac565b818352610ee06006602085018461257b565b600c543410156116a8576040805160e560020a62461bcd02815260206004820152601160248201527f496e76616c696420566f74657220436170000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260116020526040902054819060ff1615611709576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff161515611770576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b3360009081526013602052604090205460ff1615156001146117dc576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f74204772616e64204d617374657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03821660009081526001602081905260409091200154611809903463ffffffff61225b16565b600160a060020a038316600090815260016020818152604080842092830194909455338352600290910190522054151561187657600160a060020a0382166000908152600260209081526040822080546001810182559083529120018054600160a060020a031916331790555b600160a060020a03821660009081526001602090815260408083203384526002019091529020546118ad903463ffffffff61225b16565b600160a060020a0383166000818152600160209081526040808320338085526002909101835292819020949094558351918252810191909152348183015290517f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc9181900360600190a15050565b60036020526000908152604090205481565b60085481565b600f5481565b600160a060020a038082166000908152600160205260408120549091829182918291829187911633146119dc576040805160e560020a62461bcd02815260206004820152602160248201527f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038716600090815260016020526040902054879060a060020a900460ff161515611a7d576040805160e560020a62461bcd02815260206004820152602560248201527f4f6e6c792063616e6469646174652063616e2063616c6c20746869732066756e60448201527f6374696f6e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0388166000908152600160208190526040909120805474ff000000000000000000000000000000000000000019169055600854611ac69163ffffffff61227116565b600855611ad288612283565b611ada612377565b3360009081526005602052604081208054909850965094505b85851015611bde5787600160a060020a03168786815481101515611b1357fe5b600091825260209091200154600160a060020a03161415611bd3578660018703815481101515611b3f57fe5b6000918252602090912001548754600160a060020a0390911690889087908110611b6557fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055508660018703815481101515611ba457fe5b60009182526020909120018054600160a060020a03191690558654611bcd8860001983016125e0565b50611bde565b600190940193611af3565b86541515611bef57611bef336123d5565b600160a060020a038816600081815260016020818152604080842033855260028101835290842054949093528190520154909450611c33908563ffffffff61227116565b600160a060020a0389166000908152600160208181526040808420928301949094553383526002909101905290812055600e54611c76904363ffffffff61225b16565b33600090815260208181526040808320848452909152902054909350611ca2908563ffffffff61225b16565b33600081815260208181526040808320888452808352818420959095558282526001948501805495860181558352918190209093018690558051918252600160a060020a038b169282019290925281517f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d3929181900390910190a15050505050505050565b60116020526000908152604090205460ff1681565b600160a060020a039081166000908152600160205260409020541690565b600d5481565b600e5481565b600160a060020a031660009081526001602052604090205460a060020a900460ff1690565b600b5481565b60106020526000908152604090205460ff1681565b60095490565b33600081815260116020526040812054909182918291829182916060918291849182919060ff1615611e16576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b600160a060020a03811660009081526001602052604090205460a060020a900460ff161515611e7d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020612664833981519152604482015290519081900360640190fd5b611e8633611d3c565b9950600460008b600160a060020a0316600160a060020a0316815260200190815260200160002060008c600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff16151515611f35576040805160e560020a62461bcd02815260206004820152600d60248201527f416c726561647920766f74656400000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03808b166000908152600460209081526040808320938f168352928152828220805460ff19166001908117909155600390915291902080549091019055604b611f83611da6565b600160a060020a038d16600090815260036020526040902054606402811515611fa857fe5b041061224857600160a060020a038b166000908152601060205260409020805460ff19166001179055611fda8b610fd4565b9850985088156122485760075460408051828152602080840282010190915260009850889750908015612017578160200160208202803883390190505b506007546040805182815260208084028201019091529196508015612046578160200160208202803883390190505b509350600092505b60075483101561218d57600780548490811061206657fe5b600091825260209091200154600160a060020a0390811692508b1661208a83611d3c565b600160a060020a03161415612156576008546120ad90600163ffffffff61227116565b60085584516001870196839187919081106120c457fe5b600160a060020a0392831660209182029092018101919091528382166000908152601182526040808220805460ff19166001908117909155808452818320805474ffffffffffffffffffffffffffffffffffffffffff1916815501829055928e168152600590915290812061213891612604565b600160a060020a038b16600090815260036020526040812055612182565b835160018801978391869190811061216a57fe5b600160a060020a039092166020928302909101909101525b60019092019161204e565b86845285855283516121a690600790602087019061257b565b506121af612377565b6121b8886124ce565b7fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e8b866040518083600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561223357818101518382015260200161221b565b50505050905001935050505060405180910390a15b5050505050505050505050565b600c5481565b60008282018381101561226a57fe5b9392505050565b60008282111561227d57fe5b50900390565b60075460005b818110156123725782600160a060020a03166007828154811015156122aa57fe5b600091825260209091200154600160a060020a0316141561236a576007805460001984019081106122d757fe5b60009182526020909120015460078054600160a060020a0390921691839081106122fd57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560078054600019840190811061233857fe5b60009182526020909120018054600160a060020a031916905560078054906123649060001983016125e0565b50612372565b600101612289565b505050565b600a5460075410156123d3576040805160e560020a62461bcd02815260206004820152601360248201527f4c6f772043616e64696461746520436f756e7400000000000000000000000000604482015290519081900360640190fd5b565b60065460005b818110156123725782600160a060020a03166006828154811015156123fc57fe5b600091825260209091200154600160a060020a031614156124c65760068054600019840190811061242957fe5b60009182526020909120015460068054600160a060020a03909216918390811061244f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560068054600019840190811061248a57fe5b60009182526020909120018054600160a060020a031916905560068054906124b69060001983016125e0565b5060098054600019019055612372565b6001016123db565b6006805460001981019190829081106124e357fe5b60009182526020909120015460068054600160a060020a03909216918490811061250957fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600680548290811061254057fe5b60009182526020909120018054600160a060020a0319169055600680549061256c9060001983016125e0565b50506009805460001901905550565b8280548282559060005260206000209081019282156125d0579160200282015b828111156125d05782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019061259b565b506125dc929150612625565b5090565b81548183558181111561237257600083815260209020612372918101908301612649565b50805460008255906000526020600020908101906126229190612649565b50565b610dfb91905b808211156125dc578054600160a060020a031916815560010161262b565b610dfb91905b808211156125dc576000815560010161264f5600496e76616c69642043616e646964617465000000000000000000000000000000a165627a7a72305820a3c9003c2029e4c0361e562415306dfa5577554f6a337d6e48717a8dc7542e3d0029 \ No newline at end of file