ETH Price: $3,059.10 (+1.16%)
Gas: 4 Gwei

Token

DACPLAY Token (PLS)
 

Overview

Max Total Supply

682,753,889.89757 PLS

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ghash.eth
Balance
0.2564 PLS

Value
$0.00
0x3d5569d3e5f4ebd45a1fb243d479d174c83f583f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PLS

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-10-24
*/

pragma solidity ^0.4.13;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) constant returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    function DSAuth() {
        owner = msg.sender;
        LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        auth
    {
        owner = owner_;
        LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        auth
    {
        authority = authority_;
        LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

contract DSStop is DSNote, DSAuth {

    bool public stopped;

    modifier stoppable {
        require(!stopped);
        _;
    }
    function stop() auth note {
        stopped = true;
    }
    function start() auth note {
        stopped = false;
    }

}

/// base.sol -- basic ERC20 implementation

// Token standard API
// https://github.com/ethereum/EIPs/issues/20

contract ERC20 {
    function totalSupply() constant returns (uint supply);
    function balanceOf( address who ) constant returns (uint value);
    function allowance( address owner, address spender ) constant returns (uint _allowance);

    function transfer( address to, uint value) returns (bool ok);
    function transferFrom( address from, address to, uint value) returns (bool ok);
    function approve( address spender, uint value ) returns (bool ok);

    event Transfer( address indexed from, address indexed to, uint value);
    event Approval( address indexed owner, address indexed spender, uint value);
}
contract DSMath {
    function add(uint x, uint y) internal returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}


contract DSTokenBase is ERC20, DSMath {
    uint256                                            _supply;
    mapping (address => uint256)                       _balances;
    mapping (address => mapping (address => uint256))  _approvals;

    function DSTokenBase(uint supply) {
        _balances[msg.sender] = supply;
        _supply = supply;
    }

    function totalSupply() constant returns (uint) {
        return _supply;
    }
    function balanceOf(address src) constant returns (uint) {
        return _balances[src];
    }
    function allowance(address src, address guy) constant returns (uint) {
        return _approvals[src][guy];
    }

    function transfer(address dst, uint wad) returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad) returns (bool) {
        if (src != msg.sender) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        Transfer(src, dst, wad);

        return true;
    }

    function approve(address guy, uint wad) returns (bool) {
        _approvals[msg.sender][guy] = wad;

        Approval(msg.sender, guy, wad);

        return true;
    }
}

contract DSToken is DSTokenBase(0), DSStop {

    mapping (address => mapping (address => bool)) _trusted;

    bytes32  public  symbol;
    uint256  public  decimals = 18; // standard token precision. override to customize

    function DSToken(bytes32 symbol_) {
        symbol = symbol_;
    }

    event Trust(address indexed src, address indexed guy, bool wat);
    event Mint(address indexed guy, uint wad);
    event Burn(address indexed guy, uint wad);

    function trusted(address src, address guy) constant returns (bool) {
        return _trusted[src][guy];
    }
    function trust(address guy, bool wat) stoppable {
        _trusted[msg.sender][guy] = wat;
        Trust(msg.sender, guy, wat);
    }

    function approve(address guy, uint wad) stoppable returns (bool) {
        return super.approve(guy, wad);
    }
    function transferFrom(address src, address dst, uint wad)
        stoppable
        returns (bool)
    {
        if (src != msg.sender && !_trusted[src][msg.sender]) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) {
        transferFrom(msg.sender, dst, wad);
    }
    function pull(address src, uint wad) {
        transferFrom(src, msg.sender, wad);
    }
    function move(address src, address dst, uint wad) {
        transferFrom(src, dst, wad);
    }

    function mint(uint wad) {
        mint(msg.sender, wad);
    }
    function burn(uint wad) {
        burn(msg.sender, wad);
    }
    function mint(address guy, uint wad) auth stoppable {
        _balances[guy] = add(_balances[guy], wad);
        _supply = add(_supply, wad);
        Mint(guy, wad);
    }
    function burn(address guy, uint wad) auth stoppable {
        if (guy != msg.sender && !_trusted[guy][msg.sender]) {
            _approvals[guy][msg.sender] = sub(_approvals[guy][msg.sender], wad);
        }

        _balances[guy] = sub(_balances[guy], wad);
        _supply = sub(_supply, wad);
        Burn(guy, wad);
    }

    // Optional token name
    bytes32   public  name = "";

    function setName(bytes32 name_) auth {
        name = name_;
    }
}

/// @title ERC223ReceivingContract - Standard contract implementation for compatibility with ERC223 tokens.
contract ERC223ReceivingContract {

    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _from Transaction initiator, analogue of msg.sender
    /// @param _value Number of tokens to transfer.
    /// @param _data Data containig a function signature and/or parameters
    function tokenFallback(address _from, uint256 _value, bytes _data) public;
}

/// @dev The token controller contract must implement these functions
contract TokenController {
    /// @notice Called when `_owner` sends ether to the MiniMe Token contract
    /// @param _owner The address that sent the ether to create tokens
    /// @return True if the ether is accepted, false if it throws
    function proxyPayment(address _owner) payable returns(bool);

    /// @notice Notifies the controller about a token transfer allowing the
    ///  controller to react if desired
    /// @param _from The origin of the transfer
    /// @param _to The destination of the transfer
    /// @param _amount The amount of the transfer
    /// @return False if the controller does not authorize the transfer
    function onTransfer(address _from, address _to, uint _amount) returns(bool);

    /// @notice Notifies the controller about an approval allowing the
    ///  controller to react if desired
    /// @param _owner The address that calls `approve()`
    /// @param _spender The spender in the `approve()` call
    /// @param _amount The amount in the `approve()` call
    /// @return False if the controller does not authorize the approval
    function onApprove(address _owner, address _spender, uint _amount)
        returns(bool);
}

contract Controlled {
    /// @notice The address of the controller is the only address that can call
    ///  a function with this modifier
    modifier onlyController { if (msg.sender != controller) throw; _; }

    address public controller;

    function Controlled() { controller = msg.sender;}

    /// @notice Changes the controller of the contract
    /// @param _newController The new controller of the contract
    function changeController(address _newController) onlyController {
        controller = _newController;
    }
}

contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 _amount, address _token, bytes _data);
}

contract PLS is DSToken("PLS"), Controlled {

    function PLS() {
        setName("DACPLAY Token");
    }

    /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
    ///  is approved by `_from`
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function transferFrom(address _from, address _to, uint256 _amount
    ) returns (bool success) {
        // Alerts the token controller of the transfer
        if (isContract(controller)) {
            if (!TokenController(controller).onTransfer(_from, _to, _amount))
               throw;
        }

        success = super.transferFrom(_from, _to, _amount);

        if (success && isContract(_to))
        {
            // Refer Contract Interface ApproveAndCallFallBack, using keccak256 since sha3 has been deprecated.
            if(!_to.call(bytes4(bytes32(keccak256("receiveToken(address,uint256,address)"))), _from, _amount, this)) {
                // do nothing when error in call in case that the _to contract is not inherited from ReceiveAndCallFallBack
                // revert();
                // TODO: Log Some Event here to record the fail.
                // Even the fallback failed if there is such one, the transfer will not be revert since "revert()" is not called.
            }
        }
    }

    /*
     * ERC 223
     * Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload.
     * https://github.com/ethereum/EIPs/issues/223
     * function transfer(address _to, uint256 _value, bytes _data) public returns (bool success);
     */

    /// @notice Send `_value` tokens to `_to` from `msg.sender` and trigger
    /// tokenFallback if sender is a contract.
    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _to Address of token receiver.
    /// @param _value Number of tokens to transfer.
    /// @param _data Data to be sent to tokenFallback
    /// @return Returns success of function call.
    function transfer(
        address _to,
        uint256 _value,
        bytes _data)
        public
        returns (bool)
    {
        require(transfer(_to, _value));

        if (isContract(_to)) {
            ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
            receiver.tokenFallback(msg.sender, _value, _data);
        }

        return true;
    }

    /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
    ///  its behalf. This is a modified version of the ERC20 approve function
    ///  to be a little bit safer
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the approval was successful
    function approve(address _spender, uint256 _amount) returns (bool success) {
        // Alerts the token controller of the approve function call
        if (isContract(controller)) {
            if (!TokenController(controller).onApprove(msg.sender, _spender, _amount))
                throw;
        }
        
        return super.approve(_spender, _amount);
    }

    function mint(address _guy, uint _wad) auth stoppable {
        super.mint(_guy, _wad);

        Transfer(0, _guy, _wad);
    }
    function burn(address _guy, uint _wad) auth stoppable {
        super.burn(_guy, _wad);

        Transfer(_guy, 0, _wad);
    }

    /// @notice `msg.sender` approves `_spender` to send `_amount` tokens on
    ///  its behalf, and then a function is triggered in the contract that is
    ///  being approved, `_spender`. This allows users to use their tokens to
    ///  interact with contracts in one function call instead of two
    /// @param _spender The address of the contract able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the function call was successful
    function approveAndCall(address _spender, uint256 _amount, bytes _extraData
    ) returns (bool success) {
        if (!approve(_spender, _amount)) throw;

        ApproveAndCallFallBack(_spender).receiveApproval(
            msg.sender,
            _amount,
            this,
            _extraData
        );

        return true;
    }

    /// @dev Internal function to determine if an address is a contract
    /// @param _addr The address being queried
    /// @return True if `_addr` is a contract
    function isContract(address _addr) constant internal returns(bool) {
        uint size;
        if (_addr == 0) return false;
        assembly {
            size := extcodesize(_addr)
        }
        return size>0;
    }

    /// @notice The fallback function: If the contract's controller has not been
    ///  set to 0, then the `proxyPayment` method is called which relays the
    ///  ether and creates tokens as described in the token controller contract
    function ()  payable {
        if (isContract(controller)) {
            if (! TokenController(controller).proxyPayment.value(msg.value)(msg.sender))
                throw;
        } else {
            throw;
        }
    }

//////////
// Safety Methods
//////////

    /// @notice This method can be used by the controller to extract mistakenly
    ///  sent tokens to this contract.
    /// @param _token The address of the token contract that you want to recover
    ///  set to 0 in case you want to extract ether.
    function claimTokens(address _token) onlyController {
        if (_token == 0x0) {
            controller.transfer(this.balance);
            return;
        }

        ERC20 token = ERC20(_token);
        uint balance = token.balanceOf(this);
        token.transfer(controller, balance);
        ClaimedTokens(_token, controller, balance);
    }

////////////////
// Events
////////////////

    event ClaimedTokens(address indexed _token, address indexed _controller, uint _amount);

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wat","type":"bool"}],"name":"trust","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_guy","type":"address"},{"name":"_wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name_","type":"bytes32"}],"name":"setName","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"guy","type":"address"}],"name":"trusted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_guy","type":"address"},{"name":"_wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"guy","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"pull","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wat","type":"bool"}],"name":"Trust","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","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"}]

60606040526012600755600060085534156200001a57600080fd5b5b5b7f504c5300000000000000000000000000000000000000000000000000000000005b5b60005b600160a060020a03331660009081526001602052604081208290558190555b5060048054600160a060020a03191633600160a060020a03169081179091557fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a25b60068190555b5060098054600160a060020a03191633600160a060020a03161790555b620001097f444143504c415920546f6b656e0000000000000000000000000000000000000064010000000062000c966200011082021704565b5b62000294565b6200014e337fffffffff0000000000000000000000000000000000000000000000000000000060003516640100000000620013606200016482021704565b15156200015a57600080fd5b60088190555b5b50565b600030600160a060020a031683600160a060020a031614156200018a575060016200028b565b600454600160a060020a0384811691161415620001aa575060016200028b565b600354600160a060020a03161515620001c6575060006200028b565b600354600160a060020a031663b70096138430856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201527fffffffff000000000000000000000000000000000000000000000000000000009091166044820152606401602060405180830381600087803b15156200026d57600080fd5b6102c65a03f115156200027f57600080fd5b50505060405180519150505b5b5b5b92915050565b61190080620002a46000396000f3006060604052361561016f5763ffffffff60e060020a60003504166306262f1b811461021c57806306fdde031461024257806307da68f514610267578063095ea7b31461027c57806313af4035146102b257806318160ddd146102d357806323b872dd146102f8578063313ce567146103345780633cebb8231461035957806340c10f191461037a57806342966c681461039e5780635ac801fe146103b657806370a08231146103ce57806375f12b21146103ff5780637a9e5e4b146104265780637aa3295b146104475780638da5cb5b1461048057806395d89b41146104af5780639dc29fac146104d4578063a0712d68146104f8578063a9059cbb14610510578063b753a98c14610546578063bb35783b1461056a578063be45fd6214610594578063be9a65551461060d578063bf7e214f14610622578063cae9ca5114610651578063dd62ed3e146106ca578063df8de3e714610701578063f2d5d56b14610722578063f77c479114610746575b61021a5b60095461018890600160a060020a0316610775565b1561021257600954600160a060020a031663f48c3054343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156101e657600080fd5b6125ee5a03f115156101f757600080fd5b5050505060405180519050151561020d57600080fd5b610217565b600080fd5b5b565b005b341561022757600080fd5b61021a600160a060020a036004351660243515156107a2565b005b341561024d57600080fd5b61025561082b565b60405190815260200160405180910390f35b341561027257600080fd5b61021a610831565b005b341561028757600080fd5b61029e600160a060020a03600435166024356108d3565b604051901515815260200160405180910390f35b34156102bd57600080fd5b61021a600160a060020a0360043516610996565b005b34156102de57600080fd5b610255610a17565b60405190815260200160405180910390f35b341561030357600080fd5b61029e600160a060020a0360043581169060243516604435610a1e565b604051901515815260200160405180910390f35b341561033f57600080fd5b610255610bb2565b60405190815260200160405180910390f35b341561036457600080fd5b61021a600160a060020a0360043516610bb8565b005b341561038557600080fd5b61021a600160a060020a0360043516602435610c00565b005b34156103a957600080fd5b61021a600435610c88565b005b34156103c157600080fd5b61021a600435610c96565b005b34156103d957600080fd5b610255600160a060020a0360043516610cc1565b60405190815260200160405180910390f35b341561040a57600080fd5b61029e610ce0565b604051901515815260200160405180910390f35b341561043157600080fd5b61021a600160a060020a0360043516610cf0565b005b341561045257600080fd5b61029e600160a060020a0360043581169060243516610d71565b604051901515815260200160405180910390f35b341561048b57600080fd5b610493610da1565b604051600160a060020a03909116815260200160405180910390f35b34156104ba57600080fd5b610255610db0565b60405190815260200160405180910390f35b34156104df57600080fd5b61021a600160a060020a0360043516602435610db6565b005b341561050357600080fd5b61021a600435610e3e565b005b341561051b57600080fd5b61029e600160a060020a0360043516602435610e4c565b604051901515815260200160405180910390f35b341561055157600080fd5b61021a600160a060020a0360043516602435610e62565b005b341561057557600080fd5b61021a600160a060020a0360043581169060243516604435610e73565b005b341561059f57600080fd5b61029e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e8595505050505050565b604051901515815260200160405180910390f35b341561061857600080fd5b61021a610f9c565b005b341561062d57600080fd5b610493611038565b604051600160a060020a03909116815260200160405180910390f35b341561065c57600080fd5b61029e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061104795505050505050565b604051901515815260200160405180910390f35b34156106d557600080fd5b610255600160a060020a0360043581169060243516611165565b60405190815260200160405180910390f35b341561070c57600080fd5b61021a600160a060020a0360043516611192565b005b341561072d57600080fd5b61021a600160a060020a0360043516602435611340565b005b341561075157600080fd5b610493611351565b604051600160a060020a03909116815260200160405180910390f35b600080600160a060020a0383161515610791576000915061079c565b823b90506000811191505b50919050565b60045460a060020a900460ff16156107b957600080fd5b33600160a060020a0390811660008181526005602090815260408083209487168084529490915290819020805460ff19168515151790557ff184148577730b253ecb4339c543a564af420f3d32ed12a1c62ae83d67d65fe390849051901515815260200160405180910390a35b5b5050565b60085481565b61084733600035600160e060020a031916611360565b151561085257600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a46004805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b50505b565b6009546000906108eb90600160a060020a0316610775565b1561098257600954600160a060020a031663da682aeb33858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561095c57600080fd5b6102c65a03f1151561096d57600080fd5b50505060405180519050151561098257600080fd5b5b61098d838361145c565b90505b92915050565b6109ac33600035600160e060020a031916611360565b15156109b757600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a25b5b50565b6000545b90565b600954600090610a3690600160a060020a0316610775565b15610acd57600954600160a060020a0316634a39314985858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610aa757600080fd5b6102c65a03f11515610ab857600080fd5b505050604051805190501515610acd57600080fd5b5b610ad984848461148a565b9050808015610aec5750610aec83610775565b5b15610ba95782600160a060020a03166040517f72656365697665546f6b656e28616464726573732c75696e743235362c61646481527f72657373290000000000000000000000000000000000000000000000000000006020820152602501604051809103902060e060020a900485843060405160e060020a63ffffffff8616028152600160a060020a0393841660048201526024810192909252909116604482015260640160006040518083038160008761646e5a03f1505050505b5b5b9392505050565b60075481565b60095433600160a060020a03908116911614610bd357600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b610c1633600035600160e060020a031916611360565b1515610c2157600080fd5b60045460a060020a900460ff1615610c3857600080fd5b610c428282611600565b81600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b5050565b610a133382610db6565b5b50565b610cac33600035600160e060020a031916611360565b1515610cb757600080fd5b60088190555b5b50565b600160a060020a0381166000908152600160205260409020545b919050565b60045460a060020a900460ff1681565b610d0633600035600160e060020a031916611360565b1515610d1157600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a25b5b50565b600160a060020a0380831660009081526005602090815260408083209385168352929052205460ff165b92915050565b600454600160a060020a031681565b60065481565b610dcc33600035600160e060020a031916611360565b1515610dd757600080fd5b60045460a060020a900460ff1615610dee57600080fd5b610df882826116c9565b600082600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b5050565b610a133382610c00565b5b50565b600061098d338484610a1e565b90505b92915050565b610e6d338383610a1e565b505b5050565b610e7e838383610a1e565b505b505050565b600080610e928585610e4c565b1515610e9d57600080fd5b610ea685610775565b15610f8f575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f2d5780820151818401525b602001610f14565b50505050905090810190601f168015610f5a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515610f7a57600080fd5b6102c65a03f11515610f8b57600080fd5b5050505b600191505b509392505050565b610fb233600035600160e060020a031916611360565b1515610fbd57600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a46004805474ff0000000000000000000000000000000000000000191690555b5b50505b565b600354600160a060020a031681565b600061105384846108d3565b151561105e57600080fd5b83600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110f75780820151818401525b6020016110de565b50505050905090810190601f1680156111245780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561114557600080fd5b6102c65a03f1151561115657600080fd5b505050600190505b9392505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600954600090819033600160a060020a039081169116146111b257600080fd5b600160a060020a038316151561120057600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156111fb57600080fd5b610e6d565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561125a57600080fd5b6102c65a03f1151561126b57600080fd5b5050506040518051600954909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112da57600080fd5b6102c65a03f115156112eb57600080fd5b50505060405180515050600954600160a060020a039081169084167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c8360405190815260200160405180910390a35b5b505050565b610e6d823383610a1e565b505b5050565b600954600160a060020a031681565b600030600160a060020a031683600160a060020a0316141561138457506001610990565b600454600160a060020a03848116911614156113a257506001610990565b600354600160a060020a031615156113bc57506000610990565b600354600160a060020a031663b700961384308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a039384166004820152919092166024820152600160e060020a03199091166044820152606401602060405180830381600087803b151561143157600080fd5b6102c65a03f1151561144257600080fd5b505050604051805190509050610990565b5b5b5b92915050565b60045460009060a060020a900460ff161561147657600080fd5b61098d8383611839565b90505b5b92915050565b60045460009060a060020a900460ff16156114a457600080fd5b33600160a060020a031684600160a060020a0316141580156114ed5750600160a060020a038085166000908152600560209081526040808320339094168352929052205460ff16155b1561154b57600160a060020a038085166000908152600260209081526040808320339094168352929052205461152390836118a6565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555b600160a060020a03841660009081526001602052604090205461156e90836118a6565b600160a060020a03808616600090815260016020526040808220939093559085168152205461159d90836118bd565b600160a060020a03808516600081815260016020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b5b9392505050565b61161633600035600160e060020a031916611360565b151561162157600080fd5b60045460a060020a900460ff161561163857600080fd5b600160a060020a03821660009081526001602052604090205461165b90826118bd565b600160a060020a0383166000908152600160205260408120919091555461168290826118bd565b600055600160a060020a0382167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405190815260200160405180910390a25b5b5b5050565b6116df33600035600160e060020a031916611360565b15156116ea57600080fd5b60045460a060020a900460ff161561170157600080fd5b33600160a060020a031682600160a060020a03161415801561174a5750600160a060020a038083166000908152600560209081526040808320339094168352929052205460ff16155b156117a857600160a060020a038083166000908152600260209081526040808320339094168352929052205461178090826118a6565b600160a060020a03808416600090815260026020908152604080832033909416835292905220555b600160a060020a0382166000908152600160205260409020546117cb90826118a6565b600160a060020a038316600090815260016020526040812091909155546117f290826118a6565b600055600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25b5b5b5050565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b8082038281111561099057600080fd5b5b92915050565b8082018281101561099057600080fd5b5b929150505600a165627a7a723058205867c278cc47e7657df50d54c192cd00ae1c286b0baf94f73fd8e0edc9f2e7830029

Deployed Bytecode

0x6060604052361561016f5763ffffffff60e060020a60003504166306262f1b811461021c57806306fdde031461024257806307da68f514610267578063095ea7b31461027c57806313af4035146102b257806318160ddd146102d357806323b872dd146102f8578063313ce567146103345780633cebb8231461035957806340c10f191461037a57806342966c681461039e5780635ac801fe146103b657806370a08231146103ce57806375f12b21146103ff5780637a9e5e4b146104265780637aa3295b146104475780638da5cb5b1461048057806395d89b41146104af5780639dc29fac146104d4578063a0712d68146104f8578063a9059cbb14610510578063b753a98c14610546578063bb35783b1461056a578063be45fd6214610594578063be9a65551461060d578063bf7e214f14610622578063cae9ca5114610651578063dd62ed3e146106ca578063df8de3e714610701578063f2d5d56b14610722578063f77c479114610746575b61021a5b60095461018890600160a060020a0316610775565b1561021257600954600160a060020a031663f48c3054343360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156101e657600080fd5b6125ee5a03f115156101f757600080fd5b5050505060405180519050151561020d57600080fd5b610217565b600080fd5b5b565b005b341561022757600080fd5b61021a600160a060020a036004351660243515156107a2565b005b341561024d57600080fd5b61025561082b565b60405190815260200160405180910390f35b341561027257600080fd5b61021a610831565b005b341561028757600080fd5b61029e600160a060020a03600435166024356108d3565b604051901515815260200160405180910390f35b34156102bd57600080fd5b61021a600160a060020a0360043516610996565b005b34156102de57600080fd5b610255610a17565b60405190815260200160405180910390f35b341561030357600080fd5b61029e600160a060020a0360043581169060243516604435610a1e565b604051901515815260200160405180910390f35b341561033f57600080fd5b610255610bb2565b60405190815260200160405180910390f35b341561036457600080fd5b61021a600160a060020a0360043516610bb8565b005b341561038557600080fd5b61021a600160a060020a0360043516602435610c00565b005b34156103a957600080fd5b61021a600435610c88565b005b34156103c157600080fd5b61021a600435610c96565b005b34156103d957600080fd5b610255600160a060020a0360043516610cc1565b60405190815260200160405180910390f35b341561040a57600080fd5b61029e610ce0565b604051901515815260200160405180910390f35b341561043157600080fd5b61021a600160a060020a0360043516610cf0565b005b341561045257600080fd5b61029e600160a060020a0360043581169060243516610d71565b604051901515815260200160405180910390f35b341561048b57600080fd5b610493610da1565b604051600160a060020a03909116815260200160405180910390f35b34156104ba57600080fd5b610255610db0565b60405190815260200160405180910390f35b34156104df57600080fd5b61021a600160a060020a0360043516602435610db6565b005b341561050357600080fd5b61021a600435610e3e565b005b341561051b57600080fd5b61029e600160a060020a0360043516602435610e4c565b604051901515815260200160405180910390f35b341561055157600080fd5b61021a600160a060020a0360043516602435610e62565b005b341561057557600080fd5b61021a600160a060020a0360043581169060243516604435610e73565b005b341561059f57600080fd5b61029e60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e8595505050505050565b604051901515815260200160405180910390f35b341561061857600080fd5b61021a610f9c565b005b341561062d57600080fd5b610493611038565b604051600160a060020a03909116815260200160405180910390f35b341561065c57600080fd5b61029e60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061104795505050505050565b604051901515815260200160405180910390f35b34156106d557600080fd5b610255600160a060020a0360043581169060243516611165565b60405190815260200160405180910390f35b341561070c57600080fd5b61021a600160a060020a0360043516611192565b005b341561072d57600080fd5b61021a600160a060020a0360043516602435611340565b005b341561075157600080fd5b610493611351565b604051600160a060020a03909116815260200160405180910390f35b600080600160a060020a0383161515610791576000915061079c565b823b90506000811191505b50919050565b60045460a060020a900460ff16156107b957600080fd5b33600160a060020a0390811660008181526005602090815260408083209487168084529490915290819020805460ff19168515151790557ff184148577730b253ecb4339c543a564af420f3d32ed12a1c62ae83d67d65fe390849051901515815260200160405180910390a35b5b5050565b60085481565b61084733600035600160e060020a031916611360565b151561085257600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a46004805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b50505b565b6009546000906108eb90600160a060020a0316610775565b1561098257600954600160a060020a031663da682aeb33858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561095c57600080fd5b6102c65a03f1151561096d57600080fd5b50505060405180519050151561098257600080fd5b5b61098d838361145c565b90505b92915050565b6109ac33600035600160e060020a031916611360565b15156109b757600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a25b5b50565b6000545b90565b600954600090610a3690600160a060020a0316610775565b15610acd57600954600160a060020a0316634a39314985858560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610aa757600080fd5b6102c65a03f11515610ab857600080fd5b505050604051805190501515610acd57600080fd5b5b610ad984848461148a565b9050808015610aec5750610aec83610775565b5b15610ba95782600160a060020a03166040517f72656365697665546f6b656e28616464726573732c75696e743235362c61646481527f72657373290000000000000000000000000000000000000000000000000000006020820152602501604051809103902060e060020a900485843060405160e060020a63ffffffff8616028152600160a060020a0393841660048201526024810192909252909116604482015260640160006040518083038160008761646e5a03f1505050505b5b5b9392505050565b60075481565b60095433600160a060020a03908116911614610bd357600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b610c1633600035600160e060020a031916611360565b1515610c2157600080fd5b60045460a060020a900460ff1615610c3857600080fd5b610c428282611600565b81600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b5050565b610a133382610db6565b5b50565b610cac33600035600160e060020a031916611360565b1515610cb757600080fd5b60088190555b5b50565b600160a060020a0381166000908152600160205260409020545b919050565b60045460a060020a900460ff1681565b610d0633600035600160e060020a031916611360565b1515610d1157600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a25b5b50565b600160a060020a0380831660009081526005602090815260408083209385168352929052205460ff165b92915050565b600454600160a060020a031681565b60065481565b610dcc33600035600160e060020a031916611360565b1515610dd757600080fd5b60045460a060020a900460ff1615610dee57600080fd5b610df882826116c9565b600082600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5b5050565b610a133382610c00565b5b50565b600061098d338484610a1e565b90505b92915050565b610e6d338383610a1e565b505b5050565b610e7e838383610a1e565b505b505050565b600080610e928585610e4c565b1515610e9d57600080fd5b610ea685610775565b15610f8f575083600160a060020a03811663c0ee0b8a3386866040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f2d5780820151818401525b602001610f14565b50505050905090810190601f168015610f5a5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1515610f7a57600080fd5b6102c65a03f11515610f8b57600080fd5b5050505b600191505b509392505050565b610fb233600035600160e060020a031916611360565b1515610fbd57600080fd5b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a46004805474ff0000000000000000000000000000000000000000191690555b5b50505b565b600354600160a060020a031681565b600061105384846108d3565b151561105e57600080fd5b83600160a060020a0316638f4ffcb1338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110f75780820151818401525b6020016110de565b50505050905090810190601f1680156111245780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561114557600080fd5b6102c65a03f1151561115657600080fd5b505050600190505b9392505050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600954600090819033600160a060020a039081169116146111b257600080fd5b600160a060020a038316151561120057600954600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156111fb57600080fd5b610e6d565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561125a57600080fd5b6102c65a03f1151561126b57600080fd5b5050506040518051600954909250600160a060020a03808516925063a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112da57600080fd5b6102c65a03f115156112eb57600080fd5b50505060405180515050600954600160a060020a039081169084167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c8360405190815260200160405180910390a35b5b505050565b610e6d823383610a1e565b505b5050565b600954600160a060020a031681565b600030600160a060020a031683600160a060020a0316141561138457506001610990565b600454600160a060020a03848116911614156113a257506001610990565b600354600160a060020a031615156113bc57506000610990565b600354600160a060020a031663b700961384308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a039384166004820152919092166024820152600160e060020a03199091166044820152606401602060405180830381600087803b151561143157600080fd5b6102c65a03f1151561144257600080fd5b505050604051805190509050610990565b5b5b5b92915050565b60045460009060a060020a900460ff161561147657600080fd5b61098d8383611839565b90505b5b92915050565b60045460009060a060020a900460ff16156114a457600080fd5b33600160a060020a031684600160a060020a0316141580156114ed5750600160a060020a038085166000908152600560209081526040808320339094168352929052205460ff16155b1561154b57600160a060020a038085166000908152600260209081526040808320339094168352929052205461152390836118a6565b600160a060020a03808616600090815260026020908152604080832033909416835292905220555b600160a060020a03841660009081526001602052604090205461156e90836118a6565b600160a060020a03808616600090815260016020526040808220939093559085168152205461159d90836118bd565b600160a060020a03808516600081815260016020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b5b9392505050565b61161633600035600160e060020a031916611360565b151561162157600080fd5b60045460a060020a900460ff161561163857600080fd5b600160a060020a03821660009081526001602052604090205461165b90826118bd565b600160a060020a0383166000908152600160205260408120919091555461168290826118bd565b600055600160a060020a0382167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405190815260200160405180910390a25b5b5b5050565b6116df33600035600160e060020a031916611360565b15156116ea57600080fd5b60045460a060020a900460ff161561170157600080fd5b33600160a060020a031682600160a060020a03161415801561174a5750600160a060020a038083166000908152600560209081526040808320339094168352929052205460ff16155b156117a857600160a060020a038083166000908152600260209081526040808320339094168352929052205461178090826118a6565b600160a060020a03808416600090815260026020908152604080832033909416835292905220555b600160a060020a0382166000908152600160205260409020546117cb90826118a6565b600160a060020a038316600090815260016020526040812091909155546117f290826118a6565b600055600160a060020a0382167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405190815260200160405180910390a25b5b5b5050565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b8082038281111561099057600080fd5b5b92915050565b8082018281101561099057600080fd5b5b929150505600a165627a7a723058205867c278cc47e7657df50d54c192cd00ae1c286b0baf94f73fd8e0edc9f2e7830029

Swarm Source

bzzr://5867c278cc47e7657df50d54c192cd00ae1c286b0baf94f73fd8e0edc9f2e783
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.