UNPKG

@mantleio/contracts

Version:
535 lines (534 loc) 38.8 kB
{ "_format": "hh-sol-artifact-1", "contractName": "TssRewardContract", "sourceName": "contracts/L2/predeploys/TssRewardContract.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "uint256", "name": "_sendAmountPerYear", "type": "uint256" }, { "internalType": "address", "name": "_l2CrossDomainMessenger", "type": "address" }, { "internalType": "address", "name": "_sccAddress", "type": "address" }, { "internalType": "uint256", "name": "_waitingTime", "type": "uint256" }, { "internalType": "address", "name": "_ssAddr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "lastBatchTime", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "batchTime", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "tssMembers", "type": "address[]" } ], "name": "DistributeTssReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "blockStartHeight", "type": "uint256" }, { "indexed": false, "internalType": "uint32", "name": "length", "type": "uint32" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "tssMembers", "type": "address[]" } ], "name": "DistributeTssRewardByBlock", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimAmout", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_blockStartHeight", "type": "uint256" }, { "internalType": "uint32", "name": "_length", "type": "uint32" }, { "internalType": "uint256", "name": "_batchTime", "type": "uint256" }, { "internalType": "address[]", "name": "_tssMembers", "type": "address[]" } ], "name": "claimReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimTimes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimers", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastBatchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "messenger", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "operators", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "queryClaimTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "queryReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "querySendAmountPerSecond", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "requestClaim", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "rewardDetails", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sccAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sendAmountPerYear", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "address", "name": "_claimer", "type": "address" } ], "name": "setClaimer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_sccAddress", "type": "address" } ], "name": "setSccAddr", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sendAmountPerYear", "type": "uint256" } ], "name": "setSendAmountPerYear", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_ssAddre", "type": "address" } ], "name": "setStakeSlashAddr", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_waitingTime", "type": "uint256" } ], "name": "setWaitingTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stakeSlashAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "waitingTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x60806040523480156200001157600080fd5b5060405162001c3338038062001c338339810160408190526200003491620001f0565b836200004033620000ae565b600180546001600160a01b0319166001600160a01b03929092169190911790556200006b86620000fe565b50603593909355603680546001600160a01b039092166001600160a01b03199283168117909155603793909355603d8054909116909217909155506200025f9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146200015e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620001c55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000155565b620001d081620000ae565b50565b80516001600160a01b0381168114620001eb57600080fd5b919050565b60008060008060008060c087890312156200020a57600080fd5b6200021587620001d3565b9550602087015194506200022c60408801620001d3565b93506200023c60608801620001d3565b9250608087015191506200025360a08801620001d3565b90509295509295509295565b6119c4806200026f6000396000f3fe6080604052600436106101a55760003560e01c8063aa13e8c2116100e1578063da62fba91161008a578063ea01cd3611610064578063ea01cd3614610492578063ebc73e65146104b2578063f2fde38b146104d2578063f5cf673b146104f257600080fd5b8063da62fba914610426578063e5efd5851461045c578063e91a469e1461047257600080fd5b8063cf172403116100bb578063cf172403146103ce578063d4440a36146103fb578063d8111a571461041057600080fd5b8063aa13e8c214610366578063b89ea4021461037c578063ceddc021146103a957600080fd5b80633b52c31e1161014e5780634e71d92d116101285780634e71d92d146102f157806352674ea514610306578063715018a6146103335780638da5cb5b1461034857600080fd5b80633b52c31e1461029c5780633cb747bf146102bc5780633ccfd60b146102dc57600080fd5b8063208695eb1161017f578063208695eb146102495780632c79db11146102695780633310ceeb1461027c57600080fd5b80630fae75d9146101b157806313e7c9d8146101d357806315c6f1661461022657600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101d16101cc366004611669565b610512565b005b3480156101df57600080fd5b506102096101ee366004611720565b6039602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023257600080fd5b5061023b6107ce565b60405190815260200161021d565b34801561025557600080fd5b50603d54610209906001600160a01b031681565b34801561027557600080fd5b504761023b565b34801561028857600080fd5b506101d1610297366004611720565b6107f9565b3480156102a857600080fd5b506101d16102b736600461173d565b61088d565b3480156102c857600080fd5b50600154610209906001600160a01b031681565b3480156102e857600080fd5b506101d16108ec565b3480156102fd57600080fd5b506101d1610a34565b34801561031257600080fd5b5061023b610321366004611720565b603c6020526000908152604090205481565b34801561033f57600080fd5b506101d1610bd9565b34801561035457600080fd5b506000546001600160a01b0316610209565b34801561037257600080fd5b5061023b60375481565b34801561038857600080fd5b5061023b610397366004611720565b603b6020526000908152604090205481565b3480156103b557600080fd5b506103be610c3d565b604051901515815260200161021d565b3480156103da57600080fd5b5061023b6103e9366004611720565b60386020526000908152604090205481565b34801561040757600080fd5b5061023b610dc2565b34801561041c57600080fd5b5061023b60355481565b34801561043257600080fd5b50610209610441366004611720565b603a602052600090815260409020546001600160a01b031681565b34801561046857600080fd5b5061023b60345481565b34801561047e57600080fd5b506101d161048d366004611720565b610dec565b34801561049e57600080fd5b50603654610209906001600160a01b031681565b3480156104be57600080fd5b506101d16104cd36600461173d565b610e80565b3480156104de57600080fd5b506101d16104ed366004611720565b610edf565b3480156104fe57600080fd5b506101d161050d366004611756565b610fbe565b6036546001600160a01b03166105306001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146105bb5760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b806001600160a01b03166105d76001546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561060f57600080fd5b505afa158015610623573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610647919061178f565b6001600160a01b0316146106c35760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016105b2565b6000603454600014156106db575060348490556107c6565b60345485116107525760405162461bcd60e51b815260206004820152603260248201527f61726773205f626174636854696d65206d757374206774686572207468616e2060448201527f6c617374206c617374426174636854696d65000000000000000000000000000060648201526084016105b2565b61075a6107ce565b60345461076790876117db565b61077191906117f2565b905061077e81858561123b565b7ff533ef50019763ee9d95ad46e28350b533c11edd472ae7be93e8fae83c1b6d99603454868387876040516107b795949392919061182f565b60405180910390a15060348490555b505050505050565b60006107f46301e13380603554670de0b6b3a76400006107ee91906117f2565b906112c3565b905090565b6000546001600160a01b031633146108535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603555565b6000546001600160a01b031633146109465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b4715610a3257600080546040805183815260208101918290526001600160a01b039092169147916109779190611898565b60006040518083038185875af1925050503d80600081146109b4576040519150601f19603f3d011682016040523d82523d6000602084013e6109b9565b606091505b5050905080610a305760405162461bcd60e51b815260206004820152602760248201527f5473735265776172642077697468647261773a204d4e54207472616e7366657260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016105b2565b505b565b336000908152603a60205260409020546001600160a01b031680610ac05760405162461bcd60e51b815260206004820152603160248201527f546865206d73672073656e646572206973206e6f7420617574686f72697a656460448201527f206279207468652076616c696461746f7200000000000000000000000000000060648201526084016105b2565b600280541415610b125760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105b2565b60028055336000908152603a60205260408120546001600160a01b031690610b39826112cf565b90508015610baf5760405162461bcd60e51b815260206004820152602a60248201527f706c65617365207761697420666f72207468652077616974696e67207065726960448201527f6f6420746f20706173730000000000000000000000000000000000000000000060648201526084016105b2565b610bb882611394565b506001600160a01b03166000908152603b6020526040812055506001600255565b6000546001600160a01b03163314610c335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b610a326000611601565b336000908152603a60205260408120546001600160a01b031680610cc95760405162461bcd60e51b815260206004820152603160248201527f546865206d73672073656e646572206973206e6f7420617574686f72697a656460448201527f206279207468652076616c696461746f7200000000000000000000000000000060648201526084016105b2565b336000908152603a60209081526040808320546001600160a01b0316808452603b909252909120548015610d8b5760405162461bcd60e51b815260206004820152605960248201527f596f75206861766520616c726561647920696e6974696174656420612072657160448201527f7565737420746f20636c61696d2c20706c65617365207761697420666f72207460648201527f68652077616974696e6720706572696f6420746f207061737300000000000000608482015260a4016105b2565b506001600160a01b03166000908152603b602090815260408083204290556038825280832054603c90925290912055600191505090565b336000908152603a60205260408120546001600160a01b031681610de5826112cf565b9392505050565b6000546001600160a01b03163314610e465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610eda5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603755565b6000546001600160a01b03163314610f395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b6001600160a01b038116610fb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b2565b610a3081611601565b603d546001600160a01b0316610fdc6001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146110625760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016105b2565b806001600160a01b031661107e6001546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b657600080fd5b505afa1580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee919061178f565b6001600160a01b03161461116a5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016105b2565b6001600160a01b0383811660009081526039602052604090205416156111d8576001600160a01b038084166000908152603960209081526040808320549093168252603a90522080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b506001600160a01b039081166000818152603a602090815260408083208054959096167fffffffffffffffffffffffff00000000000000000000000000000000000000009586168117909655948252603990529290922080549091169091179055565b82156112be5760005b818110156112bc576000838383818110611260576112606118d3565b90506020020160208101906112759190611720565b6001600160a01b0381166000908152603860205260408120805492935087929091906112a2908490611902565b909155508291506112b490508161191a565b915050611244565b505b505050565b6000610de58284611953565b6001600160a01b0381166000908152603b60205260408120548061135b5760405162461bcd60e51b815260206004820152602860248201527f706c6561736520696e6974696174652061207265717565737420746f20636c6160448201527f696d20666972737400000000000000000000000000000000000000000000000060648201526084016105b2565b60006037548261136b9190611902565b90506000428211156113885761138142836117db565b905061138c565b5060005b949350505050565b6001600160a01b0381166000908152603c6020908152604080832054603890925290912054818110156114095760405162461bcd60e51b815260206004820181905260248201527f546865206e756d65726963616c2076616c756520697320696e636f727265637460448201526064016105b2565b8147101561147f5760405162461bcd60e51b815260206004820152603c60248201527f54686520636f6e74726163742062616c616e636520697320696e73756666696360448201527f69656e7420746f2070617920746865207265776172642076616c75650000000060648201526084016105b2565b81156112be576001600160a01b03808416600090815260396020908152604080832054603c83528184208490556038909252909120549116906114c39084906117db565b6001600160a01b03858116600090815260386020908152604080832094909455835182815290810193849052909291841691869161150091611898565b60006040518083038185875af1925050503d806000811461153d576040519150601f19603f3d011682016040523d82523d6000602084013e611542565b606091505b50509050806115b85760405162461bcd60e51b8152602060048201526024808201527f54737352657761726420636c61696d3a204d4e54207472616e7366657220666160448201527f696c65640000000000000000000000000000000000000000000000000000000060648201526084016105b2565b604080516001600160a01b0387168152602081018690527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a15050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008060006080868803121561168157600080fd5b85359450602086013563ffffffff8116811461169c57600080fd5b935060408601359250606086013567ffffffffffffffff808211156116c057600080fd5b818801915088601f8301126116d457600080fd5b8135818111156116e357600080fd5b8960208260051b85010111156116f857600080fd5b9699959850939650602001949392505050565b6001600160a01b0381168114610a3057600080fd5b60006020828403121561173257600080fd5b8135610de58161170b565b60006020828403121561174f57600080fd5b5035919050565b6000806040838503121561176957600080fd5b82356117748161170b565b915060208301356117848161170b565b809150509250929050565b6000602082840312156117a157600080fd5b8151610de58161170b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156117ed576117ed6117ac565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561182a5761182a6117ac565b500290565b60006080820187835260208781850152866040850152608060608501528185835260a08501905086925060005b8681101561188a57833561186f8161170b565b6001600160a01b03168252928201929082019060010161185c565b509998505050505050505050565b6000825160005b818110156118b9576020818601810151858301520161189f565b818111156118c8576000828501525b509190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115611915576119156117ac565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561194c5761194c6117ac565b5060010190565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122050edc7c2e09aad4c96cff832dc80c8d23a78f987ca4daefd7cd8708f7d63d81f64736f6c63430008090033", "deployedBytecode": "0x6080604052600436106101a55760003560e01c8063aa13e8c2116100e1578063da62fba91161008a578063ea01cd3611610064578063ea01cd3614610492578063ebc73e65146104b2578063f2fde38b146104d2578063f5cf673b146104f257600080fd5b8063da62fba914610426578063e5efd5851461045c578063e91a469e1461047257600080fd5b8063cf172403116100bb578063cf172403146103ce578063d4440a36146103fb578063d8111a571461041057600080fd5b8063aa13e8c214610366578063b89ea4021461037c578063ceddc021146103a957600080fd5b80633b52c31e1161014e5780634e71d92d116101285780634e71d92d146102f157806352674ea514610306578063715018a6146103335780638da5cb5b1461034857600080fd5b80633b52c31e1461029c5780633cb747bf146102bc5780633ccfd60b146102dc57600080fd5b8063208695eb1161017f578063208695eb146102495780632c79db11146102695780633310ceeb1461027c57600080fd5b80630fae75d9146101b157806313e7c9d8146101d357806315c6f1661461022657600080fd5b366101ac57005b600080fd5b3480156101bd57600080fd5b506101d16101cc366004611669565b610512565b005b3480156101df57600080fd5b506102096101ee366004611720565b6039602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561023257600080fd5b5061023b6107ce565b60405190815260200161021d565b34801561025557600080fd5b50603d54610209906001600160a01b031681565b34801561027557600080fd5b504761023b565b34801561028857600080fd5b506101d1610297366004611720565b6107f9565b3480156102a857600080fd5b506101d16102b736600461173d565b61088d565b3480156102c857600080fd5b50600154610209906001600160a01b031681565b3480156102e857600080fd5b506101d16108ec565b3480156102fd57600080fd5b506101d1610a34565b34801561031257600080fd5b5061023b610321366004611720565b603c6020526000908152604090205481565b34801561033f57600080fd5b506101d1610bd9565b34801561035457600080fd5b506000546001600160a01b0316610209565b34801561037257600080fd5b5061023b60375481565b34801561038857600080fd5b5061023b610397366004611720565b603b6020526000908152604090205481565b3480156103b557600080fd5b506103be610c3d565b604051901515815260200161021d565b3480156103da57600080fd5b5061023b6103e9366004611720565b60386020526000908152604090205481565b34801561040757600080fd5b5061023b610dc2565b34801561041c57600080fd5b5061023b60355481565b34801561043257600080fd5b50610209610441366004611720565b603a602052600090815260409020546001600160a01b031681565b34801561046857600080fd5b5061023b60345481565b34801561047e57600080fd5b506101d161048d366004611720565b610dec565b34801561049e57600080fd5b50603654610209906001600160a01b031681565b3480156104be57600080fd5b506101d16104cd36600461173d565b610e80565b3480156104de57600080fd5b506101d16104ed366004611720565b610edf565b3480156104fe57600080fd5b506101d161050d366004611756565b610fbe565b6036546001600160a01b03166105306001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146105bb5760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b806001600160a01b03166105d76001546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561060f57600080fd5b505afa158015610623573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610647919061178f565b6001600160a01b0316146106c35760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016105b2565b6000603454600014156106db575060348490556107c6565b60345485116107525760405162461bcd60e51b815260206004820152603260248201527f61726773205f626174636854696d65206d757374206774686572207468616e2060448201527f6c617374206c617374426174636854696d65000000000000000000000000000060648201526084016105b2565b61075a6107ce565b60345461076790876117db565b61077191906117f2565b905061077e81858561123b565b7ff533ef50019763ee9d95ad46e28350b533c11edd472ae7be93e8fae83c1b6d99603454868387876040516107b795949392919061182f565b60405180910390a15060348490555b505050505050565b60006107f46301e13380603554670de0b6b3a76400006107ee91906117f2565b906112c3565b905090565b6000546001600160a01b031633146108535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603555565b6000546001600160a01b031633146109465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b4715610a3257600080546040805183815260208101918290526001600160a01b039092169147916109779190611898565b60006040518083038185875af1925050503d80600081146109b4576040519150601f19603f3d011682016040523d82523d6000602084013e6109b9565b606091505b5050905080610a305760405162461bcd60e51b815260206004820152602760248201527f5473735265776172642077697468647261773a204d4e54207472616e7366657260448201527f206661696c65640000000000000000000000000000000000000000000000000060648201526084016105b2565b505b565b336000908152603a60205260409020546001600160a01b031680610ac05760405162461bcd60e51b815260206004820152603160248201527f546865206d73672073656e646572206973206e6f7420617574686f72697a656460448201527f206279207468652076616c696461746f7200000000000000000000000000000060648201526084016105b2565b600280541415610b125760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105b2565b60028055336000908152603a60205260408120546001600160a01b031690610b39826112cf565b90508015610baf5760405162461bcd60e51b815260206004820152602a60248201527f706c65617365207761697420666f72207468652077616974696e67207065726960448201527f6f6420746f20706173730000000000000000000000000000000000000000000060648201526084016105b2565b610bb882611394565b506001600160a01b03166000908152603b6020526040812055506001600255565b6000546001600160a01b03163314610c335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b610a326000611601565b336000908152603a60205260408120546001600160a01b031680610cc95760405162461bcd60e51b815260206004820152603160248201527f546865206d73672073656e646572206973206e6f7420617574686f72697a656460448201527f206279207468652076616c696461746f7200000000000000000000000000000060648201526084016105b2565b336000908152603a60209081526040808320546001600160a01b0316808452603b909252909120548015610d8b5760405162461bcd60e51b815260206004820152605960248201527f596f75206861766520616c726561647920696e6974696174656420612072657160448201527f7565737420746f20636c61696d2c20706c65617365207761697420666f72207460648201527f68652077616974696e6720706572696f6420746f207061737300000000000000608482015260a4016105b2565b506001600160a01b03166000908152603b602090815260408083204290556038825280832054603c90925290912055600191505090565b336000908152603a60205260408120546001600160a01b031681610de5826112cf565b9392505050565b6000546001600160a01b03163314610e465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610eda5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b603755565b6000546001600160a01b03163314610f395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b2565b6001600160a01b038116610fb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105b2565b610a3081611601565b603d546001600160a01b0316610fdc6001546001600160a01b031690565b6001600160a01b0316336001600160a01b0316146110625760405162461bcd60e51b815260206004820152602e60248201527f42564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016105b2565b806001600160a01b031661107e6001546001600160a01b031690565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b657600080fd5b505afa1580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee919061178f565b6001600160a01b03161461116a5760405162461bcd60e51b815260206004820152603060248201527f42564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016105b2565b6001600160a01b0383811660009081526039602052604090205416156111d8576001600160a01b038084166000908152603960209081526040808320549093168252603a90522080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b506001600160a01b039081166000818152603a602090815260408083208054959096167fffffffffffffffffffffffff00000000000000000000000000000000000000009586168117909655948252603990529290922080549091169091179055565b82156112be5760005b818110156112bc576000838383818110611260576112606118d3565b90506020020160208101906112759190611720565b6001600160a01b0381166000908152603860205260408120805492935087929091906112a2908490611902565b909155508291506112b490508161191a565b915050611244565b505b505050565b6000610de58284611953565b6001600160a01b0381166000908152603b60205260408120548061135b5760405162461bcd60e51b815260206004820152602860248201527f706c6561736520696e6974696174652061207265717565737420746f20636c6160448201527f696d20666972737400000000000000000000000000000000000000000000000060648201526084016105b2565b60006037548261136b9190611902565b90506000428211156113885761138142836117db565b905061138c565b5060005b949350505050565b6001600160a01b0381166000908152603c6020908152604080832054603890925290912054818110156114095760405162461bcd60e51b815260206004820181905260248201527f546865206e756d65726963616c2076616c756520697320696e636f727265637460448201526064016105b2565b8147101561147f5760405162461bcd60e51b815260206004820152603c60248201527f54686520636f6e74726163742062616c616e636520697320696e73756666696360448201527f69656e7420746f2070617920746865207265776172642076616c75650000000060648201526084016105b2565b81156112be576001600160a01b03808416600090815260396020908152604080832054603c83528184208490556038909252909120549116906114c39084906117db565b6001600160a01b03858116600090815260386020908152604080832094909455835182815290810193849052909291841691869161150091611898565b60006040518083038185875af1925050503d806000811461153d576040519150601f19603f3d011682016040523d82523d6000602084013e611542565b606091505b50509050806115b85760405162461bcd60e51b8152602060048201526024808201527f54737352657761726420636c61696d3a204d4e54207472616e7366657220666160448201527f696c65640000000000000000000000000000000000000000000000000000000060648201526084016105b2565b604080516001600160a01b0387168152602081018690527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a15050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060008060006080868803121561168157600080fd5b85359450602086013563ffffffff8116811461169c57600080fd5b935060408601359250606086013567ffffffffffffffff808211156116c057600080fd5b818801915088601f8301126116d457600080fd5b8135818111156116e357600080fd5b8960208260051b85010111156116f857600080fd5b9699959850939650602001949392505050565b6001600160a01b0381168114610a3057600080fd5b60006020828403121561173257600080fd5b8135610de58161170b565b60006020828403121561174f57600080fd5b5035919050565b6000806040838503121561176957600080fd5b82356117748161170b565b915060208301356117848161170b565b809150509250929050565b6000602082840312156117a157600080fd5b8151610de58161170b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156117ed576117ed6117ac565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561182a5761182a6117ac565b500290565b60006080820187835260208781850152866040850152608060608501528185835260a08501905086925060005b8681101561188a57833561186f8161170b565b6001600160a01b03168252928201929082019060010161185c565b509998505050505050505050565b6000825160005b818110156118b9576020818601810151858301520161189f565b818111156118c8576000828501525b509190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115611915576119156117ac565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561194c5761194c6117ac565b5060010190565b600082611989577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea264697066735822122050edc7c2e09aad4c96cff832dc80c8d23a78f987ca4daefd7cd8708f7d63d81f64736f6c63430008090033", "linkReferences": {}, "deployedLinkReferences": {} }