Contract details
0x89cd0A0a1cD408A430904088C64CEeB83072AA36
Contract name
SmartChefInitializable
Creator
Balance
0 LOOP($0)
Tokens
Net worth
$0.00
Transactions
Transfers
Gas used
171,053
Last balance update
Contract Source Code Verified (Exact Match)
Contract name
SmartChefInitializable
Compiler version
v0.6.12+commit.27d51765
EVM version
default
Optimization enabled
true
Optimization runs
200
Verified at
Apr 02 2023 09:13:25 AM (+00:00 UTC)
Contract source code (solidity)
View UML diagram
Loading data, please wait...
Contract ABI
[
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "tokenRecovered",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "AdminTokenRecovery",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "poolLimitPerUser",
"type": "uint256"
}
],
"name": "NewPoolLimit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "rewardPerBlock",
"type": "uint256"
}
],
"name": "NewRewardPerBlock",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "startBlock",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "endBlock",
"type": "uint256"
}
],
"name": "NewStartAndEndBlocks",
"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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RewardsStop",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [],
"name": "PRECISION_FACTOR",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SMART_CHEF_FACTORY",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "accTokenPerShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "bonusEndBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "devFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "devaddr",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "emergencyRewardWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "emergencyWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "_stakedToken",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "_rewardToken",
"type": "address"
},
{
"internalType": "address",
"name": "_devaddr",
"type": "address"
},
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_bonusEndBlock",
"type": "uint256"
},
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastRewardBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "pendingReward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenAmount",
"type": "uint256"
}
],
"name": "recoverWrongTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_devaddr",
"type": "address"
}
],
"name": "setDevAddr",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newFee",
"type": "uint256"
}
],
"name": "setDevFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakedToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stopReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
}
],
"name": "updateRewardPerBlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userInfo",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardDebt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Contract creation code
0x60806040526002600c5534801561001557600080fd5b506000610020610085565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055600280546001600160a01b03191633179055610089565b3390565b6118c1806100986000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638754bbc6116100f9578063cc7a262e11610097578063db2e21bc11610071578063db2e21bc146103d6578063f2fde38b146103de578063f40f0f5214610404578063f7c618c11461042a576101a9565b8063cc7a262e146103be578063ccd34cd5146103c6578063d49e77cd146103ce576101a9565b80638f662915116100d35780638f66291514610389578063a9f8d18114610391578063b6b55f2514610399578063bd617191146103b6576101a9565b80638754bbc61461030b5780638ae39cac1461035d5780638da5cb5b14610365576101a9565b8063392e53cd116101665780636827e764116101405780636827e764146102cd5780636ebb64a2146102d5578063715018a6146102fb57806380dc067214610303576101a9565b8063392e53cd1461027d5780633f138d4b1461029957806348cd4cb1146102c5576101a9565b806301f8a976146101ae5780631959a002146101cd5780631aed65531461020c5780631c75b6b2146102265780632e1a7d4d146102435780633279beab14610260575b600080fd5b6101cb600480360360208110156101c457600080fd5b5035610432565b005b6101f3600480360360208110156101e357600080fd5b50356001600160a01b03166104cf565b6040805192835260208301919091528051918290030190f35b6102146104e8565b60408051918252519081900360200190f35b6101cb6004803603602081101561023c57600080fd5b50356104ee565b6101cb6004803603602081101561025957600080fd5b5035610555565b6101cb6004803603602081101561027657600080fd5b503561073d565b6102856107b9565b604080519115158252519081900360200190f35b6101cb600480360360408110156102af57600080fd5b506001600160a01b0381351690602001356107c9565b61021461093f565b610214610945565b6101cb600480360360208110156102eb57600080fd5b50356001600160a01b031661094b565b6101cb6109cf565b6101cb610a7b565b6101cb600480360360e081101561032157600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359160808201359160a08101359160c09091013516610ae3565b610214610cc9565b61036d610ccf565b604080516001600160a01b039092168252519081900360200190f35b610214610cde565b610214610ce4565b6101cb600480360360208110156103af57600080fd5b5035610cea565b61036d610e35565b61036d610e44565b610214610e53565b61036d610e59565b6101cb610e68565b6101cb600480360360208110156103f457600080fd5b50356001600160a01b0316610f3f565b6102146004803603602081101561041a57600080fd5b50356001600160a01b0316611041565b61036d611198565b61043a6111a7565b6001600160a01b031661044b610ccf565b6001600160a01b031614610494576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b60078190556040805182815290517f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df9181900360200190a150565b600d602052600090815260409020805460019091015482565b60045481565b6104f66111a7565b6001600160a01b0316610507610ccf565b6001600160a01b031614610550576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600c55565b600260015414156105ad576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155336000908152600d602052604090208054821115610617576040805162461bcd60e51b815260206004820152601b60248201527f416d6f756e7420746f20776974686472617720746f6f20686967680000000000604482015290519081900360640190fd5b61061f6111ab565b6000610654826001015461064e600854610648600354876000015461129390919063ffffffff16565b906112f5565b9061135c565b905082156106c5578154610668908461135c565b8255600c5460009061068290606490610648908790611293565b600b54600a549192506106a2916001600160a01b039081169116836113b9565b6106c3336106b0868461135c565b600a546001600160a01b031691906113b9565b505b80156106e2576009546106e2906001600160a01b031633836113b9565b60085460035483546106f992916106489190611293565b600183015560408051848152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250506001805550565b6107456111a7565b6001600160a01b0316610756610ccf565b6001600160a01b03161461079f576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b6009546107b6906001600160a01b031633836113b9565b50565b600254600160a01b900460ff1681565b6107d16111a7565b6001600160a01b03166107e2610ccf565b6001600160a01b03161461082b576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600a546001600160a01b0383811691161415610887576040805162461bcd60e51b815260206004820152601660248201527521b0b73737ba1031329039ba30b5b2b2103a37b5b2b760511b604482015290519081900360640190fd5b6009546001600160a01b03838116911614156108e3576040805162461bcd60e51b815260206004820152601660248201527521b0b73737ba103132903932bbb0b932103a37b5b2b760511b604482015290519081900360640190fd5b6108f76001600160a01b03831633836113b9565b604080516001600160a01b03841681526020810183905281517f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab78129929181900390910190a15050565b60055481565b600c5481565b6109536111a7565b6001600160a01b0316610964610ccf565b6001600160a01b0316146109ad576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6109d76111a7565b6001600160a01b03166109e8610ccf565b6001600160a01b031614610a31576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610a836111a7565b6001600160a01b0316610a94610ccf565b6001600160a01b031614610add576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b43600455565b600254600160a01b900460ff1615610b38576040805162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b6002546001600160a01b03163314610b85576040805162461bcd60e51b815260206004820152600b60248201526a4e6f7420666163746f727960a81b604482015290519081900360640190fd5b6002805460ff60a01b1916600160a01b179055600a80546001600160a01b03808a166001600160a01b031992831617909255600980548984169083161790819055600b80548985169316929092179091556007869055600585905560048481556040805163313ce56760e01b81529051600094939093169263313ce56792828101926020929190829003018186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d6020811015610c4a57600080fd5b505160ff169050601e8110610c9f576040805162461bcd60e51b815260206004820152601660248201527504d75737420626520696e666572696f7220746f2033360541b604482015290519081900360640190fd5b610caa601e8261135c565b600a0a600855600554600655610cbf82610f3f565b5050505050505050565b60075481565b6000546001600160a01b031690565b60035481565b60065481565b60026001541415610d42576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155336000908152600d60205260409020610d5e6111ab565b805415610daf576000610d8e826001015461064e600854610648600354876000015461129390919063ffffffff16565b90508015610dad57600954610dad906001600160a01b031633836113b9565b505b8115610ddb578054610dc19083611410565b8155600a54610ddb906001600160a01b031633308561146a565b6008546003548254610df292916106489190611293565b600182015560408051838152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a2505060018055565b6002546001600160a01b031681565b600a546001600160a01b031681565b60085481565b600b546001600160a01b031681565b60026001541415610ec0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001908155336000908152600d60205260408120805482825592810191909155908015610f0057600a54610f00906001600160a01b031633836113b9565b8154604080519182525133917f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695919081900360200190a2505060018055565b610f476111a7565b6001600160a01b0316610f58610ccf565b6001600160a01b031614610fa1576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b6001600160a01b038116610fe65760405162461bcd60e51b81526004018080602001828103825260268152602001806117d56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038082166000908152600d60209081526040808320600a5482516370a0823160e01b8152306004820152925194959194869491909216926370a082319260248083019392829003018186803b1580156110a057600080fd5b505afa1580156110b4573d6000803e3d6000fd5b505050506040513d60208110156110ca57600080fd5b5051600654909150431180156110df57508015155b156111675760006110f2600654436114ca565b9050600061110b6007548361129390919063ffffffff16565b9050600061113461112b856106486008548661129390919063ffffffff16565b60035490611410565b905061115b856001015461064e600854610648858a6000015461129390919063ffffffff16565b95505050505050611193565b61118e826001015461064e600854610648600354876000015461129390919063ffffffff16565b925050505b919050565b6009546001600160a01b031681565b3390565b60065443116111b957611291565b600a54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561120457600080fd5b505afa158015611218573d6000803e3d6000fd5b505050506040513d602081101561122e57600080fd5b5051905080611241575043600655611291565b600061124f600654436114ca565b905060006112686007548361129390919063ffffffff16565b905061128661112b846106486008548561129390919063ffffffff16565b600355505043600655505b565b6000826112a2575060006112ef565b828202828482816112af57fe5b04146112ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806118216021913960400191505060405180910390fd5b90505b92915050565b600080821161134b576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161135457fe5b049392505050565b6000828211156113b3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261140b908490611504565b505050565b6000828201838110156112ec576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526114c4908590611504565b50505050565b600060045482116114e6576114df828461135c565b90506112ef565b60045483106114f7575060006112ef565b6004546114df908461135c565b6060611559826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115b59092919063ffffffff16565b80519091501561140b5780806020019051602081101561157857600080fd5b505161140b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611862602a913960400191505060405180910390fd5b60606115c484846000856115ce565b90505b9392505050565b60608247101561160f5760405162461bcd60e51b81526004018080602001828103825260268152602001806117fb6026913960400191505060405180910390fd5b6116188561172a565b611669576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106116a85780518252601f199092019160209182019101611689565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b509150915061171f828286611730565b979650505050505050565b3b151590565b6060831561173f5750816115c7565b82511561174f5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611799578181015183820152602001611781565b50505050905090810190601f1680156117c65780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212201f0423e8f0699ae126cb535b65f40daa1579419ac82703af305ccb5b0a9a227964736f6c634300060c0033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80638754bbc6116100f9578063cc7a262e11610097578063db2e21bc11610071578063db2e21bc146103d6578063f2fde38b146103de578063f40f0f5214610404578063f7c618c11461042a576101a9565b8063cc7a262e146103be578063ccd34cd5146103c6578063d49e77cd146103ce576101a9565b80638f662915116100d35780638f66291514610389578063a9f8d18114610391578063b6b55f2514610399578063bd617191146103b6576101a9565b80638754bbc61461030b5780638ae39cac1461035d5780638da5cb5b14610365576101a9565b8063392e53cd116101665780636827e764116101405780636827e764146102cd5780636ebb64a2146102d5578063715018a6146102fb57806380dc067214610303576101a9565b8063392e53cd1461027d5780633f138d4b1461029957806348cd4cb1146102c5576101a9565b806301f8a976146101ae5780631959a002146101cd5780631aed65531461020c5780631c75b6b2146102265780632e1a7d4d146102435780633279beab14610260575b600080fd5b6101cb600480360360208110156101c457600080fd5b5035610432565b005b6101f3600480360360208110156101e357600080fd5b50356001600160a01b03166104cf565b6040805192835260208301919091528051918290030190f35b6102146104e8565b60408051918252519081900360200190f35b6101cb6004803603602081101561023c57600080fd5b50356104ee565b6101cb6004803603602081101561025957600080fd5b5035610555565b6101cb6004803603602081101561027657600080fd5b503561073d565b6102856107b9565b604080519115158252519081900360200190f35b6101cb600480360360408110156102af57600080fd5b506001600160a01b0381351690602001356107c9565b61021461093f565b610214610945565b6101cb600480360360208110156102eb57600080fd5b50356001600160a01b031661094b565b6101cb6109cf565b6101cb610a7b565b6101cb600480360360e081101561032157600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359160808201359160a08101359160c09091013516610ae3565b610214610cc9565b61036d610ccf565b604080516001600160a01b039092168252519081900360200190f35b610214610cde565b610214610ce4565b6101cb600480360360208110156103af57600080fd5b5035610cea565b61036d610e35565b61036d610e44565b610214610e53565b61036d610e59565b6101cb610e68565b6101cb600480360360208110156103f457600080fd5b50356001600160a01b0316610f3f565b6102146004803603602081101561041a57600080fd5b50356001600160a01b0316611041565b61036d611198565b61043a6111a7565b6001600160a01b031661044b610ccf565b6001600160a01b031614610494576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b60078190556040805182815290517f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df9181900360200190a150565b600d602052600090815260409020805460019091015482565b60045481565b6104f66111a7565b6001600160a01b0316610507610ccf565b6001600160a01b031614610550576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600c55565b600260015414156105ad576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155336000908152600d602052604090208054821115610617576040805162461bcd60e51b815260206004820152601b60248201527f416d6f756e7420746f20776974686472617720746f6f20686967680000000000604482015290519081900360640190fd5b61061f6111ab565b6000610654826001015461064e600854610648600354876000015461129390919063ffffffff16565b906112f5565b9061135c565b905082156106c5578154610668908461135c565b8255600c5460009061068290606490610648908790611293565b600b54600a549192506106a2916001600160a01b039081169116836113b9565b6106c3336106b0868461135c565b600a546001600160a01b031691906113b9565b505b80156106e2576009546106e2906001600160a01b031633836113b9565b60085460035483546106f992916106489190611293565b600183015560408051848152905133917f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364919081900360200190a250506001805550565b6107456111a7565b6001600160a01b0316610756610ccf565b6001600160a01b03161461079f576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b6009546107b6906001600160a01b031633836113b9565b50565b600254600160a01b900460ff1681565b6107d16111a7565b6001600160a01b03166107e2610ccf565b6001600160a01b03161461082b576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600a546001600160a01b0383811691161415610887576040805162461bcd60e51b815260206004820152601660248201527521b0b73737ba1031329039ba30b5b2b2103a37b5b2b760511b604482015290519081900360640190fd5b6009546001600160a01b03838116911614156108e3576040805162461bcd60e51b815260206004820152601660248201527521b0b73737ba103132903932bbb0b932103a37b5b2b760511b604482015290519081900360640190fd5b6108f76001600160a01b03831633836113b9565b604080516001600160a01b03841681526020810183905281517f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab78129929181900390910190a15050565b60055481565b600c5481565b6109536111a7565b6001600160a01b0316610964610ccf565b6001600160a01b0316146109ad576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6109d76111a7565b6001600160a01b03166109e8610ccf565b6001600160a01b031614610a31576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610a836111a7565b6001600160a01b0316610a94610ccf565b6001600160a01b031614610add576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b43600455565b600254600160a01b900460ff1615610b38576040805162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b6002546001600160a01b03163314610b85576040805162461bcd60e51b815260206004820152600b60248201526a4e6f7420666163746f727960a81b604482015290519081900360640190fd5b6002805460ff60a01b1916600160a01b179055600a80546001600160a01b03808a166001600160a01b031992831617909255600980548984169083161790819055600b80548985169316929092179091556007869055600585905560048481556040805163313ce56760e01b81529051600094939093169263313ce56792828101926020929190829003018186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d6020811015610c4a57600080fd5b505160ff169050601e8110610c9f576040805162461bcd60e51b815260206004820152601660248201527504d75737420626520696e666572696f7220746f2033360541b604482015290519081900360640190fd5b610caa601e8261135c565b600a0a600855600554600655610cbf82610f3f565b5050505050505050565b60075481565b6000546001600160a01b031690565b60035481565b60065481565b60026001541415610d42576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155336000908152600d60205260409020610d5e6111ab565b805415610daf576000610d8e826001015461064e600854610648600354876000015461129390919063ffffffff16565b90508015610dad57600954610dad906001600160a01b031633836113b9565b505b8115610ddb578054610dc19083611410565b8155600a54610ddb906001600160a01b031633308561146a565b6008546003548254610df292916106489190611293565b600182015560408051838152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a2505060018055565b6002546001600160a01b031681565b600a546001600160a01b031681565b60085481565b600b546001600160a01b031681565b60026001541415610ec0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001908155336000908152600d60205260408120805482825592810191909155908015610f0057600a54610f00906001600160a01b031633836113b9565b8154604080519182525133917f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695919081900360200190a2505060018055565b610f476111a7565b6001600160a01b0316610f58610ccf565b6001600160a01b031614610fa1576040805162461bcd60e51b81526020600482018190526024820152600080516020611842833981519152604482015290519081900360640190fd5b6001600160a01b038116610fe65760405162461bcd60e51b81526004018080602001828103825260268152602001806117d56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038082166000908152600d60209081526040808320600a5482516370a0823160e01b8152306004820152925194959194869491909216926370a082319260248083019392829003018186803b1580156110a057600080fd5b505afa1580156110b4573d6000803e3d6000fd5b505050506040513d60208110156110ca57600080fd5b5051600654909150431180156110df57508015155b156111675760006110f2600654436114ca565b9050600061110b6007548361129390919063ffffffff16565b9050600061113461112b856106486008548661129390919063ffffffff16565b60035490611410565b905061115b856001015461064e600854610648858a6000015461129390919063ffffffff16565b95505050505050611193565b61118e826001015461064e600854610648600354876000015461129390919063ffffffff16565b925050505b919050565b6009546001600160a01b031681565b3390565b60065443116111b957611291565b600a54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561120457600080fd5b505afa158015611218573d6000803e3d6000fd5b505050506040513d602081101561122e57600080fd5b5051905080611241575043600655611291565b600061124f600654436114ca565b905060006112686007548361129390919063ffffffff16565b905061128661112b846106486008548561129390919063ffffffff16565b600355505043600655505b565b6000826112a2575060006112ef565b828202828482816112af57fe5b04146112ec5760405162461bcd60e51b81526004018080602001828103825260218152602001806118216021913960400191505060405180910390fd5b90505b92915050565b600080821161134b576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161135457fe5b049392505050565b6000828211156113b3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261140b908490611504565b505050565b6000828201838110156112ec576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526114c4908590611504565b50505050565b600060045482116114e6576114df828461135c565b90506112ef565b60045483106114f7575060006112ef565b6004546114df908461135c565b6060611559826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166115b59092919063ffffffff16565b80519091501561140b5780806020019051602081101561157857600080fd5b505161140b5760405162461bcd60e51b815260040180806020018281038252602a815260200180611862602a913960400191505060405180910390fd5b60606115c484846000856115ce565b90505b9392505050565b60608247101561160f5760405162461bcd60e51b81526004018080602001828103825260268152602001806117fb6026913960400191505060405180910390fd5b6116188561172a565b611669576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106116a85780518252601f199092019160209182019101611689565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b509150915061171f828286611730565b979650505050505050565b3b151590565b6060831561173f5750816115c7565b82511561174f5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611799578181015183820152602001611781565b50505050905090810190601f1680156117c65780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212201f0423e8f0699ae126cb535b65f40daa1579419ac82703af305ccb5b0a9a227964736f6c634300060c0033