ERC-20
Overview
Max Total Supply
40,000,000,000 WISH
Holders
2,692
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WISH
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-07-29 */ pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } /** * @dev Allows the current owner to relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } } library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://github.com/ethereum/EIPs/issues/20 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance( address _owner, address _spender ) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval( address _spender, uint256 _addedValue ) public returns (bool) { allowed[msg.sender][_spender] = ( allowed[msg.sender][_spender].add(_addedValue)); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval( address _spender, uint256 _subtractedValue ) public returns (bool) { uint256 oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is BasicToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { _burn(msg.sender, _value); } function _burn(address _who, uint256 _value) internal { require(_value <= balances[_who]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure balances[_who] = balances[_who].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(_who, _value); emit Transfer(_who, address(0), _value); } } /** * @title Standard Burnable Token * @dev Adds burnFrom method to ERC20 implementations */ contract StandardBurnableToken is BurnableToken, StandardToken { /** * @dev Burns a specific amount of tokens from the target address and decrements allowance * @param _from address The address which you want to send tokens from * @param _value uint256 The amount of token to be burned */ function burnFrom(address _from, uint256 _value) public { require(_value <= allowed[_from][msg.sender]); // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted, // this function needs to emit an event with the updated approval. allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); _burn(_from, _value); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } /** * @title Pausable token * @dev StandardToken modified with pausable transfers. **/ contract PausableToken is StandardToken, Pausable { function transfer( address _to, uint256 _value ) public whenNotPaused returns (bool) { return super.transfer(_to, _value); } function transferFrom( address _from, address _to, uint256 _value ) public whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } function approve( address _spender, uint256 _value ) public whenNotPaused returns (bool) { return super.approve(_spender, _value); } function increaseApproval( address _spender, uint _addedValue ) public whenNotPaused returns (bool success) { return super.increaseApproval(_spender, _addedValue); } function decreaseApproval( address _spender, uint _subtractedValue ) public whenNotPaused returns (bool success) { return super.decreaseApproval(_spender, _subtractedValue); } } /** * @title Wish token **/ contract WISH is StandardBurnableToken, PausableToken { using SafeMath for uint256; string public constant name = "WishChain"; string public constant symbol = "WISH"; uint8 public constant decimals = 18; uint256 public constant INITIAL_SUPPLY = 4e10 * (10 ** uint256(decimals)); uint constant LOCK_TOKEN_COUNT = 1000; struct LockedUserInfo{ uint256 _releaseTime; uint256 _amount; } mapping(address => LockedUserInfo[]) private lockedUserEntity; mapping(address => bool) private supervisorEntity; mapping(address => bool) private lockedWalletEntity; modifier onlySupervisor() { require(owner == msg.sender || supervisorEntity[msg.sender]); _; } event Lock(address indexed holder, uint256 value, uint256 releaseTime); event Unlock(address indexed holder, uint256 value); event PrintLog( address indexed sender, string _logName, uint256 _value ); constructor() public { totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; emit Transfer(0x0, msg.sender, INITIAL_SUPPLY); } function transfer(address to, uint256 value) public whenNotPaused returns (bool) { require(!isLockedWalletEntity(msg.sender)); require(msg.sender != to,"Check your address!!"); if (lockedUserEntity[msg.sender].length > 0 ) { _autoUnlock(msg.sender); } return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) { require(!isLockedWalletEntity(from) && !isLockedWalletEntity(msg.sender)); if (lockedUserEntity[from].length > 0) { _autoUnlock(from); } return super.transferFrom(from, to, value); } function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlySupervisor whenNotPaused returns (bool) { require(releaseTime > now && value > 0, "Check your values!!;"); if(lockedUserEntity[holder].length >= LOCK_TOKEN_COUNT){ return false; } transfer(holder, value); _lock(holder,value,releaseTime); return true; } function _lock(address holder, uint256 value, uint256 releaseTime) internal returns(bool) { balances[holder] = balances[holder].sub(value); lockedUserEntity[holder].push( LockedUserInfo(releaseTime, value) ); emit Lock(holder, value, releaseTime); return true; } function _unlock(address holder, uint256 idx) internal returns(bool) { LockedUserInfo storage lockedUserInfo = lockedUserEntity[holder][idx]; uint256 releaseAmount = lockedUserInfo._amount; delete lockedUserEntity[holder][idx]; lockedUserEntity[holder][idx] = lockedUserEntity[holder][lockedUserEntity[holder].length.sub(1)]; lockedUserEntity[holder].length -=1; emit Unlock(holder, releaseAmount); balances[holder] = balances[holder].add(releaseAmount); return true; } function _autoUnlock(address holder) internal returns(bool) { for(uint256 idx =0; idx < lockedUserEntity[holder].length ; idx++ ) { if (lockedUserEntity[holder][idx]._releaseTime <= now) { // If lockupinfo was deleted, loop restart at same position. if( _unlock(holder, idx) ) { idx -=1; } } } return true; } function setLockTime(address holder, uint idx, uint256 releaseTime) onlySupervisor public returns(bool){ require(holder !=address(0) && idx >= 0 && releaseTime > now); require(lockedUserEntity[holder].length >= idx); lockedUserEntity[holder][idx]._releaseTime = releaseTime; return true; } function getLockedUserInfo(address _address) view public returns (uint256[], uint256[]){ require(msg.sender == _address || msg.sender == owner || supervisorEntity[msg.sender]); uint256[] memory _returnAmount = new uint256[](lockedUserEntity[_address].length); uint256[] memory _returnReleaseTime = new uint256[](lockedUserEntity[_address].length); for(uint i = 0; i < lockedUserEntity[_address].length; i ++){ _returnAmount[i] = lockedUserEntity[_address][i]._amount; _returnReleaseTime[i] = lockedUserEntity[_address][i]._releaseTime; } return (_returnAmount, _returnReleaseTime); } function burn(uint256 _value) onlySupervisor public { super._burn(msg.sender, _value); } function burnFrom(address _from, uint256 _value) onlySupervisor public { super.burnFrom(_from, _value); } function balanceOf(address owner) public view returns (uint256) { uint256 totalBalance = super.balanceOf(owner); if( lockedUserEntity[owner].length >0 ){ for(uint i=0; i<lockedUserEntity[owner].length;i++){ totalBalance = totalBalance.add(lockedUserEntity[owner][i]._amount); } } return totalBalance; } function setSupervisor(address _address) onlyOwner public returns (bool){ require(_address !=address(0) && !supervisorEntity[_address]); supervisorEntity[_address] = true; emit PrintLog(_address, "isSupervisor", 1); return true; } function removeSupervisor(address _address) onlyOwner public returns (bool){ require(_address !=address(0) && supervisorEntity[_address]); delete supervisorEntity[_address]; emit PrintLog(_address, "isSupervisor", 0); return true; } function setLockedWalletEntity(address _address) onlySupervisor public returns (bool){ require(_address !=address(0) && !lockedWalletEntity[_address]); lockedWalletEntity[_address] = true; emit PrintLog(_address, "isLockedWalletEntity", 1); return true; } function removeLockedWalletEntity(address _address) onlySupervisor public returns (bool){ require(_address !=address(0) && lockedWalletEntity[_address]); delete lockedWalletEntity[_address]; emit PrintLog(_address, "isLockedWalletEntity", 0); return true; } function isSupervisor(address _address) view onlyOwner public returns (bool){ return supervisorEntity[_address]; } function isLockedWalletEntity(address _from) view private returns (bool){ return lockedWalletEntity[_from]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","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":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeSupervisor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isSupervisor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getLockedUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setSupervisor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"idx","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"setLockTime","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeLockedWalletEntity","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setLockedWalletEntity","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"_logName","type":"string"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"PrintLog","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"}],"name":"OwnershipRenounced","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":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
60806040526003805460a060020a60ff021916905534801561002057600080fd5b5060038054600160a060020a031916339081179091556b813f3978f894098440000000600181905560008281526020818152604080832084905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3611d6d8061009c6000396000f3006080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f857806318160ddd1461023057806323b872dd146102575780632ff2e9dc14610281578063313ce567146102965780633f4ba83a146102c157806342966c68146102d85780635c975abb146102f0578063661884631461030557806370a08231146103295780637128defb1461034a578063715018a61461036b57806379cc67901461038057806381a24459146103a45780638456cb59146103c55780638477a3f4146103da5780638da5cb5b146104945780639299eb30146104c557806395d89b41146104e6578063997fdb1f146104fb578063a9059cbb14610522578063b74467df14610546578063d73dd62314610567578063dd62ed3e1461058b578063de6baccb146105b2578063eb7ee548146105d9578063f2fde38b146105fa575b600080fd5b34801561017a57600080fd5b5061018361061b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bd5781810151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020457600080fd5b5061021c600160a060020a0360043516602435610652565b604080519115158252519081900360200190f35b34801561023c57600080fd5b5061024561067d565b60408051918252519081900360200190f35b34801561026357600080fd5b5061021c600160a060020a0360043581169060243516604435610684565b34801561028d57600080fd5b50610245610702565b3480156102a257600080fd5b506102ab610712565b6040805160ff9092168252519081900360200190f35b3480156102cd57600080fd5b506102d6610717565b005b3480156102e457600080fd5b506102d660043561078f565b3480156102fc57600080fd5b5061021c6107cf565b34801561031157600080fd5b5061021c600160a060020a03600435166024356107df565b34801561033557600080fd5b50610245600160a060020a0360043516610803565b34801561035657600080fd5b5061021c600160a060020a03600435166108b2565b34801561037757600080fd5b506102d6610984565b34801561038c57600080fd5b506102d6600160a060020a03600435166024356109f2565b3480156103b057600080fd5b5061021c600160a060020a0360043516610a33565b3480156103d157600080fd5b506102d6610a6c565b3480156103e657600080fd5b506103fb600160a060020a0360043516610ae9565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561043f578181015183820152602001610427565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047e578181015183820152602001610466565b5050505090500194505050505060405180910390f35b3480156104a057600080fd5b506104a9610c9c565b60408051600160a060020a039092168252519081900360200190f35b3480156104d157600080fd5b5061021c600160a060020a0360043516610cab565b3480156104f257600080fd5b50610183610d82565b34801561050757600080fd5b5061021c600160a060020a0360043516602435604435610db9565b34801561052e57600080fd5b5061021c600160a060020a0360043516602435610e85565b34801561055257600080fd5b5061021c600160a060020a0360043516610f55565b34801561057357600080fd5b5061021c600160a060020a0360043516602435611043565b34801561059757600080fd5b50610245600160a060020a0360043581169060243516611067565b3480156105be57600080fd5b5061021c600160a060020a0360043516602435604435611092565b3480156105e557600080fd5b5061021c600160a060020a03600435166111a5565b34801561060657600080fd5b506102d6600160a060020a0360043516611298565b60408051808201909152600981527f57697368436861696e0000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff161561066c57600080fd5b610676838361132d565b9392505050565b6001545b90565b60035460009060a060020a900460ff161561069e57600080fd5b6106a784611393565b1580156106ba57506106b833611393565b155b15156106c557600080fd5b600160a060020a03841660009081526004602052604081205411156106ef576106ed846113b1565b505b6106fa848484611437565b949350505050565b6b813f3978f89409844000000081565b601281565b600354600160a060020a0316331461072e57600080fd5b60035460a060020a900460ff16151561074657600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600354600160a060020a03163314806107b757503360009081526005602052604090205460ff165b15156107c257600080fd5b6107cc338261145c565b50565b60035460a060020a900460ff1681565b60035460009060a060020a900460ff16156107f957600080fd5b610676838361155d565b60008060006108118461164d565b600160a060020a03851660009081526004602052604081205491935010156108ab575060005b600160a060020a0384166000908152600460205260409020548110156108ab57600160a060020a038416600090815260046020526040902080546108a191908390811061088057fe5b9060005260206000209060020201600101548361166890919063ffffffff16565b9150600101610837565b5092915050565b600354600090600160a060020a031633146108cc57600080fd5b600160a060020a038216158015906108fc5750600160a060020a03821660009081526005602052604090205460ff165b151561090757600080fd5b600160a060020a0382166000818152600560209081526040808320805460ff19169055805191820192909252818152600c818301527f697353757065727669736f72000000000000000000000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b600354600160a060020a0316331461099b57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600160a060020a0316331480610a1a57503360009081526005602052604090205460ff165b1515610a2557600080fd5b610a2f8282611677565b5050565b600354600090600160a060020a03163314610a4d57600080fd5b50600160a060020a031660009081526005602052604090205460ff1690565b600354600160a060020a03163314610a8357600080fd5b60035460a060020a900460ff1615610a9a57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6060808080600033600160a060020a0387161480610b115750600354600160a060020a031633145b80610b2b57503360009081526005602052604090205460ff165b1515610b3657600080fd5b600160a060020a0386166000908152600460209081526040918290205482518181528183028101909201909252908015610b7a578160200160208202803883390190505b50600160a060020a03871660009081526004602090815260409182902054825181815281830281019092019092529194508015610bc1578160200160208202803883390190505b509150600090505b600160a060020a038616600090815260046020526040902054811015610c9157600160a060020a0386166000908152600460205260409020805482908110610c0d57fe5b9060005260206000209060020201600101548382815181101515610c2d57fe5b6020908102909101810191909152600160a060020a0387166000908152600490915260409020805482908110610c5f57fe5b9060005260206000209060020201600001548282815181101515610c7f57fe5b60209081029091010152600101610bc9565b509094909350915050565b600354600160a060020a031681565b600354600090600160a060020a03163314610cc557600080fd5b600160a060020a03821615801590610cf65750600160a060020a03821660009081526005602052604090205460ff16155b1515610d0157600080fd5b600160a060020a038216600081815260056020908152604091829020805460ff19166001908117909155825191820152818152600c818301527f697353757065727669736f72000000000000000000000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b60408051808201909152600481527f5749534800000000000000000000000000000000000000000000000000000000602082015281565b600354600090600160a060020a0316331480610de457503360009081526005602052604090205460ff165b1515610def57600080fd5b600160a060020a03841615801590610e08575060008310155b8015610e1357504282115b1515610e1e57600080fd5b600160a060020a038416600090815260046020526040902054831115610e4357600080fd5b600160a060020a0384166000908152600460205260409020805483919085908110610e6a57fe5b60009182526020909120600290910201555060019392505050565b60035460009060a060020a900460ff1615610e9f57600080fd5b610ea833611393565b15610eb257600080fd5b33600160a060020a0384161415610f2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436865636b20796f757220616464726573732121000000000000000000000000604482015290519081900360640190fd5b336000908152600460205260408120541115610f4b57610f49336113b1565b505b6106768383611709565b600354600090600160a060020a0316331480610f8057503360009081526005602052604090205460ff165b1515610f8b57600080fd5b600160a060020a03821615801590610fbb5750600160a060020a03821660009081526006602052604090205460ff165b1515610fc657600080fd5b600160a060020a0382166000818152600660209081526040808320805460ff191690558051918201929092528181526014818301527f69734c6f636b656457616c6c6574456e7469747900000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b60035460009060a060020a900460ff161561105d57600080fd5b610676838361172d565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a03163314806110bd57503360009081526005602052604090205460ff165b15156110c857600080fd5b60035460a060020a900460ff16156110df57600080fd5b42821180156110ee5750600083115b151561115b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436865636b20796f75722076616c75657321213b000000000000000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600460205260409020546103e81161118457506000610676565b61118e8484610e85565b5061119a8484846117c6565b506001949350505050565b600354600090600160a060020a03163314806111d057503360009081526005602052604090205460ff165b15156111db57600080fd5b600160a060020a0382161580159061120c5750600160a060020a03821660009081526006602052604090205460ff16155b151561121757600080fd5b600160a060020a038216600081815260066020908152604091829020805460ff191660019081179091558251918201528181526014818301527f69734c6f636b656457616c6c6574456e7469747900000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b600354600160a060020a031633146112af57600080fd5b600160a060020a03811615156112c457600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600160a060020a031660009081526006602052604090205460ff1690565b6000805b600160a060020a03831660009081526004602052604090205481101561142e57600160a060020a03831660009081526004602052604090208054429190839081106113fc57fe5b6000918252602090912060029091020154116114265761141c8382611889565b1561142657600019015b6001016113b5565b50600192915050565b60035460009060a060020a900460ff161561145157600080fd5b6106fa848484611a62565b600160a060020a03821660009081526020819052604090205481111561148157600080fd5b600160a060020a0382166000908152602081905260409020546114aa908263ffffffff611bd916565b600160a060020a0383166000908152602081905260409020556001546114d6908263ffffffff611bd916565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156115b257336000908152600260209081526040808320600160a060020a03881684529091528120556115e7565b6115c2818463ffffffff611bd916565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b60008282018381101561067657fe5b600160a060020a03821660009081526002602090815260408083203384529091529020548111156116a757600080fd5b600160a060020a03821660009081526002602090815260408083203384529091529020546116db908263ffffffff611bd916565b600160a060020a0383166000908152600260209081526040808320338452909152902055610a2f828261145c565b60035460009060a060020a900460ff161561172357600080fd5b6106768383611beb565b336000908152600260209081526040808320600160a060020a0386168452909152812054611761908363ffffffff61166816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a0383166000908152602081905260408120546117ef908463ffffffff611bd916565b600160a060020a0385166000818152602081815260408083209490945560048152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b600160a060020a0382166000908152600460205260408120805482918291859081106118b157fe5b90600052602060002090600202019150816001015490506004600086600160a060020a0316600160a060020a03168152602001908152602001600020848154811015156118fa57fe5b6000918252602080832060029092029091018281556001908101839055600160a060020a03881683526004909152604090912080549091611941919063ffffffff611bd916565b8154811061194b57fe5b90600052602060002090600202016004600087600160a060020a0316600160a060020a031681526020019081526020016000208581548110151561198b57fe5b6000918252602080832084546002909302019182556001938401549390910192909255600160a060020a0387168152600490915260409020805460001901906119d49082611ccc565b50604080518281529051600160a060020a038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a2600160a060020a038516600090815260208190526040902054611a3d908263ffffffff61166816565b600160a060020a03861660009081526020819052604090205560019250505092915050565b6000600160a060020a0383161515611a7957600080fd5b600160a060020a038416600090815260208190526040902054821115611a9e57600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115611ace57600080fd5b600160a060020a038416600090815260208190526040902054611af7908363ffffffff611bd916565b600160a060020a038086166000908152602081905260408082209390935590851681522054611b2c908363ffffffff61166816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054611b6e908363ffffffff611bd916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600082821115611be557fe5b50900390565b6000600160a060020a0383161515611c0257600080fd5b33600090815260208190526040902054821115611c1e57600080fd5b33600090815260208190526040902054611c3e908363ffffffff611bd916565b3360009081526020819052604080822092909255600160a060020a03851681522054611c70908363ffffffff61166816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b815481835581811115611cf857600202816002028360005260206000209182019101611cf89190611cfd565b505050565b61068191905b80821115611d1d5760008082556001820155600201611d03565b509056008c5488c20f72c8e1e70d2fb015bb3f71075f6b62981493b11d7bc228dcd3dc98a165627a7a723058202dd187dca3738d18f5a484746338df8aac8bf27a009407d9108d3ed8c9fa14f10029
Deployed Bytecode
0x6080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461016e578063095ea7b3146101f857806318160ddd1461023057806323b872dd146102575780632ff2e9dc14610281578063313ce567146102965780633f4ba83a146102c157806342966c68146102d85780635c975abb146102f0578063661884631461030557806370a08231146103295780637128defb1461034a578063715018a61461036b57806379cc67901461038057806381a24459146103a45780638456cb59146103c55780638477a3f4146103da5780638da5cb5b146104945780639299eb30146104c557806395d89b41146104e6578063997fdb1f146104fb578063a9059cbb14610522578063b74467df14610546578063d73dd62314610567578063dd62ed3e1461058b578063de6baccb146105b2578063eb7ee548146105d9578063f2fde38b146105fa575b600080fd5b34801561017a57600080fd5b5061018361061b565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101bd5781810151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020457600080fd5b5061021c600160a060020a0360043516602435610652565b604080519115158252519081900360200190f35b34801561023c57600080fd5b5061024561067d565b60408051918252519081900360200190f35b34801561026357600080fd5b5061021c600160a060020a0360043581169060243516604435610684565b34801561028d57600080fd5b50610245610702565b3480156102a257600080fd5b506102ab610712565b6040805160ff9092168252519081900360200190f35b3480156102cd57600080fd5b506102d6610717565b005b3480156102e457600080fd5b506102d660043561078f565b3480156102fc57600080fd5b5061021c6107cf565b34801561031157600080fd5b5061021c600160a060020a03600435166024356107df565b34801561033557600080fd5b50610245600160a060020a0360043516610803565b34801561035657600080fd5b5061021c600160a060020a03600435166108b2565b34801561037757600080fd5b506102d6610984565b34801561038c57600080fd5b506102d6600160a060020a03600435166024356109f2565b3480156103b057600080fd5b5061021c600160a060020a0360043516610a33565b3480156103d157600080fd5b506102d6610a6c565b3480156103e657600080fd5b506103fb600160a060020a0360043516610ae9565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561043f578181015183820152602001610427565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047e578181015183820152602001610466565b5050505090500194505050505060405180910390f35b3480156104a057600080fd5b506104a9610c9c565b60408051600160a060020a039092168252519081900360200190f35b3480156104d157600080fd5b5061021c600160a060020a0360043516610cab565b3480156104f257600080fd5b50610183610d82565b34801561050757600080fd5b5061021c600160a060020a0360043516602435604435610db9565b34801561052e57600080fd5b5061021c600160a060020a0360043516602435610e85565b34801561055257600080fd5b5061021c600160a060020a0360043516610f55565b34801561057357600080fd5b5061021c600160a060020a0360043516602435611043565b34801561059757600080fd5b50610245600160a060020a0360043581169060243516611067565b3480156105be57600080fd5b5061021c600160a060020a0360043516602435604435611092565b3480156105e557600080fd5b5061021c600160a060020a03600435166111a5565b34801561060657600080fd5b506102d6600160a060020a0360043516611298565b60408051808201909152600981527f57697368436861696e0000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff161561066c57600080fd5b610676838361132d565b9392505050565b6001545b90565b60035460009060a060020a900460ff161561069e57600080fd5b6106a784611393565b1580156106ba57506106b833611393565b155b15156106c557600080fd5b600160a060020a03841660009081526004602052604081205411156106ef576106ed846113b1565b505b6106fa848484611437565b949350505050565b6b813f3978f89409844000000081565b601281565b600354600160a060020a0316331461072e57600080fd5b60035460a060020a900460ff16151561074657600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600354600160a060020a03163314806107b757503360009081526005602052604090205460ff165b15156107c257600080fd5b6107cc338261145c565b50565b60035460a060020a900460ff1681565b60035460009060a060020a900460ff16156107f957600080fd5b610676838361155d565b60008060006108118461164d565b600160a060020a03851660009081526004602052604081205491935010156108ab575060005b600160a060020a0384166000908152600460205260409020548110156108ab57600160a060020a038416600090815260046020526040902080546108a191908390811061088057fe5b9060005260206000209060020201600101548361166890919063ffffffff16565b9150600101610837565b5092915050565b600354600090600160a060020a031633146108cc57600080fd5b600160a060020a038216158015906108fc5750600160a060020a03821660009081526005602052604090205460ff165b151561090757600080fd5b600160a060020a0382166000818152600560209081526040808320805460ff19169055805191820192909252818152600c818301527f697353757065727669736f72000000000000000000000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b600354600160a060020a0316331461099b57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600160a060020a0316331480610a1a57503360009081526005602052604090205460ff165b1515610a2557600080fd5b610a2f8282611677565b5050565b600354600090600160a060020a03163314610a4d57600080fd5b50600160a060020a031660009081526005602052604090205460ff1690565b600354600160a060020a03163314610a8357600080fd5b60035460a060020a900460ff1615610a9a57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6060808080600033600160a060020a0387161480610b115750600354600160a060020a031633145b80610b2b57503360009081526005602052604090205460ff165b1515610b3657600080fd5b600160a060020a0386166000908152600460209081526040918290205482518181528183028101909201909252908015610b7a578160200160208202803883390190505b50600160a060020a03871660009081526004602090815260409182902054825181815281830281019092019092529194508015610bc1578160200160208202803883390190505b509150600090505b600160a060020a038616600090815260046020526040902054811015610c9157600160a060020a0386166000908152600460205260409020805482908110610c0d57fe5b9060005260206000209060020201600101548382815181101515610c2d57fe5b6020908102909101810191909152600160a060020a0387166000908152600490915260409020805482908110610c5f57fe5b9060005260206000209060020201600001548282815181101515610c7f57fe5b60209081029091010152600101610bc9565b509094909350915050565b600354600160a060020a031681565b600354600090600160a060020a03163314610cc557600080fd5b600160a060020a03821615801590610cf65750600160a060020a03821660009081526005602052604090205460ff16155b1515610d0157600080fd5b600160a060020a038216600081815260056020908152604091829020805460ff19166001908117909155825191820152818152600c818301527f697353757065727669736f72000000000000000000000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b60408051808201909152600481527f5749534800000000000000000000000000000000000000000000000000000000602082015281565b600354600090600160a060020a0316331480610de457503360009081526005602052604090205460ff165b1515610def57600080fd5b600160a060020a03841615801590610e08575060008310155b8015610e1357504282115b1515610e1e57600080fd5b600160a060020a038416600090815260046020526040902054831115610e4357600080fd5b600160a060020a0384166000908152600460205260409020805483919085908110610e6a57fe5b60009182526020909120600290910201555060019392505050565b60035460009060a060020a900460ff1615610e9f57600080fd5b610ea833611393565b15610eb257600080fd5b33600160a060020a0384161415610f2a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436865636b20796f757220616464726573732121000000000000000000000000604482015290519081900360640190fd5b336000908152600460205260408120541115610f4b57610f49336113b1565b505b6106768383611709565b600354600090600160a060020a0316331480610f8057503360009081526005602052604090205460ff165b1515610f8b57600080fd5b600160a060020a03821615801590610fbb5750600160a060020a03821660009081526006602052604090205460ff165b1515610fc657600080fd5b600160a060020a0382166000818152600660209081526040808320805460ff191690558051918201929092528181526014818301527f69734c6f636b656457616c6c6574456e7469747900000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b60035460009060a060020a900460ff161561105d57600080fd5b610676838361172d565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600090600160a060020a03163314806110bd57503360009081526005602052604090205460ff165b15156110c857600080fd5b60035460a060020a900460ff16156110df57600080fd5b42821180156110ee5750600083115b151561115b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436865636b20796f75722076616c75657321213b000000000000000000000000604482015290519081900360640190fd5b600160a060020a0384166000908152600460205260409020546103e81161118457506000610676565b61118e8484610e85565b5061119a8484846117c6565b506001949350505050565b600354600090600160a060020a03163314806111d057503360009081526005602052604090205460ff165b15156111db57600080fd5b600160a060020a0382161580159061120c5750600160a060020a03821660009081526006602052604090205460ff16155b151561121757600080fd5b600160a060020a038216600081815260066020908152604091829020805460ff191660019081179091558251918201528181526014818301527f69734c6f636b656457616c6c6574456e7469747900000000000000000000000060608201529051600080516020611d228339815191529181900360800190a2506001919050565b600354600160a060020a031633146112af57600080fd5b600160a060020a03811615156112c457600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b600160a060020a031660009081526006602052604090205460ff1690565b6000805b600160a060020a03831660009081526004602052604090205481101561142e57600160a060020a03831660009081526004602052604090208054429190839081106113fc57fe5b6000918252602090912060029091020154116114265761141c8382611889565b1561142657600019015b6001016113b5565b50600192915050565b60035460009060a060020a900460ff161561145157600080fd5b6106fa848484611a62565b600160a060020a03821660009081526020819052604090205481111561148157600080fd5b600160a060020a0382166000908152602081905260409020546114aa908263ffffffff611bd916565b600160a060020a0383166000908152602081905260409020556001546114d6908263ffffffff611bd916565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156115b257336000908152600260209081526040808320600160a060020a03881684529091528120556115e7565b6115c2818463ffffffff611bd916565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526020819052604090205490565b60008282018381101561067657fe5b600160a060020a03821660009081526002602090815260408083203384529091529020548111156116a757600080fd5b600160a060020a03821660009081526002602090815260408083203384529091529020546116db908263ffffffff611bd916565b600160a060020a0383166000908152600260209081526040808320338452909152902055610a2f828261145c565b60035460009060a060020a900460ff161561172357600080fd5b6106768383611beb565b336000908152600260209081526040808320600160a060020a0386168452909152812054611761908363ffffffff61166816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a0383166000908152602081905260408120546117ef908463ffffffff611bd916565b600160a060020a0385166000818152602081815260408083209490945560048152838220845180860186528781528083018981528254600181810185559386529484902091516002909502909101938455519201919091558251868152908101859052825191927f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b92918290030190a25060019392505050565b600160a060020a0382166000908152600460205260408120805482918291859081106118b157fe5b90600052602060002090600202019150816001015490506004600086600160a060020a0316600160a060020a03168152602001908152602001600020848154811015156118fa57fe5b6000918252602080832060029092029091018281556001908101839055600160a060020a03881683526004909152604090912080549091611941919063ffffffff611bd916565b8154811061194b57fe5b90600052602060002090600202016004600087600160a060020a0316600160a060020a031681526020019081526020016000208581548110151561198b57fe5b6000918252602080832084546002909302019182556001938401549390910192909255600160a060020a0387168152600490915260409020805460001901906119d49082611ccc565b50604080518281529051600160a060020a038716917f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1919081900360200190a2600160a060020a038516600090815260208190526040902054611a3d908263ffffffff61166816565b600160a060020a03861660009081526020819052604090205560019250505092915050565b6000600160a060020a0383161515611a7957600080fd5b600160a060020a038416600090815260208190526040902054821115611a9e57600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115611ace57600080fd5b600160a060020a038416600090815260208190526040902054611af7908363ffffffff611bd916565b600160a060020a038086166000908152602081905260408082209390935590851681522054611b2c908363ffffffff61166816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054611b6e908363ffffffff611bd916565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600082821115611be557fe5b50900390565b6000600160a060020a0383161515611c0257600080fd5b33600090815260208190526040902054821115611c1e57600080fd5b33600090815260208190526040902054611c3e908363ffffffff611bd916565b3360009081526020819052604080822092909255600160a060020a03851681522054611c70908363ffffffff61166816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b815481835581811115611cf857600202816002028360005260206000209182019101611cf89190611cfd565b505050565b61068191905b80821115611d1d5760008082556001820155600201611d03565b509056008c5488c20f72c8e1e70d2fb015bb3f71075f6b62981493b11d7bc228dcd3dc98a165627a7a723058202dd187dca3738d18f5a484746338df8aac8bf27a009407d9108d3ed8c9fa14f10029
Deployed Bytecode Sourcemap
12071:6872:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12172:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12172:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12172:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11429:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11429:171:0;-1:-1:-1;;;;;11429:171:0;;;;;;;;;;;;;;;;;;;;;;;;;2794:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2794:85:0;;;;;;;;;;;;;;;;;;;;13658:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13658:350:0;-1:-1:-1;;;;;13658:350:0;;;;;;;;;;;;12307:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12307:73:0;;;;12265:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12265:35:0;;;;;;;;;;;;;;;;;;;;;;;10803:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10803:95:0;;;;;;16846:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16846:102:0;;;;;10182:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10182:26:0;;;;11816:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11816:214:0;-1:-1:-1;;;;;11816:214:0;;;;;;;17091:406;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17091:406:0;-1:-1:-1;;;;;17091:406:0;;;;;17785:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17785:274:0;-1:-1:-1;;;;;17785:274:0;;;;;1634:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1634:114:0;;;;16960:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16960:119:0;-1:-1:-1;;;;;16960:119:0;;;;;;;18679:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18679:128:0;-1:-1:-1;;;;;18679:128:0;;;;;10623:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10623:93:0;;;;16156:678;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16156:678:0;-1:-1:-1;;;;;16156:678:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16156:678:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16156:678:0;;;;;;;;;;;;;;;;;;;671:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;671:20:0;;;;;;;;-1:-1:-1;;;;;671:20:0;;;;;;;;;;;;;;17505:272;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17505:272:0;-1:-1:-1;;;;;17505:272:0;;;;;12220:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12220:38:0;;;;15803:341;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15803:341:0;-1:-1:-1;;;;;15803:341:0;;;;;;;;;13278:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13278:372:0;-1:-1:-1;;;;;13278:372:0;;;;;;;18372:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18372:299:0;-1:-1:-1;;;;;18372:299:0;;;;;11606:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11606:204:0;-1:-1:-1;;;;;11606:204:0;;;;;;;6491:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6491:162:0;-1:-1:-1;;;;;6491:162:0;;;;;;;;;;14020:413;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14020:413:0;-1:-1:-1;;;;;14020:413:0;;;;;;;;;18067:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18067:297:0;-1:-1:-1;;;;;18067:297:0;;;;;1361:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1361:178:0;-1:-1:-1;;;;;1361:178:0;;;;;12172:41;;;;;;;;;;;;;;;;;;;:::o;11429:171::-;10358:6;;11540:4;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;11563:31;11577:8;11587:6;11563:13;:31::i;:::-;11556:38;11429:171;-1:-1:-1;;;11429:171:0:o;2794:85::-;2861:12;;2794:85;;:::o;13658:350::-;10358:6;;13752:4;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;13778:26;13799:4;13778:20;:26::i;:::-;13777:27;:64;;;;;13809:32;13830:10;13809:20;:32::i;:::-;13808:33;13777:64;13769:73;;;;;;;;-1:-1:-1;;;;;13857:22:0;;13889:1;13857:22;;;:16;:22;;;;;:29;:33;13853:95;;;13907:17;13919:4;13907:11;:17::i;:::-;;13853:95;13965:35;13984:4;13990:2;13994:5;13965:18;:35::i;:::-;13958:42;13658:350;-1:-1:-1;;;;13658:350:0:o;12307:73::-;12348:32;12307:73;:::o;12265:35::-;12298:2;12265:35;:::o;10803:95::-;1174:5;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;10518:6;;-1:-1:-1;;;10518:6:0;;;;10510:15;;;;;;;;10857:6;:14;;-1:-1:-1;;10857:14:0;;;10883:9;;;;10866:5;;10883:9;10803:95::o;16846:102::-;12760:5;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;16909:31;16921:10;16933:6;16909:11;:31::i;:::-;16846:102;:::o;10182:26::-;;;-1:-1:-1;;;10182:26:0;;;;;:::o;11816:214::-;10358:6;;11943:12;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;11974:50;11997:8;12007:16;11974:22;:50::i;17091:406::-;17146:7;17176:20;17290:6;17199:22;17215:5;17199:15;:22::i;:::-;-1:-1:-1;;;;;17236:23:0;;17268:1;17236:23;;;:16;:23;;;;;:30;17176:45;;-1:-1:-1;;17232:218:0;;;-1:-1:-1;17297:1:0;17286:153;-1:-1:-1;;;;;17302:23:0;;;;;;:16;:23;;;;;:30;17300:32;;17286:153;;;-1:-1:-1;;;;;17388:23:0;;;;;;:16;:23;;;;;:26;;17371:52;;17388:23;17412:1;;17388:26;;;;;;;;;;;;;;;;:34;;;17371:12;:16;;:52;;;;:::i;:::-;17356:67;-1:-1:-1;17333:3:0;;17286:153;;;-1:-1:-1;17477:12:0;17091:406;-1:-1:-1;;17091:406:0:o;17785:274::-;1174:5;;17855:4;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;-1:-1:-1;;;;;17879:21:0;;;;;;:51;;-1:-1:-1;;;;;;17904:26:0;;;;;;:16;:26;;;;;;;;17879:51;17871:60;;;;;;;;-1:-1:-1;;;;;17949:26:0;;;;;;:16;:26;;;;;;;;17942:33;;-1:-1:-1;;17942:33:0;;;17991:38;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17991:38:0;;;;;;;;-1:-1:-1;18047:4:0;17785:274;;;:::o;1634:114::-;1174:5;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;1711:5;;1692:25;;-1:-1:-1;;;;;1711:5:0;;;;1692:25;;1711:5;;1692:25;1724:5;:18;;-1:-1:-1;;1724:18:0;;;1634:114::o;16960:119::-;12760:5;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;17042:29;17057:5;17064:6;17042:14;:29::i;:::-;16960:119;;:::o;18679:128::-;1174:5;;18750:4;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;-1:-1:-1;;;;;;18773:26:0;;;;;:16;:26;;;;;;;;;18679:128::o;10623:93::-;1174:5;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;10358:6;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;10678:6;:13;;-1:-1:-1;;10678:13:0;-1:-1:-1;;;10678:13:0;;;10703:7;;;;10678:13;;10703:7;10623:93::o;16156:678::-;16222:9;;;;16554:6;16262:10;-1:-1:-1;;;;;16262:22:0;;;;:45;;-1:-1:-1;16302:5:0;;-1:-1:-1;;;;;16302:5:0;16288:10;:19;16262:45;:77;;;-1:-1:-1;16328:10:0;16311:28;;;;:16;:28;;;;;;;;16262:77;16254:86;;;;;;;;-1:-1:-1;;;;;16398:26:0;;;;;;:16;:26;;;;;;;;;:33;16384:48;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;16384:48:0;-1:-1:-1;;;;;;16495:26:0;;;;;;:16;:26;;;;;;;;;:33;16481:48;;;;;;;;;;;;;;;;16351:81;;-1:-1:-1;16481:48:0;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;16481:48:0;;16443:86;;16563:1;16554:10;;16550:224;-1:-1:-1;;;;;16570:26:0;;;;;;:16;:26;;;;;:33;16566:37;;16550:224;;;-1:-1:-1;;;;;16644:26:0;;;;;;:16;:26;;;;;:29;;16671:1;;16644:29;;;;;;;;;;;;;;;;:37;;;16625:13;16639:1;16625:16;;;;;;;;;;;;;;;;;;;:56;;;;-1:-1:-1;;;;;16720:26:0;;;;;;:16;:26;;;;;;:29;;16747:1;;16720:29;;;;;;;;;;;;;;;;:42;;;16696:18;16715:1;16696:21;;;;;;;;;;;;;;;;;;:66;16605:4;;16550:224;;;-1:-1:-1;16792:13:0;;16807:18;;-1:-1:-1;16156:678:0;-1:-1:-1;;16156:678:0:o;671:20::-;;;-1:-1:-1;;;;;671:20:0;;:::o;17505:272::-;1174:5;;17572:4;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;-1:-1:-1;;;;;17596:21:0;;;;;;:52;;-1:-1:-1;;;;;;17622:26:0;;;;;;:16;:26;;;;;;;;17621:27;17596:52;17588:61;;;;;;;;-1:-1:-1;;;;;17660:26:0;;;;;;:16;:26;;;;;;;;;:33;;-1:-1:-1;;17660:33:0;17689:4;17660:33;;;;;;17709:38;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;17709:38:0;;;;;;;;-1:-1:-1;17765:4:0;17505:272;;;:::o;12220:38::-;;;;;;;;;;;;;;;;;;;:::o;15803:341::-;12760:5;;15901:4;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;-1:-1:-1;;;;;15925:19:0;;;;;;:31;;;15955:1;15948:3;:8;;15925:31;:52;;;;;15974:3;15960:11;:17;15925:52;15917:61;;;;;;;;-1:-1:-1;;;;;15997:24:0;;;;;;:16;:24;;;;;:31;:38;-1:-1:-1;15997:38:0;15989:47;;;;;;-1:-1:-1;;;;;16058:24:0;;;;;;:16;:24;;;;;:29;;16103:11;;16058:24;16083:3;;16058:29;;;;;;;;;;;;;;;;;;;:56;-1:-1:-1;16132:4:0;15803:341;;;;;:::o;13278:372::-;10358:6;;13353:4;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;13379:32;13400:10;13379:20;:32::i;:::-;13378:33;13370:42;;;;;;13431:10;-1:-1:-1;;;;;13431:16:0;;;;13423:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13513:10;13534:1;13496:28;;;:16;:28;;;;;:35;:39;13492:108;;;13553:23;13565:10;13553:11;:23::i;:::-;;13492:108;13617:25;13632:2;13636:5;13617:14;:25::i;18372:299::-;12760:5;;18455:4;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;-1:-1:-1;;;;;18479:21:0;;;;;;:53;;-1:-1:-1;;;;;;18504:28:0;;;;;;:18;:28;;;;;;;;18479:53;18471:62;;;;;;;;-1:-1:-1;;;;;18551:28:0;;;;;;:18;:28;;;;;;;;18544:35;;-1:-1:-1;;18544:35:0;;;18595:46;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18595:46:0;;;;;;;;-1:-1:-1;18659:4:0;18372:299;;;:::o;11606:204::-;10358:6;;11728:12;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;11759:45;11782:8;11792:11;11759:22;:45::i;6491:162::-;-1:-1:-1;;;;;6622:15:0;;;6596:7;6622:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6491:162::o;14020:413::-;12760:5;;14143:4;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;10358:6;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;14182:3;14168:11;:17;:30;;;;;14197:1;14189:5;:9;14168:30;14160:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14237:24:0;;;;;;:16;:24;;;;;:31;12420:4;-1:-1:-1;14234:94:0;;-1:-1:-1;14311:5:0;14304:12;;14234:94;14338:23;14347:6;14355:5;14338:8;:23::i;:::-;;14372:31;14378:6;14385:5;14391:11;14372:5;:31::i;:::-;-1:-1:-1;14421:4:0;;14020:413;-1:-1:-1;;;;14020:413:0:o;18067:297::-;12760:5;;18147:4;;-1:-1:-1;;;;;12760:5:0;12769:10;12760:19;;:51;;-1:-1:-1;12800:10:0;12783:28;;;;:16;:28;;;;;;;;12760:51;12752:60;;;;;;;;-1:-1:-1;;;;;18171:21:0;;;;;;:54;;-1:-1:-1;;;;;;18197:28:0;;;;;;:18;:28;;;;;;;;18196:29;18171:54;18163:63;;;;;;;;-1:-1:-1;;;;;18237:28:0;;;;;;:18;:28;;;;;;;;;:35;;-1:-1:-1;;18237:35:0;18268:4;18237:35;;;;;;18288:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;18288:46:0;;;;;;;;-1:-1:-1;18352:4:0;18067:297;;;:::o;1361:178::-;1174:5;;-1:-1:-1;;;;;1174:5:0;1160:10;:19;1152:28;;;;;;-1:-1:-1;;;;;1438:22:0;;;;1430:31;;;;;;1494:5;;1473:37;;-1:-1:-1;;;;;1473:37:0;;;;1494:5;;1473:37;;1494:5;;1473:37;1517:5;:16;;-1:-1:-1;;1517:16:0;-1:-1:-1;;;;;1517:16:0;;;;;;;;;;1361:178::o;5972:192::-;6060:10;6039:4;6052:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6052:29:0;;;;;;;;;;;:38;;;6102;;;;;;;6039:4;;6052:29;;6060:10;;6102:38;;;;;;;;-1:-1:-1;6154:4:0;5972:192;;;;:::o;18815:123::-;-1:-1:-1;;;;;18905:25:0;18882:4;18905:25;;;:18;:25;;;;;;;;;18815:123::o;15352:438::-;15406:4;;15423:338;-1:-1:-1;;;;;15449:24:0;;;;;;:16;:24;;;;;:31;15443:37;;15423:338;;;-1:-1:-1;;;;;15510:24:0;;;;;;:16;:24;;;;;:29;;15556:3;;15510:24;15535:3;;15510:29;;;;;;;;;;;;;;;;;;;:42;:49;15506:244;;15662:20;15670:6;15678:3;15662:7;:20::i;:::-;15658:77;;;-1:-1:-1;;15708:7:0;15658:77;15483:5;;15423:338;;;-1:-1:-1;15778:4:0;;15352:438;-1:-1:-1;;15352:438:0:o;11225:198::-;10358:6;;11356:4;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;11379:38;11398:5;11405:3;11410:6;11379:18;:38::i;8739:447::-;-1:-1:-1;;;;;8818:14:0;;:8;:14;;;;;;;;;;;8808:24;;;8800:33;;;;;;-1:-1:-1;;;;;9032:14:0;;:8;:14;;;;;;;;;;;:26;;9051:6;9032:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;9015:14:0;;:8;:14;;;;;;;;;;:43;9080:12;;:24;;9097:6;9080:24;:16;:24;:::i;:::-;9065:12;:39;9116:18;;;;;;;;-1:-1:-1;;;;;9116:18:0;;;;;;;;;;;;;9146:34;;;;;;;;9169:1;;-1:-1:-1;;;;;9146:34:0;;;;;;;;;;;;8739:447;;:::o;7891:446::-;8045:10;8002:4;8037:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8037:29:0;;;;;;;;;;8077:27;;;8073:168;;;8123:10;8147:1;8115:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8115:29:0;;;;;;;;;:33;8073:168;;;8203:30;:8;8216:16;8203:30;:12;:30;:::i;:::-;8179:10;8171:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8171:29:0;;;;;;;;;:62;8073:168;8261:10;8283:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8252:61:0;;8283:29;;;;;;;;;;;8252:61;;;;;;;;;8261:10;8252:61;;;;;;;;;;;-1:-1:-1;8327:4:0;;7891:446;-1:-1:-1;;;7891:446:0:o;3578:101::-;-1:-1:-1;;;;;3657:16:0;3634:7;3657:16;;;;;;;;;;;;3578:101::o;2355:133::-;2413:7;2441:5;;;2460:6;;;;2453:14;;;9608:376;-1:-1:-1;;;;;9689:14:0;;;;;;:7;:14;;;;;;;;9704:10;9689:26;;;;;;;;9679:36;;;9671:45;;;;;;-1:-1:-1;;;;;9913:14:0;;;;;;:7;:14;;;;;;;;9928:10;9913:26;;;;;;;;:38;;9944:6;9913:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;9884:14:0;;;;;;:7;:14;;;;;;;;9899:10;9884:26;;;;;;;:67;9958:20;9892:5;9971:6;9958:5;:20::i;11056:163::-;10358:6;;11163:4;;-1:-1:-1;;;10358:6:0;;;;10357:7;10349:16;;;;;;11186:27;11201:3;11206:6;11186:14;:27::i;7116:307::-;7287:10;7222:4;7279:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7279:29:0;;;;;;;;;;:46;;7313:11;7279:46;:33;:46;:::i;:::-;7246:10;7238:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7238:29:0;;;;;;;;;;;;:88;;;7338:61;;;;;;7238:29;;7338:61;;;;;;;;;;;-1:-1:-1;7413:4:0;7116:307;;;;:::o;14447:313::-;-1:-1:-1;;;;;14567:16:0;;14531:4;14567:16;;;;;;;;;;;:27;;14588:5;14567:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;14548:16:0;;:8;:16;;;;;;;;;;;:46;;;;14605:16;:24;;;;;14636:34;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;14605:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;14698:32;;;;;;;;;;;;;14548:16;;14698:32;;;;;;;;;-1:-1:-1;14748:4:0;14447:313;;;;;:::o;14772:568::-;-1:-1:-1;;;;;14892:24:0;;14835:4;14892:24;;;:16;:24;;;;;:29;;14835:4;;;;14917:3;;14892:29;;;;;;;;;;;;;;;;14852:69;;14956:14;:22;;;14932:46;;14998:16;:24;15015:6;-1:-1:-1;;;;;14998:24:0;-1:-1:-1;;;;;14998:24:0;;;;;;;;;;;;15023:3;14998:29;;;;;;;;;;;;;;;;;;;;;;;;;14991:36;;;;;;;;;;-1:-1:-1;;;;;15070:24:0;;;;:16;:24;;;;;;;15095:31;;15070:24;;15095:38;;:31;:38;:35;:38;:::i;:::-;15070:64;;;;;;;;;;;;;;;;;;15038:16;:24;15055:6;-1:-1:-1;;;;;15038:24:0;-1:-1:-1;;;;;15038:24:0;;;;;;;;;;;;15063:3;15038:29;;;;;;;;;;;;;;;;;;:96;;:29;;;;;:96;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15145:24:0;;;;:16;:24;;;;;;:35;;-1:-1:-1;;15145:35:0;;;;;;:::i;:::-;-1:-1:-1;15206:29:0;;;;;;;;-1:-1:-1;;;;;15206:29:0;;;;;;;;;;;;;-1:-1:-1;;;;;15265:16:0;;:8;:16;;;;;;;;;;;:35;;15286:13;15265:35;:20;:35;:::i;:::-;-1:-1:-1;;;;;15246:16:0;;:8;:16;;;;;;;;;;:54;15328:4;;-1:-1:-1;14772:568:0;;;;;;:::o;4856:487::-;4968:4;-1:-1:-1;;;;;4992:17:0;;;;4984:26;;;;;;-1:-1:-1;;;;;5035:15:0;;:8;:15;;;;;;;;;;;5025:25;;;5017:34;;;;;;-1:-1:-1;;;;;5076:14:0;;;;;;:7;:14;;;;;;;;5091:10;5076:26;;;;;;;;5066:36;;;5058:45;;;;;;-1:-1:-1;;;;;5130:15:0;;:8;:15;;;;;;;;;;;:27;;5150:6;5130:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;5112:15:0;;;:8;:15;;;;;;;;;;;:45;;;;5180:13;;;;;;;:25;;5198:6;5180:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;5164:13:0;;;:8;:13;;;;;;;;;;;:41;;;;5241:14;;;;;:7;:14;;;;;5256:10;5241:26;;;;;;;:38;;5272:6;5241:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;5212:14:0;;;;;;;:7;:14;;;;;;;;5227:10;5212:26;;;;;;;;:67;;;;5291:28;;;;;;;;;;;5212:14;;5291:28;;;;;;;;;;;-1:-1:-1;5333:4:0;4856:487;;;;;:::o;2236:113::-;2294:7;2317:6;;;;2310:14;;;;-1:-1:-1;2338:5:0;;;2236:113::o;3040:329::-;3103:4;-1:-1:-1;;;;;3124:17:0;;;;3116:26;;;;;;3176:10;3167:8;:20;;;;;;;;;;;3157:30;;;3149:39;;;;;;3229:10;3220:8;:20;;;;;;;;;;;:32;;3245:6;3220:32;:24;:32;:::i;:::-;3206:10;3197:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;3275:13:0;;;;;;:25;;3293:6;3275:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3259:13:0;;:8;:13;;;;;;;;;;;;:41;;;;3312:33;;;;;;;3259:13;;3321:10;;3312:33;;;;;;;;;;-1:-1:-1;3359:4:0;3040:329;;;;:::o;12071:6872::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://2dd187dca3738d18f5a484746338df8aac8bf27a009407d9108d3ed8c9fa14f1
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.