Address Details
contract
token
0x5Ed248077bD07eE9B530f7C40BE0c1dAE4c131C0
- Token
- Release Ube (rUBE)
- Creator
- 0x4a27c0–5f6ee3 at 0xa02cd4–8b3c6d
- Balance
- 0 CELO ( )
- Locked CELO Balance
- 0.00 CELO
- Voting CELO Balance
- 0.00 CELO
- Pending Unlocked Gold
- 0.00 CELO
- Tokens
-
Fetching tokens...
- Transactions
- 673 Transactions
- Transfers
- 725 Transfers
- Gas Used
- 51,945,334
- Last Balance Update
- 28701599
Transactions
Token Transfers
Tokens
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
This contract has been verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- ReleaseUbe
- Optimization enabled
- true
- Compiler version
- v0.8.3+commit.8d00100c
- Optimization runs
- 999999
- EVM Version
- istanbul
- Verified at
- 2021-08-17T09:27:27.972113Z
Contract source code
// SPDX-License-Identifier: MIT pragma solidity ^0.8.3; import "./voting/LinearReleaseToken.sol"; /** * Released Ube token. */ contract ReleaseUbe is LinearReleaseToken { constructor( address owner_, address ube_, uint96 amount_, uint256 startTime_, uint256 cliffEndTime_, uint256 endTime_ ) LinearReleaseToken( "Release Ube", "rUBE", 18, owner_, ube_, amount_, startTime_, cliffEndTime_, endTime_ ) // solhint-disable-next-line no-empty-blocks { // Do nothing } }
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"owner_","internalType":"address"},{"type":"address","name":"ube_","internalType":"address"},{"type":"uint96","name":"amount_","internalType":"uint96"},{"type":"uint256","name":"startTime_","internalType":"uint256"},{"type":"uint256","name":"cliffEndTime_","internalType":"uint256"},{"type":"uint256","name":"endTime_","internalType":"uint256"}]},{"type":"event","name":"Allocated","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"uint96","name":"amount","internalType":"uint96","indexed":false}],"anonymous":false},{"type":"event","name":"Claimed","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"uint96","name":"amount","internalType":"uint96","indexed":false}],"anonymous":false},{"type":"event","name":"DelegateChanged","inputs":[{"type":"address","name":"delegator","internalType":"address","indexed":true},{"type":"address","name":"fromDelegate","internalType":"address","indexed":true},{"type":"address","name":"toDelegate","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"type":"address","name":"delegate","internalType":"address","indexed":true},{"type":"uint256","name":"previousBalance","internalType":"uint256","indexed":false},{"type":"uint256","name":"newBalance","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"DELEGATION_TYPEHASH","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"DOMAIN_TYPEHASH","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"allocate","inputs":[{"type":"address[]","name":"_holders","internalType":"address[]"},{"type":"uint96[]","name":"_amounts","internalType":"uint96[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"_account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint32","name":"fromBlock","internalType":"uint32"},{"type":"uint96","name":"votes","internalType":"uint96"}],"name":"checkpoints","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint32","name":"","internalType":"uint32"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claim","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"cliffEndTime","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"delegate","inputs":[{"type":"address","name":"delegatee","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"delegateBySig","inputs":[{"type":"address","name":"delegatee","internalType":"address"},{"type":"uint256","name":"nonce","internalType":"uint256"},{"type":"uint256","name":"expiry","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"delegates","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"earned","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"endTime","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"getCurrentVotes","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"getPriorVotes","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"uint256","name":"blockNumber","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"lifetimeTotalAllocated","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"nonces","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint32","name":"","internalType":"uint32"}],"name":"numCheckpoints","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"releasableSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"releasableSupplyOfPrincipal","inputs":[{"type":"uint256","name":"_principal","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"startTime","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20"}],"name":"token","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"totalClaimed","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"totalVotingPower","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"unallocated","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint96","name":"","internalType":"uint96"}],"name":"votingPower","inputs":[{"type":"address","name":"account","internalType":"address"}]}]
Contract Creation Code
0x6101206040523480156200001257600080fd5b50604051620035a2380380620035a2833981016040819052620000359162000353565b6040518060400160405280600b81526020016a52656c656173652055626560a81b815250604051806040016040528060048152602001637255424560e01b81525060128888888888888888888280600090805190602001906200009a92919062000290565b50508151620000b190600790602085019062000290565b5060f81b7fff00000000000000000000000000000000000000000000000000000000000000166080525060009050620000e73390565b600880546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003582833981519152908290a350600160095562000134866200017e565b60609490941b6001600160601b031990811661010052600a80549091166001600160601b03949094169390931790925560a05260c05260e052506200040498505050505050505050565b6008546001600160a01b03163314620001de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620002455760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620001d5565b6008546040516001600160a01b038084169216906000805160206200358283398151915290600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b8280546200029e90620003c7565b90600052602060002090601f016020900481019282620002c257600085556200030d565b82601f10620002dd57805160ff19168380011785556200030d565b828001600101855582156200030d579182015b828111156200030d578251825591602001919060010190620002f0565b506200031b9291506200031f565b5090565b5b808211156200031b576000815560010162000320565b80516001600160a01b03811681146200034e57600080fd5b919050565b60008060008060008060c087890312156200036c578182fd5b620003778762000336565b9550620003876020880162000336565b60408801519095506001600160601b0381168114620003a4578283fd5b80945050606087015192506080870151915060a087015190509295509295509295565b600181811c90821680620003dc57607f821691505b60208210811415620003fe57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160f81c60a05160c05160e0516101005160601c6131026200048060003960008181610616015261090a015260008181610306015281816115b401526115eb015260008181610271015261155901526000818161045d015281816115300152818161158f015261160c015260006102d701526131026000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063782d6fe11161010f578063df1c455c116100a2578063f0192f5511610071578063f0192f5514610579578063f1127ed81461058c578063f2fde38b146105fe578063fc0c546a14610611576101ef565b8063df1c455c146104f9578063e42c1b2014610511578063e7a324dc14610524578063ef5d9ae81461054b576101ef565b806395d89b41116100de57806395d89b41146104bd578063b4b5ea57146104c5578063c07473f6146104d8578063c3cda520146104e6576101ef565b8063782d6fe11461044557806378e97925146104585780637ecebe001461047f5780638da5cb5b1461049f576101ef565b80633e5ea10a11610187578063671b379311610156578063671b3793146103a85780636fcfff45146103be57806370a08231146103f9578063715018a61461043d576101ef565b80633e5ea10a146103285780634e71d92d14610330578063587cde1e1461033a5780635c19a95c14610395576101ef565b806318160ddd116101c357806318160ddd146102a157806320606b70146102a9578063313ce567146102d05780633197cbb614610301576101ef565b80628cc262146101f457806306375ef21461022957806306fdde0314610257578063160a341e1461026c575b600080fd5b610207610202366004612930565b610638565b6040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b610207610237366004612930565b600b602052600090815260409020546bffffffffffffffffffffffff1681565b61025f610719565b6040516102209190612bca565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610220565b610293610728565b6102937f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610220565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b610207610754565b6103386107b7565b005b610370610348366004612930565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610220565b6103386103a3366004612930565b61098b565b6001546bffffffffffffffffffffffff16610207565b6103e46103cc366004612930565b60056020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610220565b610293610407366004612930565b73ffffffffffffffffffffffffffffffffffffffff166000908152600260205260409020546bffffffffffffffffffffffff1690565b610338610998565b61020761045336600461294a565b610a88565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b61029361048d366004612930565b60066020526000908152604090205481565b60085473ffffffffffffffffffffffffffffffffffffffff16610370565b61025f610da0565b6102076104d3366004612930565b610e32565b610207610407366004612930565b6103386104f4366004612973565b610ecf565b600a54610207906bffffffffffffffffffffffff1681565b61033861051f366004612a0f565b6112ba565b6102937fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b610207610559366004612930565b600c602052600090815260409020546bffffffffffffffffffffffff1681565b610207610587366004612a98565b61152c565b6105d561059a3660046129d1565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b6040805163ffffffff90931683526bffffffffffffffffffffffff909116602083015201610220565b61033861060c366004612930565b61165e565b6103707f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260408120548190610677906bffffffffffffffffffffffff1661152c565b90506bffffffffffffffffffffffff8116610696576000915050610714565b61071081600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16604051806060016040528060228152602001612f0c60229139611810565b9150505b919050565b6060610723611880565b905090565b60006107416001546bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905090565b60006107236107a46107736001546bffffffffffffffffffffffff1690565b600a546040805160608101909152602e8082526bffffffffffffffffffffffff90921691612f2e602083013961188f565b6bffffffffffffffffffffffff1661152c565b60026009541415610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600955600061083933610638565b90506bffffffffffffffffffffffff81166108545750610984565b336000908152600c602090815260409182902054825160608101909352603180845261089b936bffffffffffffffffffffffff9092169285929190612f5c9083013961188f565b336000818152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff93909316929092179091556108f09082611900565b61093f73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016336bffffffffffffffffffffffff8416611b4b565b6040516bffffffffffffffffffffffff8216815233907f1f1f3fe51e971f9768a1b748e2a520609176b6de88aa4d9c02ace9fb9177189f9060200160405180910390a2505b6001600955565b6109953382611bdd565b50565b60085473ffffffffffffffffffffffffffffffffffffffff163314610a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b60085460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000438210610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f556e693a3a6765745072696f72566f7465733a206e6f7420796574206465746560448201527f726d696e656400000000000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604090205463ffffffff1680610b54576000915050610d9a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081208491610b86600185612cf5565b63ffffffff90811682526020820192909252604001600020541611610c0c5773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040812090610bd6600184612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff169150610d9a9050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832083805290915290205463ffffffff16831015610c54576000915050610d9a565b600080610c62600184612cf5565b90505b8163ffffffff168163ffffffff161115610d475760006002610c878484612cf5565b610c919190612c7e565b610c9b9083612cf5565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff1691810191909152919250871415610d1b57602001519450610d9a9350505050565b805163ffffffff16871115610d3257819350610d40565b610d3d600183612cf5565b92505b5050610c65565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260046020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff640100000000909104169150505b92915050565b606060078054610daf90612d6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90612d6b565b8015610e285780601f10610dfd57610100808354040283529160200191610e28565b820191906000526020600020905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604081205463ffffffff1680610e6a576000610710565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020526040812090610e9b600184612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff169392505050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666000604051610f019190612af8565b6040518091039020610f104690565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c084015273ffffffffffffffffffffffffffffffffffffffff8b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401909252815191909301207f1901000000000000000000000000000000000000000000000000000000000000610160830152610162820183905261018282018190529192506000906101a201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015611082573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e693a3a64656c656761746542795369673a20696e76616c6964207369676e60448201527f61747572650000000000000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260066020526040812080549161118183612dbf565b919050558914611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f556e693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610820565b874211156112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e693a3a64656c656761746542795369673a207369676e617475726520657860448201527f70697265640000000000000000000000000000000000000000000000000000006064820152608401610820565b6112ad818b611bdd565b505050505b505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b8281146113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c696e65617252656c65617365546f6b656e3a206c656e677468206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152608401610820565b601483111561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c696e65617252656c65617365546f6b656e3a206d617820323020686f6c646560448201527f727320617420696e697469616c20616c6c6f636174696f6e00000000000000006064820152608401610820565b60005b60ff81168411156115255761151385858360ff168181106114a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114bd9190612930565b84848460ff168181106114f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061150e9190612ab0565b611c91565b8061151d81612df8565b91505061145e565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000042108061157b57507f000000000000000000000000000000000000000000000000000000000000000042105b1561158857506000610714565b60006115de7f00000000000000000000000000000000000000000000000000000000000000006115d8427f0000000000000000000000000000000000000000000000000000000000000000611e18565b90611e2e565b90506107106116406116307f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e2e565b61163a8685611e3a565b90611e46565b604051806060016040528060358152602001612fec60359139611e52565b60085473ffffffffffffffffffffffffffffffffffffffff1633146116df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b73ffffffffffffffffffffffffffffffffffffffff8116611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610820565b60085460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff161115829061186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b506118768385612d1a565b90505b9392505050565b606060008054610daf90612d6b565b60008061189c8486612c43565b9050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff16101583906118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f566f74696e67506f7765723a3a5f6275726e566f7465733a2063616e6e6f742060448201527f6275726e2066726f6d20746865207a65726f20616464726573730000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602090815260409182902054825160608101909352602f808452611a00936bffffffffffffffffffffffff9092169285929190612e7790830139611810565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9485161790556001548251606081019093526030808452611a8b9491909116928592909190612fbc90830139611810565b600180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff928316179055604051908216815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff808316600090815260036020526040812054611b4792169083611ea4565b5050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611bd89084906120c9565b505050565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c8b828483611ea4565b50505050565b600a546040805160608101909152602c808252611cc6926bffffffffffffffffffffffff169184916130216020830139611810565b600a80547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff92831617905573ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020908152604091829020548251606081019093526038808452611d519491909116928592909190612ea69083013961188f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff92909216919091179055611dbb82826121d5565b6040516bffffffffffffffffffffffff8216815273ffffffffffffffffffffffffffffffffffffffff8316907fe98c6a9d23f0bdbbdb09b3c484babe625e095c4774eae415a7b1218c739d76529060200160405180910390a25050565b6000818310611e275781611879565b5090919050565b60006118798284612cde565b60006118798284612ca1565b60006118798284612c6a565b6000816c010000000000000000000000008410611e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b509192915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eee57506000816bffffffffffffffffffffffff16115b15611bd85773ffffffffffffffffffffffffffffffffffffffff831615611fe05773ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604081205463ffffffff169081611f48576000611fa7565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812090611f79600185612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b90506000611fce82856040518060600160405280602781526020016130a660279139611810565b9050611fdc8684848461241b565b5050505b73ffffffffffffffffffffffffffffffffffffffff821615611bd85773ffffffffffffffffffffffffffffffffffffffff821660009081526005602052604081205463ffffffff169081612035576000612094565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040812090612066600185612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b905060006120bb828560405180606001604052806026815260200161304d6026913961188f565b90506112b28584848461241b565b600061212b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661269e9092919063ffffffff16565b805190915015611bd857808060200190518101906121499190612a78565b611bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff8216612278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f566f74696e67506f7765723a3a5f6d696e74566f7465733a2063616e6e6f742060448201527f6d696e7420746f20746865207a65726f206164647265737300000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602090815260409182902054825160608101909352602e8084526122d5936bffffffffffffffffffffffff9092169285929190612ede9083013961188f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff948516179055600154825160608101909352602f8084526123609491909116928592909190612f8d9083013961188f565b600180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff928316179055604051908216815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff808316600090815260036020526040812054611b47921683611ea4565b600061243f43604051806060016040528060338152602001613073603391396126ad565b905060008463ffffffff161180156124a6575073ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812063ffffffff83169161248a600188612cf5565b63ffffffff908116825260208201929092526040016000205416145b1561253c5773ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812083916124dd600188612cf5565b63ffffffff168152602081019190915260400160002080546bffffffffffffffffffffffff92909216640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff909216919091179055612637565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000908152600482528681208b8616825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169116179190911790556125de846001612c1b565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790555b604080516bffffffffffffffffffffffff80861682528416602082015273ffffffffffffffffffffffffffffffffffffffff8716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b606061187684846000856126ef565b6000816401000000008410611e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b606082471015612781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610820565b843b6127e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610820565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516128129190612adc565b60006040518083038185875af1925050503d806000811461284f576040519150601f19603f3d011682016040523d82523d6000602084013e612854565b606091505b509150915061286482828661286f565b979650505050505050565b6060831561287e575081611879565b82511561288e5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b803573ffffffffffffffffffffffffffffffffffffffff8116811461071457600080fd5b60008083601f8401126128f7578182fd5b50813567ffffffffffffffff81111561290e578182fd5b6020830191508360208260051b850101111561292957600080fd5b9250929050565b600060208284031215612941578081fd5b611879826128c2565b6000806040838503121561295c578081fd5b612965836128c2565b946020939093013593505050565b60008060008060008060c0878903121561298b578182fd5b612994876128c2565b95506020870135945060408701359350606087013560ff811681146129b7578283fd5b9598949750929560808101359460a0909101359350915050565b600080604083850312156129e3578182fd5b6129ec836128c2565b9150602083013563ffffffff81168114612a04578182fd5b809150509250929050565b60008060008060408587031215612a24578384fd5b843567ffffffffffffffff80821115612a3b578586fd5b612a47888389016128e6565b90965094506020870135915080821115612a5f578384fd5b50612a6c878288016128e6565b95989497509550505050565b600060208284031215612a89578081fd5b81518015158114611879578182fd5b600060208284031215612aa9578081fd5b5035919050565b600060208284031215612ac1578081fd5b81356bffffffffffffffffffffffff81168114611879578182fd5b60008251612aee818460208701612d3f565b9190910192915050565b600080835482600182811c915080831680612b1457607f831692505b6020808410821415612b4d577f4e487b710000000000000000000000000000000000000000000000000000000087526022600452602487fd5b818015612b615760018114612b9057612bbc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650612bbc565b60008a815260209020885b86811015612bb45781548b820152908501908301612b9b565b505084890196505b509498975050505050505050565b6000602082528251806020840152612be9816040850160208701612d3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600063ffffffff808316818516808303821115612c3a57612c3a612e18565b01949350505050565b60006bffffffffffffffffffffffff808316818516808303821115612c3a57612c3a612e18565b600082612c7957612c79612e47565b500490565b600063ffffffff80841680612c9557612c95612e47565b92169190910492915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cd957612cd9612e18565b500290565b600082821015612cf057612cf0612e18565b500390565b600063ffffffff83811690831681811015612d1257612d12612e18565b039392505050565b60006bffffffffffffffffffffffff83811690831681811015612d1257612d12612e18565b60005b83811015612d5a578181015183820152602001612d42565b83811115611c8b5750506000910152565b600181811c90821680612d7f57607f821691505b60208210811415612db9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612df157612df1612e18565b5060010190565b600060ff821660ff811415612e0f57612e0f612e18565b60010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe566f74696e67506f7765723a3a5f6275726e566f7465733a206275726e20616d6f756e7420756e646572666c6f77734c696e65617252656c65617365546f6b656e3a3a5f616c6c6f636174653a20746f74616c20616c6c6f636174696f6e206f766572666c6f77566f74696e67506f7765723a3a5f6d696e74566f7465733a206d696e7420616d6f756e74206f766572666c6f77734c696e65617252656c65617365546f6b656e3a206561726e656420696e76616c69644c696e65617252656c65617365546f6b656e3a3a72656c65617361626c65537570706c793a206f766572666c6f774c696e65617252656c65617365546f6b656e3a3a636c61696d3a20746f74616c20636c61696d6564206f766572666c6f77566f74696e67506f7765723a3a5f6d696e74566f7465733a20746f74616c20737570706c79206f766572666c6f7773566f74696e67506f7765723a3a5f6275726e566f7465733a20746f74616c20737570706c7920756e646572666c6f77734c696e65617252656c65617365546f6b656e3a3a63697263756c6174696e67537570706c793a20696e76616c696420616d6f756e744c696e65617252656c65617365546f6b656e3a3a5f616c6c6f636174653a206f766572616c6c6f6361746564556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773556e693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a2646970667358221220d9a569f51923a4b62d1870a3e84e49567bdcb76076a61d5d18a8584cdb2c9a5864736f6c634300080300338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000e725c326b19828dbedf5b8188ba32e7d0ce6817900000000000000000000000000be915b9dcf56a3cbe739d9b9c202ca692409ec00000000000000000000000000000000000000000015422fcaa92c4176800000000000000000000000000000000000000000000000000000000000006081816000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000066251be0
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063782d6fe11161010f578063df1c455c116100a2578063f0192f5511610071578063f0192f5514610579578063f1127ed81461058c578063f2fde38b146105fe578063fc0c546a14610611576101ef565b8063df1c455c146104f9578063e42c1b2014610511578063e7a324dc14610524578063ef5d9ae81461054b576101ef565b806395d89b41116100de57806395d89b41146104bd578063b4b5ea57146104c5578063c07473f6146104d8578063c3cda520146104e6576101ef565b8063782d6fe11461044557806378e97925146104585780637ecebe001461047f5780638da5cb5b1461049f576101ef565b80633e5ea10a11610187578063671b379311610156578063671b3793146103a85780636fcfff45146103be57806370a08231146103f9578063715018a61461043d576101ef565b80633e5ea10a146103285780634e71d92d14610330578063587cde1e1461033a5780635c19a95c14610395576101ef565b806318160ddd116101c357806318160ddd146102a157806320606b70146102a9578063313ce567146102d05780633197cbb614610301576101ef565b80628cc262146101f457806306375ef21461022957806306fdde0314610257578063160a341e1461026c575b600080fd5b610207610202366004612930565b610638565b6040516bffffffffffffffffffffffff90911681526020015b60405180910390f35b610207610237366004612930565b600b602052600090815260409020546bffffffffffffffffffffffff1681565b61025f610719565b6040516102209190612bca565b6102937f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610220565b610293610728565b6102937f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152602001610220565b6102937f0000000000000000000000000000000000000000000000000000000066251be081565b610207610754565b6103386107b7565b005b610370610348366004612930565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610220565b6103386103a3366004612930565b61098b565b6001546bffffffffffffffffffffffff16610207565b6103e46103cc366004612930565b60056020526000908152604090205463ffffffff1681565b60405163ffffffff9091168152602001610220565b610293610407366004612930565b73ffffffffffffffffffffffffffffffffffffffff166000908152600260205260409020546bffffffffffffffffffffffff1690565b610338610998565b61020761045336600461294a565b610a88565b6102937f000000000000000000000000000000000000000000000000000000006081816081565b61029361048d366004612930565b60066020526000908152604090205481565b60085473ffffffffffffffffffffffffffffffffffffffff16610370565b61025f610da0565b6102076104d3366004612930565b610e32565b610207610407366004612930565b6103386104f4366004612973565b610ecf565b600a54610207906bffffffffffffffffffffffff1681565b61033861051f366004612a0f565b6112ba565b6102937fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b610207610559366004612930565b600c602052600090815260409020546bffffffffffffffffffffffff1681565b610207610587366004612a98565b61152c565b6105d561059a3660046129d1565b600460209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b6040805163ffffffff90931683526bffffffffffffffffffffffff909116602083015201610220565b61033861060c366004612930565b61165e565b6103707f00000000000000000000000000be915b9dcf56a3cbe739d9b9c202ca692409ec81565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260408120548190610677906bffffffffffffffffffffffff1661152c565b90506bffffffffffffffffffffffff8116610696576000915050610714565b61071081600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16604051806060016040528060228152602001612f0c60229139611810565b9150505b919050565b6060610723611880565b905090565b60006107416001546bffffffffffffffffffffffff1690565b6bffffffffffffffffffffffff16905090565b60006107236107a46107736001546bffffffffffffffffffffffff1690565b600a546040805160608101909152602e8082526bffffffffffffffffffffffff90921691612f2e602083013961188f565b6bffffffffffffffffffffffff1661152c565b60026009541415610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600955600061083933610638565b90506bffffffffffffffffffffffff81166108545750610984565b336000908152600c602090815260409182902054825160608101909352603180845261089b936bffffffffffffffffffffffff9092169285929190612f5c9083013961188f565b336000818152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff93909316929092179091556108f09082611900565b61093f73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000be915b9dcf56a3cbe739d9b9c202ca692409ec16336bffffffffffffffffffffffff8416611b4b565b6040516bffffffffffffffffffffffff8216815233907f1f1f3fe51e971f9768a1b748e2a520609176b6de88aa4d9c02ace9fb9177189f9060200160405180910390a2505b6001600955565b6109953382611bdd565b50565b60085473ffffffffffffffffffffffffffffffffffffffff163314610a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b60085460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6000438210610b19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f556e693a3a6765745072696f72566f7465733a206e6f7420796574206465746560448201527f726d696e656400000000000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604090205463ffffffff1680610b54576000915050610d9a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081208491610b86600185612cf5565b63ffffffff90811682526020820192909252604001600020541611610c0c5773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040812090610bd6600184612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff169150610d9a9050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832083805290915290205463ffffffff16831015610c54576000915050610d9a565b600080610c62600184612cf5565b90505b8163ffffffff168163ffffffff161115610d475760006002610c878484612cf5565b610c919190612c7e565b610c9b9083612cf5565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260046020908152604080832063ffffffff8581168552908352928190208151808301909252549283168082526401000000009093046bffffffffffffffffffffffff1691810191909152919250871415610d1b57602001519450610d9a9350505050565b805163ffffffff16871115610d3257819350610d40565b610d3d600183612cf5565b92505b5050610c65565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260046020908152604080832063ffffffff909416835292905220546bffffffffffffffffffffffff640100000000909104169150505b92915050565b606060078054610daf90612d6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90612d6b565b8015610e285780601f10610dfd57610100808354040283529160200191610e28565b820191906000526020600020905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604081205463ffffffff1680610e6a576000610710565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260046020526040812090610e9b600184612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff169392505050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666000604051610f019190612af8565b6040518091039020610f104690565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c084015273ffffffffffffffffffffffffffffffffffffffff8b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401909252815191909301207f1901000000000000000000000000000000000000000000000000000000000000610160830152610162820183905261018282018190529192506000906101a201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff8a169284019290925260608301889052608083018790529092509060019060a0016020604051602081039080840390855afa158015611082573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e693a3a64656c656761746542795369673a20696e76616c6964207369676e60448201527f61747572650000000000000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260066020526040812080549161118183612dbf565b919050558914611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f556e693a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610820565b874211156112a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f556e693a3a64656c656761746542795369673a207369676e617475726520657860448201527f70697265640000000000000000000000000000000000000000000000000000006064820152608401610820565b6112ad818b611bdd565b505050505b505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b8281146113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4c696e65617252656c65617365546f6b656e3a206c656e677468206d69736d6160448201527f74636800000000000000000000000000000000000000000000000000000000006064820152608401610820565b601483111561145b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c696e65617252656c65617365546f6b656e3a206d617820323020686f6c646560448201527f727320617420696e697469616c20616c6c6f636174696f6e00000000000000006064820152608401610820565b60005b60ff81168411156115255761151385858360ff168181106114a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906114bd9190612930565b84848460ff168181106114f9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061150e9190612ab0565b611c91565b8061151d81612df8565b91505061145e565b5050505050565b60007f000000000000000000000000000000000000000000000000000000006081816042108061157b57507f000000000000000000000000000000000000000000000000000000000000000042105b1561158857506000610714565b60006115de7f00000000000000000000000000000000000000000000000000000000608181606115d8427f0000000000000000000000000000000000000000000000000000000066251be0611e18565b90611e2e565b90506107106116406116307f0000000000000000000000000000000000000000000000000000000066251be07f0000000000000000000000000000000000000000000000000000000060818160611e2e565b61163a8685611e3a565b90611e46565b604051806060016040528060358152602001612fec60359139611e52565b60085473ffffffffffffffffffffffffffffffffffffffff1633146116df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610820565b73ffffffffffffffffffffffffffffffffffffffff8116611782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610820565b60085460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff161115829061186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b506118768385612d1a565b90505b9392505050565b606060008054610daf90612d6b565b60008061189c8486612c43565b9050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff16101583906118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff82166119a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f566f74696e67506f7765723a3a5f6275726e566f7465733a2063616e6e6f742060448201527f6275726e2066726f6d20746865207a65726f20616464726573730000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602090815260409182902054825160608101909352602f808452611a00936bffffffffffffffffffffffff9092169285929190612e7790830139611810565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff9485161790556001548251606081019093526030808452611a8b9491909116928592909190612fbc90830139611810565b600180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff928316179055604051908216815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff808316600090815260036020526040812054611b4792169083611ea4565b5050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611bd89084906120c9565b505050565b73ffffffffffffffffffffffffffffffffffffffff808316600081815260036020818152604080842080546002845282862054949093528787167fffffffffffffffffffffffff000000000000000000000000000000000000000084168117909155905191909516946bffffffffffffffffffffffff9092169391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c8b828483611ea4565b50505050565b600a546040805160608101909152602c808252611cc6926bffffffffffffffffffffffff169184916130216020830139611810565b600a80547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff92831617905573ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020908152604091829020548251606081019093526038808452611d519491909116928592909190612ea69083013961188f565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff92909216919091179055611dbb82826121d5565b6040516bffffffffffffffffffffffff8216815273ffffffffffffffffffffffffffffffffffffffff8316907fe98c6a9d23f0bdbbdb09b3c484babe625e095c4774eae415a7b1218c739d76529060200160405180910390a25050565b6000818310611e275781611879565b5090919050565b60006118798284612cde565b60006118798284612ca1565b60006118798284612c6a565b6000816c010000000000000000000000008410611e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b509192915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eee57506000816bffffffffffffffffffffffff16115b15611bd85773ffffffffffffffffffffffffffffffffffffffff831615611fe05773ffffffffffffffffffffffffffffffffffffffff831660009081526005602052604081205463ffffffff169081611f48576000611fa7565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812090611f79600185612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b90506000611fce82856040518060600160405280602781526020016130a660279139611810565b9050611fdc8684848461241b565b5050505b73ffffffffffffffffffffffffffffffffffffffff821615611bd85773ffffffffffffffffffffffffffffffffffffffff821660009081526005602052604081205463ffffffff169081612035576000612094565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260046020526040812090612066600185612cf5565b63ffffffff16815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b905060006120bb828560405180606001604052806026815260200161304d6026913961188f565b90506112b28584848461241b565b600061212b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661269e9092919063ffffffff16565b805190915015611bd857808060200190518101906121499190612a78565b611bd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff8216612278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f566f74696e67506f7765723a3a5f6d696e74566f7465733a2063616e6e6f742060448201527f6d696e7420746f20746865207a65726f206164647265737300000000000000006064820152608401610820565b73ffffffffffffffffffffffffffffffffffffffff821660009081526002602090815260409182902054825160608101909352602e8084526122d5936bffffffffffffffffffffffff9092169285929190612ede9083013961188f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff948516179055600154825160608101909352602f8084526123609491909116928592909190612f8d9083013961188f565b600180547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff928316179055604051908216815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff808316600090815260036020526040812054611b47921683611ea4565b600061243f43604051806060016040528060338152602001613073603391396126ad565b905060008463ffffffff161180156124a6575073ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812063ffffffff83169161248a600188612cf5565b63ffffffff908116825260208201929092526040016000205416145b1561253c5773ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812083916124dd600188612cf5565b63ffffffff168152602081019190915260400160002080546bffffffffffffffffffffffff92909216640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000ffffffff909216919091179055612637565b60408051808201825263ffffffff80841682526bffffffffffffffffffffffff808616602080850191825273ffffffffffffffffffffffffffffffffffffffff8b166000908152600482528681208b8616825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009094169116179190911790556125de846001612c1b565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260056020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff929092169190911790555b604080516bffffffffffffffffffffffff80861682528416602082015273ffffffffffffffffffffffffffffffffffffffff8716917fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724910160405180910390a25050505050565b606061187684846000856126ef565b6000816401000000008410611e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b606082471015612781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610820565b843b6127e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610820565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516128129190612adc565b60006040518083038185875af1925050503d806000811461284f576040519150601f19603f3d011682016040523d82523d6000602084013e612854565b606091505b509150915061286482828661286f565b979650505050505050565b6060831561287e575081611879565b82511561288e5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108209190612bca565b803573ffffffffffffffffffffffffffffffffffffffff8116811461071457600080fd5b60008083601f8401126128f7578182fd5b50813567ffffffffffffffff81111561290e578182fd5b6020830191508360208260051b850101111561292957600080fd5b9250929050565b600060208284031215612941578081fd5b611879826128c2565b6000806040838503121561295c578081fd5b612965836128c2565b946020939093013593505050565b60008060008060008060c0878903121561298b578182fd5b612994876128c2565b95506020870135945060408701359350606087013560ff811681146129b7578283fd5b9598949750929560808101359460a0909101359350915050565b600080604083850312156129e3578182fd5b6129ec836128c2565b9150602083013563ffffffff81168114612a04578182fd5b809150509250929050565b60008060008060408587031215612a24578384fd5b843567ffffffffffffffff80821115612a3b578586fd5b612a47888389016128e6565b90965094506020870135915080821115612a5f578384fd5b50612a6c878288016128e6565b95989497509550505050565b600060208284031215612a89578081fd5b81518015158114611879578182fd5b600060208284031215612aa9578081fd5b5035919050565b600060208284031215612ac1578081fd5b81356bffffffffffffffffffffffff81168114611879578182fd5b60008251612aee818460208701612d3f565b9190910192915050565b600080835482600182811c915080831680612b1457607f831692505b6020808410821415612b4d577f4e487b710000000000000000000000000000000000000000000000000000000087526022600452602487fd5b818015612b615760018114612b9057612bbc565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00861689528489019650612bbc565b60008a815260209020885b86811015612bb45781548b820152908501908301612b9b565b505084890196505b509498975050505050505050565b6000602082528251806020840152612be9816040850160208701612d3f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600063ffffffff808316818516808303821115612c3a57612c3a612e18565b01949350505050565b60006bffffffffffffffffffffffff808316818516808303821115612c3a57612c3a612e18565b600082612c7957612c79612e47565b500490565b600063ffffffff80841680612c9557612c95612e47565b92169190910492915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612cd957612cd9612e18565b500290565b600082821015612cf057612cf0612e18565b500390565b600063ffffffff83811690831681811015612d1257612d12612e18565b039392505050565b60006bffffffffffffffffffffffff83811690831681811015612d1257612d12612e18565b60005b83811015612d5a578181015183820152602001612d42565b83811115611c8b5750506000910152565b600181811c90821680612d7f57607f821691505b60208210811415612db9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612df157612df1612e18565b5060010190565b600060ff821660ff811415612e0f57612e0f612e18565b60010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe566f74696e67506f7765723a3a5f6275726e566f7465733a206275726e20616d6f756e7420756e646572666c6f77734c696e65617252656c65617365546f6b656e3a3a5f616c6c6f636174653a20746f74616c20616c6c6f636174696f6e206f766572666c6f77566f74696e67506f7765723a3a5f6d696e74566f7465733a206d696e7420616d6f756e74206f766572666c6f77734c696e65617252656c65617365546f6b656e3a206561726e656420696e76616c69644c696e65617252656c65617365546f6b656e3a3a72656c65617361626c65537570706c793a206f766572666c6f774c696e65617252656c65617365546f6b656e3a3a636c61696d3a20746f74616c20636c61696d6564206f766572666c6f77566f74696e67506f7765723a3a5f6d696e74566f7465733a20746f74616c20737570706c79206f766572666c6f7773566f74696e67506f7765723a3a5f6275726e566f7465733a20746f74616c20737570706c7920756e646572666c6f77734c696e65617252656c65617365546f6b656e3a3a63697263756c6174696e67537570706c793a20696e76616c696420616d6f756e744c696e65617252656c65617365546f6b656e3a3a5f616c6c6f636174653a206f766572616c6c6f6361746564556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f7773556e693a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473556e693a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773a2646970667358221220d9a569f51923a4b62d1870a3e84e49567bdcb76076a61d5d18a8584cdb2c9a5864736f6c63430008030033