ETH Price: $2,401.40 (-1.69%)

Token

CraftR (CRAFTR)
 

Overview

Max Total Supply

73,043,918.795271236982742364 CRAFTR

Holders

956 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
110 CRAFTR

Value
$0.00
0x4b48ade1b4099fc2a1b53d7749288b23a72879fd
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Global decentralized P2P marketplace for creative digital assets.

ICO Information

Project Sector : Marketplace
ICO Start Date : Jul 15, 2018
ICO End Date : Aug 31, 2018
Total Cap : $2,000,000
Hard Cap : $2,000,000
Soft Cap : $150,000
Token Distribution Date : Sep 1, 2018
ICO Price  : $0.10 | 0.00025 ETH
Bonus : 10% for >= 10 ETH
Country : Switzerland

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CraftR

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-09
*/

pragma solidity ^0.5.8;

/**
 * @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) 
    {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) 
    {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable 
{
    address public owner;

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public
    {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() 
    {
        assert(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public
    {
        assert(newOwner != address(0));
        owner = newOwner;
    }
}

/**
 * @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 view 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 view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title POS
 * @dev the interface of Proof-Of-Stake
 */
contract POS 
{
    uint256 public stakeStartTime;
    uint256 public stakeMinAge;
    uint256 public stakeMaxAge;
    function pos() public returns (bool);
    function coinAge() public view returns (uint);
    function annualPos() public view returns (uint256);
    event Mint(address indexed _address, uint _reward);
}

contract CraftR is ERC20,POS,Ownable 
{
    using SafeMath for uint256;

    string public name = "CraftR";
    string public symbol = "CRAFTR";
    uint public decimals = 18;

    uint public chainStartTime; 
    uint public chainStartBlockNumber;
    uint public stakeStartTime;
    uint public stakeMinAge = 1 days;
    uint public stakeMaxAge = 90 days;
    uint public defaultPOS = 10**17; // default 10% annual interest

    uint public totalSupply;
    uint public maxTotalSupply;
    uint public totalInitialSupply;

    struct transferInStruct
    {
        uint128 amount;
        uint64 time;
    }

    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    mapping(address => transferInStruct[]) txIns;

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Fix for the ERC20 short address attack.
     */
    modifier onlyPayloadSize(uint size) 
    {
        assert(msg.data.length >= size + 4);
        _;
    }

    modifier canRunPos() 
    {
        assert(totalSupply < maxTotalSupply);
        _;
    }

    constructor () public 
    {
        maxTotalSupply = 100*10**24; // 100 Mil
        totalInitialSupply = 60*10**24; // 60 Mil

        chainStartTime = now;
        chainStartBlockNumber = block.number;
        stakeStartTime = now;

        balances[msg.sender] = totalInitialSupply;
        totalSupply = totalInitialSupply;
    }

    function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) public returns (bool) 
    {
        if(msg.sender == _to) return pos();
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        if(txIns[msg.sender].length > 0) delete txIns[msg.sender];
        uint64 _now = uint64(now);
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),_now));
        txIns[_to].push(transferInStruct(uint128(_value),_now));
        return true;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) 
    {
        return balances[_owner];
    }

    function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) 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);
        emit Transfer(_from, _to, _value);
        if(txIns[_from].length > 0) delete txIns[_from];
        uint64 _now = uint64(now);
        txIns[_from].push(transferInStruct(uint128(balances[_from]),_now));
        txIns[_to].push(transferInStruct(uint128(_value),_now));
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) 
    {
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256 remaining) 
    {
        return allowed[_owner][_spender];
    }

    function pos() canRunPos public returns (bool) 
    {
        if(balances[msg.sender] <= 0) return false;
        if(txIns[msg.sender].length <= 0) return false;

        uint reward = getPosReward(msg.sender);
        if(reward <= 0) return false;

        totalSupply = totalSupply.add(reward);
        balances[msg.sender] = balances[msg.sender].add(reward);
        delete txIns[msg.sender];
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),uint64(now)));

        emit Mint(msg.sender, reward);
        return true;
    }

    function getCraftrBlockNumber() public view returns (uint blockNumber) 
    {
        blockNumber = block.number.sub(chainStartBlockNumber);
    }

    function coinAge() public view returns (uint myCoinAge) 
    {
        myCoinAge = getCoinAge(msg.sender,now);
    }

    function annualPos() public view returns(uint interest) 
    {
        uint _now = now;
        interest = defaultPOS;
        if((_now.sub(stakeStartTime)).div(365 days) == 0)
        {
            interest = (435 * defaultPOS).div(100);
        }
    }

    function getPosReward(address _address) internal view returns (uint) 
    {
        require( (now >= stakeStartTime) && (stakeStartTime > 0) );

        uint _now = now;
        uint _coinAge = getCoinAge(_address, _now);
        if(_coinAge <= 0) return 0;

        uint interest = defaultPOS;
        // Due to the high interest rate for the first two years, compounding should be taken into account.
        // Effective annual interest rate = (1 + (nominal rate / number of compounding periods)) ^ (number of compounding periods) - 1
        if((_now.sub(stakeStartTime)).div(365 days) == 0) 
        {
            // 2nd year effective annual interest rate is 50% when we select the stakeMaxAge (90 days) as the compounding period.
            // 1st year has already been calculated through the old contract
            interest = (435 * defaultPOS).div(100);
        }
        return (_coinAge * interest).div(365 * (10**decimals));
    }

    function getCoinAge(address _address, uint _now) internal view returns (uint _coinAge) 
    {
        if(txIns[_address].length <= 0) return 0;

        for (uint i = 0; i < txIns[_address].length; i++){
            if( _now < uint(txIns[_address][i].time).add(stakeMinAge) ) continue;

            uint nCoinSeconds = _now.sub(uint(txIns[_address][i].time));
            if( nCoinSeconds > stakeMaxAge ) nCoinSeconds = stakeMaxAge;

            _coinAge = _coinAge.add(uint(txIns[_address][i].amount) * nCoinSeconds.div(1 days));
        }
    }

    function ownerMultiSend(address[] memory _recipients, uint[] memory _values) onlyOwner public returns (bool) 
    {
        require( _recipients.length > 0 && _recipients.length == _values.length);

        uint total = 0;
        for(uint i = 0; i < _values.length; i++)
        {
            total = total.add(_values[i]);
        }
        require(total <= balances[msg.sender]);

        uint64 _now = uint64(now);
        for(uint j = 0; j < _recipients.length; j++)
        {
            balances[_recipients[j]] = balances[_recipients[j]].add(_values[j]);
            txIns[_recipients[j]].push(transferInStruct(uint128(_values[j]),_now));
            emit Transfer(msg.sender, _recipients[j], _values[j]);
        }

        balances[msg.sender] = balances[msg.sender].sub(total);
        if(txIns[msg.sender].length > 0) delete txIns[msg.sender];
        if(balances[msg.sender] > 0) txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),_now));

        return true;
    }

    function ownerBurnTokens(uint _value) onlyOwner public 
    {
        require(_value > 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        delete txIns[msg.sender];
        txIns[msg.sender].push(transferInStruct(uint128(balances[msg.sender]),uint64(now)));

        totalSupply = totalSupply.sub(_value);
        totalInitialSupply = totalInitialSupply.sub(_value);
        maxTotalSupply = maxTotalSupply.sub(_value*10);

        emit Burn(msg.sender, _value);
    }   
}

Contract Security Audit

Contract ABI

[{"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":"defaultPOS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCraftrBlockNumber","outputs":[{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coinAge","outputs":[{"name":"myCoinAge","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"annualPos","outputs":[{"name":"interest","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTotalSupply","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":"chainStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakeStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalInitialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pos","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakeMinAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chainStartBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"ownerBurnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_recipients","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"ownerMultiSend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stakeMaxAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_reward","type":"uint256"}],"name":"Mint","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"}]

60c0604052600660808190527f437261667452000000000000000000000000000000000000000000000000000060a090815262000040916005919062000110565b506040805180820190915260068082527f4352414654520000000000000000000000000000000000000000000000000000602090920191825262000085918162000110565b50601260075562015180600b556276a700600c5567016345785d8a0000600d55348015620000b257600080fd5b50600480546001600160a01b031916339081179091556a52b7d2dcc80cd2e4000000600f556a31a17e847807b1bc000000601081905542600881905543600955600a55600091825260116020526040909120819055600e55620001b5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015357805160ff191683800117855562000183565b8280016001018555821562000183579182015b828111156200018357825182559160200191906001019062000166565b506200019192915062000195565b5090565b620001b291905b808211156200019157600081556001016200019c565b90565b61153080620001c56000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637419f190116100de578063cbd8877e11610097578063dd62ed3e11610071578063dd62ed3e14610382578063e060edd2146103b0578063e1c3bac6146104d7578063f2fde38b146104df57610173565b8063cbd8877e14610353578063cd474b041461035b578063d15138181461036357610173565b80637419f190146102e35780638da5cb5b146102eb57806395d89b411461030f5780639fd4da4014610317578063a9059cbb1461031f578063c56551b61461034b57610173565b806321ed47b31161013057806321ed47b31461026757806323b872dd1461026f5780632ab4d052146102a5578063313ce567146102ad5780635b054f9b146102b557806370a08231146102bd57610173565b806306fdde0314610178578063095ea7b3146101f55780630d081b6e1461023557806318160ddd1461024f57806318ff837b146102575780631e1b13c01461025f575b600080fd5b610180610505565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61023d610634565b60408051918252519081900360200190f35b61023d61063a565b61023d610640565b61023d61065c565b61023d610668565b6102216004803603606081101561028557600080fd5b506001600160a01b038135811691602081013590911690604001356106ba565b61023d6108f7565b61023d6108fd565b61023d610903565b61023d600480360360208110156102d357600080fd5b50356001600160a01b0316610909565b61023d610928565b6102f361092e565b604080516001600160a01b039092168252519081900360200190f35b61018061093d565b61023d610998565b6102216004803603604081101561033557600080fd5b506001600160a01b03813516906020013561099e565b610221610b84565b61023d610d0a565b61023d610d10565b6103806004803603602081101561037957600080fd5b5035610d16565b005b61023d6004803603604081101561039857600080fd5b506001600160a01b0381358116916020013516610e81565b610221600480360360408110156103c657600080fd5b8101906020810181356401000000008111156103e157600080fd5b8201836020820111156103f357600080fd5b8035906020019184602083028401116401000000008311171561041557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046557600080fd5b82018360208201111561047757600080fd5b8035906020019184602083028401116401000000008311171561049957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610eac945050505050565b61023d611221565b610380600480360360208110156104f557600080fd5b50356001600160a01b0316611227565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505081565b60008115806105c357503360009081526012602090815260408083206001600160a01b0387168452909152902054155b6105cc57600080fd5b3360008181526012602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600e5481565b60006106576009544361126d90919063ffffffff16565b905090565b6000610657334261127f565b600d54600a544290610697906301e133809061068b90849063ffffffff61126d16565b9063ffffffff6113ec16565b6106b657600d546106b3906101b302606463ffffffff6113ec16565b91505b5090565b6000606060643610156106c957fe5b6001600160a01b0384166106dc57600080fd5b6001600160a01b0385166000818152601260209081526040808320338452825280832054938352601190915290205461071b908563ffffffff61126d16565b6001600160a01b038088166000908152601160205260408082209390935590871681522054610750908563ffffffff61140116565b6001600160a01b038616600090815260116020526040902055610779818563ffffffff61126d16565b6001600160a01b03808816600081815260126020908152604080832033845282529182902094909455805188815290519289169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36001600160a01b03861660009081526013602052604090205415610819576001600160a01b0386166000908152601360205260408120610819916114bf565b5050506001600160a01b0392831660009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018082018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091559b909c1689529686528488208551808701909652988216855284860196875288548085018a559888529490962092519290960180549451909316909602931691909516179091161790915590565b600f5481565b60075481565b60085481565b6001600160a01b0381166000908152601160205260409020545b919050565b600a5481565b6004546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60105481565b6000604060443610156109ad57fe5b336001600160a01b03851614156109cd576109c6610b84565b9150610b7d565b336000908152601160205260409020546109ed908463ffffffff61126d16565b33600090815260116020526040808220929092556001600160a01b03861681522054610a1f908463ffffffff61140116565b6001600160a01b0385166000818152601160209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a33360009081526013602052604090205415610aa157336000908152601360205260408120610aa1916114bf565b3360009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018181018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091556001600160a01b038f168b52988852868a2087518089019098528d8516885287890192835280548088018255908b5297909920955195909601805496519091169096029316939095169290921790931692909217905591505b5092915050565b6000600f54600e5410610b9357fe5b33600090815260116020526040902054610baf57506000610d07565b33600090815260136020526040902054610bcb57506000610d07565b6000610bd633611417565b905060008111610bea576000915050610d07565b600e54610bfd908263ffffffff61140116565b600e5533600090815260116020526040902054610c20908263ffffffff61140116565b3360009081526011602090815260408083209390935560139052908120610c46916114bf565b3360008181526013602090815260408083208151808301835260118452828520546001600160801b03908116825267ffffffffffffffff42811683870190815284546001810186559488529686902092519290930180549651909316600160801b02600160801b600160c01b0319929091166001600160801b0319909616959095171693909317909255815184815291517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859281900390910190a260019150505b90565b600b5481565b60095481565b6004546001600160a01b03163314610d2a57fe5b60008111610d3757600080fd5b33600090815260116020526040902054610d57908263ffffffff61126d16565b3360009081526011602090815260408083209390935560139052908120610d7d916114bf565b3360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff42811684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b03199093169290921716179055600e54610e16908263ffffffff61126d16565b600e55601054610e2c908263ffffffff61126d16565b601055600f54610e4590600a830263ffffffff61126d16565b600f5560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6004546000906001600160a01b03163314610ec357fe5b60008351118015610ed5575081518351145b610ede57600080fd5b6000805b8351811015610f1b57610f11848281518110610efa57fe5b60200260200101518361140190919063ffffffff16565b9150600101610ee2565b5033600090815260116020526040902054811115610f3857600080fd5b4260005b855181101561112057610fa3858281518110610f5457fe5b602002602001015160116000898581518110610f6c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461140190919063ffffffff16565b60116000888481518110610fb357fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555060136000878381518110610fef57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061102e57fe5b6020908102919091018101516001600160801b03908116835267ffffffffffffffff87811693830193909352845460018101865560009586529482902084519501805494909201516001600160801b0319909416941693909317600160801b600160c01b031916600160801b929091169190910217905585518690829081106110b357fe5b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106110fb57fe5b60200260200101516040518082815260200191505060405180910390a3600101610f3c565b5033600090815260116020526040902054611141908363ffffffff61126d16565b336000908152601160209081526040808320939093556013905220541561117a5733600090815260136020526040812061117a916114bf565b3360009081526011602052604090205415611216573360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff80871684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b031990931692909217161790555b506001949350505050565b600c5481565b6004546001600160a01b0316331461123b57fe5b6001600160a01b03811661124b57fe5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561127957fe5b50900390565b6001600160a01b0382166000908152601360205260408120546112a45750600061062e565b60005b6001600160a01b038416600090815260136020526040902054811015610b7d57600b546001600160a01b03851660009081526013602052604090208054611317929190849081106112f457fe5b600091825260209091200154600160801b900467ffffffffffffffff1690611401565b831015611323576113e4565b6001600160a01b0384166000908152601360205260408120805461137091908490811061134c57fe5b6000918252602090912001548590600160801b900467ffffffffffffffff1661126d565b9050600c548111156113815750600c545b6113e0611397826201518063ffffffff6113ec16565b6001600160a01b03871660009081526013602052604090208054859081106113bb57fe5b60009182526020909120015485916001600160801b039091160263ffffffff61140116565b9250505b6001016112a7565b6000808284816113f857fe5b04949350505050565b60008282018381101561141057fe5b9392505050565b6000600a54421015801561142d57506000600a54115b61143657600080fd5b426000611443848361127f565b90506000811161145857600092505050610923565b600d54600a54611479906301e133809061068b90869063ffffffff61126d16565b61149857600d54611495906101b302606463ffffffff6113ec16565b90505b6114b6600754600a0a61016d028284026113ec90919063ffffffff16565b95945050505050565b50805460008255906000526020600020908101906114dd91906114e0565b50565b610d0791905b808211156106b65780546001600160c01b03191681556001016114e656fea165627a7a723058204e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d50029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c80637419f190116100de578063cbd8877e11610097578063dd62ed3e11610071578063dd62ed3e14610382578063e060edd2146103b0578063e1c3bac6146104d7578063f2fde38b146104df57610173565b8063cbd8877e14610353578063cd474b041461035b578063d15138181461036357610173565b80637419f190146102e35780638da5cb5b146102eb57806395d89b411461030f5780639fd4da4014610317578063a9059cbb1461031f578063c56551b61461034b57610173565b806321ed47b31161013057806321ed47b31461026757806323b872dd1461026f5780632ab4d052146102a5578063313ce567146102ad5780635b054f9b146102b557806370a08231146102bd57610173565b806306fdde0314610178578063095ea7b3146101f55780630d081b6e1461023557806318160ddd1461024f57806318ff837b146102575780631e1b13c01461025f575b600080fd5b610180610505565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610593565b604080519115158252519081900360200190f35b61023d610634565b60408051918252519081900360200190f35b61023d61063a565b61023d610640565b61023d61065c565b61023d610668565b6102216004803603606081101561028557600080fd5b506001600160a01b038135811691602081013590911690604001356106ba565b61023d6108f7565b61023d6108fd565b61023d610903565b61023d600480360360208110156102d357600080fd5b50356001600160a01b0316610909565b61023d610928565b6102f361092e565b604080516001600160a01b039092168252519081900360200190f35b61018061093d565b61023d610998565b6102216004803603604081101561033557600080fd5b506001600160a01b03813516906020013561099e565b610221610b84565b61023d610d0a565b61023d610d10565b6103806004803603602081101561037957600080fd5b5035610d16565b005b61023d6004803603604081101561039857600080fd5b506001600160a01b0381358116916020013516610e81565b610221600480360360408110156103c657600080fd5b8101906020810181356401000000008111156103e157600080fd5b8201836020820111156103f357600080fd5b8035906020019184602083028401116401000000008311171561041557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561046557600080fd5b82018360208201111561047757600080fd5b8035906020019184602083028401116401000000008311171561049957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610eac945050505050565b61023d611221565b610380600480360360208110156104f557600080fd5b50356001600160a01b0316611227565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b820191906000526020600020905b81548152906001019060200180831161056e57829003601f168201915b505050505081565b60008115806105c357503360009081526012602090815260408083206001600160a01b0387168452909152902054155b6105cc57600080fd5b3360008181526012602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b600d5481565b600e5481565b60006106576009544361126d90919063ffffffff16565b905090565b6000610657334261127f565b600d54600a544290610697906301e133809061068b90849063ffffffff61126d16565b9063ffffffff6113ec16565b6106b657600d546106b3906101b302606463ffffffff6113ec16565b91505b5090565b6000606060643610156106c957fe5b6001600160a01b0384166106dc57600080fd5b6001600160a01b0385166000818152601260209081526040808320338452825280832054938352601190915290205461071b908563ffffffff61126d16565b6001600160a01b038088166000908152601160205260408082209390935590871681522054610750908563ffffffff61140116565b6001600160a01b038616600090815260116020526040902055610779818563ffffffff61126d16565b6001600160a01b03808816600081815260126020908152604080832033845282529182902094909455805188815290519289169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36001600160a01b03861660009081526013602052604090205415610819576001600160a01b0386166000908152601360205260408120610819916114bf565b5050506001600160a01b0392831660009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018082018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091559b909c1689529686528488208551808701909652988216855284860196875288548085018a559888529490962092519290960180549451909316909602931691909516179091161790915590565b600f5481565b60075481565b60085481565b6001600160a01b0381166000908152601160205260409020545b919050565b600a5481565b6004546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561058b5780601f106105605761010080835404028352916020019161058b565b60105481565b6000604060443610156109ad57fe5b336001600160a01b03851614156109cd576109c6610b84565b9150610b7d565b336000908152601160205260409020546109ed908463ffffffff61126d16565b33600090815260116020526040808220929092556001600160a01b03861681522054610a1f908463ffffffff61140116565b6001600160a01b0385166000818152601160209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a33360009081526013602052604090205415610aa157336000908152601360205260408120610aa1916114bf565b3360009081526013602081815260408084208151808301835260118452828620546001600160801b03908116825267ffffffffffffffff428116838701818152855460018181018855968b52888b2095519501805491518416600160801b908102600160801b600160c01b03199787166001600160801b0319948516178816179091556001600160a01b038f168b52988852868a2087518089019098528d8516885287890192835280548088018255908b5297909920955195909601805496519091169096029316939095169290921790931692909217905591505b5092915050565b6000600f54600e5410610b9357fe5b33600090815260116020526040902054610baf57506000610d07565b33600090815260136020526040902054610bcb57506000610d07565b6000610bd633611417565b905060008111610bea576000915050610d07565b600e54610bfd908263ffffffff61140116565b600e5533600090815260116020526040902054610c20908263ffffffff61140116565b3360009081526011602090815260408083209390935560139052908120610c46916114bf565b3360008181526013602090815260408083208151808301835260118452828520546001600160801b03908116825267ffffffffffffffff42811683870190815284546001810186559488529686902092519290930180549651909316600160801b02600160801b600160c01b0319929091166001600160801b0319909616959095171693909317909255815184815291517f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859281900390910190a260019150505b90565b600b5481565b60095481565b6004546001600160a01b03163314610d2a57fe5b60008111610d3757600080fd5b33600090815260116020526040902054610d57908263ffffffff61126d16565b3360009081526011602090815260408083209390935560139052908120610d7d916114bf565b3360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff42811684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b03199093169290921716179055600e54610e16908263ffffffff61126d16565b600e55601054610e2c908263ffffffff61126d16565b601055600f54610e4590600a830263ffffffff61126d16565b600f5560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b6004546000906001600160a01b03163314610ec357fe5b60008351118015610ed5575081518351145b610ede57600080fd5b6000805b8351811015610f1b57610f11848281518110610efa57fe5b60200260200101518361140190919063ffffffff16565b9150600101610ee2565b5033600090815260116020526040902054811115610f3857600080fd5b4260005b855181101561112057610fa3858281518110610f5457fe5b602002602001015160116000898581518110610f6c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205461140190919063ffffffff16565b60116000888481518110610fb357fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555060136000878381518110610fef57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061102e57fe5b6020908102919091018101516001600160801b03908116835267ffffffffffffffff87811693830193909352845460018101865560009586529482902084519501805494909201516001600160801b0319909416941693909317600160801b600160c01b031916600160801b929091169190910217905585518690829081106110b357fe5b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106110fb57fe5b60200260200101516040518082815260200191505060405180910390a3600101610f3c565b5033600090815260116020526040902054611141908363ffffffff61126d16565b336000908152601160209081526040808320939093556013905220541561117a5733600090815260136020526040812061117a916114bf565b3360009081526011602052604090205415611216573360009081526013602090815260408083208151808301835260118452918420546001600160801b03908116835267ffffffffffffffff80871684860190815283546001810185559387529490952092519290910180549351909416600160801b02600160801b600160c01b0319929091166001600160801b031990931692909217161790555b506001949350505050565b600c5481565b6004546001600160a01b0316331461123b57fe5b6001600160a01b03811661124b57fe5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60008282111561127957fe5b50900390565b6001600160a01b0382166000908152601360205260408120546112a45750600061062e565b60005b6001600160a01b038416600090815260136020526040902054811015610b7d57600b546001600160a01b03851660009081526013602052604090208054611317929190849081106112f457fe5b600091825260209091200154600160801b900467ffffffffffffffff1690611401565b831015611323576113e4565b6001600160a01b0384166000908152601360205260408120805461137091908490811061134c57fe5b6000918252602090912001548590600160801b900467ffffffffffffffff1661126d565b9050600c548111156113815750600c545b6113e0611397826201518063ffffffff6113ec16565b6001600160a01b03871660009081526013602052604090208054859081106113bb57fe5b60009182526020909120015485916001600160801b039091160263ffffffff61140116565b9250505b6001016112a7565b6000808284816113f857fe5b04949350505050565b60008282018381101561141057fe5b9392505050565b6000600a54421015801561142d57506000600a54115b61143657600080fd5b426000611443848361127f565b90506000811161145857600092505050610923565b600d54600a54611479906301e133809061068b90869063ffffffff61126d16565b61149857600d54611495906101b302606463ffffffff6113ec16565b90505b6114b6600754600a0a61016d028284026113ec90919063ffffffff16565b95945050505050565b50805460008255906000526020600020908101906114dd91906114e0565b50565b610d0791905b808211156106b65780546001600160c01b03191681556001016114e656fea165627a7a723058204e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d50029

Deployed Bytecode Sourcemap

3155:7604:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3155:7604:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3236:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6094:287;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6094:287:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3530:31;;;:::i;:::-;;;;;;;;;;;;;;;;3601:23;;;:::i;7125:149::-;;;:::i;7282:119::-;;;:::i;7409:262::-;;;:::i;5388:698::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5388:698:0;;;;;;;;;;;;;;;;;:::i;3631:26::-;;;:::i;3310:25::-;;;:::i;3344:26::-;;;:::i;5259:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5259:121:0;-1:-1:-1;;;;;5259:121:0;;:::i;3418:26::-;;;:::i;1144:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1144:20:0;;;;;;;;;;;;;;3272:31;;;:::i;3664:30::-;;;:::i;4653:598::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4653:598:0;;;;;;;;:::i;6547:570::-;;;:::i;3451:32::-;;;:::i;3378:33::-;;;:::i;10246:507::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10246:507:0;;:::i;:::-;;6389:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6389:150:0;;;;;;;;;;:::i;9216:1022::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9216:1022:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9216:1022:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9216:1022:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9216:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9216:1022:0;;;;;;;;-1:-1:-1;9216:1022:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;9216:1022:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9216:1022:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9216:1022:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9216:1022:0;;-1:-1:-1;9216:1022:0;;-1:-1:-1;;;;;9216:1022:0:i;3490:33::-;;;:::i;1719:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1719:143:0;-1:-1:-1;;;;;1719:143:0;;:::i;3236:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3236:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6094:287::-;6161:4;6193:11;;;6192:53;;-1:-1:-1;6218:10:0;6210:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6210:29:0;;;;;;;;;;:34;6192:53;6184:62;;;;;;6267:10;6259:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6259:29:0;;;;;;;;;;;;:38;;;6313;;;;;;;6259:29;;6267:10;6313:38;;;;;;;;;;;-1:-1:-1;6369:4:0;6094:287;;;;;:::o;3530:31::-;;;;:::o;3601:23::-;;;;:::o;7125:149::-;7178:16;7227:39;7244:21;;7227:12;:16;;:39;;;;:::i;:::-;7213:53;;7125:149;:::o;7282:119::-;7322:14;7367:26;7378:10;7389:3;7367:10;:26::i;7409:262::-;7519:10;;7553:14;;7494:3;;7543:40;;7574:8;;7544:24;;7494:3;;7544:24;:8;:24;:::i;:::-;7543:30;:40;:30;:40;:::i;:::-;7540:124;;7632:10;;7625:27;;7626:3;:16;7648:3;7625:27;:22;:27;:::i;:::-;7614:38;;7540:124;7409:262;;:::o;5388:698::-;5494:4;5470:6;4162:8;4143;:27;;4136:35;;;;-1:-1:-1;;;;;5525:17:0;;5517:26;;;;;;-1:-1:-1;;;;;5577:14:0;;5556:18;5577:14;;;:7;:14;;;;;;;;5592:10;5577:26;;;;;;;;5634:15;;;:8;:15;;;;;;:27;;5654:6;5634:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;5616:15:0;;;;;;;:8;:15;;;;;;:45;;;;5688:13;;;;;;;:25;;5706:6;5688:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;5672:13:0;;;;;;:8;:13;;;;;:41;5753:22;:10;5768:6;5753:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;5724:14:0;;;;;;;:7;:14;;;;;;;;5739:10;5724:26;;;;;;;;:51;;;;5791:28;;;;;;;;;;;5724:14;;5791:28;;;;;;;;;;;-1:-1:-1;;;;;5833:12:0;;5855:1;5833:12;;;:5;:12;;;;;:19;:23;5830:47;;-1:-1:-1;;;;;5865:12:0;;;;;;:5;:12;;;;;5858:19;;;:::i;:::-;-1:-1:-1;;;;;;;;5924:12:0;;;5888:11;5924:12;;;:5;:12;;;;;;;;5942:47;;;;;;;5967:8;:15;;;;;;-1:-1:-1;;;;;5942:47:0;;;;;;5909:3;5942:47;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;5924:66:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5924:66:0;;;-1:-1:-1;;;;;;;;5924:66:0;;;-1:-1:-1;;;;;;5924:66:0;;;;;;;;;;6001:10;;;;;;;;;;;;6017:38;;;;;;;;;;;;;;;;;;;27:10:-1;;23:18;;;45:23;;6001:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39:1:-1;5388:698:0:o;3631:26::-;;;;:::o;3310:25::-;;;;:::o;3344:26::-;;;;:::o;5259:121::-;-1:-1:-1;;;;;5356:16:0;;5315:15;5356:16;;;:8;:16;;;;;;5259:121;;;;:::o;3418:26::-;;;;:::o;1144:20::-;;;-1:-1:-1;;;;;1144:20:0;;:::o;3272:31::-;;;;;;;;;;;;;;;-1:-1:-1;;3272:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3664:30;;;;:::o;4653:598::-;4740:4;4716:6;4162:8;4143;:27;;4136:35;;;;4766:10;-1:-1:-1;;;;;4766:17:0;;;4763:34;;;4792:5;:3;:5::i;:::-;4785:12;;;;4763:34;4840:10;4831:20;;;;:8;:20;;;;;;:32;;4856:6;4831:32;:24;:32;:::i;:::-;4817:10;4808:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;4890:13:0;;;;;;:25;;4908:6;4890:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4874:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;4931:33;;;;;;;4874:13;;4940:10;;4931:33;;;;;;;;;;4984:10;5005:1;4978:17;;;:5;:17;;;;;:24;:28;4975:57;;5021:10;5015:17;;;;:5;:17;;;;;5008:24;;;:::i;:::-;5085:10;5043:11;5079:17;;;:5;:17;;;;;;;;5102:52;;;;;;;5127:8;:20;;;;;;-1:-1:-1;;;;;5102:52:0;;;;;;5064:3;5102:52;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;5079:76:0;;;;;;;;;;;;;;;;-1:-1:-1;;;5079:76:0;;;-1:-1:-1;;;;;;;;5079:76:0;;;-1:-1:-1;;;;;;5079:76:0;;;;;;;;;;-1:-1:-1;;;;;5166:10:0;;;;;;;;;;5182:38;;;;;;;;;;;;;;;;;;;27:10:-1;;23:18;;;45:23;;5166:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39:1:-1;-1:-1;4182:1:0;4653:598;;;;;:::o;6547:570::-;6588:4;4258:14;;4244:11;;:28;4237:36;;;;6623:10;6638:1;6614:20;;;:8;:20;;;;;;6611:42;;-1:-1:-1;6648:5:0;6641:12;;6611:42;6673:10;6695:1;6667:17;;;:5;:17;;;;;:24;6664:46;;-1:-1:-1;6705:5:0;6698:12;;6664:46;6723:11;6737:24;6750:10;6737:12;:24::i;:::-;6723:38;;6785:1;6775:6;:11;6772:28;;6795:5;6788:12;;;;;6772:28;6827:11;;:23;;6843:6;6827:23;:15;:23;:::i;:::-;6813:11;:37;6893:10;6884:20;;;;:8;:20;;;;;;:32;;6909:6;6884:32;:24;:32;:::i;:::-;6870:10;6861:20;;;;:8;:20;;;;;;;;:55;;;;6934:5;:17;;;;;6927:24;;;:::i;:::-;6968:10;6962:17;;;;:5;:17;;;;;;;;6985:59;;;;;;;7010:8;:20;;;;;;-1:-1:-1;;;;;6985:59:0;;;;;;7039:3;6985:59;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;6962:83:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6962:83:0;-1:-1:-1;;;;;;;;6962:83:0;;;;-1:-1:-1;;;;;;6962:83:0;;;;;;;;;;;;;;;7063:24;;;;;;;;;;;;;;;;;7105:4;7098:11;;;4284:1;6547:570;:::o;3451:32::-;;;;:::o;3378:33::-;;;;:::o;10246:507::-;1516:5;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;10335:1;10326:6;:10;10318:19;;;;;;10382:10;10373:20;;;;:8;:20;;;;;;:32;;10398:6;10373:32;:24;:32;:::i;:::-;10359:10;10350:20;;;;:8;:20;;;;;;;;:55;;;;10423:5;:17;;;;;10416:24;;;:::i;:::-;10457:10;10451:17;;;;:5;:17;;;;;;;;10474:59;;;;;;;10499:8;:20;;;;;;-1:-1:-1;;;;;10474:59:0;;;;;;10528:3;10474:59;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;10451:83:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10451:83:0;-1:-1:-1;;;;;;;;10451:83:0;;;;-1:-1:-1;;;;;;10451:83:0;;;;;;;;;;;10561:11;;:23;;10577:6;10561:23;:15;:23;:::i;:::-;10547:11;:37;10616:18;;:30;;10639:6;10616:30;:22;:30;:::i;:::-;10595:18;:51;10674:14;;:29;;10700:2;10693:9;;10674:29;:18;:29;:::i;:::-;10657:14;:46;10721:24;;;;;;;;10726:10;;10721:24;;;;;;;;;;10246:507;:::o;6389:150::-;-1:-1:-1;;;;;6506:15:0;;;6463:17;6506:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6389:150::o;9216:1022::-;1516:5;;9319:4;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;9372:1;9351:11;:18;:22;:62;;;;;9399:7;:14;9377:11;:18;:36;9351:62;9342:72;;;;;;9427:10;;9452:106;9472:7;:14;9468:1;:18;9452:106;;;9525:21;9535:7;9543:1;9535:10;;;;;;;;;;;;;;9525:5;:9;;:21;;;;:::i;:::-;9517:29;-1:-1:-1;9488:3:0;;9452:106;;;-1:-1:-1;9594:10:0;9585:20;;;;:8;:20;;;;;;9576:29;;;9568:38;;;;;;9640:3;9619:11;9655:301;9675:11;:18;9671:1;:22;9655:301;;;9751:40;9780:7;9788:1;9780:10;;;;;;;;;;;;;;9751:8;:24;9760:11;9772:1;9760:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9751:24:0;-1:-1:-1;;;;;9751:24:0;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;9724:8;:24;9733:11;9745:1;9733:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9724:24:0;-1:-1:-1;;;;;9724:24:0;;;;;;;;;;;;:67;;;;9806:5;:21;9812:11;9824:1;9812:14;;;;;;;;;;;;;;-1:-1:-1;;;;;9806:21:0;-1:-1:-1;;;;;9806:21:0;;;;;;;;;;;;9833:42;;;;;;;;9858:7;9866:1;9858:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9833:42:0;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;-1:-1;9806:70:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9806:70:0;;;;;;;;;-1:-1:-1;;;;;;;;9806:70:0;-1:-1:-1;;;9806:70:0;;;;;;;;;;;9917:14;;;;9929:1;;9917:14;;;;;;;;;;;;-1:-1:-1;;;;;9896:48:0;9905:10;-1:-1:-1;;;;;9896:48:0;;9933:7;9941:1;9933:10;;;;;;;;;;;;;;9896:48;;;;;;;;;;;;;;;;;;9695:3;;9655:301;;;-1:-1:-1;10000:10:0;9991:20;;;;:8;:20;;;;;;:31;;10016:5;9991:31;:24;:31;:::i;:::-;9977:10;9968:20;;;;:8;:20;;;;;;;;:54;;;;10036:5;:17;;;:24;:28;10033:57;;10079:10;10073:17;;;;:5;:17;;;;;10066:24;;;:::i;:::-;10113:10;10127:1;10104:20;;;:8;:20;;;;;;:24;10101:105;;10136:10;10130:17;;;;:5;:17;;;;;;;;10153:52;;;;;;;10178:8;:20;;;;;;-1:-1:-1;;;;;10153:52:0;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;10130:76:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10130:76:0;-1:-1:-1;;;;;;;;10130:76:0;;;;-1:-1:-1;;;;;;10130:76:0;;;;;;;;;;;10101:105;-1:-1:-1;10226:4:0;;9216:1022;-1:-1:-1;;;;9216:1022:0:o;3490:33::-;;;;:::o;1719:143::-;1516:5;;-1:-1:-1;;;;;1516:5:0;1502:10;:19;1495:27;;;;-1:-1:-1;;;;;1804:22:0;;1797:30;;;;1838:5;:16;;-1:-1:-1;;;;;;1838:16:0;-1:-1:-1;;;;;1838:16:0;;;;;;;;;;1719:143::o;624:129::-;682:7;720:1;715;:6;;708:14;;;;-1:-1:-1;740:5:0;;;624:129::o;8650:558::-;-1:-1:-1;;;;;8757:15:0;;8722:13;8757:15;;;:5;:15;;;;;:22;8754:40;;-1:-1:-1;8793:1:0;8786:8;;8754:40;8812:6;8807:394;-1:-1:-1;;;;;8828:15:0;;;;;;:5;:15;;;;;:22;8824:26;;8807:394;;;8916:11;;-1:-1:-1;;;;;8887:15:0;;;;;;:5;:15;;;;;:18;;8882:46;;8916:11;8887:15;8903:1;;8887:18;;;;;;;;;;;;;;;:23;-1:-1:-1;;;8887:23:0;;;;;8882:33;:46::i;:::-;8875:4;:53;8871:68;;;8931:8;;8871:68;-1:-1:-1;;;;;8990:15:0;;8956:17;8990:15;;;:5;:15;;;;;:18;;8976:39;;8990:15;9006:1;;8990:18;;;;;;;;;;;;;;;:23;8976:4;;-1:-1:-1;;;8990:23:0;;;;8976:8;:39::i;:::-;8956:59;;9049:11;;9034:12;:26;9030:59;;;-1:-1:-1;9078:11:0;;9030:59;9117:72;9164:24;:12;9181:6;9164:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;9135:15:0;;;;;;:5;:15;;;;;:18;;9151:1;;9135:18;;;;;;;;;;;;;;;:25;9117:8;;-1:-1:-1;;;;;9135:25:0;;;9130:58;9117:72;:12;:72;:::i;:::-;9106:83;;8807:394;;8852:3;;8807:394;;322:294;380:7;485:9;501:1;497;:5;;;;;;;322:294;-1:-1:-1;;;;322:294:0:o;761:153::-;819:7;857:5;;;880:6;;;;873:14;;;;905:1;761:153;-1:-1:-1;;;761:153:0:o;7679:963::-;7742:4;7782:14;;7775:3;:21;;7774:47;;;;;7819:1;7802:14;;:18;7774:47;7765:58;;;;;;7848:3;7836:9;7878:26;7889:8;7848:3;7878:10;:26::i;:::-;7862:42;;7930:1;7918:8;:13;7915:26;;7940:1;7933:8;;;;;;7915:26;7970:10;;8249:14;;8239:40;;8270:8;;8240:24;;:4;;:24;:8;:24;:::i;8239:40::-;8236:334;;8538:10;;8531:27;;8532:3;:16;8554:3;8531:27;:22;:27;:::i;:::-;8520:38;;8236:334;8587:47;8624:8;;8620:2;:12;8613:3;:20;8599:8;8588;:19;8587:25;;:47;;;;:::i;:::-;8580:54;7679:963;-1:-1:-1;;;;;7679:963:0:o;3155:7604::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;3155:7604:0;;;;;;

Swarm Source

bzzr://4e03852e75680e3be7cbc018b572ebdc55072ce8d122151fd6e33b21599532d5
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.