ETH Price: $2,356.30 (-5.12%)

Token

World's 1st Blockchain Sweepstakes (SPRIZE)
 

Overview

Max Total Supply

246,256 SPRIZE

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 SPRIZE

Value
$0.00
0xbe4596f1190fcf298cf595d5f9c766ed1d48863b
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:
SweepsToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-07-06
*/

pragma solidity ^0.4.24;

pragma experimental "v0.5.0";

library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a && c >= b);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || b == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(a > 0 && b > 0);
        c = a / b;
    }
}

contract BasicTokenInterface{
    function balanceOf(address tokenOwner) public view returns (uint balance);
    function transfer(address to, uint tokens) public returns (bool success);
    event Transfer(address indexed from, address indexed to, uint tokens);
}

// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
    event ApprovalReceived(address indexed from, uint256 indexed amount, address indexed tokenAddr, bytes data);
    function receiveApproval(address from, uint256 amount, address tokenAddr, bytes data) public{
        emit ApprovalReceived(from, amount, tokenAddr, data);
    }
}

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
contract ERC20TokenInterface is BasicTokenInterface, ApproveAndCallFallBack{
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);   
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
    function transferTokens(address token, uint amount) public returns (bool success);
    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract BasicToken is BasicTokenInterface{
    using SafeMath for uint;
    
    string public name;                   //fancy name: eg Simon Bucks
    uint8 public decimals;                //How many decimals to show.
    string public symbol;                 //An identifier: eg SBX
    uint public totalSupply;
    mapping (address => uint256) internal balances;
    
    modifier checkpayloadsize(uint size) {
        assert(msg.data.length >= size + 4);
        _;
    } 

    function transfer(address _to, uint256 _value) public checkpayloadsize(2*32) returns (bool success) {
        require(balances[msg.sender] >= _value);
        success = true;
        balances[msg.sender] -= _value;

        //If sent to contract address reduce the supply
        if(_to == address(this)){
            totalSupply = totalSupply.sub(_value);
        }else{
            balances[_to] += _value;
        }
        emit Transfer(msg.sender, _to, _value); //solhint-disable-line indent, no-unused-vars
        return success;
    }

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

}

contract ManagedToken is BasicToken {
    address manager;
    modifier restricted(){
        require(msg.sender == manager,"Function can only be used by manager");
        _;
    }

    function setManager(address newManager) public restricted{
        balances[newManager] = balances[manager];
        balances[manager] = 0;
        manager = newManager;
    }

}

contract ERC20Token is ERC20TokenInterface, ManagedToken{

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
    * @dev Transfer tokens from one address to another
    * @param _from address The address which you want to send tokens from
    * @param _to address The address which you want to transfer to
    * @param _value uint256 the amount of tokens to be transferred
    */
    function transferFrom(address _from,address _to,uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }


    /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * Beware that changing an allowance with this method brings the risk that someone may use both the old
    * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
    * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
    * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }

    /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return A uint256 specifying the amount of tokens still available for the spender.
    */
    function allowance(address _owner,address _spender) public view returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    //Permit manager to sweep any tokens that landed here
    function transferTokens(address token,uint _value) public restricted returns (bool success){
        return ERC20Token(token).transfer(msg.sender,_value);
    }



}

contract SweepsToken is ERC20Token{

    uint weiRatePerToken;
    uint weiRatePerTicket;
    uint currentDay;
    uint[28] prizes; //offset == currentDay;
    uint jackpot;
    uint soldToday;
    uint totalSold;

    event Winner(uint ticketNumber, address indexed user, uint indexed amount);
    event DrawResult(uint indexed day, uint[20] results);
    event TicketsPurchased(address indexed user, uint indexed amount, uint start, uint stop);
    event PreDrawCompleted(uint blockHeight);
    event DrawingCompleted();
    event DailyResetComplete();
    event ImportBalanceEvent(address last);
    event ImportWinnersEvent(address last);
    event AirDropEvent(address last);


    constructor() public payable {
        require(gasleft() >= 4000000, "Contract needs at least 4000000");
        name = "World's 1st Blockchain Sweepstakes";                                   // Set the name for display purposes
        decimals = 0;                                       // Amount of decimals for display purposes
        symbol = "SPRIZE";                               // Set the symbol for display purposes
        currentDay = 0;
        
        manager = 0x0d505edb01e222110806ffc91da89ae7b2696e11;
        totalSupply = 2;
        weiRatePerToken = 10000000000000000;
        weiRatePerTicket = 10000000000000000;
        prizes = [
            //week 1
            2000,  //mon
            2000,  //tue
            2000,  //wed
            2000,  //thu
            2000,  //fri
            4000,  //sat
            10000, //sun
            //week 2
            2000,  //mon
            2000,  //tue
            2000,  //wed
            2000,  //thu
            2000,  //fri
            4000,  //sat
            10000, //sun
            //week 3
            4000,  //mon
            4000,  //tue
            4000,  //wed
            4000,  //thu
            4000,  //fri
            8000,  //sat
            20000, //sun
            //week 4
            8000,  //mon
            8000,  //tue
            8000,  //wed
            8000,  //thu
            8000,  //fri
            20000,  //sat
            50000 //sun
        ];
        jackpot = 0;
        balances[manager] = 1;
        
        emit Transfer(address(this),manager, 1);
       
    }

    //Default fallback function, but requires contract active
    function() external payable {
        require(currentDay <= prizes.length - 1, "Sorry this contest is over, please visit our site to learn about the next contest.");
        buyTokens();
    }

    function dailyReset() public restricted returns (bool complete){
        soldToday = 0;
        
        jackpot = 0;
    
        currentDay++;

        emit DailyResetComplete();
        return complete;
    }

    function setPrizes(uint[28] _prizes) public restricted{
        prizes = _prizes;
    }

    //Reset currentDay to 0 and other housekeeping functions
    function reset() public  restricted returns (bool complete){
        
        complete = false;
        if((address(this).balance >= 1 wei)){
            manager.transfer(address(this).balance);
        }
        
        currentDay = 0;
        jackpot = 0;
        soldToday = 0;
        totalSold = 0;
        return (complete);

    }

    function setManager(address newManager) public restricted{
        manager = newManager;
    }

    function getCurrentDay() public view returns (uint){
        return currentDay;
    }

    function transfer(address _to, uint256 _value) public checkpayloadsize(2*32) returns (bool success) {
        if(msg.sender == manager && _to == address(this)){
            if(address(this).balance > 42000){
                msg.sender.transfer(address(this).balance);
                success = true;
            }
        }else{
            if(_to != address(this)){
                success = super.transfer(_to, _value);
            }
        }
        return success;
    }

    function setTokenPrice(uint price) public  restricted returns (bool success){
        weiRatePerToken = price;
        success = true;
        return success;
    }

    function setTicketPrice(uint price) public  restricted returns (bool success){
        weiRatePerTicket = price;
        success = true;
        return success;
    }

    function getTicketPrice() public view returns (uint){
        return weiRatePerTicket;
    }

    function getTokenPrice() public view returns (uint){
        return weiRatePerToken;
    }

    function getTicketsSoldToday() public view returns (uint){
        return soldToday;
    }

    //Does what it says on the tin
    function buyTokens() public payable {
        require(gasleft() >= 110000, "Requires at least 110000 gas, reverting to avoid wasting your gas"); 
        uint tokensBought = msg.value.div(weiRatePerToken);
        uint ticketsBought = msg.value.div(weiRatePerTicket);
        require(tokensBought > 0 && ticketsBought > 0,"Requires minimum payment purchase");
        
        //Handle Tickets
        giveTix(ticketsBought,msg.sender);

        //Handle Tokens & jackpot
        totalSupply += tokensBought;
        jackpot += (tokensBought / 2);
        balances[msg.sender] += tokensBought;
        emit Transfer(address(this),msg.sender,tokensBought);
        
    }

    function giveTix(uint ticketsBought, address customer) internal{
        //customer side      
        uint oldsold = totalSold + 1;
        soldToday += ticketsBought;
        totalSold += ticketsBought;
        //Emit required events
        emit TicketsPurchased(customer, ticketsBought, oldsold, totalSold);
    }

    function getJackpot() public view returns (uint value){
        return jackpot + prizes[currentDay];
    }

    function rand(uint min, uint max, uint nonce) public pure returns (uint){
        return uint(keccak256(abi.encodePacked(nonce)))%(min+max)-min;
    }

    //Allow us to bring in winners from the previous contract this replaces
    function importPreviousWinners(uint[] tickets, address[] winners, uint[] amounts) public restricted{
        //TODO:  Complete this, make sure it emits winners correctly, but do not credit
        address winner;
        uint amount;
        uint ticket;
        uint cursor = 0;
        while(cursor <= winners.length - 1 && gasleft() > 42000){
            winner = winners[cursor];
            amount = amounts[cursor];
            ticket = tickets[cursor];
            emit Winner(ticket, winner, amount);
            cursor++;
        }
        emit ImportWinnersEvent(winners[cursor - 1]);
    }

    function importBalances(address oldContract,address[] customers) public restricted{
        address customer;
        uint balance;
        uint cursor = 0;
        while(cursor <= customers.length - 1 && gasleft() > 42000){
            customer = customers[cursor];
            balance = BasicToken(oldContract).balanceOf(customer);
            balances[customer] = balance;
            totalSupply += balance;
            emit Transfer(address(this),customer,balance);
            cursor++;
        }
        emit ImportBalanceEvent(customers[cursor - 1]);
    }
    
    function airDrop(address[] customers, uint amount) public restricted{
        uint cursor = 0;
        address customer;
        while(cursor <= customers.length - 1 && gasleft() > 42000){
            customer = customers[cursor];
            balances[customer] += amount;
            emit Transfer(address(this),customer,amount);
            giveTix(amount,customer);
            cursor++;
        }
        if(cursor == customers.length - 1){
            totalSupply += amount;
        }
        emit AirDropEvent(customers[cursor - 1]);
    }
    function payWinners(address[20] winners,uint[20] tickets) public restricted{
        uint prize = prizes[currentDay].add(jackpot);
        totalSupply += prize;
        uint payout = 0;
        for(uint y = 0; y <= winners.length - 1; y++){
            address winner = winners[y];
            require(winner != address(0),"Something impossible happened!  Refusing to burn these tokens!");
            uint ticketNum = tickets[y];

            //switch y for %
            if(y == 0){
                payout = prize / 2; //0.50
            }

            if(y == 1){
                payout = prize / 7; //Closest possible fraction to 0.14
            }

            if(y >= 2 && y <= 20){
                payout = prize / 50; //18 prizes of 0.02
            }

            balances[winner] += payout;
            emit Winner(ticketNum, winner, payout);
            emit Transfer(address(this),winner,payout);
        }
        dailyReset();
    }
    
    function draw(uint seed) public restricted {
        require(gasleft() > 60000,"Function requires at least 60000 GAS");
        manager.transfer(address(this).balance);
        uint[20] memory mypicks;
        require(currentDay <= prizes.length - 1, "Sorry this contest is over, please visit our site to learn about the next contest.");
        uint low = (totalSold - soldToday) + 1;
        low = low < 1 ? 1 : low;
        for(uint pick = 0; pick <= 19; pick++){
            mypicks[pick] = rand(low,totalSold,pick+currentDay+seed);
        }
        emit DrawResult(currentDay, mypicks);
    }
}

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":false,"inputs":[{"name":"price","type":"uint256"}],"name":"setTicketPrice","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"dailyReset","outputs":[{"name":"complete","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"seed","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_prizes","type":"uint256[28]"}],"name":"setPrizes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint256"}],"name":"setTokenPrice","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"getTicketPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTicketsSoldToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"amount","type":"uint256"},{"name":"tokenAddr","type":"address"},{"name":"data","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getJackpot","outputs":[{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldContract","type":"address"},{"name":"customers","type":"address[]"}],"name":"importBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newManager","type":"address"}],"name":"setManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reset","outputs":[{"name":"complete","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"min","type":"uint256"},{"name":"max","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"rand","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"winners","type":"address[20]"},{"name":"tickets","type":"uint256[20]"}],"name":"payWinners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tickets","type":"uint256[]"},{"name":"winners","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"importPreviousWinners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"customers","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"airDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ticketNumber","type":"uint256"},{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"Winner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"day","type":"uint256"},{"indexed":false,"name":"results","type":"uint256[20]"}],"name":"DrawResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":false,"name":"start","type":"uint256"},{"indexed":false,"name":"stop","type":"uint256"}],"name":"TicketsPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"blockHeight","type":"uint256"}],"name":"PreDrawCompleted","type":"event"},{"anonymous":false,"inputs":[],"name":"DrawingCompleted","type":"event"},{"anonymous":false,"inputs":[],"name":"DailyResetComplete","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"last","type":"address"}],"name":"ImportBalanceEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"last","type":"address"}],"name":"ImportWinnersEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"last","type":"address"}],"name":"AirDropEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":true,"name":"tokenAddr","type":"address"},{"indexed":false,"name":"data","type":"bytes"}],"name":"ApprovalReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

6080604052623d09005a10156200007757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f436f6e7472616374206e65656473206174206c65617374203430303030303000604482015290519081900360640190fd5b6040805160608101825260228082527f576f726c6427732031737420426c6f636b636861696e2053776565707374616b602083019081527f65730000000000000000000000000000000000000000000000000000000000009290930191909152620000e591600091620002e2565b506001805460ff191690556040805180820190915260068082527f535052495a45000000000000000000000000000000000000000000000000000060209092019182526200013691600291620002e2565b50600060095560058054600160a060020a031916730d505edb01e222110806ffc91da89ae7b2696e111790556002600355662386f26fc10000600781905560085560408051610380810182526107d0808252602082018190529181018290526060810182905260808101829052610fa060a0820181905261271060c0830181905260e0830184905261010083018490526101208301849052610140830184905261016083019390935261018082018190526101a08201929092526101c081018290526101e0810182905261020081018290526102208101829052610240810191909152611f406102608201819052614e2061028083018190526102a083018290526102c083018290526102e08301829052610300830182905261032083019190915261034082015261c3506103608201526200027790600a90601c62000367565b506000602681905560058054600160a060020a03908116835260046020908152604093849020600190819055925484519384529351939091169230927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a3620003be565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032557805160ff191683800117855562000355565b8280016001018555821562000355579182015b828111156200035557825182559160200191906001019062000338565b50620003639291506200039e565b5090565b82601c810192821562000355579160200282015b8281111562000355578251829061ffff169055916020019190600101906200037b565b620003bb91905b80821115620003635760008155600101620003a5565b90565b61209b80620003ce6000396000f30060806040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610230578063095ea7b3146102ba57806315981650146102f257806318160ddd1461030a57806323b872dd14610331578063268fe4261461035b578063313ce567146103705780633b3041471461039b5780633e6968b6146103b3578063490f027a146103c85780634b94f50e1461040d5780636a61e5fc1461042257806370a082311461043a57806387bb7ae01461045b5780638b048091146104705780638f4ffcb1146104855780639329066c146104f557806395d89b411461050a578063a9059cbb1461051f578063ab9fe3a114610543578063bec3fa17146105a6578063cae9ca51146105ca578063d0ebdbe714610633578063d0febe4c14610226578063d826f88f14610654578063dd62ed3e14610669578063e90e545314610690578063eb4b8091146106ae578063f6b696971461071a578063fd1fc4a0146107e1575b600954601b1015610226576040805160e560020a62461bcd02815260206004820152605260248201527f536f727279207468697320636f6e74657374206973206f7665722c20706c656160448201527f7365207669736974206f7572207369746520746f206c6561726e2061626f757460648201527f20746865206e65787420636f6e746573742e0000000000000000000000000000608482015290519081900360a40190fd5b61022e610838565b005b34801561023c57600080fd5b506102456109f5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027f578181015183820152602001610267565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b506102de600160a060020a0360043516602435610a83565b604080519115158252519081900360200190f35b3480156102fe57600080fd5b506102de600435610aea565b34801561031657600080fd5b5061031f610b55565b60408051918252519081900360200190f35b34801561033d57600080fd5b506102de600160a060020a0360043581169060243516604435610b5b565b34801561036757600080fd5b506102de610cc2565b34801561037c57600080fd5b50610385610d64565b6040805160ff9092168252519081900360200190f35b3480156103a757600080fd5b5061022e600435610d6d565b3480156103bf57600080fd5b5061031f610ff6565b3480156103d457600080fd5b506040805161038081810190925261022e91369160049161038491908390601c90839083908082843750939650610ffc95505050505050565b34801561041957600080fd5b5061031f61106c565b34801561042e57600080fd5b506102de600435611072565b34801561044657600080fd5b5061031f600160a060020a03600435166110dd565b34801561046757600080fd5b5061031f6110f8565b34801561047c57600080fd5b5061031f6110fe565b34801561049157600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261022e94600160a060020a038135811695602480359660443590931695369560849492019181908401838280828437509497506111049650505050505050565b34801561050157600080fd5b5061031f6111b8565b34801561051657600080fd5b506102456111d6565b34801561052b57600080fd5b506102de600160a060020a036004351660243561122e565b34801561054f57600080fd5b5060408051602060046024803582810135848102808701860190975280865261022e968435600160a060020a0316963696604495919490910192918291850190849080828437509497506112cb9650505050505050565b3480156105b257600080fd5b506102de600160a060020a03600435166024356114a6565b3480156105d657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102de948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506115a39650505050505050565b34801561063f57600080fd5b5061022e600160a060020a0360043516611704565b34801561066057600080fd5b506102de611792565b34801561067557600080fd5b5061031f600160a060020a0360043581169060243516611853565b34801561069c57600080fd5b5061031f60043560243560443561187e565b3480156106ba57600080fd5b506040805161028081810190925261022e9136916004916102849190839060149083908390808284375050604080516102808181019092529497969581810195945092506014915083908390808284375093965061191395505050505050565b34801561072657600080fd5b506040805160206004803580820135838102808601850190965280855261022e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611b449650505050505050565b3480156107ed57600080fd5b506040805160206004803580820135838102808601850190965280855261022e953695939460249493850192918291850190849080828437509497505093359450611cc39350505050565b6000806201adb05a10156108e2576040805160e560020a62461bcd02815260206004820152604160248201527f5265717569726573206174206c6561737420313130303030206761732c20726560448201527f76657274696e6720746f2061766f69642077617374696e6720796f757220676160648201527f7300000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b6007546108f690349063ffffffff611e2c16565b915061090d60085434611e2c90919063ffffffff16565b905060008211801561091f5750600081115b151561099b576040805160e560020a62461bcd02815260206004820152602160248201527f5265717569726573206d696e696d756d207061796d656e74207075726368617360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109a58133611e5b565b600380548301905560268054600284040190553360008181526004602090815260409182902080548601905581518581529151309260008051602061205083398151915292908290030190a35050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600554600090600160a060020a03163314610b4c576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b50600855600190565b60035481565b6000600160a060020a0383161515610b7257600080fd5b600160a060020a038416600090815260046020526040902054821115610b9757600080fd5b600160a060020a0384166000908152600660209081526040808320338452909152902054821115610bc757600080fd5b600160a060020a038416600090815260046020526040902054610bf0908363ffffffff611ebf16565b600160a060020a038086166000908152600460205260408082209390935590851681522054610c25908363ffffffff611ed416565b600160a060020a038085166000908152600460209081526040808320949094559187168152600682528281203382529091522054610c69908363ffffffff611ebf16565b600160a060020a0380861660008181526006602090815260408083203384528252918290209490945580518681529051928716939192600080516020612050833981519152929181900390910190a35060019392505050565b600554600090600160a060020a03163314610d24576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6000602781905560268190556009805460010190556040517f7af1e64ab856d3ec0425f60fa8c3df1ed91c32d2a8bb0bce42c9e40034eeea0e9190a15b90565b60015460ff1681565b610d75611fb7565b6005546000908190600160a060020a03163314610dd9576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b61ea605a11610e57576040805160e560020a62461bcd028152602060048201526024808201527f46756e6374696f6e207265717569726573206174206c6561737420363030303060448201527f2047415300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e91573d6000803e3d6000fd5b50600954601b1015610f39576040805160e560020a62461bcd02815260206004820152605260248201527f536f727279207468697320636f6e74657374206973206f7665722c20706c656160448201527f7365207669736974206f7572207369746520746f206c6561726e2061626f757460648201527f20746865206e65787420636f6e746573742e0000000000000000000000000000608482015290519081900360a40190fd5b60275460285403600101915060018210610f535781610f56565b60015b9150600090505b60138111610f9157610f78826028548660095485010161187e565b838260148110610f8457fe5b6020020152600101610f5d565b6009547f50959c9b7540ee6587cdc27f21bce0c20a1329f63c1754723c9f2804e568405b846040518082601460200280838360005b83811015610fde578181015183820152602001610fc6565b5050505090500191505060405180910390a250505050565b60095490565b600554600160a060020a0316331461105b576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b611068600a82601c611fd7565b5050565b60075490565b600554600090600160a060020a031633146110d4576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b50600755600190565b600160a060020a031660009081526004602052604090205490565b60085490565b60275490565b81600160a060020a03168385600160a060020a03167fc63af2ad6010d3d2613f98ba69779c3c407a587c09ec33352636f307a597fa0f846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611178578181015183820152602001611160565b50505050905090810190601f1680156111a55780820380516001836020036101000a031916815260200191505b509250505060405180910390a450505050565b6000600a600954601c811015156111cb57fe5b015460265401905090565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b60006040604436101561123d57fe5b600554600160a060020a03163314801561125f5750600160a060020a03841630145b156112a75761a410303111156112a2576040513390303180156108fc02916000818181858888f1935050505015801561129c573d6000803e3d6000fd5b50600191505b6112c4565b600160a060020a03841630146112c4576112c18484611ef2565b91505b5092915050565b60055460009081908190600160a060020a03163314611331576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b5060005b6001845103811115801561134a575061a4105a115b1561144757838181518110151561135d57fe5b6020908102909101810151604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929650908816926370a0823192602480840193829003018186803b1580156113c857600080fd5b505afa1580156113dc573d6000803e3d6000fd5b505050506040513d60208110156113f257600080fd5b5051600160a060020a03841660008181526004602090815260409182902084905560038054850190558151848152915193955091923092600080516020612050833981519152928290030190a3600101611335565b7ffc1ce6c9e3b014808981818a4d28ec7f41eb5b1430c81481b58e5b336882d9c0846001830381518110151561147957fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a15050505050565b600554600090600160a060020a03163314611508576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a0385169163a9059cbb9160448083019260209291908290030181600087803b15801561157057600080fd5b505af1158015611584573d6000803e3d6000fd5b505050506040513d602081101561159a57600080fd5b50519392505050565b336000818152600660209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561169357818101518382015260200161167b565b50505050905090810190601f1680156116c05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156116e257600080fd5b505af11580156116f6573d6000803e3d6000fd5b506001979650505050505050565b600554600160a060020a03163314611763576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600090600160a060020a031633146117f4576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b506000600130311061183c57600554604051600160a060020a0390911690303180156108fc02916000818181858888f1935050505015801561183a573d6000803e3d6000fd5b505b600060098190556026819055602781905560285590565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b60008383850183604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106118d35780518252601f1990920191602091820191016118b4565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209250505081151561190957fe5b0603949350505050565b6005546000908190819081908190600160a060020a0316331461197d576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6119a2602654600a600954601c8110151561199457fe5b01549063ffffffff611ed416565b60038054820190559450600093508392505b60138311611b32578683601481106119c857fe5b60200201519150600160a060020a0382161515611a55576040805160e560020a62461bcd02815260206004820152603e60248201527f536f6d657468696e6720696d706f737369626c652068617070656e656421202060448201527f5265667573696e6720746f206275726e20746865736520746f6b656e73210000606482015290519081900360840190fd5b858360148110611a6157fe5b60200201519050821515611a76576002850493505b8260011415611a86576007850493505b60028310158015611a98575060148311155b15611aa4576032850493505b600160a060020a038216600081815260046020908152604091829020805488019055815184815291518793927f1c2ae1f7e99dbbbfe25aac964f3889ea68259d88b74709f53037a6fb930bb02a92908290030190a3604080518581529051600160a060020a0384169130916000805160206120508339815191529181900360200190a36001909201916119b4565b611b3a610cc2565b5050505050505050565b600554600090819081908190600160a060020a03163314611bac576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b5060005b60018651038111158015611bc5575061a4105a115b15611c62578581815181101515611bd857fe5b9060200190602002015193508481815181101515611bf257fe5b9060200190602002015192508681815181101515611c0c57fe5b9060200190602002015191508284600160a060020a03167f1c2ae1f7e99dbbbfe25aac964f3889ea68259d88b74709f53037a6fb930bb02a846040518082815260200191505060405180910390a3600101611bb0565b7fc713ac19c145b2c4fd2019368913f986bd913c12ae5f67657d7326f895728e6c8660018303815181101515611c9457fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a150505050505050565b6005546000908190600160a060020a03163314611d27576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b600091505b60018451038211158015611d41575061a4105a115b15611db9578382815181101515611d5457fe5b6020908102909101810151600160a060020a03811660008181526004845260409081902080548801905580518781529051929450909230926000805160206120508339815191529281900390910190a3611dae8382611e5b565b600190910190611d2c565b6001845103821415611dce5760038054840190555b7fc98da2084cd9745d52d6e57f0253c2d54fdb763008e33e0448054e2291a1106b8460018403815181101515611e0057fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a150505050565b60008083118015611e3d5750600082115b1515611e4857600080fd5b8183811515611e5357fe5b049392505050565b60288054602780548501905583810191829055604080516001909201808352602083019390935280518592600160a060020a038616927fc7c1448de202b1838ad1d7fae75dbd69dc79f98d656f7b30f08dc451c9ab7ff892918290030190a3505050565b600082821115611ece57600080fd5b50900390565b818101828110801590611ee75750818110155b1515610ae457600080fd5b600060406044361015611f0157fe5b33600090815260046020526040902054831115611f1d57600080fd5b3360009081526004602052604090208054849003905560019150600160a060020a038416301415611f6357600354611f5b908463ffffffff611ebf16565b600355611f82565b600160a060020a03841660009081526004602052604090208054840190555b604080518481529051600160a060020a0386169133916000805160206120508339815191529181900360200190a35092915050565b610280604051908101604052806014906020820280388339509192915050565b82601c8101928215612005579160200282015b82811115612005578251825591602001919060010190611fea565b50612011929150612015565b5090565b610d6191905b80821115612011576000815560010161201b560046756e6374696f6e2063616e206f6e6c792062652075736564206279206d616eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201bb0786f6932518e180cac9f9236aec42a665190853dbf0928e8e9ae0ea6ac380029

Deployed Bytecode

0x60806040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610230578063095ea7b3146102ba57806315981650146102f257806318160ddd1461030a57806323b872dd14610331578063268fe4261461035b578063313ce567146103705780633b3041471461039b5780633e6968b6146103b3578063490f027a146103c85780634b94f50e1461040d5780636a61e5fc1461042257806370a082311461043a57806387bb7ae01461045b5780638b048091146104705780638f4ffcb1146104855780639329066c146104f557806395d89b411461050a578063a9059cbb1461051f578063ab9fe3a114610543578063bec3fa17146105a6578063cae9ca51146105ca578063d0ebdbe714610633578063d0febe4c14610226578063d826f88f14610654578063dd62ed3e14610669578063e90e545314610690578063eb4b8091146106ae578063f6b696971461071a578063fd1fc4a0146107e1575b600954601b1015610226576040805160e560020a62461bcd02815260206004820152605260248201527f536f727279207468697320636f6e74657374206973206f7665722c20706c656160448201527f7365207669736974206f7572207369746520746f206c6561726e2061626f757460648201527f20746865206e65787420636f6e746573742e0000000000000000000000000000608482015290519081900360a40190fd5b61022e610838565b005b34801561023c57600080fd5b506102456109f5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027f578181015183820152602001610267565b50505050905090810190601f1680156102ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c657600080fd5b506102de600160a060020a0360043516602435610a83565b604080519115158252519081900360200190f35b3480156102fe57600080fd5b506102de600435610aea565b34801561031657600080fd5b5061031f610b55565b60408051918252519081900360200190f35b34801561033d57600080fd5b506102de600160a060020a0360043581169060243516604435610b5b565b34801561036757600080fd5b506102de610cc2565b34801561037c57600080fd5b50610385610d64565b6040805160ff9092168252519081900360200190f35b3480156103a757600080fd5b5061022e600435610d6d565b3480156103bf57600080fd5b5061031f610ff6565b3480156103d457600080fd5b506040805161038081810190925261022e91369160049161038491908390601c90839083908082843750939650610ffc95505050505050565b34801561041957600080fd5b5061031f61106c565b34801561042e57600080fd5b506102de600435611072565b34801561044657600080fd5b5061031f600160a060020a03600435166110dd565b34801561046757600080fd5b5061031f6110f8565b34801561047c57600080fd5b5061031f6110fe565b34801561049157600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261022e94600160a060020a038135811695602480359660443590931695369560849492019181908401838280828437509497506111049650505050505050565b34801561050157600080fd5b5061031f6111b8565b34801561051657600080fd5b506102456111d6565b34801561052b57600080fd5b506102de600160a060020a036004351660243561122e565b34801561054f57600080fd5b5060408051602060046024803582810135848102808701860190975280865261022e968435600160a060020a0316963696604495919490910192918291850190849080828437509497506112cb9650505050505050565b3480156105b257600080fd5b506102de600160a060020a03600435166024356114a6565b3480156105d657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102de948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506115a39650505050505050565b34801561063f57600080fd5b5061022e600160a060020a0360043516611704565b34801561066057600080fd5b506102de611792565b34801561067557600080fd5b5061031f600160a060020a0360043581169060243516611853565b34801561069c57600080fd5b5061031f60043560243560443561187e565b3480156106ba57600080fd5b506040805161028081810190925261022e9136916004916102849190839060149083908390808284375050604080516102808181019092529497969581810195945092506014915083908390808284375093965061191395505050505050565b34801561072657600080fd5b506040805160206004803580820135838102808601850190965280855261022e95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611b449650505050505050565b3480156107ed57600080fd5b506040805160206004803580820135838102808601850190965280855261022e953695939460249493850192918291850190849080828437509497505093359450611cc39350505050565b6000806201adb05a10156108e2576040805160e560020a62461bcd02815260206004820152604160248201527f5265717569726573206174206c6561737420313130303030206761732c20726560448201527f76657274696e6720746f2061766f69642077617374696e6720796f757220676160648201527f7300000000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b6007546108f690349063ffffffff611e2c16565b915061090d60085434611e2c90919063ffffffff16565b905060008211801561091f5750600081115b151561099b576040805160e560020a62461bcd02815260206004820152602160248201527f5265717569726573206d696e696d756d207061796d656e74207075726368617360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109a58133611e5b565b600380548301905560268054600284040190553360008181526004602090815260409182902080548601905581518581529151309260008051602061205083398151915292908290030190a35050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b820191906000526020600020905b815481529060010190602001808311610a5e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600554600090600160a060020a03163314610b4c576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b50600855600190565b60035481565b6000600160a060020a0383161515610b7257600080fd5b600160a060020a038416600090815260046020526040902054821115610b9757600080fd5b600160a060020a0384166000908152600660209081526040808320338452909152902054821115610bc757600080fd5b600160a060020a038416600090815260046020526040902054610bf0908363ffffffff611ebf16565b600160a060020a038086166000908152600460205260408082209390935590851681522054610c25908363ffffffff611ed416565b600160a060020a038085166000908152600460209081526040808320949094559187168152600682528281203382529091522054610c69908363ffffffff611ebf16565b600160a060020a0380861660008181526006602090815260408083203384528252918290209490945580518681529051928716939192600080516020612050833981519152929181900390910190a35060019392505050565b600554600090600160a060020a03163314610d24576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6000602781905560268190556009805460010190556040517f7af1e64ab856d3ec0425f60fa8c3df1ed91c32d2a8bb0bce42c9e40034eeea0e9190a15b90565b60015460ff1681565b610d75611fb7565b6005546000908190600160a060020a03163314610dd9576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b61ea605a11610e57576040805160e560020a62461bcd028152602060048201526024808201527f46756e6374696f6e207265717569726573206174206c6561737420363030303060448201527f2047415300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600554604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e91573d6000803e3d6000fd5b50600954601b1015610f39576040805160e560020a62461bcd02815260206004820152605260248201527f536f727279207468697320636f6e74657374206973206f7665722c20706c656160448201527f7365207669736974206f7572207369746520746f206c6561726e2061626f757460648201527f20746865206e65787420636f6e746573742e0000000000000000000000000000608482015290519081900360a40190fd5b60275460285403600101915060018210610f535781610f56565b60015b9150600090505b60138111610f9157610f78826028548660095485010161187e565b838260148110610f8457fe5b6020020152600101610f5d565b6009547f50959c9b7540ee6587cdc27f21bce0c20a1329f63c1754723c9f2804e568405b846040518082601460200280838360005b83811015610fde578181015183820152602001610fc6565b5050505090500191505060405180910390a250505050565b60095490565b600554600160a060020a0316331461105b576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b611068600a82601c611fd7565b5050565b60075490565b600554600090600160a060020a031633146110d4576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b50600755600190565b600160a060020a031660009081526004602052604090205490565b60085490565b60275490565b81600160a060020a03168385600160a060020a03167fc63af2ad6010d3d2613f98ba69779c3c407a587c09ec33352636f307a597fa0f846040518080602001828103825283818151815260200191508051906020019080838360005b83811015611178578181015183820152602001611160565b50505050905090810190601f1680156111a55780820380516001836020036101000a031916815260200191505b509250505060405180910390a450505050565b6000600a600954601c811015156111cb57fe5b015460265401905090565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610a7b5780601f10610a5057610100808354040283529160200191610a7b565b60006040604436101561123d57fe5b600554600160a060020a03163314801561125f5750600160a060020a03841630145b156112a75761a410303111156112a2576040513390303180156108fc02916000818181858888f1935050505015801561129c573d6000803e3d6000fd5b50600191505b6112c4565b600160a060020a03841630146112c4576112c18484611ef2565b91505b5092915050565b60055460009081908190600160a060020a03163314611331576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b5060005b6001845103811115801561134a575061a4105a115b1561144757838181518110151561135d57fe5b6020908102909101810151604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0380841660048301529151929650908816926370a0823192602480840193829003018186803b1580156113c857600080fd5b505afa1580156113dc573d6000803e3d6000fd5b505050506040513d60208110156113f257600080fd5b5051600160a060020a03841660008181526004602090815260409182902084905560038054850190558151848152915193955091923092600080516020612050833981519152928290030190a3600101611335565b7ffc1ce6c9e3b014808981818a4d28ec7f41eb5b1430c81481b58e5b336882d9c0846001830381518110151561147957fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a15050505050565b600554600090600160a060020a03163314611508576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a0385169163a9059cbb9160448083019260209291908290030181600087803b15801561157057600080fd5b505af1158015611584573d6000803e3d6000fd5b505050506040513d602081101561159a57600080fd5b50519392505050565b336000818152600660209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561169357818101518382015260200161167b565b50505050905090810190601f1680156116c05780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156116e257600080fd5b505af11580156116f6573d6000803e3d6000fd5b506001979650505050505050565b600554600160a060020a03163314611763576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600090600160a060020a031633146117f4576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b506000600130311061183c57600554604051600160a060020a0390911690303180156108fc02916000818181858888f1935050505015801561183a573d6000803e3d6000fd5b505b600060098190556026819055602781905560285590565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b60008383850183604051602001808281526020019150506040516020818303038152906040526040518082805190602001908083835b602083106118d35780518252601f1990920191602091820191016118b4565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209250505081151561190957fe5b0603949350505050565b6005546000908190819081908190600160a060020a0316331461197d576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b6119a2602654600a600954601c8110151561199457fe5b01549063ffffffff611ed416565b60038054820190559450600093508392505b60138311611b32578683601481106119c857fe5b60200201519150600160a060020a0382161515611a55576040805160e560020a62461bcd02815260206004820152603e60248201527f536f6d657468696e6720696d706f737369626c652068617070656e656421202060448201527f5265667573696e6720746f206275726e20746865736520746f6b656e73210000606482015290519081900360840190fd5b858360148110611a6157fe5b60200201519050821515611a76576002850493505b8260011415611a86576007850493505b60028310158015611a98575060148311155b15611aa4576032850493505b600160a060020a038216600081815260046020908152604091829020805488019055815184815291518793927f1c2ae1f7e99dbbbfe25aac964f3889ea68259d88b74709f53037a6fb930bb02a92908290030190a3604080518581529051600160a060020a0384169130916000805160206120508339815191529181900360200190a36001909201916119b4565b611b3a610cc2565b5050505050505050565b600554600090819081908190600160a060020a03163314611bac576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b5060005b60018651038111158015611bc5575061a4105a115b15611c62578581815181101515611bd857fe5b9060200190602002015193508481815181101515611bf257fe5b9060200190602002015192508681815181101515611c0c57fe5b9060200190602002015191508284600160a060020a03167f1c2ae1f7e99dbbbfe25aac964f3889ea68259d88b74709f53037a6fb930bb02a846040518082815260200191505060405180910390a3600101611bb0565b7fc713ac19c145b2c4fd2019368913f986bd913c12ae5f67657d7326f895728e6c8660018303815181101515611c9457fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a150505050505050565b6005546000908190600160a060020a03163314611d27576040805160e560020a62461bcd02815260206004820152602480820152600080516020612030833981519152604482015260e160020a6330b3b2b902606482015290519081900360840190fd5b600091505b60018451038211158015611d41575061a4105a115b15611db9578382815181101515611d5457fe5b6020908102909101810151600160a060020a03811660008181526004845260409081902080548801905580518781529051929450909230926000805160206120508339815191529281900390910190a3611dae8382611e5b565b600190910190611d2c565b6001845103821415611dce5760038054840190555b7fc98da2084cd9745d52d6e57f0253c2d54fdb763008e33e0448054e2291a1106b8460018403815181101515611e0057fe5b602090810290910181015160408051600160a060020a039092168252519081900390910190a150505050565b60008083118015611e3d5750600082115b1515611e4857600080fd5b8183811515611e5357fe5b049392505050565b60288054602780548501905583810191829055604080516001909201808352602083019390935280518592600160a060020a038616927fc7c1448de202b1838ad1d7fae75dbd69dc79f98d656f7b30f08dc451c9ab7ff892918290030190a3505050565b600082821115611ece57600080fd5b50900390565b818101828110801590611ee75750818110155b1515610ae457600080fd5b600060406044361015611f0157fe5b33600090815260046020526040902054831115611f1d57600080fd5b3360009081526004602052604090208054849003905560019150600160a060020a038416301415611f6357600354611f5b908463ffffffff611ebf16565b600355611f82565b600160a060020a03841660009081526004602052604090208054840190555b604080518481529051600160a060020a0386169133916000805160206120508339815191529181900360200190a35092915050565b610280604051908101604052806014906020820280388339509192915050565b82601c8101928215612005579160200282015b82811115612005578251825591602001919060010190611fea565b50612011929150612015565b5090565b610d6191905b80821115612011576000815560010161201b560046756e6374696f6e2063616e206f6e6c792062652075736564206279206d616eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201bb0786f6932518e180cac9f9236aec42a665190853dbf0928e8e9ae0ea6ac380029

Swarm Source

bzzr://1bb0786f6932518e180cac9f9236aec42a665190853dbf0928e8e9ae0ea6ac38
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.