ERC-20
Overview
Max Total Supply
0 VE
Holders
556
Total Transfers
-
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 Source Code Verified (Exact Match)
Contract Name:
VE
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-12-06 */ /** *Submitted for verification at Etherscan.io on 2019-12-04 */ pragma solidity ^0.4.24; /** * @title SafeMath */ library SafeMath { function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { if (_a == 0) { return 0; } uint256 c = _a * _b; require(c / _a == _b); return c; } function div(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a / _b; return c; } function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b <= _a); uint256 c = _a - _b; return c; } function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; require(c >= _a); return c; } } /** * @title 验证合约创作者 */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() public { owner = msg.sender; } /** * 验证合约创作者 */ modifier onlyOwner() { require(msg.sender == owner); _; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } /** * @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() public onlyOwner whenNotPaused { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function allowance(address _owner, address _spender) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); function transferFrom(address _from, address _to, uint256 _value) public returns (bool); event Transfer( address indexed from, address indexed to, uint256 value ); 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 { using SafeMath for uint256; mapping(address => uint256) balances; mapping (address => mapping (address => uint256)) internal allowed; uint256 totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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]; } /** * @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 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(_value <= balances[msg.sender]); require(_to != address(0)); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _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 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(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(_to != address(0)); 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 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 Pausable token * @dev StandardToken modified with pausable transfers. **/ contract PausableERC20Token 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 Burnable Pausable Token * @dev Pausable Token that can be irreversibly burned (destroyed). */ contract BurnablePausableERC20Token is PausableERC20Token { mapping (address => mapping (address => uint256)) internal allowedBurn; event Burn(address indexed burner, uint256 value); event ApprovalBurn( address indexed owner, address indexed spender, uint256 value ); function allowanceBurn( address _owner, address _spender ) public view returns (uint256) { return allowedBurn[_owner][_spender]; } function approveBurn(address _spender, uint256 _value) public whenNotPaused returns (bool) { allowedBurn[msg.sender][_spender] = _value; emit ApprovalBurn(msg.sender, _spender, _value); return true; } /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn( uint256 _value ) public whenNotPaused { _burn(msg.sender, _value); } /** * @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 whenNotPaused { require(_value <= allowedBurn[_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. allowedBurn[_from][msg.sender] = allowedBurn[_from][msg.sender].sub(_value); _burn(_from, _value); } function _burn( address _who, uint256 _value ) internal whenNotPaused { 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); } function increaseBurnApproval( address _spender, uint256 _addedValue ) public whenNotPaused returns (bool) { allowedBurn[msg.sender][_spender] = ( allowedBurn[msg.sender][_spender].add(_addedValue)); emit ApprovalBurn(msg.sender, _spender, allowedBurn[msg.sender][_spender]); return true; } function decreaseBurnApproval( address _spender, uint256 _subtractedValue ) public whenNotPaused returns (bool) { uint256 oldValue = allowedBurn[msg.sender][_spender]; if (_subtractedValue >= oldValue) { allowedBurn[msg.sender][_spender] = 0; } else { allowedBurn[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit ApprovalBurn(msg.sender, _spender, allowedBurn[msg.sender][_spender]); return true; } } contract FreezableBurnablePausableERC20Token is BurnablePausableERC20Token { mapping (address => bool) public frozenAccount; event FrozenFunds(address target, bool frozen); function freezeAccount( address target, bool freeze ) public onlyOwner { frozenAccount[target] = freeze; emit FrozenFunds(target, freeze); } function transfer( address _to, uint256 _value ) public whenNotPaused returns (bool) { require(!frozenAccount[msg.sender], "Sender account freezed"); require(!frozenAccount[_to], "Receiver account freezed"); return super.transfer(_to, _value); } function transferFrom( address _from, address _to, uint256 _value ) public whenNotPaused returns (bool) { require(!frozenAccount[msg.sender], "Spender account freezed"); require(!frozenAccount[_from], "Sender account freezed"); require(!frozenAccount[_to], "Receiver account freezed"); return super.transferFrom(_from, _to, _value); } function burn( uint256 _value ) public whenNotPaused { require(!frozenAccount[msg.sender], "Sender account freezed"); return super.burn(_value); } function burnFrom( address _from, uint256 _value ) public whenNotPaused { require(!frozenAccount[msg.sender], "Spender account freezed"); require(!frozenAccount[_from], "Sender account freezed"); return super.burnFrom(_from, _value); } } /** * @title TransferToken */ contract TransferToken is FreezableBurnablePausableERC20Token { using SafeMath for uint256; event transferLogs(address indexed,string,uint256); event transferTokenLogs(address indexed,string,uint256); function Transfer_anything (address[] _users,uint256[] _amount,uint256[] _token,uint256 _allBalance) public onlyOwner { require(_users.length>0); require(_amount.length>0); require(_token.length>0); require(address(this).balance>=_allBalance); for(uint32 i =0;i<_users.length;i++){ require(_users[i]!=address(0)); require(_amount[i]>0&&_token[i]>0); _users[i].transfer(_amount[i]); balances[owner]-=_token[i]; balances[_users[i]]+=_token[i]; emit transferLogs(_users[i],'转账',_amount[i]); emit transferTokenLogs(_users[i],'代币转账',_token[i]); } } function Buys(uint256 _token) public payable returns(bool success){ require(_token<=balances[msg.sender]); balances[msg.sender]-=_token; balances[owner]+=_token; emit transferTokenLogs(msg.sender,'代币支出',_token); return true; } function kill() public onlyOwner{ selfdestruct(owner); } function () payable public {} } /** * @title GBLZ * @dev Token that is ERC20 compatible, Pausableb, Burnable, Ownable with SafeMath. */ contract VE is TransferToken { /** Token Setting: You are free to change any of these * @param name string The name of your token (can be not unique) * @param symbol string The symbol of your token (can be not unique, can be more than three characters) * @param decimals uint8 The accuracy decimals of your token (conventionally be 18) * Read this to choose decimals: https://ethereum.stackexchange.com/questions/38704/why-most-erc-20-tokens-have-18-decimals * @param INITIAL_SUPPLY uint256 The total supply of your token. Example default to be "10000". Change as you wish. **/ string public constant name = "Value Expansive"; string public constant symbol = "VE"; uint8 public constant decimals = 18; uint256 public constant INITIAL_SUPPLY = 100000000 * (10 ** uint256(decimals)); /** * @dev Constructor that gives msg.sender all of existing tokens. * Literally put all the issued money in your pocket */ constructor() public payable { totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; emit Transfer(address(0), msg.sender, INITIAL_SUPPLY); } }
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":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approveBurn","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":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseBurnApproval","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":"kill","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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowanceBurn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","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":"_token","type":"uint256"}],"name":"Buys","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","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":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_amount","type":"uint256[]"},{"name":"_token","type":"uint256[]"},{"name":"_allBalance","type":"uint256"}],"name":"Transfer_anything","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseBurnApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"","type":"address"},{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"transferLogs","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"","type":"address"},{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"transferTokenLogs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","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":"ApprovalBurn","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","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"}]
Contract Creation Code
60806040526000600360146101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a0a6305f5e10002600281905550601260ff16600a0a6305f5e100026000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601260ff16600a0a6305f5e100026040518082815260200191505060405180910390a3613650806101466000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610177578063095ea7b3146102075780630cfa03181461026c57806318160ddd146102d157806323b872dd146102fc57806326ed274e146103815780632ff2e9dc146103e6578063313ce567146104115780633f4ba83a1461044257806341c0e1b51461045957806342966c68146104705780635c975abb1461049d57806366188463146104cc57806370a0823114610531578063715018a61461058857806373cd0a191461059f57806379cc6790146106165780638456cb59146106635780638da5cb5b1461067a578063901ce853146106d157806395d89b4114610709578063a9059cbb14610799578063b414d4b6146107fe578063d73dd62314610859578063dd62ed3e146108be578063e724529c14610935578063f2fde38b14610984578063f3f594f7146109c7578063fc7f1a8814610abd575b005b34801561018357600080fd5b5061018c610b22565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021357600080fd5b50610252600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5b565b604051808215151515815260200191505060405180910390f35b34801561027857600080fd5b506102b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156102dd57600080fd5b506102e6610c99565b6040518082815260200191505060405180910390f35b34801561030857600080fd5b50610367600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ca3565b604051808215151515815260200191505060405180910390f35b34801561038d57600080fd5b506103cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f1b565b604051808215151515815260200191505060405180910390f35b3480156103f257600080fd5b506103fb6111c9565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b506104266111da565b604051808260ff1660ff16815260200191505060405180910390f35b34801561044e57600080fd5b506104576111df565b005b34801561046557600080fd5b5061046e61129f565b005b34801561047c57600080fd5b5061049b60048036038101908080359060200190929190505050611336565b005b3480156104a957600080fd5b506104b2611420565b604051808215151515815260200191505060405180910390f35b3480156104d857600080fd5b50610517600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611433565b604051808215151515815260200191505060405180910390f35b34801561053d57600080fd5b50610572600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611463565b6040518082815260200191505060405180910390f35b34801561059457600080fd5b5061059d6114ab565b005b3480156105ab57600080fd5b50610600600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b0565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b50610661600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611637565b005b34801561066f57600080fd5b506106786117e5565b005b34801561068657600080fd5b5061068f6118a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106ef600480360381019080803590602001909291905050506118cc565b604051808215151515815260200191505060405180910390f35b34801561071557600080fd5b5061071e611a65565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075e578082015181840152602081019050610743565b50505050905090810190601f16801561078b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107a557600080fd5b506107e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a9e565b604051808215151515815260200191505060405180910390f35b34801561080a57600080fd5b5061083f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c52565b604051808215151515815260200191505060405180910390f35b34801561086557600080fd5b506108a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c72565b604051808215151515815260200191505060405180910390f35b3480156108ca57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca2565b6040518082815260200191505060405180910390f35b34801561094157600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d29565b005b34801561099057600080fd5b506109c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4f565b005b3480156109d357600080fd5b50610abb60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050611eb7565b005b348015610ac957600080fd5b50610b08600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612355565b604051808215151515815260200191505060405180910390f35b6040805190810160405280600f81526020017f56616c756520457870616e73697665000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff16151515610b7957600080fd5b610b83838361256d565b905092915050565b6000600360149054906101000a900460ff16151515610ba957600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600360149054906101000a900460ff16151515610cc157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5370656e646572206163636f756e7420667265657a656400000000000000000081525060200191505060405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5265636569766572206163636f756e7420667265657a6564000000000000000081525060200191505060405180910390fd5b610f1284848461265f565b90509392505050565b600080600360149054906101000a900460ff16151515610f3a57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515611049576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110dd565b61105c838261269190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b601260ff16600a0a6305f5e1000281565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123b57600080fd5b600360149054906101000a900460ff16151561125657600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112fb57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600360149054906101000a900460ff1615151561135257600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b61141d816126b2565b50565b600360149054906101000a900460ff1681565b6000600360149054906101000a900460ff1615151561145157600080fd5b61145b83836126db565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561150757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360149054906101000a900460ff1615151561165357600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611715576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5370656e646572206163636f756e7420667265657a656400000000000000000081525060200191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b6117e1828261296d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561184157600080fd5b600360149054906101000a900460ff1615151561185d57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561191b57600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f1cd93d249e6891929b48ea37a1f765ddbeeb2cb81f0ca8a5548962062720c3348360405180806020018381526020018281038252600c8152602001807fe4bba3e5b881e694afe587ba00000000000000000000000000000000000000008152506020019250505060405180910390a260019050919050565b6040805190810160405280600281526020017f564500000000000000000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff16151515611abc57600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611c40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5265636569766572206163636f756e7420667265657a6564000000000000000081525060200191505060405180910390fd5b611c4a8383612b31565b905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600360149054906101000a900460ff16151515611c9057600080fd5b611c9a8383612b61565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d8557600080fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eab57600080fd5b611eb481612d5d565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1557600080fd5b60008551111515611f2557600080fd5b60008451111515611f3557600080fd5b60008351111515611f4557600080fd5b813073ffffffffffffffffffffffffffffffffffffffff163110151515611f6b57600080fd5b600090505b84518163ffffffff16101561234e57600073ffffffffffffffffffffffffffffffffffffffff16858263ffffffff16815181101515611fab57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515611fd857600080fd5b6000848263ffffffff16815181101515611fee57fe5b9060200190602002015111801561202257506000838263ffffffff1681518110151561201657fe5b90602001906020020151115b151561202d57600080fd5b848163ffffffff1681518110151561204157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc858363ffffffff1681518110151561207857fe5b906020019060200201519081150290604051600060405180830381858888f193505050501580156120ad573d6000803e3d6000fd5b50828163ffffffff168151811015156120c257fe5b90602001906020020151600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550828163ffffffff1681518110151561214d57fe5b90602001906020020151600080878463ffffffff1681518110151561216e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550848163ffffffff168151811015156121d357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f8734fc2e6808281b54be6bb874f7652ffb14f1753fa49e5f4e13184fc514d492858363ffffffff1681518110151561222857fe5b906020019060200201516040518080602001838152602001828103825260068152602001807fe8bdace8b4a600000000000000000000000000000000000000000000000000008152506020019250505060405180910390a2848163ffffffff1681518110151561229457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1cd93d249e6891929b48ea37a1f765ddbeeb2cb81f0ca8a5548962062720c334848363ffffffff168151811015156122e957fe5b9060200190602002015160405180806020018381526020018281038252600c8152602001807fe4bba3e5b881e8bdace8b4a600000000000000000000000000000000000000008152506020019250505060405180910390a28080600101915050611f70565b5050505050565b6000600360149054906101000a900460ff1615151561237357600080fd5b61240282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600360149054906101000a900460ff1615151561267d57600080fd5b612688848484612e7a565b90509392505050565b6000808383111515156126a357600080fd5b82840390508091505092915050565b600360149054906101000a900460ff161515156126ce57600080fd5b6126d83382613235565b50565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156127ed576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612881565b612800838261269190919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600360149054906101000a900460ff1615151561298957600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a1457600080fd5b612aa381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b2d8282613235565b5050565b6000600360149054906101000a900460ff16151515612b4f57600080fd5b612b598383613404565b905092915050565b6000612bf282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612d9957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110151515612e7057600080fd5b8091505092915050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612ec957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612f5457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612f9057600080fd5b612fe1826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613074826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061314582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600360149054906101000a900460ff1615151561325157600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561329e57600080fd5b6132ef816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133468160025461269190919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561345357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561348f57600080fd5b6134e0826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613573826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058203001dd3fd4735fd6090eeceeec268c4cd56bdec9767edf5d3341dbfbabb86cd20029
Deployed Bytecode
0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610177578063095ea7b3146102075780630cfa03181461026c57806318160ddd146102d157806323b872dd146102fc57806326ed274e146103815780632ff2e9dc146103e6578063313ce567146104115780633f4ba83a1461044257806341c0e1b51461045957806342966c68146104705780635c975abb1461049d57806366188463146104cc57806370a0823114610531578063715018a61461058857806373cd0a191461059f57806379cc6790146106165780638456cb59146106635780638da5cb5b1461067a578063901ce853146106d157806395d89b4114610709578063a9059cbb14610799578063b414d4b6146107fe578063d73dd62314610859578063dd62ed3e146108be578063e724529c14610935578063f2fde38b14610984578063f3f594f7146109c7578063fc7f1a8814610abd575b005b34801561018357600080fd5b5061018c610b22565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021357600080fd5b50610252600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5b565b604051808215151515815260200191505060405180910390f35b34801561027857600080fd5b506102b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156102dd57600080fd5b506102e6610c99565b6040518082815260200191505060405180910390f35b34801561030857600080fd5b50610367600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ca3565b604051808215151515815260200191505060405180910390f35b34801561038d57600080fd5b506103cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f1b565b604051808215151515815260200191505060405180910390f35b3480156103f257600080fd5b506103fb6111c9565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b506104266111da565b604051808260ff1660ff16815260200191505060405180910390f35b34801561044e57600080fd5b506104576111df565b005b34801561046557600080fd5b5061046e61129f565b005b34801561047c57600080fd5b5061049b60048036038101908080359060200190929190505050611336565b005b3480156104a957600080fd5b506104b2611420565b604051808215151515815260200191505060405180910390f35b3480156104d857600080fd5b50610517600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611433565b604051808215151515815260200191505060405180910390f35b34801561053d57600080fd5b50610572600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611463565b6040518082815260200191505060405180910390f35b34801561059457600080fd5b5061059d6114ab565b005b3480156105ab57600080fd5b50610600600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b0565b6040518082815260200191505060405180910390f35b34801561062257600080fd5b50610661600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611637565b005b34801561066f57600080fd5b506106786117e5565b005b34801561068657600080fd5b5061068f6118a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106ef600480360381019080803590602001909291905050506118cc565b604051808215151515815260200191505060405180910390f35b34801561071557600080fd5b5061071e611a65565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561075e578082015181840152602081019050610743565b50505050905090810190601f16801561078b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107a557600080fd5b506107e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a9e565b604051808215151515815260200191505060405180910390f35b34801561080a57600080fd5b5061083f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c52565b604051808215151515815260200191505060405180910390f35b34801561086557600080fd5b506108a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c72565b604051808215151515815260200191505060405180910390f35b3480156108ca57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca2565b6040518082815260200191505060405180910390f35b34801561094157600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d29565b005b34801561099057600080fd5b506109c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4f565b005b3480156109d357600080fd5b50610abb60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050611eb7565b005b348015610ac957600080fd5b50610b08600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612355565b604051808215151515815260200191505060405180910390f35b6040805190810160405280600f81526020017f56616c756520457870616e73697665000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff16151515610b7957600080fd5b610b83838361256d565b905092915050565b6000600360149054906101000a900460ff16151515610ba957600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600360149054906101000a900460ff16151515610cc157600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610d83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5370656e646572206163636f756e7420667265657a656400000000000000000081525060200191505060405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5265636569766572206163636f756e7420667265657a6564000000000000000081525060200191505060405180910390fd5b610f1284848461265f565b90509392505050565b600080600360149054906101000a900460ff16151515610f3a57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083101515611049576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110dd565b61105c838261269190919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b601260ff16600a0a6305f5e1000281565b601281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561123b57600080fd5b600360149054906101000a900460ff16151561125657600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112fb57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600360149054906101000a900460ff1615151561135257600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611414576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b61141d816126b2565b50565b600360149054906101000a900460ff1681565b6000600360149054906101000a900460ff1615151561145157600080fd5b61145b83836126db565b905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561150757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360149054906101000a900460ff1615151561165357600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611715576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5370656e646572206163636f756e7420667265657a656400000000000000000081525060200191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156117d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b6117e1828261296d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561184157600080fd5b600360149054906101000a900460ff1615151561185d57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561191b57600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f1cd93d249e6891929b48ea37a1f765ddbeeb2cb81f0ca8a5548962062720c3348360405180806020018381526020018281038252600c8152602001807fe4bba3e5b881e694afe587ba00000000000000000000000000000000000000008152506020019250505060405180910390a260019050919050565b6040805190810160405280600281526020017f564500000000000000000000000000000000000000000000000000000000000081525081565b6000600360149054906101000a900460ff16151515611abc57600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206163636f756e7420667265657a65640000000000000000000081525060200191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611c40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f5265636569766572206163636f756e7420667265657a6564000000000000000081525060200191505060405180910390fd5b611c4a8383612b31565b905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600360149054906101000a900460ff16151515611c9057600080fd5b611c9a8383612b61565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d8557600080fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eab57600080fd5b611eb481612d5d565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f1557600080fd5b60008551111515611f2557600080fd5b60008451111515611f3557600080fd5b60008351111515611f4557600080fd5b813073ffffffffffffffffffffffffffffffffffffffff163110151515611f6b57600080fd5b600090505b84518163ffffffff16101561234e57600073ffffffffffffffffffffffffffffffffffffffff16858263ffffffff16815181101515611fab57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515611fd857600080fd5b6000848263ffffffff16815181101515611fee57fe5b9060200190602002015111801561202257506000838263ffffffff1681518110151561201657fe5b90602001906020020151115b151561202d57600080fd5b848163ffffffff1681518110151561204157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc858363ffffffff1681518110151561207857fe5b906020019060200201519081150290604051600060405180830381858888f193505050501580156120ad573d6000803e3d6000fd5b50828163ffffffff168151811015156120c257fe5b90602001906020020151600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550828163ffffffff1681518110151561214d57fe5b90602001906020020151600080878463ffffffff1681518110151561216e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550848163ffffffff168151811015156121d357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f8734fc2e6808281b54be6bb874f7652ffb14f1753fa49e5f4e13184fc514d492858363ffffffff1681518110151561222857fe5b906020019060200201516040518080602001838152602001828103825260068152602001807fe8bdace8b4a600000000000000000000000000000000000000000000000000008152506020019250505060405180910390a2848163ffffffff1681518110151561229457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff167f1cd93d249e6891929b48ea37a1f765ddbeeb2cb81f0ca8a5548962062720c334848363ffffffff168151811015156122e957fe5b9060200190602002015160405180806020018381526020018281038252600c8152602001807fe4bba3e5b881e8bdace8b4a600000000000000000000000000000000000000008152506020019250505060405180910390a28080600101915050611f70565b5050505050565b6000600360149054906101000a900460ff1615151561237357600080fd5b61240282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc1033302c4d7c43fc10fb5d86d019f38ef2246edfc17885576bddffb41e07059600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600360149054906101000a900460ff1615151561267d57600080fd5b612688848484612e7a565b90509392505050565b6000808383111515156126a357600080fd5b82840390508091505092915050565b600360149054906101000a900460ff161515156126ce57600080fd5b6126d83382613235565b50565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156127ed576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612881565b612800838261269190919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600360149054906101000a900460ff1615151561298957600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a1457600080fd5b612aa381600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b2d8282613235565b5050565b6000600360149054906101000a900460ff16151515612b4f57600080fd5b612b598383613404565b905092915050565b6000612bf282600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612d9957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110151515612e7057600080fd5b8091505092915050565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612ec957600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515612f5457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612f9057600080fd5b612fe1826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613074826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061314582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600360149054906101000a900460ff1615151561325157600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561329e57600080fd5b6132ef816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133468160025461269190919063ffffffff16565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561345357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561348f57600080fd5b6134e0826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613573826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058203001dd3fd4735fd6090eeceeec268c4cd56bdec9767edf5d3341dbfbabb86cd20029
Deployed Bytecode Sourcemap
17086:1184:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17706:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17706:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17706:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9728:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9728:201:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11078:264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11078:264:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4160:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4160:91:0;;;;;;;;;;;;;;;;;;;;;;;14596:441;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14596:441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13288:552;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13288:552:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17847:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17847:78:0;;;;;;;;;;;;;;;;;;;;;;;17803:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17803:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2651:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2651:105:0;;;;;;16862:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16862:70:0;;;;;;15045:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15045:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;1978:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1978:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10179:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4472:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4472:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1332:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1332:124:0;;;;;;10871:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10871:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15262:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15262:318:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2455:103:0;;;;;;924:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16566:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17760:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17760:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17760:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14254:334;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14254:334:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13929:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13929:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9937:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9937:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4915:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4915:191:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14037:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14037:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1464:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15851:707;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15851:707:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12894:386;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12894:386:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17706:47;;;;;;;;;;;;;;;;;;;;:::o;9728:201::-;9861:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;9890:31;9904:8;9914:6;9890:13;:31::i;:::-;9883:38;;9728:201;;;;:::o;11078:264::-;11190:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;11248:6;11212:11;:23;11224:10;11212:23;;;;;;;;;;;;;;;:33;11236:8;11212:33;;;;;;;;;;;;;;;:42;;;;11295:8;11270:42;;11283:10;11270:42;;;11305:6;11270:42;;;;;;;;;;;;;;;;;;11330:4;11323:11;;11078:264;;;;:::o;4160:91::-;4204:7;4231:12;;4224:19;;4160:91;:::o;14596:441::-;14753:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;14784:13;:25;14798:10;14784:25;;;;;;;;;;;;;;;;;;;;;;;;;14783:26;14775:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14857:13;:20;14871:5;14857:20;;;;;;;;;;;;;;;;;;;;;;;;;14856:21;14848:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14924:13;:18;14938:3;14924:18;;;;;;;;;;;;;;;;;;;;;;;;;14923:19;14915:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14991:38;15010:5;15017:3;15022:6;14991:18;:38::i;:::-;14984:45;;14596:441;;;;;:::o;13288:552::-;13444:4;13466:16;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;13485:11;:23;13497:10;13485:23;;;;;;;;;;;;;;;:33;13509:8;13485:33;;;;;;;;;;;;;;;;13466:52;;13553:8;13533:16;:28;;13529:197;;;13614:1;13578:11;:23;13590:10;13578:23;;;;;;;;;;;;;;;:33;13602:8;13578:33;;;;;;;;;;;;;;;:37;;;;13529:197;;;13684:30;13697:16;13684:8;:12;;:30;;;;:::i;:::-;13648:11;:23;13660:10;13648:23;;;;;;;;;;;;;;;:33;13672:8;13648:33;;;;;;;;;;;;;;;:66;;;;13529:197;13766:8;13741:69;;13754:10;13741:69;;;13776:11;:23;13788:10;13776:23;;;;;;;;;;;;;;;:33;13800:8;13776:33;;;;;;;;;;;;;;;;13741:69;;;;;;;;;;;;;;;;;;13828:4;13821:11;;13288:552;;;;;:::o;17847:78::-;17836:2;17907:17;;17901:2;:23;17888:9;:37;17847:78;:::o;17803:35::-;17836:2;17803:35;:::o;2651:105::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;2338:6;;;;;;;;;;;2330:15;;;;;;;;2718:5;2709:6;;:14;;;;;;;;;;;;;;;;;;2739:9;;;;;;;;;;2651:105::o;16862:70::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;16918:5;;;;;;;;;;;16905:19;;;15045:209;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;15156:13;:25;15170:10;15156:25;;;;;;;;;;;;;;;;;;;;;;;;;15155:26;15147:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15228:18;15239:6;15228:10;:18::i;:::-;15045:209;:::o;1978:26::-;;;;;;;;;;;;;:::o;10179:244::-;10328:12;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;10365:50;10388:8;10398:16;10365:22;:50::i;:::-;10358:57;;10179:244;;;;:::o;4472:107::-;4528:7;4555:8;:16;4564:6;4555:16;;;;;;;;;;;;;;;;4548:23;;4472:107;;;:::o;1332:124::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;1413:5;;;;;;;;;;;1394:25;;;;;;;;;;;;1446:1;1430:5;;:18;;;;;;;;;;;;;;;;;;1332:124::o;10871:199::-;11001:7;11033:11;:19;11045:6;11033:19;;;;;;;;;;;;;;;:29;11053:8;11033:29;;;;;;;;;;;;;;;;11026:36;;10871:199;;;;:::o;15262:318::-;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;15403:13;:25;15417:10;15403:25;;;;;;;;;;;;;;;;;;;;;;;;;15402:26;15394:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15476:13;:20;15490:5;15476:20;;;;;;;;;;;;;;;;;;;;;;;;;15475:21;15467:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15543:29;15558:5;15565:6;15543:14;:29::i;:::-;15262:318;;:::o;2455:103::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;2523:4;2514:6;;:13;;;;;;;;;;;;;;;;;;2543:7;;;;;;;;;;2455:103::o;924:20::-;;;;;;;;;;;;;:::o;16566:284::-;16619:12;16659:8;:20;16668:10;16659:20;;;;;;;;;;;;;;;;16651:6;:28;;16643:37;;;;;;;;16713:6;16691:8;:20;16700:10;16691:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;16747:6;16730:8;:15;16739:5;;;;;;;;;;;16730:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;16787:10;16769:51;;;16813:6;16769:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16838:4;16831:11;;16566:284;;;:::o;17760:36::-;;;;;;;;;;;;;;;;;;;;:::o;14254:334::-;14383:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;14414:13;:25;14428:10;14414:25;;;;;;;;;;;;;;;;;;;;;;;;;14413:26;14405:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14486:13;:18;14500:3;14486:18;;;;;;;;;;;;;;;;;;;;;;;;;14485:19;14477:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14553:27;14568:3;14573:6;14553:14;:27::i;:::-;14546:34;;14254:334;;;;:::o;13929:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;9937:234::-;10081:12;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;10118:45;10141:8;10151:11;10118:22;:45::i;:::-;10111:52;;9937:234;;;;:::o;4915:191::-;5041:7;5073;:15;5081:6;5073:15;;;;;;;;;;;;;;;:25;5089:8;5073:25;;;;;;;;;;;;;;;;5066:32;;4915:191;;;;:::o;14037:209::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;14189:6;14165:13;:21;14179:6;14165:21;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14211:27;14223:6;14231;14211:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14037:209;;:::o;1464:111::-;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;1538:29;1557:9;1538:18;:29::i;:::-;1464:111;:::o;15851:707::-;16146:8;1298:5;;;;;;;;;;;1284:19;;:10;:19;;;1276:28;;;;;;;;16002:1;15988:6;:13;:15;15980:24;;;;;;;;16038:1;16023:7;:14;:16;16015:25;;;;;;;;16073:1;16059:6;:13;:15;16051:24;;;;;;;;16117:11;16102:4;16094:21;;;:34;;16086:43;;;;;;;;16156:1;16146:11;;16142:409;16160:6;:13;16158:1;:15;;;16142:409;;;16220:1;16201:21;;:6;16208:1;16201:9;;;;;;;;;;;;;;;;;;;;:21;;;;16193:30;;;;;;;;16257:1;16246:7;16254:1;16246:10;;;;;;;;;;;;;;;;;;;;:12;:25;;;;;16270:1;16260:6;16267:1;16260:9;;;;;;;;;;;;;;;;;;;;:11;16246:25;16238:34;;;;;;;;16287:6;16294:1;16287:9;;;;;;;;;;;;;;;;;;;;:18;;:30;16306:7;16314:1;16306:10;;;;;;;;;;;;;;;;;;;;16287:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16287:30:0;16349:6;16356:1;16349:9;;;;;;;;;;;;;;;;;;;;16332:8;:15;16341:5;;;;;;;;;;;16332:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;16394:6;16401:1;16394:9;;;;;;;;;;;;;;;;;;;;16373:8;:19;16382:6;16389:1;16382:9;;;;;;;;;;;;;;;;;;;;16373:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;16436:6;16443:1;16436:9;;;;;;;;;;;;;;;;;;;;16423:43;;;16455:7;16463:1;16455:10;;;;;;;;;;;;;;;;;;;;16423:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16504:6;16511:1;16504:9;;;;;;;;;;;;;;;;;;;;16486:53;;;16529:6;16536:1;16529:9;;;;;;;;;;;;;;;;;;;;16486:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16174:3;;;;;;;16142:409;;;15851:707;;;;;:::o;12894:386::-;13045:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;13114:50;13152:11;13114;:23;13126:10;13114:23;;;;;;;;;;;;;;;:33;13138:8;13114:33;;;;;;;;;;;;;;;;:37;;:50;;;;:::i;:::-;13067:11;:23;13079:10;13067:23;;;;;;;;;;;;;;;:33;13091:8;13067:33;;;;;;;;;;;;;;;:98;;;;13206:8;13181:69;;13194:10;13181:69;;;13216:11;:23;13228:10;13216:23;;;;;;;;;;;;;;;:33;13240:8;13216:33;;;;;;;;;;;;;;;;13181:69;;;;;;;;;;;;;;;;;;13268:4;13261:11;;12894:386;;;;:::o;6275:206::-;6342:4;6391:6;6359:7;:19;6367:10;6359:19;;;;;;;;;;;;;;;:29;6379:8;6359:29;;;;;;;;;;;;;;;:38;;;;6434:8;6413:38;;6422:10;6413:38;;;6444:6;6413:38;;;;;;;;;;;;;;;;;;6469:4;6462:11;;6275:206;;;;:::o;9488:232::-;9645:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;9674:38;9693:5;9700:3;9705:6;9674:18;:38::i;:::-;9667:45;;9488:232;;;;;:::o;525:156::-;585:7;633:9;619:2;613;:8;;605:17;;;;;;;;650:2;645;:7;633:19;;672:1;665:8;;525:156;;;;;:::o;11469:135::-;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;11571:25;11577:10;11589:6;11571:5;:25::i;:::-;11469:135;:::o;8616:505::-;8745:4;8767:16;8786:7;:19;8794:10;8786:19;;;;;;;;;;;;;;;:29;8806:8;8786:29;;;;;;;;;;;;;;;;8767:48;;8850:8;8830:16;:28;;8826:189;;;8907:1;8875:7;:19;8883:10;8875:19;;;;;;;;;;;;;;;:29;8895:8;8875:29;;;;;;;;;;;;;;;:33;;;;8826:189;;;8973:30;8986:16;8973:8;:12;;:30;;;;:::i;:::-;8941:7;:19;8949:10;8941:19;;;;;;;;;;;;;;;:29;8961:8;8941:29;;;;;;;;;;;;;;;:62;;;;8826:189;9051:8;9030:61;;9039:10;9030:61;;;9061:7;:19;9069:10;9061:19;;;;;;;;;;;;;;;:29;9081:8;9061:29;;;;;;;;;;;;;;;;9030:61;;;;;;;;;;;;;;;;;;9109:4;9102:11;;8616:505;;;;;:::o;11861:475::-;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;12011:11;:18;12023:5;12011:18;;;;;;;;;;;;;;;:30;12030:10;12011:30;;;;;;;;;;;;;;;;12001:6;:40;;11993:49;;;;;;;;12255:42;12290:6;12255:11;:18;12267:5;12255:18;;;;;;;;;;;;;;;:30;12274:10;12255:30;;;;;;;;;;;;;;;;:34;;:42;;;;:::i;:::-;12222:11;:18;12234:5;12222:18;;;;;;;;;;;;;;;:30;12241:10;12222:30;;;;;;;;;;;;;;;:75;;;;12308:20;12314:5;12321:6;12308:5;:20::i;:::-;11861:475;;:::o;9287:193::-;9416:4;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;9445:27;9460:3;9465:6;9445:14;:27::i;:::-;9438:34;;9287:193;;;;:::o;7793:343::-;7917:4;7982:46;8016:11;7982:7;:19;7990:10;7982:19;;;;;;;;;;;;;;;:29;8002:8;7982:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7939:7;:19;7947:10;7939:19;;;;;;;;;;;;;;;:29;7959:8;7939:29;;;;;;;;;;;;;;;:90;;;;8066:8;8045:61;;8054:10;8045:61;;;8076:7;:19;8084:10;8076:19;;;;;;;;;;;;;;;:29;8096:8;8076:29;;;;;;;;;;;;;;;;8045:61;;;;;;;;;;;;;;;;;;8124:4;8117:11;;7793:343;;;;:::o;1583:189::-;1679:1;1658:23;;:9;:23;;;;1650:32;;;;;;;;1726:9;1698:38;;1719:5;;;;;;;;;;;1698:38;;;;;;;;;;;;1755:9;1747:5;;:17;;;;;;;;;;;;;;;;;;1583:189;:::o;693:155::-;753:7;773:9;790:2;785;:7;773:19;;816:2;811:1;:7;;803:16;;;;;;;;839:1;832:8;;693:155;;;;;:::o;6773:545::-;6907:4;6947:8;:15;6956:5;6947:15;;;;;;;;;;;;;;;;6937:6;:25;;6929:34;;;;;;;;6992:7;:14;7000:5;6992:14;;;;;;;;;;;;;;;:26;7007:10;6992:26;;;;;;;;;;;;;;;;6982:6;:36;;6974:45;;;;;;;;7053:1;7038:17;;:3;:17;;;;7030:26;;;;;;;;7087:27;7107:6;7087:8;:15;7096:5;7087:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7069:8;:15;7078:5;7069:15;;;;;;;;;;;;;;;:45;;;;7141:25;7159:6;7141:8;:13;7150:3;7141:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;7125:8;:13;7134:3;7125:13;;;;;;;;;;;;;;;:41;;;;7206:38;7237:6;7206:7;:14;7214:5;7206:14;;;;;;;;;;;;;;;:26;7221:10;7206:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;7177:7;:14;7185:5;7177:14;;;;;;;;;;;;;;;:26;7192:10;7177:26;;;;;;;;;;;;;;;:67;;;;7276:3;7260:28;;7269:5;7260:28;;;7281:6;7260:28;;;;;;;;;;;;;;;;;;7306:4;7299:11;;6773:545;;;;;:::o;12344:542::-;2162:6;;;;;;;;;;;2161:7;2153:16;;;;;;;;12492:8;:14;12501:4;12492:14;;;;;;;;;;;;;;;;12482:6;:24;;12474:33;;;;;;;;12718:26;12737:6;12718:8;:14;12727:4;12718:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;12701:8;:14;12710:4;12701:14;;;;;;;;;;;;;;;:43;;;;12770:24;12787:6;12770:12;;:16;;:24;;;;:::i;:::-;12755:12;:39;;;;12815:4;12810:18;;;12821:6;12810:18;;;;;;;;;;;;;;;;;;12867:1;12844:34;;12853:4;12844:34;;;12871:6;12844:34;;;;;;;;;;;;;;;;;;12344:542;;:::o;5279:355::-;5342:4;5377:8;:20;5386:10;5377:20;;;;;;;;;;;;;;;;5367:6;:30;;5359:39;;;;;;;;5432:1;5417:17;;:3;:17;;;;5409:26;;;;;;;;5471:32;5496:6;5471:8;:20;5480:10;5471:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5448:8;:20;5457:10;5448:20;;;;;;;;;;;;;;;:55;;;;5530:25;5548:6;5530:8;:13;5539:3;5530:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5514:8;:13;5523:3;5514:13;;;;;;;;;;;;;;;:41;;;;5592:3;5571:33;;5580:10;5571:33;;;5597:6;5571:33;;;;;;;;;;;;;;;;;;5622:4;5615:11;;5279:355;;;;:::o
Swarm Source
bzzr://3001dd3fd4735fd6090eeceeec268c4cd56bdec9767edf5d3341dbfbabb86cd2
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.