Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 176 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Whitelistwithdra... | 14397960 | 986 days ago | IN | 0 ETH | 0.00224418 | ||||
Mintwith Signed ... | 14378608 | 989 days ago | IN | 0.15 ETH | 0.00296121 | ||||
Mintwith Signed ... | 14378439 | 989 days ago | IN | 0.15 ETH | 0.00607663 | ||||
Mintwith Signed ... | 14378384 | 989 days ago | IN | 0.15 ETH | 0.00457713 | ||||
Mintwith Signed ... | 14378314 | 989 days ago | IN | 0.15 ETH | 0.00680338 | ||||
Mintwith Signed ... | 14378253 | 989 days ago | IN | 0.15 ETH | 0.00376112 | ||||
Mintwith Signed ... | 14378117 | 989 days ago | IN | 0.15 ETH | 0.00406013 | ||||
Mintwith Signed ... | 14378035 | 989 days ago | IN | 0.15 ETH | 0.00297138 | ||||
Mintwith Signed ... | 14377958 | 989 days ago | IN | 0.15 ETH | 0.00560609 | ||||
Mintwith Signed ... | 14377804 | 989 days ago | IN | 0.15 ETH | 0.00298838 | ||||
Mintwith Signed ... | 14377645 | 989 days ago | IN | 0.15 ETH | 0.00404492 | ||||
Mintwith Signed ... | 14377560 | 989 days ago | IN | 0.15 ETH | 0.00336492 | ||||
Mintwith Signed ... | 14377513 | 989 days ago | IN | 0.15 ETH | 0.00279139 | ||||
Mintwith Signed ... | 14377437 | 989 days ago | IN | 0.15 ETH | 0.00342191 | ||||
Mintwith Signed ... | 14377289 | 989 days ago | IN | 0.15 ETH | 0.00222805 | ||||
Mintwith Signed ... | 14377199 | 989 days ago | IN | 0.15 ETH | 0.00515959 | ||||
Mintwith Signed ... | 14377148 | 989 days ago | IN | 0.15 ETH | 0.0041288 | ||||
Mintwith Signed ... | 14375079 | 990 days ago | IN | 0.15 ETH | 0.00512665 | ||||
Mintwith Signed ... | 14374537 | 990 days ago | IN | 0.15 ETH | 0.00516422 | ||||
Mintwith Signed ... | 14374250 | 990 days ago | IN | 0.15 ETH | 0.0054333 | ||||
Mintwith Signed ... | 14374183 | 990 days ago | IN | 0.15 ETH | 0.0050713 | ||||
Mintwith Signed ... | 14374174 | 990 days ago | IN | 0.15 ETH | 0.00606129 | ||||
Mintwith Signed ... | 14373688 | 990 days ago | IN | 0.15 ETH | 0.00558749 | ||||
Mintwith Signed ... | 14373355 | 990 days ago | IN | 0.15 ETH | 0.0062826 | ||||
Mintwith Signed ... | 14373305 | 990 days ago | IN | 0.15 ETH | 0.00526048 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14874769 | 911 days ago | 4.71 ETH | ||||
14378608 | 989 days ago | 0.12 ETH | ||||
14378439 | 989 days ago | 0.12 ETH | ||||
14378384 | 989 days ago | 0.12 ETH | ||||
14378314 | 989 days ago | 0.12 ETH | ||||
14378253 | 989 days ago | 0.12 ETH | ||||
14378117 | 989 days ago | 0.12 ETH | ||||
14378035 | 989 days ago | 0.12 ETH | ||||
14377958 | 989 days ago | 0.12 ETH | ||||
14377804 | 989 days ago | 0.12 ETH | ||||
14377645 | 989 days ago | 0.12 ETH | ||||
14377560 | 989 days ago | 0.12 ETH | ||||
14377513 | 989 days ago | 0.12 ETH | ||||
14377437 | 989 days ago | 0.12 ETH | ||||
14377289 | 989 days ago | 0.12 ETH | ||||
14377199 | 989 days ago | 0.12 ETH | ||||
14377148 | 989 days ago | 0.12 ETH | ||||
14375079 | 990 days ago | 0.12 ETH | ||||
14374537 | 990 days ago | 0.12 ETH | ||||
14374250 | 990 days ago | 0.12 ETH | ||||
14374183 | 990 days ago | 0.12 ETH | ||||
14374174 | 990 days ago | 0.12 ETH | ||||
14373688 | 990 days ago | 0.12 ETH | ||||
14373355 | 990 days ago | 0.12 ETH | ||||
14373305 | 990 days ago | 0.12 ETH |
Loading...
Loading
Contract Name:
Minting
Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
import "./VerifySignature.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; pragma solidity ^0.8.0; interface Minimalmint { function mintafterverification( uint256 value1, uint256 value2, uint256 colorpointer, uint256 tokenid, string memory rtimetamp ) external; } contract Minting is VerifySignature, Ownable { Minimalmint minter; address internal dataprovider; uint256 public nonce; uint256 public constant mint_price = 150000000000000000 wei; address public currentcurator; address public terra0multisig; mapping(address => curator) public curators; uint256 public maxnonce = 2001; uint256[2] public temprange = [19000, 23000]; uint256[2] public moistrange = [70000, 80000]; uint256 public timelimit = 2200; uint256 public artistmintcounter = 15; struct curator { uint256 percentage; uint256 colorandlocationpointer; bool curatorwhitelist; uint256 curatorshares; } constructor( address _dataprovider, address _terra0multisig, address _erc721 ) { dataprovider = _dataprovider; terra0multisig = _terra0multisig; nonce = 0; maxnonce = 1601; timelimit = 2200; minter = Minimalmint(_erc721); } function checkrange( uint256 value, uint256 downrange, uint256 upperrange ) public pure returns (bool pass) { bool down = value >= downrange; bool up = value <= upperrange; return (bool(down && up)); } function artistmint( uint256 value1, uint256 value2, uint256 _nonce, string memory htimestamp, uint256 colorandlocationpointer ) external onlyOwner { require(_nonce < maxnonce, "Max number of tokens minted"); require(currentcurator != address(0), "No curator set"); require( checkrange(value1, moistrange[0], moistrange[1]) == true, "Moisture range out of bounds" ); require( checkrange(value2, temprange[0], temprange[1]) == true, "Temperature range out of bounds" ); require(artistmintcounter > 0); artistmintcounter -= 1; minter.mintafterverification( value1, value2, colorandlocationpointer, _nonce, htimestamp ); nonce = _nonce; } function mintwithSignedData( address signer, uint256 value1, uint256 value2, uint256 _nonce, uint256 timestamp, string memory htimestamp, bytes memory signature ) external payable { require( verify( signer, value1, value2, _nonce, timestamp, htimestamp, signature ) == true, "Wrong signature" ); require(signer == dataprovider, "Signer is not dataprovider"); require(_nonce > nonce, "Datapacket already minted"); uint256 latest_date = block.timestamp - timelimit; require(timestamp > latest_date, "Datapacket too old"); require(msg.value >= mint_price, "Insufficient payment"); require(currentcurator != address(0), "No curator set"); require(_nonce < maxnonce, "Max number tokens minted"); require( checkrange(value1, moistrange[0], moistrange[1]) == true, "Moisture range out of bounds" ); require( checkrange(value2, temprange[0], temprange[1]) == true, "Temperature range out of bounds" ); nonce = _nonce; minter.mintafterverification( value1, value2, curators[currentcurator].colorandlocationpointer, _nonce, htimestamp ); curators[currentcurator].curatorshares = curators[currentcurator].curatorshares + (mint_price / curators[currentcurator].percentage); uint256 terra0value = mint_price - (mint_price / curators[currentcurator].percentage); (bool sent, ) = payable(terra0multisig).call{value: terra0value}(""); require(sent, "Transfer failed."); } function setcurator( address _curator, uint256 percentage, uint256 colorandlocationpointer ) external onlyOwner { currentcurator = _curator; curators[currentcurator].curatorwhitelist = false; curators[currentcurator] .colorandlocationpointer = colorandlocationpointer; curators[currentcurator].percentage = percentage; } function whitelistwithdrawcurator(address _curator) external onlyOwner { curators[_curator].curatorwhitelist = true; } function withdraw() external { require( curators[msg.sender].curatorwhitelist == true, "Exhibition still running" ); uint256 share = curators[msg.sender].curatorshares; curators[msg.sender].curatorshares = 0; (bool sent, ) = msg.sender.call{value: share}(""); require(sent, "Transfer failed."); } function changetimelimit(uint256 newtimelimit) external onlyOwner { timelimit = newtimelimit; } function changevaluerange( uint256 temprange0, uint256 temprange1, uint256 moistrange0, uint256 moistrange1 ) public onlyOwner { temprange[0] = temprange0; temprange[1] = temprange1; moistrange[0] = moistrange0; moistrange[1] = moistrange1; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract VerifySignature { function getMessageHash( uint256 value1, uint256 value2, uint256 nonce, uint256 timestamp, string memory htimestamp ) public pure returns (bytes32) { return keccak256( abi.encode(value1, value2, nonce, timestamp, htimestamp) ); } function getEthSignedMessageHash(bytes32 _messageHash) public pure returns (bytes32) { return keccak256( abi.encodePacked( "\x19Ethereum Signed Message:\n32", _messageHash ) ); } function verify( address _signer, uint256 _value1, uint256 _value2, uint256 _nonce, uint256 _timestamp, string memory htimestamp, bytes memory signature ) public pure returns (bool) { bytes32 messageHash = getMessageHash( _value1, _value2, _nonce, _timestamp, htimestamp ); bytes32 ethSignedMessageHash = getEthSignedMessageHash(messageHash); return recoverSigner(ethSignedMessageHash, signature) == _signer; } function recoverSigner( bytes32 _ethSignedMessageHash, bytes memory _signature ) public pure returns (address) { (bytes32 r, bytes32 s, uint8 v) = splitSignature(_signature); return ecrecover(_ethSignedMessageHash, v, r, s); } function splitSignature(bytes memory sig) public pure returns ( bytes32 r, bytes32 s, uint8 v ) { require(sig.length == 65, "invalid signature length"); assembly { // first 32 bytes, after the length prefix r := mload(add(sig, 32)) // second 32 bytes s := mload(add(sig, 64)) // final byte (first byte of the next 32 bytes) v := byte(0, mload(add(sig, 96))) } // implicitly return (r, s, v) } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dataprovider","type":"address"},{"internalType":"address","name":"_terra0multisig","type":"address"},{"internalType":"address","name":"_erc721","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"value1","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"htimestamp","type":"string"},{"internalType":"uint256","name":"colorandlocationpointer","type":"uint256"}],"name":"artistmint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"artistmintcounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newtimelimit","type":"uint256"}],"name":"changetimelimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"temprange0","type":"uint256"},{"internalType":"uint256","name":"temprange1","type":"uint256"},{"internalType":"uint256","name":"moistrange0","type":"uint256"},{"internalType":"uint256","name":"moistrange1","type":"uint256"}],"name":"changevaluerange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"downrange","type":"uint256"},{"internalType":"uint256","name":"upperrange","type":"uint256"}],"name":"checkrange","outputs":[{"internalType":"bool","name":"pass","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"curators","outputs":[{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"uint256","name":"colorandlocationpointer","type":"uint256"},{"internalType":"bool","name":"curatorwhitelist","type":"bool"},{"internalType":"uint256","name":"curatorshares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentcurator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"getEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"value1","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"string","name":"htimestamp","type":"string"}],"name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxnonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint_price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"value1","type":"uint256"},{"internalType":"uint256","name":"value2","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"string","name":"htimestamp","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"mintwithSignedData","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"moistrange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","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":"bytes32","name":"_ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_curator","type":"address"},{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"uint256","name":"colorandlocationpointer","type":"uint256"}],"name":"setcurator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"splitSignature","outputs":[{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"temprange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"terra0multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"},{"internalType":"uint256","name":"_value1","type":"uint256"},{"internalType":"uint256","name":"_value2","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"},{"internalType":"string","name":"htimestamp","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"verify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_curator","type":"address"}],"name":"whitelistwithdrawcurator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526107d16007556040518060400160405280614a3861ffff1681526020016159d861ffff1681525060089060026200003d92919062000286565b5060405180604001604052806201117062ffffff1681526020016201388062ffffff16815250600a90600262000075929190620002d1565b50610898600c55600f600d553480156200008e57600080fd5b5060405162003398380380620033988339818101604052810190620000b4919062000353565b620000d4620000c8620001ba60201b60201c565b620001c260201b60201c565b82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600381905550610641600781905550610898600c8190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620003f7565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8260028101928215620002be579160200282015b82811115620002bd578251829061ffff169055916020019190600101906200029a565b5b509050620002cd91906200031d565b5090565b82600281019282156200030a579160200282015b8281111562000309578251829062ffffff16905591602001919060010190620002e5565b5b5090506200031991906200031d565b5090565b5b80821115620003385760008160009055506001016200031e565b5090565b6000815190506200034d81620003dd565b92915050565b6000806000606084860312156200036957600080fd5b600062000379868287016200033c565b93505060206200038c868287016200033c565b92505060406200039f868287016200033c565b9150509250925092565b6000620003b682620003bd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620003e881620003a9565b8114620003f457600080fd5b50565b612f9180620004076000396000f3fe6080604052600436106101815760003560e01c806385f86cc4116100d1578063a7bb58031161008a578063ea69837111610064578063ea6983711461059b578063f2ae775e146105b7578063f2fde38b146105e2578063fa5408011461060b57610181565b8063a7bb580314610508578063affed0e014610547578063b0725cb11461057257610181565b806385f86cc4146103e4578063869290c01461040f57806387963f8e1461044c5780638da5cb5b1461047757806390ffc224146104a257806397aba7f9146104cb57610181565b806351c083de1161013e578063715018a611610118578063715018a61461035057806379d75512146103675780637d62ee931461039257806384f56a96146103bb57610181565b806351c083de146102995780635936b4b6146102d65780637058f0bc1461031357610181565b80630487a1f9146101865780630c5df8d7146101c6578063122e5c10146101ef5780631a4231a41461022c578063298f0610146102575780633ccfd60b14610282575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190611ee2565b610648565b6040516101bd94939291906128d0565b60405180910390f35b3480156101d257600080fd5b506101ed60048036038101906101e891906120e6565b610685565b005b3480156101fb57600080fd5b506102166004803603810190610211919061210f565b61070b565b6040516102239190612623565b60405180910390f35b34801561023857600080fd5b50610241610731565b60405161024e91906128b5565b60405180910390f35b34801561026357600080fd5b5061026c61073d565b6040516102799190612608565b60405180910390f35b34801561028e57600080fd5b50610297610763565b005b3480156102a557600080fd5b506102c060048036038101906102bb91906120e6565b610938565b6040516102cd91906128b5565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f891906120e6565b610953565b60405161030a91906128b5565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190612250565b61096e565b604051610347919061263e565b60405180910390f35b34801561035c57600080fd5b506103656109aa565b005b34801561037357600080fd5b5061037c610a32565b60405161038991906128b5565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b4919061215e565b610a38565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190611ee2565b610de8565b005b3480156103f057600080fd5b506103f9610ec2565b60405161040691906128b5565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611f5a565b610ec8565b6040516104439190612623565b60405180910390f35b34801561045857600080fd5b50610461610f2e565b60405161046e91906128b5565b60405180910390f35b34801561048357600080fd5b5061048c610f34565b6040516104999190612608565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190611f0b565b610f5d565b005b3480156104d757600080fd5b506104f260048036038101906104ed9190612051565b61116e565b6040516104ff9190612608565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a91906120a5565b6111dd565b60405161053e93929190612659565b60405180910390f35b34801561055357600080fd5b5061055c611245565b60405161056991906128b5565b60405180910390f35b34801561057e57600080fd5b50610599600480360381019061059491906121ed565b61124b565b005b6105b560048036038101906105b09190611f5a565b6113d1565b005b3480156105c357600080fd5b506105cc611bb9565b6040516105d99190612608565b60405180910390f35b3480156105ee57600080fd5b5061060960048036038101906106049190611ee2565b611bdf565b005b34801561061757600080fd5b50610632600480360381019061062d9190612028565b611cd7565b60405161063f919061263e565b60405180910390f35b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b61068d611d07565b73ffffffffffffffffffffffffffffffffffffffff166106ab610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f8906127b5565b60405180910390fd5b80600c8190555050565b60008083851015905060008386111590508180156107265750805b925050509392505050565b670214e8348c4f000081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515146107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f090612755565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555060003373ffffffffffffffffffffffffffffffffffffffff16826040516108ae906125f3565b60006040518083038185875af1925050503d80600081146108eb576040519150601f19603f3d011682016040523d82523d6000602084013e6108f0565b606091505b5050905080610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612855565b60405180910390fd5b5050565b6008816002811061094857600080fd5b016000915090505481565b600a816002811061096357600080fd5b016000915090505481565b60008585858585604051602001610989959493929190612915565b60405160208183030381529060405280519060200120905095945050505050565b6109b2611d07565b73ffffffffffffffffffffffffffffffffffffffff166109d0610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d906127b5565b60405180910390fd5b610a306000611d0f565b565b600d5481565b610a40611d07565b73ffffffffffffffffffffffffffffffffffffffff16610a5e610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab906127b5565b60405180910390fd5b6007548310610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612875565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612775565b60405180910390fd5b60011515610c1186600a600060028110610bcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600a600160028110610c0a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906127d5565b60405180910390fd5b60011515610cda856008600060028110610c96577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b01546008600160028110610cd3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390612815565b60405180910390fd5b6000600d5411610d2b57600080fd5b6001600d6000828254610d3e9190612aaf565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633bf7177686868487876040518663ffffffff1660e01b8152600401610da8959493929190612915565b600060405180830381600087803b158015610dc257600080fd5b505af1158015610dd6573d6000803e3d6000fd5b50505050826003819055505050505050565b610df0611d07565b73ffffffffffffffffffffffffffffffffffffffff16610e0e610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b906127b5565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff02191690831515021790555050565b60075481565b600080610ed8888888888861096e565b90506000610ee582611cd7565b90508973ffffffffffffffffffffffffffffffffffffffff16610f08828661116e565b73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f65611d07565b73ffffffffffffffffffffffffffffffffffffffff16610f83610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd0906127b5565b60405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550505050565b60008060008061117d856111dd565b925092509250600186828585604051600081526020016040526040516111a69493929190612690565b6020604051602081039080840390855afa1580156111c8573d6000803e3d6000fd5b50505060206040510351935050505092915050565b60008060006041845114611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612895565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b60035481565b611253611d07565b73ffffffffffffffffffffffffffffffffffffffff16611271610f34565b73ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906127b5565b60405180910390fd5b836008600060028110611303577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0181905550826008600160028110611344577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555081600a600060028110611385577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555080600a6001600281106113c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555050505050565b600115156113e488888888888888610ec8565b151514611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906126f5565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612735565b60405180910390fd5b60035484116114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190612835565b60405180910390fd5b6000600c544261150a9190612aaf565b905080841161154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611545906126d5565b60405180910390fd5b670214e8348c4f0000341015611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090612795565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290612775565b60405180910390fd5b600754851061166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906127f5565b60405180910390fd5b600115156116f688600a6000600281106116b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600a6001600281106116ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906127d5565b60405180910390fd5b600115156117bf87600860006002811061177b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015460086001600281106117b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890612815565b60405180910390fd5b84600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633bf71776888860066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015489886040518663ffffffff1660e01b81526004016118cf959493929190612915565b600060405180830381600087803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b5050505060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154670214e8348c4f00006119799190612a7e565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546119e89190612a28565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550600060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154670214e8348c4f0000611aca9190612a7e565b670214e8348c4f0000611add9190612aaf565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b27906125f3565b60006040518083038185875af1925050503d8060008114611b64576040519150601f19603f3d011682016040523d82523d6000602084013e611b69565b606091505b5050905080611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490612855565b60405180910390fd5b50505050505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be7611d07565b73ffffffffffffffffffffffffffffffffffffffff16611c05610f34565b73ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906127b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc290612715565b60405180910390fd5b611cd481611d0f565b50565b600081604051602001611cea91906125cd565b604051602081830303815290604052805190602001209050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611de6611de184612994565b61296f565b905082815260208101848484011115611dfe57600080fd5b611e09848285612b42565b509392505050565b6000611e24611e1f846129c5565b61296f565b905082815260208101848484011115611e3c57600080fd5b611e47848285612b42565b509392505050565b600081359050611e5e81612f16565b92915050565b600081359050611e7381612f2d565b92915050565b600082601f830112611e8a57600080fd5b8135611e9a848260208601611dd3565b91505092915050565b600082601f830112611eb457600080fd5b8135611ec4848260208601611e11565b91505092915050565b600081359050611edc81612f44565b92915050565b600060208284031215611ef457600080fd5b6000611f0284828501611e4f565b91505092915050565b600080600060608486031215611f2057600080fd5b6000611f2e86828701611e4f565b9350506020611f3f86828701611ecd565b9250506040611f5086828701611ecd565b9150509250925092565b600080600080600080600060e0888a031215611f7557600080fd5b6000611f838a828b01611e4f565b9750506020611f948a828b01611ecd565b9650506040611fa58a828b01611ecd565b9550506060611fb68a828b01611ecd565b9450506080611fc78a828b01611ecd565b93505060a088013567ffffffffffffffff811115611fe457600080fd5b611ff08a828b01611ea3565b92505060c088013567ffffffffffffffff81111561200d57600080fd5b6120198a828b01611e79565b91505092959891949750929550565b60006020828403121561203a57600080fd5b600061204884828501611e64565b91505092915050565b6000806040838503121561206457600080fd5b600061207285828601611e64565b925050602083013567ffffffffffffffff81111561208f57600080fd5b61209b85828601611e79565b9150509250929050565b6000602082840312156120b757600080fd5b600082013567ffffffffffffffff8111156120d157600080fd5b6120dd84828501611e79565b91505092915050565b6000602082840312156120f857600080fd5b600061210684828501611ecd565b91505092915050565b60008060006060848603121561212457600080fd5b600061213286828701611ecd565b935050602061214386828701611ecd565b925050604061215486828701611ecd565b9150509250925092565b600080600080600060a0868803121561217657600080fd5b600061218488828901611ecd565b955050602061219588828901611ecd565b94505060406121a688828901611ecd565b935050606086013567ffffffffffffffff8111156121c357600080fd5b6121cf88828901611ea3565b92505060806121e088828901611ecd565b9150509295509295909350565b6000806000806080858703121561220357600080fd5b600061221187828801611ecd565b945050602061222287828801611ecd565b935050604061223387828801611ecd565b925050606061224487828801611ecd565b91505092959194509250565b600080600080600060a0868803121561226857600080fd5b600061227688828901611ecd565b955050602061228788828901611ecd565b945050604061229888828901611ecd565b93505060606122a988828901611ecd565b925050608086013567ffffffffffffffff8111156122c657600080fd5b6122d288828901611ea3565b9150509295509295909350565b6122e881612ae3565b82525050565b6122f781612af5565b82525050565b61230681612b01565b82525050565b61231d61231882612b01565b612bb5565b82525050565b600061232e826129f6565b6123388185612a0c565b9350612348818560208601612b51565b61235181612c4c565b840191505092915050565b6000612369601283612a0c565b915061237482612c5d565b602082019050919050565b600061238c601c83612a1d565b915061239782612c86565b601c82019050919050565b60006123af600f83612a0c565b91506123ba82612caf565b602082019050919050565b60006123d2602683612a0c565b91506123dd82612cd8565b604082019050919050565b60006123f5601a83612a0c565b915061240082612d27565b602082019050919050565b6000612418601883612a0c565b915061242382612d50565b602082019050919050565b600061243b600e83612a0c565b915061244682612d79565b602082019050919050565b600061245e601483612a0c565b915061246982612da2565b602082019050919050565b6000612481602083612a0c565b915061248c82612dcb565b602082019050919050565b60006124a4601c83612a0c565b91506124af82612df4565b602082019050919050565b60006124c7601883612a0c565b91506124d282612e1d565b602082019050919050565b60006124ea601f83612a0c565b91506124f582612e46565b602082019050919050565b600061250d601983612a0c565b915061251882612e6f565b602082019050919050565b6000612530600083612a01565b915061253b82612e98565b600082019050919050565b6000612553601083612a0c565b915061255e82612e9b565b602082019050919050565b6000612576601b83612a0c565b915061258182612ec4565b602082019050919050565b6000612599601883612a0c565b91506125a482612eed565b602082019050919050565b6125b881612b2b565b82525050565b6125c781612b35565b82525050565b60006125d88261237f565b91506125e4828461230c565b60208201915081905092915050565b60006125fe82612523565b9150819050919050565b600060208201905061261d60008301846122df565b92915050565b600060208201905061263860008301846122ee565b92915050565b600060208201905061265360008301846122fd565b92915050565b600060608201905061266e60008301866122fd565b61267b60208301856122fd565b61268860408301846125be565b949350505050565b60006080820190506126a560008301876122fd565b6126b260208301866125be565b6126bf60408301856122fd565b6126cc60608301846122fd565b95945050505050565b600060208201905081810360008301526126ee8161235c565b9050919050565b6000602082019050818103600083015261270e816123a2565b9050919050565b6000602082019050818103600083015261272e816123c5565b9050919050565b6000602082019050818103600083015261274e816123e8565b9050919050565b6000602082019050818103600083015261276e8161240b565b9050919050565b6000602082019050818103600083015261278e8161242e565b9050919050565b600060208201905081810360008301526127ae81612451565b9050919050565b600060208201905081810360008301526127ce81612474565b9050919050565b600060208201905081810360008301526127ee81612497565b9050919050565b6000602082019050818103600083015261280e816124ba565b9050919050565b6000602082019050818103600083015261282e816124dd565b9050919050565b6000602082019050818103600083015261284e81612500565b9050919050565b6000602082019050818103600083015261286e81612546565b9050919050565b6000602082019050818103600083015261288e81612569565b9050919050565b600060208201905081810360008301526128ae8161258c565b9050919050565b60006020820190506128ca60008301846125af565b92915050565b60006080820190506128e560008301876125af565b6128f260208301866125af565b6128ff60408301856122ee565b61290c60608301846125af565b95945050505050565b600060a08201905061292a60008301886125af565b61293760208301876125af565b61294460408301866125af565b61295160608301856125af565b81810360808301526129638184612323565b90509695505050505050565b600061297961298a565b90506129858282612b84565b919050565b6000604051905090565b600067ffffffffffffffff8211156129af576129ae612c1d565b5b6129b882612c4c565b9050602081019050919050565b600067ffffffffffffffff8211156129e0576129df612c1d565b5b6129e982612c4c565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3382612b2b565b9150612a3e83612b2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7357612a72612bbf565b5b828201905092915050565b6000612a8982612b2b565b9150612a9483612b2b565b925082612aa457612aa3612bee565b5b828204905092915050565b6000612aba82612b2b565b9150612ac583612b2b565b925082821015612ad857612ad7612bbf565b5b828203905092915050565b6000612aee82612b0b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b6f578082015181840152602081019050612b54565b83811115612b7e576000848401525b50505050565b612b8d82612c4c565b810181811067ffffffffffffffff82111715612bac57612bab612c1d565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f446174617061636b657420746f6f206f6c640000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f57726f6e67207369676e61747572650000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5369676e6572206973206e6f74206461746170726f7669646572000000000000600082015250565b7f45786869626974696f6e207374696c6c2072756e6e696e670000000000000000600082015250565b7f4e6f2063757261746f7220736574000000000000000000000000000000000000600082015250565b7f496e73756666696369656e74207061796d656e74000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d6f6973747572652072616e6765206f7574206f6620626f756e647300000000600082015250565b7f4d6178206e756d62657220746f6b656e73206d696e7465640000000000000000600082015250565b7f54656d70657261747572652072616e6765206f7574206f6620626f756e647300600082015250565b7f446174617061636b657420616c7265616479206d696e74656400000000000000600082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f4d6178206e756d626572206f6620746f6b656e73206d696e7465640000000000600082015250565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b612f1f81612ae3565b8114612f2a57600080fd5b50565b612f3681612b01565b8114612f4157600080fd5b50565b612f4d81612b2b565b8114612f5857600080fd5b5056fea2646970667358221220b8e8df09082e6655fc1175bddf85c10566bd9c962c3969aee4b35f06e3de72b264736f6c634300080400330000000000000000000000009777f6c5044d4ebf0a7fea82be090c6a4a594e3800000000000000000000000070e095fb47e10e696bf40d759b3656d273c76ddc000000000000000000000000db7805468c975d7157c02b44d43e3ad2d549f664
Deployed Bytecode
0x6080604052600436106101815760003560e01c806385f86cc4116100d1578063a7bb58031161008a578063ea69837111610064578063ea6983711461059b578063f2ae775e146105b7578063f2fde38b146105e2578063fa5408011461060b57610181565b8063a7bb580314610508578063affed0e014610547578063b0725cb11461057257610181565b806385f86cc4146103e4578063869290c01461040f57806387963f8e1461044c5780638da5cb5b1461047757806390ffc224146104a257806397aba7f9146104cb57610181565b806351c083de1161013e578063715018a611610118578063715018a61461035057806379d75512146103675780637d62ee931461039257806384f56a96146103bb57610181565b806351c083de146102995780635936b4b6146102d65780637058f0bc1461031357610181565b80630487a1f9146101865780630c5df8d7146101c6578063122e5c10146101ef5780631a4231a41461022c578063298f0610146102575780633ccfd60b14610282575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190611ee2565b610648565b6040516101bd94939291906128d0565b60405180910390f35b3480156101d257600080fd5b506101ed60048036038101906101e891906120e6565b610685565b005b3480156101fb57600080fd5b506102166004803603810190610211919061210f565b61070b565b6040516102239190612623565b60405180910390f35b34801561023857600080fd5b50610241610731565b60405161024e91906128b5565b60405180910390f35b34801561026357600080fd5b5061026c61073d565b6040516102799190612608565b60405180910390f35b34801561028e57600080fd5b50610297610763565b005b3480156102a557600080fd5b506102c060048036038101906102bb91906120e6565b610938565b6040516102cd91906128b5565b60405180910390f35b3480156102e257600080fd5b506102fd60048036038101906102f891906120e6565b610953565b60405161030a91906128b5565b60405180910390f35b34801561031f57600080fd5b5061033a60048036038101906103359190612250565b61096e565b604051610347919061263e565b60405180910390f35b34801561035c57600080fd5b506103656109aa565b005b34801561037357600080fd5b5061037c610a32565b60405161038991906128b5565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b4919061215e565b610a38565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190611ee2565b610de8565b005b3480156103f057600080fd5b506103f9610ec2565b60405161040691906128b5565b60405180910390f35b34801561041b57600080fd5b5061043660048036038101906104319190611f5a565b610ec8565b6040516104439190612623565b60405180910390f35b34801561045857600080fd5b50610461610f2e565b60405161046e91906128b5565b60405180910390f35b34801561048357600080fd5b5061048c610f34565b6040516104999190612608565b60405180910390f35b3480156104ae57600080fd5b506104c960048036038101906104c49190611f0b565b610f5d565b005b3480156104d757600080fd5b506104f260048036038101906104ed9190612051565b61116e565b6040516104ff9190612608565b60405180910390f35b34801561051457600080fd5b5061052f600480360381019061052a91906120a5565b6111dd565b60405161053e93929190612659565b60405180910390f35b34801561055357600080fd5b5061055c611245565b60405161056991906128b5565b60405180910390f35b34801561057e57600080fd5b50610599600480360381019061059491906121ed565b61124b565b005b6105b560048036038101906105b09190611f5a565b6113d1565b005b3480156105c357600080fd5b506105cc611bb9565b6040516105d99190612608565b60405180910390f35b3480156105ee57600080fd5b5061060960048036038101906106049190611ee2565b611bdf565b005b34801561061757600080fd5b50610632600480360381019061062d9190612028565b611cd7565b60405161063f919061263e565b60405180910390f35b60066020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b61068d611d07565b73ffffffffffffffffffffffffffffffffffffffff166106ab610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610701576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f8906127b5565b60405180910390fd5b80600c8190555050565b60008083851015905060008386111590508180156107265750805b925050509392505050565b670214e8348c4f000081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515146107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f090612755565b60405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015490506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555060003373ffffffffffffffffffffffffffffffffffffffff16826040516108ae906125f3565b60006040518083038185875af1925050503d80600081146108eb576040519150601f19603f3d011682016040523d82523d6000602084013e6108f0565b606091505b5050905080610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612855565b60405180910390fd5b5050565b6008816002811061094857600080fd5b016000915090505481565b600a816002811061096357600080fd5b016000915090505481565b60008585858585604051602001610989959493929190612915565b60405160208183030381529060405280519060200120905095945050505050565b6109b2611d07565b73ffffffffffffffffffffffffffffffffffffffff166109d0610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d906127b5565b60405180910390fd5b610a306000611d0f565b565b600d5481565b610a40611d07565b73ffffffffffffffffffffffffffffffffffffffff16610a5e610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab906127b5565b60405180910390fd5b6007548310610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612875565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612775565b60405180910390fd5b60011515610c1186600a600060028110610bcd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600a600160028110610c0a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906127d5565b60405180910390fd5b60011515610cda856008600060028110610c96577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b01546008600160028110610cd3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390612815565b60405180910390fd5b6000600d5411610d2b57600080fd5b6001600d6000828254610d3e9190612aaf565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633bf7177686868487876040518663ffffffff1660e01b8152600401610da8959493929190612915565b600060405180830381600087803b158015610dc257600080fd5b505af1158015610dd6573d6000803e3d6000fd5b50505050826003819055505050505050565b610df0611d07565b73ffffffffffffffffffffffffffffffffffffffff16610e0e610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b906127b5565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff02191690831515021790555050565b60075481565b600080610ed8888888888861096e565b90506000610ee582611cd7565b90508973ffffffffffffffffffffffffffffffffffffffff16610f08828661116e565b73ffffffffffffffffffffffffffffffffffffffff161492505050979650505050505050565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f65611d07565b73ffffffffffffffffffffffffffffffffffffffff16610f83610f34565b73ffffffffffffffffffffffffffffffffffffffff1614610fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd0906127b5565b60405180910390fd5b82600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508160066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550505050565b60008060008061117d856111dd565b925092509250600186828585604051600081526020016040526040516111a69493929190612690565b6020604051602081039080840390855afa1580156111c8573d6000803e3d6000fd5b50505060206040510351935050505092915050565b60008060006041845114611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90612895565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b60035481565b611253611d07565b73ffffffffffffffffffffffffffffffffffffffff16611271610f34565b73ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906127b5565b60405180910390fd5b836008600060028110611303577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0181905550826008600160028110611344577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555081600a600060028110611385577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555080600a6001600281106113c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b018190555050505050565b600115156113e488888888888888610ec8565b151514611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906126f5565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612735565b60405180910390fd5b60035484116114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190612835565b60405180910390fd5b6000600c544261150a9190612aaf565b905080841161154e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611545906126d5565b60405180910390fd5b670214e8348c4f0000341015611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090612795565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290612775565b60405180910390fd5b600754851061166f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611666906127f5565b60405180910390fd5b600115156116f688600a6000600281106116b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600a6001600281106116ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f906127d5565b60405180910390fd5b600115156117bf87600860006002811061177b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015460086001600281106117b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461070b565b151514611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f890612815565b60405180910390fd5b84600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633bf71776888860066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015489886040518663ffffffff1660e01b81526004016118cf959493929190612915565b600060405180830381600087803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b5050505060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154670214e8348c4f00006119799190612a7e565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546119e89190612a28565b60066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550600060066000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154670214e8348c4f0000611aca9190612a7e565b670214e8348c4f0000611add9190612aaf565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b27906125f3565b60006040518083038185875af1925050503d8060008114611b64576040519150601f19603f3d011682016040523d82523d6000602084013e611b69565b606091505b5050905080611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490612855565b60405180910390fd5b50505050505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611be7611d07565b73ffffffffffffffffffffffffffffffffffffffff16611c05610f34565b73ffffffffffffffffffffffffffffffffffffffff1614611c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c52906127b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc290612715565b60405180910390fd5b611cd481611d0f565b50565b600081604051602001611cea91906125cd565b604051602081830303815290604052805190602001209050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000611de6611de184612994565b61296f565b905082815260208101848484011115611dfe57600080fd5b611e09848285612b42565b509392505050565b6000611e24611e1f846129c5565b61296f565b905082815260208101848484011115611e3c57600080fd5b611e47848285612b42565b509392505050565b600081359050611e5e81612f16565b92915050565b600081359050611e7381612f2d565b92915050565b600082601f830112611e8a57600080fd5b8135611e9a848260208601611dd3565b91505092915050565b600082601f830112611eb457600080fd5b8135611ec4848260208601611e11565b91505092915050565b600081359050611edc81612f44565b92915050565b600060208284031215611ef457600080fd5b6000611f0284828501611e4f565b91505092915050565b600080600060608486031215611f2057600080fd5b6000611f2e86828701611e4f565b9350506020611f3f86828701611ecd565b9250506040611f5086828701611ecd565b9150509250925092565b600080600080600080600060e0888a031215611f7557600080fd5b6000611f838a828b01611e4f565b9750506020611f948a828b01611ecd565b9650506040611fa58a828b01611ecd565b9550506060611fb68a828b01611ecd565b9450506080611fc78a828b01611ecd565b93505060a088013567ffffffffffffffff811115611fe457600080fd5b611ff08a828b01611ea3565b92505060c088013567ffffffffffffffff81111561200d57600080fd5b6120198a828b01611e79565b91505092959891949750929550565b60006020828403121561203a57600080fd5b600061204884828501611e64565b91505092915050565b6000806040838503121561206457600080fd5b600061207285828601611e64565b925050602083013567ffffffffffffffff81111561208f57600080fd5b61209b85828601611e79565b9150509250929050565b6000602082840312156120b757600080fd5b600082013567ffffffffffffffff8111156120d157600080fd5b6120dd84828501611e79565b91505092915050565b6000602082840312156120f857600080fd5b600061210684828501611ecd565b91505092915050565b60008060006060848603121561212457600080fd5b600061213286828701611ecd565b935050602061214386828701611ecd565b925050604061215486828701611ecd565b9150509250925092565b600080600080600060a0868803121561217657600080fd5b600061218488828901611ecd565b955050602061219588828901611ecd565b94505060406121a688828901611ecd565b935050606086013567ffffffffffffffff8111156121c357600080fd5b6121cf88828901611ea3565b92505060806121e088828901611ecd565b9150509295509295909350565b6000806000806080858703121561220357600080fd5b600061221187828801611ecd565b945050602061222287828801611ecd565b935050604061223387828801611ecd565b925050606061224487828801611ecd565b91505092959194509250565b600080600080600060a0868803121561226857600080fd5b600061227688828901611ecd565b955050602061228788828901611ecd565b945050604061229888828901611ecd565b93505060606122a988828901611ecd565b925050608086013567ffffffffffffffff8111156122c657600080fd5b6122d288828901611ea3565b9150509295509295909350565b6122e881612ae3565b82525050565b6122f781612af5565b82525050565b61230681612b01565b82525050565b61231d61231882612b01565b612bb5565b82525050565b600061232e826129f6565b6123388185612a0c565b9350612348818560208601612b51565b61235181612c4c565b840191505092915050565b6000612369601283612a0c565b915061237482612c5d565b602082019050919050565b600061238c601c83612a1d565b915061239782612c86565b601c82019050919050565b60006123af600f83612a0c565b91506123ba82612caf565b602082019050919050565b60006123d2602683612a0c565b91506123dd82612cd8565b604082019050919050565b60006123f5601a83612a0c565b915061240082612d27565b602082019050919050565b6000612418601883612a0c565b915061242382612d50565b602082019050919050565b600061243b600e83612a0c565b915061244682612d79565b602082019050919050565b600061245e601483612a0c565b915061246982612da2565b602082019050919050565b6000612481602083612a0c565b915061248c82612dcb565b602082019050919050565b60006124a4601c83612a0c565b91506124af82612df4565b602082019050919050565b60006124c7601883612a0c565b91506124d282612e1d565b602082019050919050565b60006124ea601f83612a0c565b91506124f582612e46565b602082019050919050565b600061250d601983612a0c565b915061251882612e6f565b602082019050919050565b6000612530600083612a01565b915061253b82612e98565b600082019050919050565b6000612553601083612a0c565b915061255e82612e9b565b602082019050919050565b6000612576601b83612a0c565b915061258182612ec4565b602082019050919050565b6000612599601883612a0c565b91506125a482612eed565b602082019050919050565b6125b881612b2b565b82525050565b6125c781612b35565b82525050565b60006125d88261237f565b91506125e4828461230c565b60208201915081905092915050565b60006125fe82612523565b9150819050919050565b600060208201905061261d60008301846122df565b92915050565b600060208201905061263860008301846122ee565b92915050565b600060208201905061265360008301846122fd565b92915050565b600060608201905061266e60008301866122fd565b61267b60208301856122fd565b61268860408301846125be565b949350505050565b60006080820190506126a560008301876122fd565b6126b260208301866125be565b6126bf60408301856122fd565b6126cc60608301846122fd565b95945050505050565b600060208201905081810360008301526126ee8161235c565b9050919050565b6000602082019050818103600083015261270e816123a2565b9050919050565b6000602082019050818103600083015261272e816123c5565b9050919050565b6000602082019050818103600083015261274e816123e8565b9050919050565b6000602082019050818103600083015261276e8161240b565b9050919050565b6000602082019050818103600083015261278e8161242e565b9050919050565b600060208201905081810360008301526127ae81612451565b9050919050565b600060208201905081810360008301526127ce81612474565b9050919050565b600060208201905081810360008301526127ee81612497565b9050919050565b6000602082019050818103600083015261280e816124ba565b9050919050565b6000602082019050818103600083015261282e816124dd565b9050919050565b6000602082019050818103600083015261284e81612500565b9050919050565b6000602082019050818103600083015261286e81612546565b9050919050565b6000602082019050818103600083015261288e81612569565b9050919050565b600060208201905081810360008301526128ae8161258c565b9050919050565b60006020820190506128ca60008301846125af565b92915050565b60006080820190506128e560008301876125af565b6128f260208301866125af565b6128ff60408301856122ee565b61290c60608301846125af565b95945050505050565b600060a08201905061292a60008301886125af565b61293760208301876125af565b61294460408301866125af565b61295160608301856125af565b81810360808301526129638184612323565b90509695505050505050565b600061297961298a565b90506129858282612b84565b919050565b6000604051905090565b600067ffffffffffffffff8211156129af576129ae612c1d565b5b6129b882612c4c565b9050602081019050919050565b600067ffffffffffffffff8211156129e0576129df612c1d565b5b6129e982612c4c565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000612a3382612b2b565b9150612a3e83612b2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a7357612a72612bbf565b5b828201905092915050565b6000612a8982612b2b565b9150612a9483612b2b565b925082612aa457612aa3612bee565b5b828204905092915050565b6000612aba82612b2b565b9150612ac583612b2b565b925082821015612ad857612ad7612bbf565b5b828203905092915050565b6000612aee82612b0b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b6f578082015181840152602081019050612b54565b83811115612b7e576000848401525b50505050565b612b8d82612c4c565b810181811067ffffffffffffffff82111715612bac57612bab612c1d565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f446174617061636b657420746f6f206f6c640000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f57726f6e67207369676e61747572650000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5369676e6572206973206e6f74206461746170726f7669646572000000000000600082015250565b7f45786869626974696f6e207374696c6c2072756e6e696e670000000000000000600082015250565b7f4e6f2063757261746f7220736574000000000000000000000000000000000000600082015250565b7f496e73756666696369656e74207061796d656e74000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d6f6973747572652072616e6765206f7574206f6620626f756e647300000000600082015250565b7f4d6178206e756d62657220746f6b656e73206d696e7465640000000000000000600082015250565b7f54656d70657261747572652072616e6765206f7574206f6620626f756e647300600082015250565b7f446174617061636b657420616c7265616479206d696e74656400000000000000600082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f4d6178206e756d626572206f6620746f6b656e73206d696e7465640000000000600082015250565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b612f1f81612ae3565b8114612f2a57600080fd5b50565b612f3681612b01565b8114612f4157600080fd5b50565b612f4d81612b2b565b8114612f5857600080fd5b5056fea2646970667358221220b8e8df09082e6655fc1175bddf85c10566bd9c962c3969aee4b35f06e3de72b264736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009777f6c5044d4ebf0a7fea82be090c6a4a594e3800000000000000000000000070e095fb47e10e696bf40d759b3656d273c76ddc000000000000000000000000db7805468c975d7157c02b44d43e3ad2d549f664
-----Decoded View---------------
Arg [0] : _dataprovider (address): 0x9777f6c5044d4eBF0A7FEA82be090C6a4A594e38
Arg [1] : _terra0multisig (address): 0x70e095FB47e10e696bf40d759B3656d273C76DDC
Arg [2] : _erc721 (address): 0xDB7805468C975d7157C02B44d43E3AD2D549f664
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000009777f6c5044d4ebf0a7fea82be090c6a4a594e38
Arg [1] : 00000000000000000000000070e095fb47e10e696bf40d759b3656d273c76ddc
Arg [2] : 000000000000000000000000db7805468c975d7157c02b44d43e3ad2d549f664
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
POL | 100.00% | $0.534475 | 0.15 | $0.080171 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.