UNPKG

arc_dx

Version:

A platform for building DAOs

773 lines 1.14 MB
{ "contractName": "VestingScheme", "abi": [ { "constant": true, "inputs": [ { "name": "", "type": "bytes32" } ], "name": "parameters", "outputs": [ { "name": "voteParams", "type": "bytes32" }, { "name": "intVote", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" }, { "name": "", "type": "bytes32" } ], "name": "organizationsProposals", "outputs": [ { "name": "token", "type": "address" }, { "name": "beneficiary", "type": "address" }, { "name": "returnOnCancelAddress", "type": "address" }, { "name": "startingBlock", "type": "uint256" }, { "name": "amountPerPeriod", "type": "uint256" }, { "name": "periodLength", "type": "uint256" }, { "name": "numOfAgreedPeriods", "type": "uint256" }, { "name": "cliffInPeriods", "type": "uint256" }, { "name": "signaturesReqToCancel", "type": "uint256" }, { "name": "collectedPeriods", "type": "uint256" }, { "name": "signaturesReceivedCounter", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_hashedParameters", "type": "bytes32" } ], "name": "updateParameters", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_stakingToken", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "balanceOfStakingToken", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "reputationOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_proposalId", "type": "bytes32" } ], "name": "getTotalReputationSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "uint256" } ], "name": "agreements", "outputs": [ { "name": "token", "type": "address" }, { "name": "beneficiary", "type": "address" }, { "name": "returnOnCancelAddress", "type": "address" }, { "name": "startingBlock", "type": "uint256" }, { "name": "amountPerPeriod", "type": "uint256" }, { "name": "periodLength", "type": "uint256" }, { "name": "numOfAgreedPeriods", "type": "uint256" }, { "name": "cliffInPeriods", "type": "uint256" }, { "name": "signaturesReqToCancel", "type": "uint256" }, { "name": "collectedPeriods", "type": "uint256" }, { "name": "signaturesReceivedCounter", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_stakingToken", "type": "address" }, { "name": "_beneficiary", "type": "address" }, { "name": "_amount", "type": "uint256" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "stakingTokenTransfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_amount", "type": "uint256" }, { "name": "_beneficiary", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "mintReputation", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_amount", "type": "uint256" }, { "name": "_beneficiary", "type": "address" }, { "name": "_proposalId", "type": "bytes32" } ], "name": "burnReputation", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "hashedParameters", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "agreementsCounter", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" }, { "indexed": false, "name": "_param", "type": "int256" } ], "name": "ProposalExecuted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" } ], "name": "ProposalDeleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_avatar", "type": "address" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" } ], "name": "AgreementProposal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" } ], "name": "NewVestedAgreement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" }, { "indexed": true, "name": "_proposalId", "type": "bytes32" } ], "name": "ProposedVestedAgreement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" }, { "indexed": true, "name": "_signer", "type": "address" } ], "name": "SignToCancelAgreement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" }, { "indexed": true, "name": "_signer", "type": "address" } ], "name": "RevokeSignToCancelAgreement", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" } ], "name": "AgreementCancel", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "_agreementId", "type": "uint256" } ], "name": "Collect", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": false, "inputs": [ { "name": "_proposalId", "type": "bytes32" }, { "name": "_param", "type": "int256" } ], "name": "executeProposal", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_beneficiary", "type": "address" }, { "name": "_returnOnCancelAddress", "type": "address" }, { "name": "_startingBlock", "type": "uint256" }, { "name": "_amountPerPeriod", "type": "uint256" }, { "name": "_periodLength", "type": "uint256" }, { "name": "_numOfAgreedPeriods", "type": "uint256" }, { "name": "_cliffInPeriods", "type": "uint256" }, { "name": "_signaturesReqToCancel", "type": "uint256" }, { "name": "_signersArray", "type": "address[]" }, { "name": "_avatar", "type": "address" } ], "name": "proposeVestingAgreement", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_token", "type": "address" }, { "name": "_beneficiary", "type": "address" }, { "name": "_returnOnCancelAddress", "type": "address" }, { "name": "_startingBlock", "type": "uint256" }, { "name": "_amountPerPeriod", "type": "uint256" }, { "name": "_periodLength", "type": "uint256" }, { "name": "_numOfAgreedPeriods", "type": "uint256" }, { "name": "_cliffInPeriods", "type": "uint256" }, { "name": "_signaturesReqToCancel", "type": "uint256" }, { "name": "_signersArray", "type": "address[]" } ], "name": "createVestedAgreement", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_voteParams", "type": "bytes32" }, { "name": "_intVote", "type": "address" } ], "name": "setParameters", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "_voteParams", "type": "bytes32" }, { "name": "_intVote", "type": "address" } ], "name": "getParametersHash", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": false, "inputs": [ { "name": "_agreementId", "type": "uint256" } ], "name": "signToCancelAgreement", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_agreementId", "type": "uint256" } ], "name": "revokeSignToCancelAgreement", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_agreementId", "type": "uint256" } ], "name": "collect", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405260008054600160a060020a031916331790556128b8806100256000396000f3006080604052600436106101195763ffffffff60e060020a60003504166302506804811461011e57806306e3a978146101575780632453732a146101e05780632ac2af531461021657806367b603901461023057806368e14dac146102845780636b8eb403146102a8578063715018a6146102cc57806389d75221146102e15780638b087f3f146102f95780638da5cb5b146103115780639588378e146103425780639d4c162d14610366578063b551c37314610395578063bd14de96146103ad578063bea75f28146103c5578063ce3f865f146103f2578063d29b5d2f1461040a578063f2fde38b14610431578063f76f3fb114610452578063f81f8bf6146104a6578063f98e87ba146104cd578063fba62bda146104e2575b600080fd5b34801561012a57600080fd5b506101366004356104f7565b60408051928352600160a060020a0390911660208301528051918290030190f35b34801561016357600080fd5b5061017b600160a060020a0360043516602435610519565b60408051600160a060020a039c8d1681529a8c1660208c015298909a16898901526060890196909652608088019490945260a087019290925260c086015260e08501526101008401526101208301526101408201929092529051908190036101600190f35b3480156101ec57600080fd5b50610204600435600160a060020a036024351661058a565b60408051918252519081900360200190f35b34801561022257600080fd5b5061022e60043561062b565b005b34801561023c57600080fd5b50610204600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e435926101043591820192910135906101243516610647565b34801561029057600080fd5b50610204600435600160a060020a0360243516610d3a565b3480156102b457600080fd5b50610204600160a060020a0360043516602435610d8e565b3480156102d857600080fd5b5061022e610e3a565b3480156102ed57600080fd5b5061022e600435610ea6565b34801561030557600080fd5b5061022e600435610f54565b34801561031d57600080fd5b5061032661101f565b60408051600160a060020a039092168252519081900360200190f35b34801561034e57600080fd5b50610204600160a060020a036004351660243561102e565b34801561037257600080fd5b50610381600435602435611167565b604080519115158252519081900360200190f35b3480156103a157600080fd5b5061020460043561166f565b3480156103b957600080fd5b5061017b6004356117d4565b3480156103d157600080fd5b50610381600160a060020a036004358116906024351660443560643561183c565b3480156103fe57600080fd5b5061022e6004356119eb565b34801561041657600080fd5b50610381600435600160a060020a0360243516604435611c61565b34801561043d57600080fd5b5061022e600160a060020a0360043516611e07565b34801561045e57600080fd5b5061020460048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e43591610104359161012435918201910135611e2a565b3480156104b257600080fd5b50610381600435600160a060020a03602435166044356121aa565b3480156104d957600080fd5b50610204612318565b3480156104ee57600080fd5b5061020461231e565b60046020526000908152604090208054600190910154600160a060020a031682565b6003602081815260009384526040808520909152918352912080546001820154600283015493830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a9789169997909816979596949593949293919290918b565b6040805160208082018590526c01000000000000000000000000600160a060020a0385160282840152825160348184030181526054909201928390528151600093918291908401908083835b602083106105f55780518252601f1990920191602091820191016105d6565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b92915050565b600054600160a060020a0316331461064257600080fd5b600155565b60006106516127bf565b6000806004600061066187612324565b815260208082019290925260409081016000908120825180840184528154808252600190920154600160a060020a0390811682870181905285517f88737b5e000000000000000000000000000000000000000000000000000000008152600260048201526024810194909452336044850152908b166064840152935190975092936388737b5e9360848084019492939192918390030190829087803b15801561070957600080fd5b505af115801561071d573d6000803e3d6000fd5b505050506040513d602081101561073357600080fd5b505191508588111561074457600080fd5b60008b1161075157600080fd5b60008a116107cf576040805160e560020a62461bcd02815260206004820152602f60248201527f4e756d626572206f662041677265656420506572696f6473206d75737420626560448201527f2067726561746572207468616e20300000000000000000000000000000000000606482015290519081900360840190fd5b5060005b8581101561084c57600160a060020a03851660009081526003602090815260408083208584529091528120600191600b9091019089898581811061081357fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790556001016107d3565b84600160a060020a031663e1758bd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b505050506040513d60208110156108b457600080fd5b81019080805190602001909291905050506003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6003600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6003600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876003600087600160a060020a0316600160a060020a03168152602001908152602001600020600084600019166000191681526020019081526020016000206008018190555060606040519081016040528043815260200186600160a060020a031681526020018460200151600160a060020a03168152506002600084600019166000191681526020019081526020016000206000820151816000015560208201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060408201518160020160006101000a815481600160a060020a030219169083600160a060020a031602179055509050508260200151600160a060020a031663339e23d1836001336040518463ffffffff1660e060020a02815260040180846000191660001916815260200183815260200182600160a060020a0316600160a060020a031681526020019350505050602060405180830381600087803b158015610cc657600080fd5b505af1158015610cda573d6000803e3d6000fd5b505050506040513d6020811015610cf057600080fd5b50506040518290600160a060020a038716907f414e0a2de8305e1fdf5cd7bd449e853c9e04644021b6c51a686a80ca1909e8fd90600090a3509d9c50505050505050505050505050565b600080610d47848461058a565b6000818152600460205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b60008181526002602090815260408083206001015481517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181905292519293918716926370a082319260248084019391929182900301818887803b158015610e0657600080fd5b505af1158015610e1a573d6000803e3d6000fd5b505050506040513d6020811015610e3057600080fd5b5051949350505050565b600054600160a060020a03163314610e5157600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600560209081526040808320338452600b01909152812054829060ff161515610ed357600080fd5b6000838152600560209081526040808320338452600c81019092529091205490925060ff161515610f0357600080fd5b336000818152600c84016020526040808220805460ff19169055600a850180546000190190555185917f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c091a3505050565b6000818152600560209081526040808320338452600b01909152812054829060ff161515610f8157600080fd5b6000838152600560209081526040808320338452600c81019092529091205490925060ff1615610fb057600080fd5b336000818152600c84016020526040808220805460ff19166001908117909155600a8601805490910190555185917f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce291a3816008015482600a0154141561101a5761101a8361242d565b505050565b600054600160a060020a031681565b60006110386127d6565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a039081169382018490529190930154169282019290925290151561108a5760009150610d87565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b505050506040513d60208110156110f657600080fd5b50518151604080517f4ee2cd7e000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482019390935290519190921691634ee2cd7e9160448083019260209291908290030181600087803b158015610e0657600080fd5b6000806111726127f6565b60008581526002602081905260408220015481908790600160a060020a031633146111d5576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b60026000896000191660001916815260200190815260200160002060010160009054906101000a9004600160a060020a031694506003600086600160a060020a0316600160a060020a031681526020019081526020016000206000896000191660001916815260200190815260200160002061016060405190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050935060008460a0015111151561134657600080fd5b600160a060020a03851660008181526003602081815260408084208d8552909152808320805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054821690556002820180549091169055918201839055600482018390556005820183905560068201839055600782018390556008820183905560098201839055600a909101829055518a92917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a386600114156116215784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b505050506040513d602081101561146c57600080fd5b505160c0850151608086015191945061148b919063ffffffff6126e516565b604080517f6407e43200000000000000000000000000000000000000000000000000000000815260048101839052306024820152600160a060020a038881166044830152915192945090851691636407e432916064808201926020929091908290030181600087803b15801561150057600080fd5b505af1158015611514573d6000803e3d6000fd5b505050506040513d602081101561152a57600080fd5b50506006805460009081526005602081815260408084208951815473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03928316178355938b0151600180840180548716928416929092179091558b84015160028401805490961692169190911790935560608a0151600382015560808a0151600482015560a08a01519381019390935560c08901518386015560e0890151600784015561010089015160088401556101208901516009840155610140890151600a909301929092558354908101909355518a92917fe8de12be02fb718ed4a00c0d0251db271062b6cba59a64120dd3cd44296ae07291a35b6040805188815290518991600160a060020a038816917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc09181900360200190a3506001979650505050505050565b60006116796127d6565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a03908116938201849052919093015416928201929092529015156116cb57600091506117ce565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561170d57600080fd5b505af1158015611721573d6000803e3d6000fd5b505050506040513d602081101561173757600080fd5b50518151604080517f981b24d0000000000000000000000000000000000000000000000000000000008152600481019290925251600160a060020a039092169163981b24d0916024808201926020929091908290030181600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b505191505b50919050565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a97891699989096169794969593949293919290918b565b60008181526002602081905260408220015481908390600160a060020a0316331461189f576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a031691508115156118cc57600092506119e1565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050506040513d602081101561193457600080fd5b5051604080517fb9a04cdd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015289811660248301526044820189905285811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506040513d60208110156119dc57600080fd5b505192505b5050949350505050565b6119f36127f6565b600082815260056020526040812060010154819081908590600160a060020a03163314611a1f57600080fd5b6000868152600560208181526040928390208351610160810185528154600160a060020a0390811682526001830154811693820193909352600282015490921693820193909352600383015460608201819052600484015460808301529183015460a08201819052600684015460c0830152600784015460e083015260088401546101008301526009840154610120830152600a909301546101408201529650611ae19190611ad590439063ffffffff61270e16565b9063ffffffff61272016565b60e0860151909450841015611af557600080fd5b60c08501518410611b215761012085015160c0860151611b1a9163ffffffff61270e16565b9250611b3b565b610120850151611b3890859063ffffffff61270e16565b92505b600086815260056020526040902060090154611b5d908463ffffffff61273516565b6000878152600560205260409020600901556080850151611b8590849063ffffffff6126e516565b8551602080880151604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101869052905194965092169263a9059cbb9260448082019392918290030181600087803b158015611bf757600080fd5b505af1158015611c0b573d6000803e3d6000fd5b505050506040513d6020811015611c2157600080fd5b50511515611c2e57600080fd5b60405186907f3fe43822de4d3a1b02686a8e69e74f7a32cf7667d2a432a27326ec43a3b3bfd790600090a2505050505050565b60008181526002602081905260408220015481908390600160a060020a03163314611cc4576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a03169150811515611cf15760009250611dfe565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d2f57600080fd5b505af1158015611d43573d6000803e3d6000fd5b505050506040513d6020811015611d5957600080fd5b5051604080517feaf994b200000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a03888116602483015285811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b158015611dcf57600080fd5b505af1158015611de3573d6000803e3d6000fd5b505050506040513d6020811015611df957600080fd5b505192505b50509392505050565b600054600160a060020a03163314611e1e57600080fd5b611e2781612742565b50565b6000808083861115611e3b57600080fd5b60008911611e4857600080fd5b60008811611ec6576040805160e560020a62461bcd02815260206004820152602f60248201527f4e756d626572206f662041677265656420506572696f6473206d75737420626560448201527f2067726561746572207468616e20300000000000000000000000000000000000606482015290519081900360840190fd5b611ed68a8963ffffffff6126e516565b91508d600160a060020a03166323b872dd3330856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a031681526020018281526020019350505050602060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b505050506040513d6020811015611f7f57600080fd5b50511515611f8c57600080fd5b8d60056000600654815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508c60056000600654815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508b60056000600654815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508a6005600060065481526020019081526020016000206003018190555089600560006006548152602001908152602001600020600401819055508860056000600654815260200190815260200160002060050181905550876005600060065481526020019081526020016000206006018190555086600560006006548152602001908152602001600020600701819055508560056000600654815260200190815260200160002060080181905550600090505b8381101561215d576006546000908152600560205260408120600191600b9091019087878581811061212457fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790556001016120f6565b60068054600181019091556040517f7f4395349c6d693bbcef2c3c3133c966a84bf7d8f720d00fc21c9290a200acf790600090a25050600654600019019c9b505050505050505050505050565b60008181526002602081905260408220015481908390600160a060020a0316331461220d576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a0316915081151561223a5760009250611dfe565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561227857600080fd5b505af115801561228c573d6000803e3d6000fd5b505050506040513d60208110156122a257600080fd5b5051604080517f6e94d27800000000000000000000000000000000000000000000000000000000815260048101899052600160a060020a038881166024830152858116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b158015611dcf57600080fd5b60015481565b60065481565b600081600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561236457600080fd5b505af1158015612378573d6000803e3d6000fd5b505050506040513d602081101561238e57600080fd5b5051604080517f1c4d5608000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a03858116602483015291519190921691631c4d56089160448083019260209291908290030181600087803b1580156123fb57600080fd5b505af115801561240f573d6000803e3d6000fd5b505050506040513d602081101561242557600080fd5b505192915050565b6124356127f6565b6000806005600085815260200190815260200160002061016060405190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050925060056000858152602001908152602001600020600080820160006101000a815490600160a060020a0302191690556001820160006101000a815490600160a060020a0302191690556002820160006101000a815490600160a060020a0302191690556003820160009055600482016000905560058201600090556006820160009055600782016000905560088201600090556009820160009055600a82016000905550506125f78361012001518460c0015161270e90919063ffffffff16565b91506126108360800151836126e590919063ffffffff16565b90508260000151600160a060020a031663a9059cbb8460400151836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561267d57600080fd5b505af1158015612691573d6000803e3d6000fd5b505050506040513d60208110156126a757600080fd5b505115156126b457600080fd5b60405184907f9f1c1e78870ba44a152915bdd80b589c6b72f765faf85ba3b867f0b3ce38dfc790600090a250505050565b60008215156126f657506000610625565b5081810281838281151561270657fe5b041461062557fe5b60008282111561271a57fe5b50900390565b6000818381151561272d57fe5b049392505050565b8181018281101561062557fe5b600160a060020a038116151561275757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b610160604051908101604052806000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056006f6e6c7920566f74696e674d616368696e650000000000000000000000000000a165627a7a7230582025ac19dea5d34435428c7eb734ca68b611c5351b026c90b89916a398c6ea53e70029", "deployedBytecode": "0x6080604052600436106101195763ffffffff60e060020a60003504166302506804811461011e57806306e3a978146101575780632453732a146101e05780632ac2af531461021657806367b603901461023057806368e14dac146102845780636b8eb403146102a8578063715018a6146102cc57806389d75221146102e15780638b087f3f146102f95780638da5cb5b146103115780639588378e146103425780639d4c162d14610366578063b551c37314610395578063bd14de96146103ad578063bea75f28146103c5578063ce3f865f146103f2578063d29b5d2f1461040a578063f2fde38b14610431578063f76f3fb114610452578063f81f8bf6146104a6578063f98e87ba146104cd578063fba62bda146104e2575b600080fd5b34801561012a57600080fd5b506101366004356104f7565b60408051928352600160a060020a0390911660208301528051918290030190f35b34801561016357600080fd5b5061017b600160a060020a0360043516602435610519565b60408051600160a060020a039c8d1681529a8c1660208c015298909a16898901526060890196909652608088019490945260a087019290925260c086015260e08501526101008401526101208301526101408201929092529051908190036101600190f35b3480156101ec57600080fd5b50610204600435600160a060020a036024351661058a565b60408051918252519081900360200190f35b34801561022257600080fd5b5061022e60043561062b565b005b34801561023c57600080fd5b50610204600160a060020a03600480358216916024803582169260443592606435926084359260a4359260c4359260e435926101043591820192910135906101243516610647565b34801561029057600080fd5b50610204600435600160a060020a0360243516610d3a565b3480156102b457600080fd5b50610204600160a060020a0360043516602435610d8e565b3480156102d857600080fd5b5061022e610e3a565b3480156102ed57600080fd5b5061022e600435610ea6565b34801561030557600080fd5b5061022e600435610f54565b34801561031d57600080fd5b5061032661101f565b60408051600160a060020a039092168252519081900360200190f35b34801561034e57600080fd5b50610204600160a060020a036004351660243561102e565b34801561037257600080fd5b50610381600435602435611167565b604080519115158252519081900360200190f35b3480156103a157600080fd5b5061020460043561166f565b3480156103b957600080fd5b5061017b6004356117d4565b3480156103d157600080fd5b50610381600160a060020a036004358116906024351660443560643561183c565b3480156103fe57600080fd5b5061022e6004356119eb565b34801561041657600080fd5b50610381600435600160a060020a0360243516604435611c61565b34801561043d57600080fd5b5061022e600160a060020a0360043516611e07565b34801561045e57600080fd5b5061020460048035600160a060020a0390811691602480358316926044351691606435916084359160a4359160c4359160e43591610104359161012435918201910135611e2a565b3480156104b257600080fd5b50610381600435600160a060020a03602435166044356121aa565b3480156104d957600080fd5b50610204612318565b3480156104ee57600080fd5b5061020461231e565b60046020526000908152604090208054600190910154600160a060020a031682565b6003602081815260009384526040808520909152918352912080546001820154600283015493830154600484015460058501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a9789169997909816979596949593949293919290918b565b6040805160208082018590526c01000000000000000000000000600160a060020a0385160282840152825160348184030181526054909201928390528151600093918291908401908083835b602083106105f55780518252601f1990920191602091820191016105d6565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b92915050565b600054600160a060020a0316331461064257600080fd5b600155565b60006106516127bf565b6000806004600061066187612324565b815260208082019290925260409081016000908120825180840184528154808252600190920154600160a060020a0390811682870181905285517f88737b5e000000000000000000000000000000000000000000000000000000008152600260048201526024810194909452336044850152908b166064840152935190975092936388737b5e9360848084019492939192918390030190829087803b15801561070957600080fd5b505af115801561071d573d6000803e3d6000fd5b505050506040513d602081101561073357600080fd5b505191508588111561074457600080fd5b60008b1161075157600080fd5b60008a116107cf576040805160e560020a62461bcd02815260206004820152602f60248201527f4e756d626572206f662041677265656420506572696f6473206d75737420626560448201527f2067726561746572207468616e20300000000000000000000000000000000000606482015290519081900360840190fd5b5060005b8581101561084c57600160a060020a03851660009081526003602090815260408083208584529091528120600191600b9091019089898581811061081357fe5b60209081029290920135600160a060020a0316835250810191909152604001600020805460ff19169115159190911790556001016107d3565b84600160a060020a031663e1758bd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b505050506040513d60208110156108b457600080fd5b81019080805190602001909291905050506003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a031602179055508e6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060010160006101000a815481600160a060020a030219169083600160a060020a031602179055508d6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060020160006101000a815481600160a060020a030219169083600160a060020a031602179055508c6003600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600301819055508b6003600087600160a060020a0316600160a060020a0316815260200190815260200160002060008460001916600019168152602001908152602001600020600401819055508a6003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060050181905550896003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060060181905550886003600087600160a060020a0316600160a060020a031681526020019081526020016000206000846000191660001916815260200190815260200160002060070181905550876003600087600160a060020a0316600160a060020a03168152602001908152602001600020600084600019166000191681526020019081526020016000206008018190555060606040519081016040528043815260200186600160a060020a031681526020018460200151600160a060020a03168152506002600084600019166000191681526020019081526020016000206000820151816000015560208201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060408201518160020160006101000a815481600160a060020a030219169083600160a060020a031602179055509050508260200151600160a060020a031663339e23d1836001336040518463ffffffff1660e060020a02815260040180846000191660001916815260200183815260200182600160a060020a0316600160a060020a031681526020019350505050602060405180830381600087803b158015610cc657600080fd5b505af1158015610cda573d6000803e3d6000fd5b505050506040513d6020811015610cf057600080fd5b50506040518290600160a060020a038716907f414e0a2de8305e1fdf5cd7bd449e853c9e04644021b6c51a686a80ca1909e8fd90600090a3509d9c50505050505050505050505050565b600080610d47848461058a565b6000818152600460205260409020858155600101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03861617905591508190505b5092915050565b60008181526002602090815260408083206001015481517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820181905292519293918716926370a082319260248084019391929182900301818887803b158015610e0657600080fd5b505af1158015610e1a573d6000803e3d6000fd5b505050506040513d6020811015610e3057600080fd5b5051949350505050565b600054600160a060020a03163314610e5157600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600560209081526040808320338452600b01909152812054829060ff161515610ed357600080fd5b6000838152600560209081526040808320338452600c81019092529091205490925060ff161515610f0357600080fd5b336000818152600c84016020526040808220805460ff19169055600a850180546000190190555185917f1df7a752240c027cfb74557fd4dac3f5e69b4da33fd2bf627af62bec9e8293c091a3505050565b6000818152600560209081526040808320338452600b01909152812054829060ff161515610f8157600080fd5b6000838152600560209081526040808320338452600c81019092529091205490925060ff1615610fb057600080fd5b336000818152600c84016020526040808220805460ff19166001908117909155600a8601805490910190555185917f034fb4ee0593caf676b3d6d46cc590311e4119cdb1349abb1502647c4076fce291a3816008015482600a0154141561101a5761101a8361242d565b505050565b600054600160a060020a031681565b60006110386127d6565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a039081169382018490529190930154169282019290925290151561108a5760009150610d87565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110cc57600080fd5b505af11580156110e0573d6000803e3d6000fd5b505050506040513d60208110156110f657600080fd5b50518151604080517f4ee2cd7e000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152602482019390935290519190921691634ee2cd7e9160448083019260209291908290030181600087803b158015610e0657600080fd5b6000806111726127f6565b60008581526002602081905260408220015481908790600160a060020a031633146111d5576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b60026000896000191660001916815260200190815260200160002060010160009054906101000a9004600160a060020a031694506003600086600160a060020a0316600160a060020a031681526020019081526020016000206000896000191660001916815260200190815260200160002061016060405190810160405290816000820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016001820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a031681526020016002820160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a82015481525050935060008460a0015111151561134657600080fd5b600160a060020a03851660008181526003602081815260408084208d8552909152808320805473ffffffffffffffffffffffffffffffffffffffff199081168255600182018054821690556002820180549091169055918201839055600482018390556005820183905560068201839055600782018390556008820183905560098201839055600a909101829055518a92917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a386600114156116215784600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b505050506040513d602081101561146c57600080fd5b505160c0850151608086015191945061148b919063ffffffff6126e516565b604080517f6407e43200000000000000000000000000000000000000000000000000000000815260048101839052306024820152600160a060020a038881166044830152915192945090851691636407e432916064808201926020929091908290030181600087803b15801561150057600080fd5b505af1158015611514573d6000803e3d6000fd5b505050506040513d602081101561152a57600080fd5b50506006805460009081526005602081815260408084208951815473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03928316178355938b0151600180840180548716928416929092179091558b84015160028401805490961692169190911790935560608a0151600382015560808a0151600482015560a08a01519381019390935560c08901518386015560e0890151600784015561010089015160088401556101208901516009840155610140890151600a909301929092558354908101909355518a92917fe8de12be02fb718ed4a00c0d0251db271062b6cba59a64120dd3cd44296ae07291a35b6040805188815290518991600160a060020a038816917fd2632e80f5364f02aded1c64e8a04637b7c8bb9c2db2bedf4b6ac47c013acbc09181900360200190a3506001979650505050505050565b60006116796127d6565b506000828152600260208181526040928390208351606081018552815481526001820154600160a060020a03908116938201849052919093015416928201929092529015156116cb57600091506117ce565b8060200151600160a060020a03166389ae1c906040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561170d57600080fd5b505af1158015611721573d6000803e3d6000fd5b505050506040513d602081101561173757600080fd5b50518151604080517f981b24d0000000000000000000000000000000000000000000000000000000008152600481019290925251600160a060020a039092169163981b24d0916024808201926020929091908290030181600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b505191505b50919050565b600560208190526000918252604090912080546001820154600283015460038401546004850154958501546006860154600787015460088801546009890154600a90990154600160a060020a039889169a97891699989096169794969593949293919290918b565b60008181526002602081905260408220015481908390600160a060020a0316331461189f576040805160e560020a62461bcd028152602060048201526012602482015260008051602061286d833981519152604482015290519081900360640190fd5b600084815260026020526040902060010154600160a060020a031691508115156118cc57600092506119e1565b81600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561190a57600080fd5b505af115801561191e573d6000803e3d6000fd5b505050506040513d602081101561193457600080fd5b5051604080517fb9a04cdd000000000000000000000000000000000000000000000000000000008152600160a060020a038a8116600483015289811660248301526044820189905285811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506040513d60208110156119dc57600080fd5b505192505b5050949350505050565b6119f36127f6565b600082815260056020526040812060010154819081908590600160a060020a03163314611a1f57600080fd5b6000868152600560208181526040928390208351610160810185528154600160a060020a0390811682526001830154811693820193909352600282015490921693820193909352600383015460608201819052600484015460808301529183015460a08201819052600684015460c0830152600784015460e0830