Overview
Max Total Supply
19,500,000 CYL
Holders
576 (0.00%)
Market
Price
$0.00 @ 0.000001 ETH (-1.62%)
Onchain Market Cap
$25,330.36
Circulating Supply Market Cap
$733.12
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.6 CYLValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CrystalToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-10 */ pragma solidity ^0.4.19; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } // Contract Ownable (defines a contract with an owner) //------------------------------------------------------------------------------------------------------------ contract Ownable { /** * @dev Address of the current owner */ address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // Constructor. Set the original `owner` of the contract to the sender account. function Ownable() public { owner = msg.sender; } // Throws if called by any account other than the owner. modifier onlyOwner() { require(msg.sender == owner); _; } /** Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } // ------------------------------------------------------------------------------------------------------------ /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || 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) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract SafeBasicToken is ERC20Basic { // Use safemath for math operations using SafeMath for uint256; // Maps each address to its current balance mapping(address => uint256) balances; // List of admins that can transfer tokens also during the ICO mapping(address => bool) public admin; // List of addresses that can receive tokens also during the ICO mapping(address => bool) public receivable; // Specifies whether the tokens are locked(ICO is running) - Tokens cannot be transferred during the ICO bool public locked; // Checks the size of the message to avoid attacks modifier onlyPayloadSize(uint size) { assert(msg.data.length >= size + 4); _; } /** Transfer tokens to the specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) public returns (bool) { require(_to != address(0)); require(!locked || admin[msg.sender] == true || receivable[_to] == true); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** Get the balance of the specified address. * @param _owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public constant returns (uint256) { return balances[_owner]; } } /** @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract SafeStandardToken is ERC20, SafeBasicToken { /** Map address => (address => value) * allowed[_owner][_spender] represents the amount of tokens the _spender can use on behalf of the _owner */ mapping(address => mapping(address => uint256)) allowed; /** Return the allowance of the _spender on behalf of the _owner * @param _owner address The address which owns the funds. * @param _spender address The address which will be allowed to spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /** Allow the _spender to spend _value tokens on behalf of msg.sender. * To avoid race condition, the current allowed amount must be first set to 0 through a different transaction. * @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) { require(_value == 0 || allowed[msg.sender][_spender] == 0); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** Increase the allowance for _spender by _addedValue (to be use when allowed[_spender] > 0) */ function increaseApproval(address _spender, uint _addedValue) public returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** Decrease the allowance for _spender by _subtractedValue. Set it to 0 if _subtractedValue is less then the current allowance */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) allowed[msg.sender][_spender] = 0; else allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** Transfer tokens on behalf of _from to _to (if allowed) * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); uint256 _allowance = allowed[_from][msg.sender]; balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; } } // Main contract contract CrystalToken is SafeStandardToken, Ownable { using SafeMath for uint256; string public constant name = "CrystalToken"; string public constant symbol = "CYL"; uint256 public constant decimals = 18; uint256 public constant INITIAL_SUPPLY = 28000000 * (10 ** uint256(decimals)); // Struct representing information of a single round struct Round { uint256 startTime; // Timestamp of the start of the round uint256 endTime; // Timestamp of the end of the round uint256 availableTokens; // Number of tokens available in this round uint256 maxPerUser; // Number of maximum tokens per user uint256 rate; // Number of token per wei in this round mapping(address => uint256) balances; // Balances of the users in this round } // Array containing information of all the rounds Round[5] rounds; // Address where funds are collected address public wallet; // Amount of collected money in wei uint256 public weiRaised; // Current round index uint256 public runningRound; // Constructor function CrystalToken(address _walletAddress) public { wallet = _walletAddress; totalSupply = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; rounds[0] = Round(1519052400, 1519138800, 250000 * (10 ** 18), 200 * (10 ** 18), 2000); // 19 Feb 2018 - 15.00 GMT rounds[1] = Round(1519398000, 1519484400, 1250000 * (10 ** 18), 400 * (10 ** 18), 1333); // 23 Feb 2018 - 15.00 GMT rounds[2] = Round(1519657200, 1519743600, 1500000 * (10 ** 18), 1000 * (10 ** 18), 1000); // 26 Feb 2018 - 15.00 GMT rounds[3] = Round(1519830000, 1519916400, 2000000 * (10 ** 18), 1000 * (10 ** 18), 800); // 28 Feb 2018 - 15.00 GMT rounds[4] = Round(1520262000, 1520348400, 2000000 * (10 ** 18), 2000 * (10 ** 18), 667); // 5 Mar 2018 - 15.00 GMT // Set the owner as an admin admin[msg.sender] = true; // Lock the tokens for the ICO locked = true; // Set the current round to 100 (no round) runningRound = uint256(0); } /** Event for token purchase logging * @param purchaser who paid for the tokens * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); // Rate change event event RateChanged(address indexed owner, uint round, uint256 old_rate, uint256 new_rate); // Fallback function, used to buy token // If ETH are sent to the contract address, without any additional data, this function is called function() public payable { // Take the address of the buyer address beneficiary = msg.sender; // Check that the sender is not the 0 address require(beneficiary != 0x0); // Check that sent ETH in wei is > 0 uint256 weiAmount = msg.value; require(weiAmount != 0); // Get the current round (100 if there is no open round) uint256 roundIndex = runningRound; // Check if there is a running round require(roundIndex != uint256(100)); // Get the information of the current round Round storage round = rounds[roundIndex]; // Calculate the token amount to sell. Exceeding amount will not generate tokens uint256 tokens = weiAmount.mul(round.rate); uint256 maxPerUser = round.maxPerUser; uint256 remaining = maxPerUser - round.balances[beneficiary]; if(remaining < tokens) tokens = remaining; // Check if the tokens can be sold require(areTokensBuyable(roundIndex, tokens)); // Reduce the number of available tokens in the round (fails if there are no more available tokens) round.availableTokens = round.availableTokens.sub(tokens); // Add the number of tokens to the current user's balance of this round round.balances[msg.sender] = round.balances[msg.sender].add(tokens); // Transfer the amount of token to the buyer balances[owner] = balances[owner].sub(tokens); balances[beneficiary] = balances[beneficiary].add(tokens); Transfer(owner, beneficiary, tokens); // Raise the event of token purchase TokenPurchase(beneficiary, beneficiary, weiAmount, tokens); // Update the number of collected money weiRaised = weiRaised.add(weiAmount); // Transfer funds to the wallet wallet.transfer(msg.value); } /** Check if there is an open round and if there are enough tokens available for current phase and for the sender * @param _roundIndex index of the current round * @param _tokens number of requested tokens */ function areTokensBuyable(uint _roundIndex, uint256 _tokens) internal constant returns (bool) { uint256 current_time = block.timestamp; Round storage round = rounds[_roundIndex]; return ( _tokens > 0 && // Check that the user can still buy tokens round.availableTokens >= _tokens && // Check that there are still available tokens current_time >= round.startTime && // Check that the current timestamp is after the start of the round current_time <= round.endTime // Check that the current timestamp is before the end of the round ); } // Return the current number of unsold tokens function tokenBalance() constant public returns (uint256) { return balanceOf(owner); } event Burn(address burner, uint256 value); /** Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public onlyOwner { require(_value <= balances[msg.sender]); address burner = msg.sender; balances[burner] = balances[burner].sub(_value); totalSupply = totalSupply.sub(_value); Burn(burner, _value); } /** Mint a specific amount of tokens. * @param _value The amount of token to be minted. */ function mint(uint256 _value) public onlyOwner { totalSupply = totalSupply.add(_value); balances[msg.sender] = balances[msg.sender].add(_value); } // Functions to set the features of each round (only for the owner) and of the whole ICO // ---------------------------------------------------------------------------------------- function setTokensLocked(bool _value) onlyOwner public { locked = _value; } /** Set the current round index * @param _roundIndex the new round index to set */ function setRound(uint256 _roundIndex) public onlyOwner { runningRound = _roundIndex; } function setAdmin(address _addr, bool _value) onlyOwner public { admin[_addr] = _value; } function setReceivable(address _addr, bool _value) onlyOwner public { receivable[_addr] = _value; } function setRoundStart(uint _round, uint256 _value) onlyOwner public { require(_round >= 0 && _round < rounds.length); rounds[_round].startTime = _value; } function setRoundEnd(uint _round, uint256 _value) onlyOwner public { require(_round >= 0 && _round < rounds.length); rounds[_round].endTime = _value; } function setRoundAvailableToken(uint _round, uint256 _value) onlyOwner public { require(_round >= 0 && _round < rounds.length); rounds[_round].availableTokens = _value; } function setRoundMaxPerUser(uint _round, uint256 _value) onlyOwner public { require(_round >= 0 && _round < rounds.length); rounds[_round].maxPerUser = _value; } function setRoundRate(uint _round, uint256 _round_usd_cents, uint256 _ethvalue_usd) onlyOwner public { require(_round >= 0 && _round < rounds.length); uint256 rate = _ethvalue_usd * 100 / _round_usd_cents; uint256 oldRate = rounds[_round].rate; rounds[_round].rate = rate; RateChanged(msg.sender, _round, oldRate, rounds[_round].rate); } // ---------------------------------------------------------------------------------------- // Functions to get the features of each round // ---------------------------------------------------------------------------------------- function getRoundUserBalance(uint _round, address _user) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].balances[_user]; } function getRoundStart(uint _round) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].startTime; } function getRoundEnd(uint _round) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].endTime; } function getRoundAvailableToken(uint _round) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].availableTokens; } function getRoundMaxPerUser(uint _round) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].maxPerUser; } function getRoundRate(uint _round) public constant returns (uint256) { require(_round >= 0 && _round < rounds.length); return rounds[_round].rate; } // ---------------------------------------------------------------------------------------- }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_round","type":"uint256"}],"name":"getRoundRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"bool"}],"name":"setReceivable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setTokensLocked","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_round","type":"uint256"},{"name":"_round_usd_cents","type":"uint256"},{"name":"_ethvalue_usd","type":"uint256"}],"name":"setRoundRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_value","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_round","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"setRoundMaxPerUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admin","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":"_round","type":"uint256"}],"name":"getRoundEnd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_round","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"setRoundEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_round","type":"uint256"}],"name":"getRoundMaxPerUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_roundIndex","type":"uint256"}],"name":"setRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_round","type":"uint256"}],"name":"getRoundAvailableToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_round","type":"uint256"},{"name":"_user","type":"address"}],"name":"getRoundUserBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_round","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"setRoundStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_round","type":"uint256"}],"name":"getRoundStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"runningRound","outputs":[{"name":"","type":"uint256"}],"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":"","type":"address"}],"name":"receivable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_round","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"setRoundAvailableToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_walletAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"round","type":"uint256"},{"indexed":false,"name":"old_rate","type":"uint256"},{"indexed":false,"name":"new_rate","type":"uint256"}],"name":"RateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60405160208062002f3c8339810160405280805190602001909190505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a6301ab3f00026000819055506012600a0a6301ab3f0002600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060a060405190810160405280635a8ae6708152602001635a8c37f081526020016934f086f3b33b684000008152602001680ad78ebc5ac620000081526020016107d0815250600760006005811015156200016457fe5b60060201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280635a902c708152602001635a917df081526020016a0108b2a2c280290940000081526020016815af1d78b58c400000815260200161053581525060076001600581101515620001f457fe5b60060201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280635a9420f08152602001635a95727081526020016a013da329b63364718000008152602001683635c9adc5dea0000081526020016103e8815250600760026005811015156200028457fe5b60060201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280635a96c3f08152602001635a98157081526020016a01a784379d99db420000008152602001683635c9adc5dea000008152602001610320815250600760036005811015156200031457fe5b60060201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505060a060405190810160405280635a9d5b708152602001635a9eacf081526020016a01a784379d99db420000008152602001686c6b935b8bbd400000815260200161029b81525060076004600581101515620003a457fe5b6006020160008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050506001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006101000a81548160ff021916908315150217905550600060278190555050612ad380620004696000396000f3006060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306e2f5c11461067057806306fdde03146106a7578063095ea7b31461073557806318160ddd1461078f5780631f617a60146107b857806323b872dd146107fc5780632ff2e9dc14610875578063313ce5671461089e5780634042b66f146108c757806340a915a5146108f057806342966c681461091557806349eee1a4146109385780634b0bddd21461096d578063521eb273146109b157806361f3c00614610a0657806363a846f814610a325780636618846314610a835780636bf4223b14610add57806370a0823114610b145780637c4d972b14610b615780638da5cb5b14610b8d578063941660e514610be257806395d89b4114610c195780639b624e7b14610ca75780639e1a4d1914610cca578063a0712d6814610cf3578063a9059cbb14610d16578063c1cbbe6c14610d70578063c37a832d14610da7578063c63e2ebc14610dfd578063cf16cc8314610e29578063cf30901214610e60578063d3f2e7cf14610e8d578063d73dd62314610eb6578063da60278a14610f10578063dd62ed3e14610f61578063f21b937914610fcd578063f2fde38b14610ff9575b600080600080600080600033965060008773ffffffffffffffffffffffffffffffffffffffff161415151561020c57600080fd5b3495506000861415151561021f57600080fd5b60275494506064851415151561023457600080fd5b60078560058110151561024357fe5b60060201935061026084600401548761103290919063ffffffff16565b9250836003015491508360050160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482039050828110156102bb578092505b6102c58584611065565b15156102d057600080fd5b6102e78385600201546110c090919063ffffffff16565b8460020181905550610343838560050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b8460050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103fc8360016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b60016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104b383600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188886604051808381526020018281526020019250505060405180910390a36105ff866026546110d990919063ffffffff16565b602681905550602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561066757600080fd5b50505050505050005b341561067b57600080fd5b61069160048080359060200190919050506110f7565b6040518082815260200191505060405180910390f35b34156106b257600080fd5b6106ba611132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fa5780820151818401526020810190506106df565b50505050905090810190601f1680156107275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561074057600080fd5b610775600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061116b565b604051808215151515815260200191505060405180910390f35b341561079a57600080fd5b6107a26112f2565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107fa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506112f8565b005b341561080757600080fd5b61085b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561088057600080fd5b61088861169b565b6040518082815260200191505060405180910390f35b34156108a957600080fd5b6108b16116a9565b6040518082815260200191505060405180910390f35b34156108d257600080fd5b6108da6116ae565b6040518082815260200191505060405180910390f35b34156108fb57600080fd5b610913600480803515159060200190919050506116b4565b005b341561092057600080fd5b610936600480803590602001909190505061172d565b005b341561094357600080fd5b61096b60048080359060200190919080359060200190919080359060200190919050506118fb565b005b341561097857600080fd5b6109af600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611a36565b005b34156109bc57600080fd5b6109c4611aed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1157600080fd5b610a306004808035906020019091908035906020019091905050611b13565b005b3415610a3d57600080fd5b610a69600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611baa565b604051808215151515815260200191505060405180910390f35b3415610a8e57600080fd5b610ac3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bca565b604051808215151515815260200191505060405180910390f35b3415610ae857600080fd5b610afe6004808035906020019091905050611e5b565b6040518082815260200191505060405180910390f35b3415610b1f57600080fd5b610b4b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e96565b6040518082815260200191505060405180910390f35b3415610b6c57600080fd5b610b8b6004808035906020019091908035906020019091905050611edf565b005b3415610b9857600080fd5b610ba0611f76565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bed57600080fd5b610c036004808035906020019091905050611f9c565b6040518082815260200191505060405180910390f35b3415610c2457600080fd5b610c2c611fd7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6c578082015181840152602081019050610c51565b50505050905090810190601f168015610c995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610cb257600080fd5b610cc86004808035906020019091905050612010565b005b3415610cd557600080fd5b610cdd612076565b6040518082815260200191505060405180910390f35b3415610cfe57600080fd5b610d1460048080359060200190919050506120a8565b005b3415610d2157600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506121b7565b604051808215151515815260200191505060405180910390f35b3415610d7b57600080fd5b610d916004808035906020019091905050612476565b6040518082815260200191505060405180910390f35b3415610db257600080fd5b610de7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506124b1565b6040518082815260200191505060405180910390f35b3415610e0857600080fd5b610e27600480803590602001909190803590602001909190505061252a565b005b3415610e3457600080fd5b610e4a60048080359060200190919050506125c1565b6040518082815260200191505060405180910390f35b3415610e6b57600080fd5b610e736125fc565b604051808215151515815260200191505060405180910390f35b3415610e9857600080fd5b610ea061260f565b6040518082815260200191505060405180910390f35b3415610ec157600080fd5b610ef6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612615565b604051808215151515815260200191505060405180910390f35b3415610f1b57600080fd5b610f47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612811565b604051808215151515815260200191505060405180910390f35b3415610f6c57600080fd5b610fb7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612831565b6040518082815260200191505060405180910390f35b3415610fd857600080fd5b610ff760048080359060200190919080359060200190919050506128b8565b005b341561100457600080fd5b611030600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061294f565b005b60008082840290506000841480611053575082848281151561105057fe5b04145b151561105b57fe5b8091505092915050565b600080600042915060078560058110151561107c57fe5b600602019050600084118015611096575083816002015410155b80156110a6575080600001548210155b80156110b6575080600101548211155b9250505092915050565b60008282111515156110ce57fe5b818303905092915050565b60008082840190508381101515156110ed57fe5b8091505092915050565b60008082101580156111095750600582105b151561111457600080fd5b60078260058110151561112357fe5b60060201600401549050919050565b6040805190810160405280600c81526020017f4372797374616c546f6b656e000000000000000000000000000000000000000081525081565b6000808214806111f757506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561120257600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135457600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156113ee57600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506114bf83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115aa83826110c090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b6012600a0a6301ab3f000281565b601281565b60265481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171057600080fd5b80600460006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178b57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156117d957600080fd5b33905061182e82600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611886826000546110c090919063ffffffff16565b6000819055507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58183604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561195a57600080fd5b6000851015801561196b5750600585105b151561197657600080fd5b836064840281151561198457fe5b04915060078560058110151561199657fe5b60060201600401549050816007866005811015156119b057fe5b60060201600401819055503373ffffffffffffffffffffffffffffffffffffffff167f4f3741b54f8ff88679a722b2b023483f666f143039dfec0c5116b7af733d2ce78683600789600581101515611a0457fe5b600602016004015460405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9257600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6f57600080fd5b60008210158015611b805750600582105b1515611b8b57600080fd5b80600783600581101515611b9b57fe5b60060201600301819055505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611cdb576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6f565b611cee83826110c090919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000808210158015611e6d5750600582105b1515611e7857600080fd5b600782600581101515611e8757fe5b60060201600101549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3b57600080fd5b60008210158015611f4c5750600582105b1515611f5757600080fd5b80600783600581101515611f6757fe5b60060201600101819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808210158015611fae5750600582105b1515611fb957600080fd5b600782600581101515611fc857fe5b60060201600301549050919050565b6040805190810160405280600381526020017f43594c000000000000000000000000000000000000000000000000000000000081525081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561206c57600080fd5b8060278190555050565b60006120a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611e96565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561210457600080fd5b612119816000546110d990919063ffffffff16565b60008190555061217181600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006040600481016000369050101515156121ce57fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561220a57600080fd5b600460009054906101000a900460ff161580612276575060011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b806122d1575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156122dc57600080fd5b61232e83600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c383600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b60008082101580156124885750600582105b151561249357600080fd5b6007826005811015156124a257fe5b60060201600201549050919050565b60008083101580156124c35750600583105b15156124ce57600080fd5b6007836005811015156124dd57fe5b6006020160050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561258657600080fd5b600082101580156125975750600582105b15156125a257600080fd5b806007836005811015156125b257fe5b60060201600001819055505050565b60008082101580156125d35750600582105b15156125de57600080fd5b6007826005811015156125ed57fe5b60060201600001549050919050565b600460009054906101000a900460ff1681565b60275481565b60006126a682600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561291457600080fd5b600082101580156129255750600582105b151561293057600080fd5b8060078360058110151561294057fe5b60060201600201819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156129e757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058208041e3b325e0b9242246162f6d35f4330a3f844d0818f999e6adcd2bef362601002900000000000000000000000024cf63494b22472d864c827258e30d722c53c97a
Deployed Bytecode
0x6060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306e2f5c11461067057806306fdde03146106a7578063095ea7b31461073557806318160ddd1461078f5780631f617a60146107b857806323b872dd146107fc5780632ff2e9dc14610875578063313ce5671461089e5780634042b66f146108c757806340a915a5146108f057806342966c681461091557806349eee1a4146109385780634b0bddd21461096d578063521eb273146109b157806361f3c00614610a0657806363a846f814610a325780636618846314610a835780636bf4223b14610add57806370a0823114610b145780637c4d972b14610b615780638da5cb5b14610b8d578063941660e514610be257806395d89b4114610c195780639b624e7b14610ca75780639e1a4d1914610cca578063a0712d6814610cf3578063a9059cbb14610d16578063c1cbbe6c14610d70578063c37a832d14610da7578063c63e2ebc14610dfd578063cf16cc8314610e29578063cf30901214610e60578063d3f2e7cf14610e8d578063d73dd62314610eb6578063da60278a14610f10578063dd62ed3e14610f61578063f21b937914610fcd578063f2fde38b14610ff9575b600080600080600080600033965060008773ffffffffffffffffffffffffffffffffffffffff161415151561020c57600080fd5b3495506000861415151561021f57600080fd5b60275494506064851415151561023457600080fd5b60078560058110151561024357fe5b60060201935061026084600401548761103290919063ffffffff16565b9250836003015491508360050160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482039050828110156102bb578092505b6102c58584611065565b15156102d057600080fd5b6102e78385600201546110c090919063ffffffff16565b8460020181905550610343838560050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b8460050160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506103fc8360016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b60016000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506104b383600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad188886604051808381526020018281526020019250505060405180910390a36105ff866026546110d990919063ffffffff16565b602681905550602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050151561066757600080fd5b50505050505050005b341561067b57600080fd5b61069160048080359060200190919050506110f7565b6040518082815260200191505060405180910390f35b34156106b257600080fd5b6106ba611132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fa5780820151818401526020810190506106df565b50505050905090810190601f1680156107275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561074057600080fd5b610775600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061116b565b604051808215151515815260200191505060405180910390f35b341561079a57600080fd5b6107a26112f2565b6040518082815260200191505060405180910390f35b34156107c357600080fd5b6107fa600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803515159060200190919050506112f8565b005b341561080757600080fd5b61085b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113af565b604051808215151515815260200191505060405180910390f35b341561088057600080fd5b61088861169b565b6040518082815260200191505060405180910390f35b34156108a957600080fd5b6108b16116a9565b6040518082815260200191505060405180910390f35b34156108d257600080fd5b6108da6116ae565b6040518082815260200191505060405180910390f35b34156108fb57600080fd5b610913600480803515159060200190919050506116b4565b005b341561092057600080fd5b610936600480803590602001909190505061172d565b005b341561094357600080fd5b61096b60048080359060200190919080359060200190919080359060200190919050506118fb565b005b341561097857600080fd5b6109af600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611a36565b005b34156109bc57600080fd5b6109c4611aed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1157600080fd5b610a306004808035906020019091908035906020019091905050611b13565b005b3415610a3d57600080fd5b610a69600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611baa565b604051808215151515815260200191505060405180910390f35b3415610a8e57600080fd5b610ac3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611bca565b604051808215151515815260200191505060405180910390f35b3415610ae857600080fd5b610afe6004808035906020019091905050611e5b565b6040518082815260200191505060405180910390f35b3415610b1f57600080fd5b610b4b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e96565b6040518082815260200191505060405180910390f35b3415610b6c57600080fd5b610b8b6004808035906020019091908035906020019091905050611edf565b005b3415610b9857600080fd5b610ba0611f76565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bed57600080fd5b610c036004808035906020019091905050611f9c565b6040518082815260200191505060405180910390f35b3415610c2457600080fd5b610c2c611fd7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6c578082015181840152602081019050610c51565b50505050905090810190601f168015610c995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610cb257600080fd5b610cc86004808035906020019091905050612010565b005b3415610cd557600080fd5b610cdd612076565b6040518082815260200191505060405180910390f35b3415610cfe57600080fd5b610d1460048080359060200190919050506120a8565b005b3415610d2157600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506121b7565b604051808215151515815260200191505060405180910390f35b3415610d7b57600080fd5b610d916004808035906020019091905050612476565b6040518082815260200191505060405180910390f35b3415610db257600080fd5b610de7600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506124b1565b6040518082815260200191505060405180910390f35b3415610e0857600080fd5b610e27600480803590602001909190803590602001909190505061252a565b005b3415610e3457600080fd5b610e4a60048080359060200190919050506125c1565b6040518082815260200191505060405180910390f35b3415610e6b57600080fd5b610e736125fc565b604051808215151515815260200191505060405180910390f35b3415610e9857600080fd5b610ea061260f565b6040518082815260200191505060405180910390f35b3415610ec157600080fd5b610ef6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612615565b604051808215151515815260200191505060405180910390f35b3415610f1b57600080fd5b610f47600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612811565b604051808215151515815260200191505060405180910390f35b3415610f6c57600080fd5b610fb7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612831565b6040518082815260200191505060405180910390f35b3415610fd857600080fd5b610ff760048080359060200190919080359060200190919050506128b8565b005b341561100457600080fd5b611030600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061294f565b005b60008082840290506000841480611053575082848281151561105057fe5b04145b151561105b57fe5b8091505092915050565b600080600042915060078560058110151561107c57fe5b600602019050600084118015611096575083816002015410155b80156110a6575080600001548210155b80156110b6575080600101548211155b9250505092915050565b60008282111515156110ce57fe5b818303905092915050565b60008082840190508381101515156110ed57fe5b8091505092915050565b60008082101580156111095750600582105b151561111457600080fd5b60078260058110151561112357fe5b60060201600401549050919050565b6040805190810160405280600c81526020017f4372797374616c546f6b656e000000000000000000000000000000000000000081525081565b6000808214806111f757506000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b151561120257600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60005481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135457600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156113ee57600080fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506114bf83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115aa83826110c090919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b6012600a0a6301ab3f000281565b601281565b60265481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171057600080fd5b80600460006101000a81548160ff02191690831515021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178b57600080fd5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156117d957600080fd5b33905061182e82600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611886826000546110c090919063ffffffff16565b6000819055507fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58183604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561195a57600080fd5b6000851015801561196b5750600585105b151561197657600080fd5b836064840281151561198457fe5b04915060078560058110151561199657fe5b60060201600401549050816007866005811015156119b057fe5b60060201600401819055503373ffffffffffffffffffffffffffffffffffffffff167f4f3741b54f8ff88679a722b2b023483f666f143039dfec0c5116b7af733d2ce78683600789600581101515611a0457fe5b600602016004015460405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9257600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6f57600080fd5b60008210158015611b805750600582105b1515611b8b57600080fd5b80600783600581101515611b9b57fe5b60060201600301819055505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611cdb576000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6f565b611cee83826110c090919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000808210158015611e6d5750600582105b1515611e7857600080fd5b600782600581101515611e8757fe5b60060201600101549050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3b57600080fd5b60008210158015611f4c5750600582105b1515611f5757600080fd5b80600783600581101515611f6757fe5b60060201600101819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808210158015611fae5750600582105b1515611fb957600080fd5b600782600581101515611fc857fe5b60060201600301549050919050565b6040805190810160405280600381526020017f43594c000000000000000000000000000000000000000000000000000000000081525081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561206c57600080fd5b8060278190555050565b60006120a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611e96565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561210457600080fd5b612119816000546110d990919063ffffffff16565b60008190555061217181600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60006040600481016000369050101515156121ce57fe5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561220a57600080fd5b600460009054906101000a900460ff161580612276575060011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b806122d1575060011515600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156122dc57600080fd5b61232e83600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110c090919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c383600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b60008082101580156124885750600582105b151561249357600080fd5b6007826005811015156124a257fe5b60060201600201549050919050565b60008083101580156124c35750600583105b15156124ce57600080fd5b6007836005811015156124dd57fe5b6006020160050160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561258657600080fd5b600082101580156125975750600582105b15156125a257600080fd5b806007836005811015156125b257fe5b60060201600001819055505050565b60008082101580156125d35750600582105b15156125de57600080fd5b6007826005811015156125ed57fe5b60060201600001549050919050565b600460009054906101000a900460ff1681565b60275481565b60006126a682600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110d990919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561291457600080fd5b600082101580156129255750600582105b151561293057600080fd5b8060078360058110151561294057fe5b60060201600201819055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156129e757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058208041e3b325e0b9242246162f6d35f4330a3f844d0818f999e6adcd2bef3626010029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000024cf63494b22472d864c827258e30d722c53c97a
-----Decoded View---------------
Arg [0] : _walletAddress (address): 0x24cF63494b22472D864C827258E30D722C53c97a
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000024cf63494b22472d864c827258e30d722c53c97a
Swarm Source
bzzr://8041e3b325e0b9242246162f6d35f4330a3f844d0818f999e6adcd2bef362601
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.