false
false

Contract Address Details

0x355f45dA085FC5fCD55b2b6bC991c773a1fe80a6

Contract Name
AccessControlledSKCSAggregator
Creator
0x7b11d3–9d29aa at 0x34fd7f–adfa5e
Balance
0 KCS
Tokens
Fetching tokens...
Transactions
2 Transactions
Transfers
0 Transfers
Gas Used
94,986
Last Balance Update
40669830
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
AccessControlledSKCSAggregator




Optimization enabled
true
Compiler version
v0.7.6+commit.7338295f




Optimization runs
20000
EVM Version
default




Verified at
2022-07-28T08:49:50.678840Z

Constructor Arguments

00000000000000000000000000ee2d494258d6c5a30d6b6472a09b27121ef451000000000000000000000000afc9c849b1a784955908d91ee43a3203fbc1f9500000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000010a741a462780000

Arg [0] (address) : 0x00ee2d494258d6c5a30d6b6472a09b27121ef451
Arg [1] (address) : 0xafc9c849b1a784955908d91ee43a3203fbc1f950
Arg [2] (uint256) : 1000000000000000000
Arg [3] (uint256) : 1200000000000000000

              

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
interface SKCSInterface {
/// @notice exchange rate of from KCS to sKCS
/// @return num is the amount of total KCS in protocol
/// @return dem is the total supply of sKCS
function exchangeRate() external view returns (uint256 num, uint256 dem);
}
// File contracts/interfaces/AggregatorInterface.sol
interface AggregatorInterface {
function latestAnswer() external view returns (int256);
function latestTimestamp() external view returns (uint256);
function latestRound() external view returns (uint256);
function getAnswer(uint256 roundId) external view returns (int256);
function getTimestamp(uint256 roundId) external view returns (uint256);
event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);
event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);
}
// File contracts/interfaces/AggregatorV3Interface.sol
interface AggregatorV3Interface {
function decimals() external view returns (uint8);
function description() external view returns (string memory);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_skcs","internalType":"contract SKCSInterface"},{"type":"address","name":"_kcsUsdAggregator","internalType":"contract AggregatorV2V3Interface"},{"type":"uint256","name":"_lowerBoundExchangeRate","internalType":"uint256"},{"type":"uint256","name":"_upperBoundExchangeRate","internalType":"uint256"}]},{"type":"event","name":"AddedAccess","inputs":[{"type":"address","name":"user","internalType":"address","indexed":false}],"anonymous":false},{"type":"event","name":"AnswerUpdated","inputs":[{"type":"int256","name":"current","internalType":"int256","indexed":true},{"type":"uint256","name":"roundId","internalType":"uint256","indexed":true},{"type":"uint256","name":"updatedAt","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"CheckAccessDisabled","inputs":[],"anonymous":false},{"type":"event","name":"CheckAccessEnabled","inputs":[],"anonymous":false},{"type":"event","name":"ExchangeRateRangeUpdated","inputs":[{"type":"uint256","name":"lowerBoundExchangeRate","internalType":"uint256","indexed":false},{"type":"uint256","name":"upperBoundExchangeRate","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"NewRound","inputs":[{"type":"uint256","name":"roundId","internalType":"uint256","indexed":true},{"type":"address","name":"startedBy","internalType":"address","indexed":true},{"type":"uint256","name":"startedAt","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"NewSKCSUpdated","inputs":[{"type":"address","name":"oldSKCS","internalType":"contract SKCSInterface","indexed":false},{"type":"address","name":"newSKCS","internalType":"contract SKCSInterface","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferRequested","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"RemovedAccess","inputs":[{"type":"address","name":"user","internalType":"address","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"_setExchangeRateRange","inputs":[{"type":"uint256","name":"_lowerBoundExchangeRate","internalType":"uint256"},{"type":"uint256","name":"_upperBoundExchangeRate","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"_setNewSKCS","inputs":[{"type":"address","name":"_newSKCS","internalType":"contract SKCSInterface"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"acceptOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"addAccess","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"checkEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"description","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"disableAccessCheck","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"enableAccessCheck","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"exchangeRateCurrent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"int256","name":"","internalType":"int256"}],"name":"getAnswer","inputs":[{"type":"uint256","name":"_roundId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint80","name":"roundId","internalType":"uint80"},{"type":"int256","name":"answer","internalType":"int256"},{"type":"uint256","name":"startedAt","internalType":"uint256"},{"type":"uint256","name":"updatedAt","internalType":"uint256"},{"type":"uint80","name":"answeredInRound","internalType":"uint80"}],"name":"getRoundData","inputs":[{"type":"uint80","name":"_roundId","internalType":"uint80"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getTimestamp","inputs":[{"type":"uint256","name":"_roundId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"hasAccess","inputs":[{"type":"address","name":"_user","internalType":"address"},{"type":"bytes","name":"_calldata","internalType":"bytes"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract AggregatorV2V3Interface"}],"name":"kcsUsdAggregator","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"kcsUsdPriceCurrent","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"int256","name":"","internalType":"int256"}],"name":"latestAnswer","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"latestRound","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint80","name":"roundId","internalType":"uint80"},{"type":"int256","name":"answer","internalType":"int256"},{"type":"uint256","name":"startedAt","internalType":"uint256"},{"type":"uint256","name":"updatedAt","internalType":"uint256"},{"type":"uint80","name":"answeredInRound","internalType":"uint80"}],"name":"latestRoundData","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"latestTimestamp","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"lowerBoundExchangeRate","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxUpperBoundExchangeRate","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"minLowerBoundExchangeRate","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"removeAccess","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract SKCSInterface"}],"name":"sKCS","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"to","internalType":"address"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"typeAndVersion","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"upperBoundExchangeRate","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"version","inputs":[]}]
              

Contract Creation Code

0x60c0604052600a6080819052691cd2d0d4c80bc81554d160b21b60a09081526200002d916004919062000207565b503480156200003b57600080fd5b5060405162001c8d38038062001c8d833981810160405260808110156200006157600080fd5b5080516020820151604083015160609093015191929091838383833380600081620000d3576040805162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b03848116919091179091558116156200010657620001068162000157565b5050600280546001600160a01b039687166001600160a01b03199182161790915560038054959096169416939093179093556005555060065550506007805460ff1916600117905550620002b39050565b6001600160a01b038116331415620001b6576040805162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200023f57600085556200028a565b82601f106200025a57805160ff19168380011785556200028a565b828001600101855582156200028a579182015b828111156200028a5782518255916020019190600101906200026d565b50620002989291506200029c565b5090565b5b808211156200029857600081556001016200029d565b6119ca80620002c36000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638823da6c11610104578063bd6d894d116100a2578063ebaf763311610071578063ebaf76331461054c578063ec37e9ca1461057f578063f2fde38b14610587578063feaf968c146105ba576101da565b8063bd6d894d1461052c578063c32dacd414610534578063dc7f01241461053c578063e068342a14610544576101da565b8063a118f249116100de578063a118f249146104b7578063ae6ea8ec146104ea578063b5ab58dc146104f2578063b633620c1461050f576101da565b80638823da6c146104095780638da5cb5b1461043c5780639a6fc8f514610444576101da565b806350d25bcd1161017c5780637284e4161161014b5780637284e416146103e957806379ba5097146103f15780638038e4a1146103f95780638205bf6a14610401576101da565b806350d25bcd146102fa57806354fd4d5014610302578063668a0f021461030a5780636b14daf814610312576101da565b8063313ce567116101b8578063313ce56714610280578063317d95e91461029e57806349c116ec146102a65780634f4b12b0146102c9576101da565b80630183ca80146101df5780630a756983146101f9578063181f5a7714610203575b600080fd5b6101e76105c2565b60408051918252519081900360200190f35b6102016105ce565b005b61020b610635565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024557818101518382015260200161022d565b50505050905090810190601f1680156102725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610288610655565b6040805160ff9092168252519081900360200190f35b6101e761065a565b610201600480360360408110156102bc57600080fd5b5080359060200135610660565b6102d16107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e76107e7565b6101e76108a2565b6101e76108a7565b6103d56004803603604081101561032857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561036057600080fd5b82018360208201111561037257600080fd5b8035906020019184600183028401116401000000008311171561039457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061095d945050505050565b604080519115158252519081900360200190f35b61020b610992565b610201610a48565b610201610b4a565b6101e7610bb2565b6102016004803603602081101561041f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c68565b6102d1610d22565b61046d6004803603602081101561045a57600080fd5b503569ffffffffffffffffffff16610d3e565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b610201600480360360208110156104cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e0d565b6101e7610ec8565b6101e76004803603602081101561050857600080fd5b5035610f65565b6101e76004803603602081101561052557600080fd5b503561101c565b6101e76110d3565b6101e761119d565b6103d56111a3565b6101e76111ac565b6102016004803603602081101561056257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111b8565b6102d1611248565b6102016004803603602081101561059d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611264565b61046d611275565b670de0b6b3a764000081565b6105d6611342565b60075460ff161561063357600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040517f3be8a977a014527b50ae38adda80b56911c267328965c98ddc385d248f53963890600090a15b565b606060405180606001604052806024815260200161183860249139905090565b600881565b60065481565b610668611342565b81670de0b6b3a764000011156106c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604e8152602001806118e5604e913960600191505060405180910390fd5b80671bc16d674ec80000101561072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604b81526020018061185c604b913960600191505060405180910390fd5b818111610782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806117fc603c913960400191505060405180910390fd5b60058290556006819055604080518381526020810183905281517f7d5522ce264136eb7e835537fe0d3c16f4c949080e1c654e897b17ef32bd2003929181900390910190a15050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600061082a336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61089557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6113c8565b905090565b600181565b60006108ea336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61095557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6114af565b600061096983836114b4565b80610989575073ffffffffffffffffffffffffffffffffffffffff831632145b90505b92915050565b60606109d5336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610a4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6114f1565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ace57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015290519081900360640190fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b52611342565b60075460ff1661063357600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517faebf329500988c6488a0074e5a0a9ff304561fc5c6fc877aeb1d59c8282c348090600090a1565b6000610bf5336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610c6057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6115a5565b610c70611342565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090205460ff1615610d1f5773ffffffffffffffffffffffffffffffffffffffff811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f3d68a6fce901d20453d1a7aa06bf3950302a735948037deb182a8db66df2a0d19281900390910190a15b50565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000806000806000610d87336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610df257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610dfb866115a9565b939a9299509097509550909350915050565b610e15611342565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090205460ff16610d1f5773ffffffffffffffffffffffffffffffffffffffff811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815192835290517f87286ad1f399c8e82bf0c4ef4fcdc570ea2e1e92176e5c848b6413545b885db49281900390910190a150565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d6020811015610f5d57600080fd5b505191505090565b6000610fa8336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098c826115b9565b600061105f336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b6110ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098c826115c3565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ba0b9a96040518163ffffffff1660e01b8152600401604080518083038186803b15801561113f57600080fd5b505afa158015611153573d6000803e3d6000fd5b505050506040513d604081101561116957600080fd5b508051602090910151909250905060006111958261118f85670de0b6b3a76400006115cd565b90611640565b935050505090565b60055481565b60075460ff1681565b671bc16d674ec8000081565b6111c0611342565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517fea430dea9377830bc99bfffb4dda7383a51f174ba093d8144d43fb45c0c0b3f5929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b61126c611342565b610d1f816116c4565b60008060008060006112be336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61132957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6113316117bf565b945094509450945094509091929394565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b6000806113d36110d3565b9050600554811015611430576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806119546041913960600191505060405180910390fd5b60065481111561148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806118a7603e913960400191505060405180910390fd5b6000611495610ec8565b90506000611195670de0b6b3a764000061118f84866115cd565b600190565b73ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081205460ff168061098957505060075460ff161592915050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561159b5780601f106115705761010080835404028352916020019161159b565b820191906000526020600020905b81548152906001019060200180831161157e57829003601f168201915b5050505050905090565b4290565b6000806000806000610dfb611275565b600061098c6107e7565b600061098c610bb2565b6000826115dc5750600061098c565b828202828482816115e957fe5b0414610989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119336021913960400191505060405180910390fd5b60008082116116b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816116bb57fe5b04949350505050565b73ffffffffffffffffffffffffffffffffffffffff811633141561174957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600080600080600060016117d16107e7565b6117d9610bb2565b6117e1610bb2565b63ffffffff9390931698919750955090935060019250905056fe7570706572426f756e6445786368616e676552617465206d757374204c657373207468616e206c6f776572426f756e6445786368616e676552617465416363657373436f6e74726f6c6c6564534b435341676772656761746f7220312e302e307570706572426f756e6445786368616e676552617465206d757374206c657373207468616e206f7220657175616c20746f206d61785570706572426f756e6445786368616e67655261746565786368616e676552617465206d757374206c657373207468616e206f7220657175616c20746f207570706572426f756e6445786368616e6765526174656c6f776572426f756e6445786368616e676552617465206d7573742067726561746572207468616e206f7220657175616c20746f206d696e4c6f776572426f756e6445786368616e676552617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7765786368616e676552617465206d7573742067726561746572207468616e206f7220657175616c20746f206c6f776572426f756e6445786368616e676552617465a2646970667358221220f6e25fdf55c4008f834530e5195cf44f504d92fc0a8d65e53d90d71b5bfedbeb64736f6c6343000706003300000000000000000000000000ee2d494258d6c5a30d6b6472a09b27121ef451000000000000000000000000afc9c849b1a784955908d91ee43a3203fbc1f9500000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000010a741a462780000

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638823da6c11610104578063bd6d894d116100a2578063ebaf763311610071578063ebaf76331461054c578063ec37e9ca1461057f578063f2fde38b14610587578063feaf968c146105ba576101da565b8063bd6d894d1461052c578063c32dacd414610534578063dc7f01241461053c578063e068342a14610544576101da565b8063a118f249116100de578063a118f249146104b7578063ae6ea8ec146104ea578063b5ab58dc146104f2578063b633620c1461050f576101da565b80638823da6c146104095780638da5cb5b1461043c5780639a6fc8f514610444576101da565b806350d25bcd1161017c5780637284e4161161014b5780637284e416146103e957806379ba5097146103f15780638038e4a1146103f95780638205bf6a14610401576101da565b806350d25bcd146102fa57806354fd4d5014610302578063668a0f021461030a5780636b14daf814610312576101da565b8063313ce567116101b8578063313ce56714610280578063317d95e91461029e57806349c116ec146102a65780634f4b12b0146102c9576101da565b80630183ca80146101df5780630a756983146101f9578063181f5a7714610203575b600080fd5b6101e76105c2565b60408051918252519081900360200190f35b6102016105ce565b005b61020b610635565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024557818101518382015260200161022d565b50505050905090810190601f1680156102725780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610288610655565b6040805160ff9092168252519081900360200190f35b6101e761065a565b610201600480360360408110156102bc57600080fd5b5080359060200135610660565b6102d16107cb565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e76107e7565b6101e76108a2565b6101e76108a7565b6103d56004803603604081101561032857600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561036057600080fd5b82018360208201111561037257600080fd5b8035906020019184600183028401116401000000008311171561039457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061095d945050505050565b604080519115158252519081900360200190f35b61020b610992565b610201610a48565b610201610b4a565b6101e7610bb2565b6102016004803603602081101561041f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c68565b6102d1610d22565b61046d6004803603602081101561045a57600080fd5b503569ffffffffffffffffffff16610d3e565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b610201600480360360208110156104cd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610e0d565b6101e7610ec8565b6101e76004803603602081101561050857600080fd5b5035610f65565b6101e76004803603602081101561052557600080fd5b503561101c565b6101e76110d3565b6101e761119d565b6103d56111a3565b6101e76111ac565b6102016004803603602081101561056257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111b8565b6102d1611248565b6102016004803603602081101561059d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611264565b61046d611275565b670de0b6b3a764000081565b6105d6611342565b60075460ff161561063357600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040517f3be8a977a014527b50ae38adda80b56911c267328965c98ddc385d248f53963890600090a15b565b606060405180606001604052806024815260200161183860249139905090565b600881565b60065481565b610668611342565b81670de0b6b3a764000011156106c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604e8152602001806118e5604e913960600191505060405180910390fd5b80671bc16d674ec80000101561072a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604b81526020018061185c604b913960600191505060405180910390fd5b818111610782576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806117fc603c913960400191505060405180910390fd5b60058290556006819055604080518381526020810183905281517f7d5522ce264136eb7e835537fe0d3c16f4c949080e1c654e897b17ef32bd2003929181900390910190a15050565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600061082a336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61089557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6113c8565b905090565b600181565b60006108ea336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61095557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6114af565b600061096983836114b4565b80610989575073ffffffffffffffffffffffffffffffffffffffff831632145b90505b92915050565b60606109d5336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610a4057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6114f1565b60015473ffffffffffffffffffffffffffffffffffffffff163314610ace57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e657200000000000000000000604482015290519081900360640190fd5b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b52611342565b60075460ff1661063357600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517faebf329500988c6488a0074e5a0a9ff304561fc5c6fc877aeb1d59c8282c348090600090a1565b6000610bf5336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610c6057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61089d6115a5565b610c70611342565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090205460ff1615610d1f5773ffffffffffffffffffffffffffffffffffffffff811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f3d68a6fce901d20453d1a7aa06bf3950302a735948037deb182a8db66df2a0d19281900390910190a15b50565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000806000806000610d87336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b610df257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610dfb866115a9565b939a9299509097509550909350915050565b610e15611342565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604090205460ff16610d1f5773ffffffffffffffffffffffffffffffffffffffff811660008181526008602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815192835290517f87286ad1f399c8e82bf0c4ef4fcdc570ea2e1e92176e5c848b6413545b885db49281900390910190a150565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d6020811015610f5d57600080fd5b505191505090565b6000610fa8336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61101357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098c826115b9565b600061105f336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b6110ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61098c826115c3565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ba0b9a96040518163ffffffff1660e01b8152600401604080518083038186803b15801561113f57600080fd5b505afa158015611153573d6000803e3d6000fd5b505050506040513d604081101561116957600080fd5b508051602090910151909250905060006111958261118f85670de0b6b3a76400006115cd565b90611640565b935050505090565b60055481565b60075460ff1681565b671bc16d674ec8000081565b6111c0611342565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040805191909216808252602082019390935281517fea430dea9377830bc99bfffb4dda7383a51f174ba093d8144d43fb45c0c0b3f5929181900390910190a15050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b61126c611342565b610d1f816116c4565b60008060008060006112be336000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061095d92505050565b61132957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f206163636573730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6113316117bf565b945094509450945094509091929394565b60005473ffffffffffffffffffffffffffffffffffffffff16331461063357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015290519081900360640190fd5b6000806113d36110d3565b9050600554811015611430576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260418152602001806119546041913960600191505060405180910390fd5b60065481111561148b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806118a7603e913960400191505060405180910390fd5b6000611495610ec8565b90506000611195670de0b6b3a764000061118f84866115cd565b600190565b73ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604081205460ff168061098957505060075460ff161592915050565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561159b5780601f106115705761010080835404028352916020019161159b565b820191906000526020600020905b81548152906001019060200180831161157e57829003601f168201915b5050505050905090565b4290565b6000806000806000610dfb611275565b600061098c6107e7565b600061098c610bb2565b6000826115dc5750600061098c565b828202828482816115e957fe5b0414610989576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806119336021913960400191505060405180910390fd5b60008082116116b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816116bb57fe5b04949350505050565b73ffffffffffffffffffffffffffffffffffffffff811633141561174957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600080600080600060016117d16107e7565b6117d9610bb2565b6117e1610bb2565b63ffffffff9390931698919750955090935060019250905056fe7570706572426f756e6445786368616e676552617465206d757374204c657373207468616e206c6f776572426f756e6445786368616e676552617465416363657373436f6e74726f6c6c6564534b435341676772656761746f7220312e302e307570706572426f756e6445786368616e676552617465206d757374206c657373207468616e206f7220657175616c20746f206d61785570706572426f756e6445786368616e67655261746565786368616e676552617465206d757374206c657373207468616e206f7220657175616c20746f207570706572426f756e6445786368616e6765526174656c6f776572426f756e6445786368616e676552617465206d7573742067726561746572207468616e206f7220657175616c20746f206d696e4c6f776572426f756e6445786368616e676552617465536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7765786368616e676552617465206d7573742067726561746572207468616e206f7220657175616c20746f206c6f776572426f756e6445786368616e676552617465a2646970667358221220f6e25fdf55c4008f834530e5195cf44f504d92fc0a8d65e53d90d71b5bfedbeb64736f6c63430007060033