Overview
ETH Balance
0.000096851270774095 ETH
Eth Value
$0.28 (@ $2,880.68/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 180 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Breed | 9796177 | 1767 days ago | IN | 0 ETH | 0.00027084 | ||||
Breed | 9795782 | 1767 days ago | IN | 0 ETH | 0.0003387 | ||||
Breed | 9795654 | 1767 days ago | IN | 0 ETH | 0.0002258 | ||||
Breed | 9794217 | 1768 days ago | IN | 0 ETH | 0.00056426 | ||||
Breed | 9793205 | 1768 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9792679 | 1768 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9789986 | 1768 days ago | IN | 0 ETH | 0.0000948 | ||||
Breed | 9789871 | 1768 days ago | IN | 0 ETH | 0.00027096 | ||||
Breed | 9786107 | 1769 days ago | IN | 0 ETH | 0.00062096 | ||||
Breed | 9786015 | 1769 days ago | IN | 0 ETH | 0.00051935 | ||||
Breed | 9784142 | 1769 days ago | IN | 0 ETH | 0.00025944 | ||||
Breed | 9784050 | 1769 days ago | IN | 0 ETH | 0.00029328 | ||||
Breed | 9754914 | 1774 days ago | IN | 0 ETH | 0.00024816 | ||||
Breed | 9754372 | 1774 days ago | IN | 0 ETH | 0.0002256 | ||||
Breed | 9753927 | 1774 days ago | IN | 0 ETH | 0.00024175 | ||||
Breed | 9753927 | 1774 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9752877 | 1774 days ago | IN | 0 ETH | 0.0002257 | ||||
Breed | 9752844 | 1774 days ago | IN | 0 ETH | 0.00034999 | ||||
Breed | 9752419 | 1774 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9752295 | 1774 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9752294 | 1774 days ago | IN | 0 ETH | 0.00056451 | ||||
Breed | 9751675 | 1774 days ago | IN | 0 ETH | 0.0002258 | ||||
Breed | 9750951 | 1774 days ago | IN | 0 ETH | 0.00045141 | ||||
Breed | 9750897 | 1774 days ago | IN | 0 ETH | 0.0003384 | ||||
Breed | 9750895 | 1774 days ago | IN | 0 ETH | 0.00010428 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
9963609 | 1742 days ago | 0.3334 ETH | ||||
9802405 | 1766 days ago | 0.03430907 ETH | ||||
9802035 | 1766 days ago | 0.03907148 ETH | ||||
9797197 | 1767 days ago | 0.00421601 ETH | ||||
9796177 | 1767 days ago | 0.001 ETH | ||||
9796177 | 1767 days ago | 0.008 ETH | ||||
9795782 | 1767 days ago | 0.001 ETH | ||||
9795782 | 1767 days ago | 0.008 ETH | ||||
9795654 | 1767 days ago | 0.001 ETH | ||||
9795654 | 1767 days ago | 0.008 ETH | ||||
9795480 | 1767 days ago | 0.00476346 ETH | ||||
9795241 | 1768 days ago | 0.004793 ETH | ||||
9795241 | 1768 days ago | 0.004793 ETH | ||||
9794217 | 1768 days ago | 0.001 ETH | ||||
9794217 | 1768 days ago | 0.008 ETH | ||||
9793205 | 1768 days ago | 0.001 ETH | ||||
9793205 | 1768 days ago | 0.008 ETH | ||||
9792679 | 1768 days ago | 0.001 ETH | ||||
9792679 | 1768 days ago | 0.008 ETH | ||||
9792428 | 1768 days ago | 0.008 ETH | ||||
9791744 | 1768 days ago | 0.06152499 ETH | ||||
9790415 | 1768 days ago | 0.00932622 ETH | ||||
9789986 | 1768 days ago | 0.008 ETH | ||||
9789981 | 1768 days ago | 0.008 ETH | ||||
9789871 | 1768 days ago | 0.001 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x164faB91...99D20285C The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
SimpleBreeding
Compiler Version
v0.5.3+commit.10d17f24
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-10-04 */ pragma solidity ^0.5.3; contract AuctionInterface { function cancelAuction(uint256 _tokenId) external; } contract ERC721 { // Required methods function totalSupply() public view returns (uint256 total); function balanceOf(address _owner) public view returns (uint256 balance); function ownerOf(uint256 _tokenId) external view returns (address owner); function approve(address _to, uint256 _tokenId) external; function transfer(address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; // Events event Transfer(address from, address to, uint256 tokenId); event Approval(address owner, address approved, uint256 tokenId); // Optional // function name() public view returns (string name); // function symbol() public view returns (string symbol); // function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds); // function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl); // ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165) function supportsInterface(bytes4 _interfaceID) external view returns (bool); } contract KittyCoreInterface is ERC721 { uint256 public autoBirthFee; address public saleAuction; address public siringAuction; function breedWithAuto(uint256 _matronId, uint256 _sireId) public payable; function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external; function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external; function supportsInterface(bytes4 _interfaceID) external view returns (bool); } library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } /** * @title AccessControl * @dev AccessControl contract sets roles and permissions * Owner - has full control over contract * Operator - has limited sub set of allowed actions over contract * Multiple operators can be added by owner to delegate a number of tasks in the contract */ contract AccessControl { address payable public owner; mapping(address => bool) public operators; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); event OperatorAdded( address indexed operator ); event OperatorRemoved( address indexed operator ); constructor(address payable _owner) public { if(_owner == address(0)) { owner = msg.sender; } else { owner = _owner; } } modifier onlyOwner() { require(msg.sender == owner, 'Invalid sender'); _; } modifier onlyOwnerOrOperator() { require(msg.sender == owner || operators[msg.sender] == true, 'Invalid sender'); _; } function transferOwnership(address payable _newOwner) public onlyOwner { _transferOwnership(_newOwner); } function _transferOwnership(address payable _newOwner) internal { require(_newOwner != address(0), 'Invalid address'); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } function addOperator(address payable _operator) public onlyOwner { require(operators[_operator] != true, 'Operator already exists'); operators[_operator] = true; emit OperatorAdded(_operator); } function removeOperator(address payable _operator) public onlyOwner { require(operators[_operator] == true, 'Operator already exists'); delete operators[_operator]; emit OperatorRemoved(_operator); } function destroy() public onlyOwner { selfdestruct(owner); } function destroyAndSend(address payable _recipient) public onlyOwner { selfdestruct(_recipient); } } /** * @title Pausable * @dev The Pausable contract can be paused and started by owner */ contract Pausable is AccessControl { event Pause(); event Unpause(); bool public paused = false; constructor(address payable _owner) AccessControl(_owner) public {} modifier whenNotPaused() { require(!paused, "Contract paused"); _; } modifier whenPaused() { require(paused, "Contract should be paused"); _; } function pause() public onlyOwner whenNotPaused { paused = true; emit Pause(); } function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } } /** * @title CKProxy * @dev CKProxy contract allows owner or operator to proxy call to CK Core contract to manage kitties owned by contract */ contract CKProxy is Pausable { KittyCoreInterface public kittyCore; AuctionInterface public saleAuction; AuctionInterface public siringAuction; constructor(address payable _owner, address _kittyCoreAddress) Pausable(_owner) public { require(_kittyCoreAddress != address(0), 'Invalid Kitty Core contract address'); kittyCore = KittyCoreInterface(_kittyCoreAddress); require(kittyCore.supportsInterface(0x9a20483d), 'Invalid Kitty Core contract'); saleAuction = AuctionInterface(kittyCore.saleAuction()); siringAuction = AuctionInterface(kittyCore.siringAuction()); } /** * Owner or operator can transfer kitty */ function transferKitty(address _to, uint256 _kittyId) external onlyOwnerOrOperator { kittyCore.transfer(_to, _kittyId); } /** * Owner or operator can transfer kittie in batched to optimize gas usage */ function transferKittyBulk(address _to, uint256[] calldata _kittyIds) external onlyOwnerOrOperator { for(uint256 i = 0; i < _kittyIds.length; i++) { kittyCore.transfer(_to, _kittyIds[i]); } } /** * Owner or operator can transferFrom kitty */ function transferKittyFrom(address _from, address _to, uint256 _kittyId) external onlyOwnerOrOperator { kittyCore.transferFrom(_from, _to, _kittyId); } /** * Owner or operator an approve kitty */ function approveKitty(address _to, uint256 _kittyId) external onlyOwnerOrOperator { kittyCore.approve(_to, _kittyId); } /** * Owner or operator can start sales auction for kitty owned by contract */ function createSaleAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external onlyOwnerOrOperator { kittyCore.createSaleAuction(_kittyId, _startingPrice, _endingPrice, _duration); } /** * Owner or operator can cancel sales auction for kitty owned by contract */ function cancelSaleAuction(uint256 _kittyId) external onlyOwnerOrOperator { saleAuction.cancelAuction(_kittyId); } /** * Owner or operator can start siring auction for kitty owned by contract */ function createSiringAuction(uint256 _kittyId, uint256 _startingPrice, uint256 _endingPrice, uint256 _duration) external onlyOwnerOrOperator { kittyCore.createSiringAuction(_kittyId, _startingPrice, _endingPrice, _duration); } /** * Owner or operator can cancel siring auction for kitty owned by contract */ function cancelSiringAuction(uint256 _kittyId) external onlyOwnerOrOperator { siringAuction.cancelAuction(_kittyId); } } /** * @title SimpleBreeding * @dev Simple breeding contract allows dedicated breeder to breed kitties on behalf of owner, while owner retains control over funds and kitties. * Breeder gets reward per each successful breed. Breeder can breed when contract is not paused. * Owner should transfer kitties and funds to contact to breeding starts and withdraw afterwards. * Breeder can only breed kitties owned by contract and cannot transfer funds or kitties itself. */ contract SimpleBreeding is CKProxy { address payable public breeder; uint256 public breederReward; uint256 public originalBreederReward; uint256 public maxBreedingFee; event Breed(address breeder, uint256 matronId, uint256 sireId, uint256 reward); event MaxBreedingFeeChange(uint256 oldBreedingFee, uint256 newBreedingFee); event BreederRewardChange(uint256 oldBreederReward, uint256 newBreederReward); constructor(address payable _owner, address payable _breeder, address _kittyCoreAddress, uint256 _breederReward) CKProxy(_owner, _kittyCoreAddress) public { require(_breeder != address(0), 'Invalid breeder address'); breeder = _breeder; maxBreedingFee = kittyCore.autoBirthFee(); breederReward = _breederReward; originalBreederReward = _breederReward; } /** * Contract funds are used to cover breeding fees and pay callee */ function () external payable {} /** * Owner can withdraw funds from contract */ function withdraw(uint256 amount) external onlyOwner { owner.transfer(amount); } /** * Owner can adjust breedering fee if needed */ function setMaxBreedingFee( uint256 _maxBreedingFee ) external onlyOwner { emit MaxBreedingFeeChange(maxBreedingFee, _maxBreedingFee); maxBreedingFee = _maxBreedingFee; } /** * Owner or breeder can change breeder's reward if needed. * Breeder can lower reward to make more attractive offer, it cannot set more than was originally agreed. * Owner can increase reward to motivate breeder to breed during high gas price, it cannot set less than was set by breeder. */ function setBreederReward( uint256 _breederReward ) external { require(msg.sender == breeder || msg.sender == owner, 'Invalid sender'); if(msg.sender == owner) { require(_breederReward >= originalBreederReward || _breederReward > breederReward, 'Reward value is less than required'); } else if(msg.sender == breeder) { require(_breederReward <= originalBreederReward, 'Reward value is more than original'); } emit BreederRewardChange(breederReward, _breederReward); breederReward = _breederReward; } /** * Breeder can call this function to breed kitties on behalf of owner * Owner can breed as well */ function breed(uint256 _matronId, uint256 _sireId) external whenNotPaused { require(msg.sender == breeder || msg.sender == owner, 'Invalid sender'); uint256 fee = kittyCore.autoBirthFee(); require(fee <= maxBreedingFee, 'Breeding fee is too high'); kittyCore.breedWithAuto.value(fee)(_matronId, _sireId); uint256 reward = 0; // breeder can reenter but that's OK, since breeder is payed per successful breed if(msg.sender == breeder) { reward = breederReward; breeder.transfer(reward); } emit Breed(msg.sender, _matronId, _sireId, reward); } function destroy() public onlyOwner { require(kittyCore.balanceOf(address(this)) == 0, 'Contract has tokens'); selfdestruct(owner); } function destroyAndSend(address payable _recipient) public onlyOwner { require(kittyCore.balanceOf(address(this)) == 0, 'Contract has tokens'); selfdestruct(_recipient); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"approveKitty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"originalBreederReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"}],"name":"cancelSiringAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"operators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"siringAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kittyCore","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxBreedingFee","type":"uint256"}],"name":"setMaxBreedingFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_startingPrice","type":"uint256"},{"name":"_endingPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createSaleAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_breederReward","type":"uint256"}],"name":"setBreederReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_startingPrice","type":"uint256"},{"name":"_endingPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createSiringAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyIds","type":"uint256[]"}],"name":"transferKittyBulk","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"breeder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"transferKittyFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"}],"name":"cancelSaleAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"breederReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_matronId","type":"uint256"},{"name":"_sireId","type":"uint256"}],"name":"breed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"saleAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"destroyAndSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxBreedingFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_kittyId","type":"uint256"}],"name":"transferKitty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_breeder","type":"address"},{"name":"_kittyCoreAddress","type":"address"},{"name":"_breederReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"breeder","type":"address"},{"indexed":false,"name":"matronId","type":"uint256"},{"indexed":false,"name":"sireId","type":"uint256"},{"indexed":false,"name":"reward","type":"uint256"}],"name":"Breed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldBreedingFee","type":"uint256"},{"indexed":false,"name":"newBreedingFee","type":"uint256"}],"name":"MaxBreedingFeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldBreederReward","type":"uint256"},{"indexed":false,"name":"newBreederReward","type":"uint256"}],"name":"BreederRewardChange","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"}],"name":"OperatorRemoved","type":"event"}]
Deployed Bytecode
0x6080604052600436106101de576000357c0100000000000000000000000000000000000000000000000000000000900480638456cb5911610114578063c31f586d116100b2578063f2fde38b11610081578063f2fde38b14610902578063f5074f4114610953578063fc1e7476146109a4578063ffc42470146109cf576101de565b8063c31f586d14610800578063d0826cbb1461083b578063d9ecad7b14610866578063e6cbe351146108ab576101de565b80639870d7fe116100ee5780639870d7fe1461068c578063ac8a584a146106dd578063ae9dfc4d1461072e578063b2e2418a14610785576101de565b80638456cb59146105785780638da5cb5b1461058f5780638fb4fc4f146105e6576101de565b80633d280e8e11610181578063489b388c1161015b578063489b388c1461049e5780634ad8c938146104d95780635c975abb1461053257806383197ef014610561576101de565b80633d280e8e146103f35780633d7d3f5a1461042e5780633f4ba83a14610487576101de565b806313e7c9d8116101bd57806313e7c9d8146102a157806321717ebf1461030a5780632e1a7d4d146103615780633d1153341461039c576101de565b8062aa418f146101e05780630504d9c51461023b5780631033356714610266575b005b3480156101ec57600080fd5b506102396004803603604081101561020357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2a565b005b34801561024757600080fd5b50610250610c2a565b6040518082815260200191505060405180910390f35b34801561027257600080fd5b5061029f6004803603602081101561028957600080fd5b8101908080359060200190929190505050610c30565b005b3480156102ad57600080fd5b506102f0600480360360208110156102c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dfb565b604051808215151515815260200191505060405180910390f35b34801561031657600080fd5b5061031f610e1b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036d57600080fd5b5061039a6004803603602081101561038457600080fd5b8101908080359060200190929190505050610e41565b005b3480156103a857600080fd5b506103b1610f70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ff57600080fd5b5061042c6004803603602081101561041657600080fd5b8101908080359060200190929190505050610f96565b005b34801561043a57600080fd5b506104856004803603608081101561045157600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291905050506110a5565b005b34801561049357600080fd5b5061049c61128b565b005b3480156104aa57600080fd5b506104d7600480360360208110156104c157600080fd5b810190808035906020019092919050505061141c565b005b3480156104e557600080fd5b50610530600480360360808110156104fc57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291905050506116fb565b005b34801561053e57600080fd5b506105476118e1565b604051808215151515815260200191505060405180910390f35b34801561056d57600080fd5b506105766118f4565b005b34801561058457600080fd5b5061058d611b5f565b005b34801561059b57600080fd5b506105a4611cf1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f257600080fd5b5061068a6004803603604081101561060957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561064657600080fd5b82018360208201111561065857600080fd5b8035906020019184602083028401116401000000008311171561067a57600080fd5b9091929391929390505050611d16565b005b34801561069857600080fd5b506106db600480360360208110156106af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f4a565b005b3480156106e957600080fd5b5061072c6004803603602081101561070057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612174565b005b34801561073a57600080fd5b50610743612395565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561079157600080fd5b506107fe600480360360608110156107a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123bb565b005b34801561080c57600080fd5b506108396004803603602081101561082357600080fd5b81019080803590602001909291905050506125f0565b005b34801561084757600080fd5b506108506127bb565b6040518082815260200191505060405180910390f35b34801561087257600080fd5b506108a96004803603604081101561088957600080fd5b8101908080359060200190929190803590602001909291905050506127c1565b005b3480156108b757600080fd5b506108c0612c9c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090e57600080fd5b506109516004803603602081101561092557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cc2565b005b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d92565b005b3480156109b057600080fd5b506109b9612fdc565b6040518082815260200191505060405180910390f35b3480156109db57600080fd5b50610a28600480360360408110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fe2565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ad5575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b383836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050505050565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cdb575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610d4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396b5a755826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b158015610de057600080fd5b505af1158015610df4573d6000803e3d6000fd5b5050505050565b60016020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610f6c573d6000803e3d6000fd5b5050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b7f693d3e7d14d8f845811b787f8d28c1aef4b4bac15721fbea5dc8a8a7c85da61b60085482604051808381526020018281526020019250505060405180910390a18060088190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611150575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156111c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d7d3f5a858585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b5050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900460ff1615156113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f436f6e74726163742073686f756c64206265207061757365640000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114c457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156115fb576007548110158061159f575060065481115b15156115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806133466022913960400191505060405180910390fd5b6116b0565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156116af5760075481111515156116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806133686022913960400191505060405180910390fd5b5b5b7ffdac16f44d837cccd5f18e297e4e2c1366844b81ed087ea6506eb1f1bcd7b6f460065482604051808381526020018281526020019250505060405180910390a18060068190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806117a6575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ad8c938858585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001848152602001838152602001828152602001945050505050600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b5050505050505050565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a7557600080fd5b505afa158015611a89573d6000803e3d6000fd5b505050506040513d6020811015611a9f57600080fd5b8101908080519060200190929190505050141515611b25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e74726163742068617320746f6b656e730000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900460ff16151515611ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436f6e747261637420706175736564000000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611dc1575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611e35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b82829050811015611f4457600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858585858181101515611e9357fe5b905060200201356040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611f1f57600080fd5b505af1158015611f33573d6000803e3d6000fd5b505050508080600101915050611e3b565b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561200e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515156120d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f70657261746f7220616c72656164792065786973747300000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d60405160405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4f70657261746f7220616c72656164792065786973747300000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558073ffffffffffffffffffffffffffffffffffffffff167f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d60405160405180910390a250565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612466575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156124da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156125d357600080fd5b505af11580156125e7573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061269b575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561270f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166396b5a755826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156127a057600080fd5b505af11580156127b4573d6000803e3d6000fd5b5050505050565b60065481565b600260009054906101000a900460ff16151515612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436f6e747261637420706175736564000000000000000000000000000000000081525060200191505060405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806128ee57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c35c056040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156129e857600080fd5b505afa1580156129fc573d6000803e3d6000fd5b505050506040513d6020811015612a1257600080fd5b810190808051906020019092919050505090506008548111151515612a9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4272656564696e672066656520697320746f6f2068696768000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7d8c8838285856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506000604051808303818588803b158015612b3857600080fd5b505af1158015612b4c573d6000803e3d6000fd5b50505050506000809050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612c1b576006549050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612c19573d6000803e3d6000fd5b505b7fddf1e8fec06a50aa72b8a39a06787808c53eca73b2bd1cc995681cf7b801465033858584604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b612d8f816131e2565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612f1357600080fd5b505afa158015612f27573d6000803e3d6000fd5b505050506040513d6020811015612f3d57600080fd5b8101908080519060200190929190505050141515612fc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6e74726163742068617320746f6b656e730000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061308d575060011515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515613101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e76616c69642073656e64657200000000000000000000000000000000000081525060200191505060405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156131c657600080fd5b505af11580156131da573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642061646472657373000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe5265776172642076616c7565206973206c657373207468616e2072657175697265645265776172642076616c7565206973206d6f7265207468616e206f726967696e616ca165627a7a723058204ac6268e21c5e75737efd89538f98961aeafc2a593ea7bd50d10d350465d8edd0029
Deployed Bytecode Sourcemap
9587:3300:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7872:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7872:128:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7872:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9695:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9695:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8974:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8974:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8974:126:0;;;;;;;;;;;;;;;;;:::i;:::-;;3981:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3981:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3981:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6592:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6592:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10588:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10588:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10588:88:0;;;;;;;;;;;;;;;;;:::i;:::-;;6512:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6512:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10744:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10744:191:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10744:191:0;;;;;;;;;;;;;;;;;:::i;:::-;;8096:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8096:230:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8096:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6215:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6215:105:0;;;:::i;:::-;;11255:558;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11255:558:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11255:558:0;;;;;;;;;;;;;;;;;:::i;:::-;;8642:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8642:234:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8642:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5790:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5790:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12548:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12548:146:0;;;:::i;:::-;;6104:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6104:103:0;;;:::i;:::-;;3948:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3948:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7374:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7374:211:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7374:211:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7374:211:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7374:211:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;7374:211:0;;;;;;;;;;;;:::i;:::-;;4976:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4976:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4976:214:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5196:219;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5196:219:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5196:219:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9627:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9627:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7652:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7652:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7652:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8423:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8423:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8423:122:0;;;;;;;;;;;;;;;;;:::i;:::-;;9662:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9662:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11936:606;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11936:606:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11936:606:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6552:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6552:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4649:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4649:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4649:113:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12700:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12700:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12700:184:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9736:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9736:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7148:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7148:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7148:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7872:128;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7962:9;;;;;;;;;;;:17;;;7980:3;7985:8;7962:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7962:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7962:32:0;;;;7872:128;;:::o;9695:36::-;;;;:::o;8974:126::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9057:13;;;;;;;;;;;:27;;;9085:8;9057:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9057:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9057:37:0;;;;8974:126;:::o;3981:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6592:37::-;;;;;;;;;;;;;:::o;10588:88::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10648:5;;;;;;;;;;;:14;;:22;10663:6;10648:22;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10648:22:0;10588:88;:::o;6512:35::-;;;;;;;;;;;;;:::o;10744:191::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10837:53;10858:14;;10874:15;10837:53;;;;;;;;;;;;;;;;;;;;;;;;10914:15;10897:14;:32;;;;10744:191;:::o;8096:230::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8242:9;;;;;;;;;;;:27;;;8270:8;8280:14;8296:12;8310:9;8242:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8242:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8242:78:0;;;;8096:230;;;;:::o;6215:105::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6040:6;;;;;;;;;;;6032:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6282:5;6273:6;;:14;;;;;;;;;;;;;;;;;;6303:9;;;;;;;;;;6215:105::o;11255:558::-;11353:7;;;;;;;;;;;11339:21;;:10;:21;;;:44;;;;11378:5;;;;;;;;;;;11364:19;;:10;:19;;;11339:44;11331:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11428:5;;;;;;;;;;;11414:19;;:10;:19;;;11411:296;;;11470:21;;11452:14;:39;;:73;;;;11512:13;;11495:14;:30;11452:73;11444:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11411:296;;;11595:7;;;;;;;;;;;11581:21;;:10;:21;;;11578:129;;;11639:21;;11621:14;:39;;11613:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11578:129;11411:296;11720:50;11740:13;;11755:14;11720:50;;;;;;;;;;;;;;;;;;;;;;;;11793:14;11777:13;:30;;;;11255:558;:::o;8642:234::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8790:9;;;;;;;;;;;:29;;;8820:8;8830:14;8846:12;8860:9;8790:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8790:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8790:80:0;;;;8642:234;;;;:::o;5790:26::-;;;;;;;;;;;;;:::o;12548:146::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12637:1;12599:9;;;;;;;;;;;:19;;;12627:4;12599:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12599:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12599:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12599:34:0;;;;;;;;;;;;;;;;:39;12591:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12682:5;;;;;;;;;;;12669:19;;;6104:103;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5945:6;;;;;;;;;;;5944:7;5936:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6172:4;6163:6;;:13;;;;;;;;;;;;;;;;;;6192:7;;;;;;;;;;6104:103::o;3948:28::-;;;;;;;;;;;;;:::o;7374:211::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:9;7496:1;7484:13;;7480:100;7503:9;;:16;;7499:1;:20;7480:100;;;7535:9;;;;;;;;;;;:18;;;7554:3;7559:9;;7569:1;7559:12;;;;;;;;;;;;;;;7535:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7535:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7535:37:0;;;;7521:3;;;;;;;7480:100;;;;7374:211;;;:::o;4976:214::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5080:4;5056:28;;:9;:20;5066:9;5056:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;5048:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5142:4;5119:9;:20;5129:9;5119:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;5174:9;5160:24;;;;;;;;;;;;4976:214;:::o;5196:219::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5303:4;5279:28;;:9;:20;5289:9;5279:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;5271:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5349:9;:20;5359:9;5349:20;;;;;;;;;;;;;;;;5342:27;;;;;;;;;;;5399:9;5383:26;;;;;;;;;;;;5196:219;:::o;9627:30::-;;;;;;;;;;;;;:::o;7652:159::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7761:9;;;;;;;;;;;:22;;;7784:5;7791:3;7796:8;7761:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7761:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7761:44:0;;;;7652:159;;;:::o;8423:122::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8504:11;;;;;;;;;;;:25;;;8530:8;8504:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8504:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8504:35:0;;;;8423:122;:::o;9662:28::-;;;;:::o;11936:606::-;5945:6;;;;;;;;;;;5944:7;5936:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12039:7;;;;;;;;;;;12025:21;;:10;:21;;;:44;;;;12064:5;;;;;;;;;;;12050:19;;:10;:19;;;12025:44;12017:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12095:11;12109:9;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12109:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12109:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12109:24:0;;;;;;;;;;;;;;;;12095:38;;12155:14;;12148:3;:21;;12140:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12205:9;;;;;;;;;;;:23;;;12235:3;12240:9;12251:7;12205:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12205:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12205:54:0;;;;;12268:14;12285:1;12268:18;;12397:7;;;;;;;;;;;12383:21;;:10;:21;;;12380:98;;;12424:13;;12415:22;;12446:7;;;;;;;;;;;:16;;:24;12463:6;12446:24;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12446:24:0;12380:98;12491:45;12497:10;12509:9;12520:7;12529:6;12491:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5982:1;;11936:606;;:::o;6552:35::-;;;;;;;;;;;;;:::o;4649:113::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:29;4746:9;4727:18;:29::i;:::-;4649:113;:::o;12700:184::-;4468:5;;;;;;;;;;;4454:19;;:10;:19;;;4446:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12822:1;12784:9;;;;;;;;;;;:19;;;12812:4;12784:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12784:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12784:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12784:34:0;;;;;;;;;;;;;;;;:39;12776:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12867:10;12854:24;;;9736:29;;;;:::o;7148:129::-;4572:5;;;;;;;;;;;4558:19;;:10;:19;;;:52;;;;4606:4;4581:29;;:9;:21;4591:10;4581:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4558:52;4550:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7238:9;;;;;;;;;;;:18;;;7257:3;7262:8;7238:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7238:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7238:33:0;;;;7148:129;;:::o;4768:202::-;4868:1;4847:23;;:9;:23;;;;4839:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:9;4902:38;;4923:5;;;;;;;;;;;4902:38;;;;;;;;;;;;4955:9;4947:5;;:17;;;;;;;;;;;;;;;;;;4768:202;:::o
Swarm Source
bzzr://4ac6268e21c5e75737efd89538f98961aeafc2a593ea7bd50d10d350465d8edd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,880.68 | 0.00009685 | $0.278997 |
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.