ETH Price: $3,176.38 (-8.21%)
Gas: 3 Gwei

Token

Polka City (POLC)
 

Overview

Max Total Supply

250,000,000 POLC

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
champoonk.eth
Balance
20,000 POLC

Value
$0.00
0xb130a894187664b22b823de7bb886e5c09e27d51
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:
POLCToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-15
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
        
}

interface ItokenRecipient { 
    function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external returns (bool); 
}

interface IERC20Token {
    function totalSupply() external view returns (uint256 supply);
    function transfer(address _to, uint256 _value) external  returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
    function balanceOf(address _owner) external view returns (uint256 balance);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint256 remaining);
}

contract Ownable {

    address private owner;
    
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Caller is not owner");
        _;
    }

    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }


    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    function getOwner() external view returns (address) {
        return owner;
    }
}

contract StandardToken is IERC20Token {
    
    using SafeMath for uint256;
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;
    uint256 public _totalSupply;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    
    function totalSupply() override public view returns (uint256 supply) {
        return _totalSupply;
    }

    function transfer(address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                              
		require(_value >= 0, "Invalid amount"); 
		require(balances[msg.sender] >= _value, "Not enough balance");
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                               
		require(_value >= 0, "Invalid amount"); 
		require(balances[_from] >= _value, "Not enough balance");
		require(allowed[_from][msg.sender] >= _value, "You need to increase allowance");
		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(_from, _to, _value);
        return true;
    }

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

    function approve(address _spender, uint256 _value) override public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

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

contract POLCToken is Ownable, StandardToken {

    using SafeMath for uint256;
    string public name = "Polka City";
    uint8 public decimals = 18;
    string public symbol = "POLC";
    mapping (address => bool) public lockedWallets;

    struct TimeLock {
        uint firstRelease;
        uint totalAmount;
        uint lockedBalance;
    }
    
    mapping (address => TimeLock) public timeLocks; 
    
    address public platformWallet;
    bool public limitContracts;
    mapping (address => bool) public contractsWhiteList;
    mapping (address => uint) public lastTXBlock;
    uint public walletUnlockDate;
    event Burn(address indexed from, uint256 value);


// token sale
    address payable public salesWallet;

    uint256 public soldOnPSale;
    uint256 public soldOnCSale;
    address private marketingWallet;
    uint256 public PRIVATESALE_START = block.timestamp;
    uint256 public constant PRIVATESALE_END = 1613951999;
    uint256 public constant CROWDSALE_START = 1614448800;
    uint256 public constant CROWDSALE_END = 1615766399;
    uint256 public constant PSALE_WEI_FACTOR = 20000;
    uint256 public constant CSALE_WEI_FACTOR = 15000;
    uint256 public constant PSALE_HARDCAP = 2500000 ether;
    uint256 public constant CSALE_HARDCAP = 7500000 ether;
    event TokensSold(address indexed to, uint256 amount);
    
    constructor() {
        platformWallet = 0x2524e7e53E655cA94986f6f445a74A4796A42289;
        _totalSupply = 250000000 ether;
        walletUnlockDate = CROWDSALE_END;

        // Marketing wallet - 5000000 tokens, (4500000 Locked - progressive release)
        marketingWallet = 0x09911dD354141452a21eB69527B510a8941CaaFF;
        balances[marketingWallet] = 5000000 ether;
        timeLocks[marketingWallet] = TimeLock((PRIVATESALE_END - 30 days), 4000000 ether, 4000000 ether);
        emit Transfer(address(0x0), marketingWallet, balances[marketingWallet]);
        
        // Team wallet - 10000000 tokens (Locked - progressive release)
        address team = 0x3A23D3e9BE80A804fceB418b451E3100d9264F7E;
        balances[team] = 10000000 ether;
        timeLocks[team] = TimeLock((PRIVATESALE_START + 180 days), 10000000 ether, 10000000 ether);
        
        emit Transfer(address(0x0), team, balances[team]);
        
        // Uniswap and exchanges - 26000000 tokens locked until crowdsale ends
        address exchanges = 0x6B65ddFe7f46594181A05a121Ee93FcF71e586bC;  
        balances[exchanges] = 25000000 ether;
        emit Transfer(address(0x0), exchanges, balances[exchanges]);
        lockedWallets[exchanges]  = true;
        

        // Platform tokens
        balances[platformWallet] = 200000000 ether;
        emit Transfer(address(0x0), platformWallet, (200000000 ether));
        
        // Sales wallet, private and crowdsale balances
        salesWallet = payable(0x8F8A97B50A325499Eb7DD72956cCd307E2B8d6a4);
        balances[salesWallet] = 10000000 ether;
        emit Transfer(address(0x0), salesWallet, balances[salesWallet]);

    }
    
    function transfer(address _to, uint256 _value) override public returns (bool success) {
        require(canTransfer(msg.sender));
        require(_value <= (balances[msg.sender] - timeLocks[msg.sender].lockedBalance));
        return super.transfer(_to, _value);
    }
    
    function transferFrom(address _from, address _to, uint256 _value) override public returns (bool success) {
        require(canTransfer(_from));
        require(_value <= (balances[_from] - timeLocks[msg.sender].lockedBalance));
        return super.transferFrom(_from, _to, _value);
    }
    
    function burn(uint256 _value) public returns (bool success) {
        require(balances[msg.sender] >= _value, "Not enough balance");
		require(_value >= 0, "Invalid amount"); 
        balances[msg.sender] = balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        return true;
    }
    
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        ItokenRecipient recipient = ItokenRecipient(_spender);
        require(recipient.receiveApproval(msg.sender, _value, address(this), _extraData));
        return true;
    }
    

    function releaseTokens(address _account) public {
        uint steps = (block.timestamp - timeLocks[_account].firstRelease) / (30 days);
        if (steps >=20) {
            timeLocks[_account].lockedBalance = 0;
        } else {
            timeLocks[_account].lockedBalance = timeLocks[_account].totalAmount - ((timeLocks[_account].totalAmount/20) * steps);
        }
    }
    
    function canTransfer(address _wallet) private returns (bool) {
        require(checkTransferLimit() == true);
        if (lockedWallets[_wallet] == true) {
            if (block.timestamp > walletUnlockDate) {
                lockedWallets[_wallet] = false;
                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }
    
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    
    function checkTransferLimit() internal returns (bool txAllowed) {
        address _caller = msg.sender;
        if (isContract(_caller)) {
            if (limitContracts == true && contractsWhiteList[_caller] == false) {
                if (lastTXBlock[_caller] == block.number) {
                    return false;
                } else {
                    lastTXBlock[_caller] = block.number;
                    return true;
                }
            } else {
                return true;
            }
        } else {
            return true;
        }
    }
    
    function setLimitContracts(bool _limit) public onlyOwner {
        limitContracts = _limit;
    }
    
    function includeWhiteList(address _contractAddress) public onlyOwner {
        contractsWhiteList[_contractAddress] = true;
    }
    
    function removeWhiteList(address _contractAddress) public onlyOwner {
        contractsWhiteList[_contractAddress] = false;
    }
    
    function isWalletLocked(address _wallet) public view returns (bool isLocked) {
        return lockedWallets[_wallet];
    }
    
    function setPlatformWallet(address _platformWallet) public onlyOwner {
        platformWallet = payable(_platformWallet);
    }

    function getLockedBalance(address _wallet) public view returns (uint256 lockedBalance) {
        return timeLocks[_wallet].lockedBalance;
    }
    
    // token sale

    function buy() public payable {
        require(((block.timestamp > PRIVATESALE_START) && (block.timestamp < PRIVATESALE_END)) || ((block.timestamp > CROWDSALE_START) && (block.timestamp < CROWDSALE_END)), "Contract is not selling tokens");
        uint weiValue = msg.value;
        require(weiValue >= (5 * (10 ** 16)));
        bool lockAccount = false;
        uint amount = 0;
        if ((block.timestamp > PRIVATESALE_START) && (block.timestamp < PRIVATESALE_END)) {
            amount = PSALE_WEI_FACTOR * weiValue;
            soldOnPSale += amount;
            require((soldOnPSale) <= (PSALE_HARDCAP), "That quantity is not available");
        } else {
            amount = CSALE_WEI_FACTOR * weiValue;
            soldOnCSale += amount;
            require((soldOnCSale) <= (CSALE_HARDCAP), "That quantity is not available");
            lockAccount = true;
        }

        balances[salesWallet] = balances[salesWallet].sub(amount);
        balances[msg.sender] = balances[msg.sender].add(amount);
        if ( lockAccount == true) lockedWallets[msg.sender] = true;
        require(salesWallet.send(weiValue));
        emit Transfer(salesWallet, msg.sender, amount);
        if (CSALE_HARDCAP == soldOnCSale && block.timestamp < 1615140000) {  // If hardcap is reached before 2021/03/07 18:00, change unlock dates
            timeLocks[marketingWallet].firstRelease = block.timestamp - 30 days;
        }

    }
    
    function burnUnsold() public onlyOwner {
        require(block.timestamp > CROWDSALE_END);
        uint currentBalance = balances[salesWallet];
        balances[salesWallet] = 0;
        _totalSupply = _totalSupply.sub(currentBalance);
        emit Burn(salesWallet, currentBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CROWDSALE_END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CROWDSALE_START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_WEI_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRIVATESALE_END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRIVATESALE_START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PSALE_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PSALE_WEI_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnUnsold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contractsWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"getLockedBalance","outputs":[{"internalType":"uint256","name":"lockedBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"includeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"isWalletLocked","outputs":[{"internalType":"bool","name":"isLocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTXBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockedWallets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"platformWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"releaseTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"removeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"salesWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_limit","type":"bool"}],"name":"setLimitContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_platformWallet","type":"address"}],"name":"setPlatformWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldOnCSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"soldOnPSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeLocks","outputs":[{"internalType":"uint256","name":"firstRelease","type":"uint256"},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"lockedBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletUnlockDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c0604052600a608081905269506f6c6b61204369747960b01b60a09081526200002d91600491906200045b565b506005805460ff1916601217905560408051808201909152600480825263504f4c4360e01b602090920191825262000068916006916200045b565b50426011553480156200007a57600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a3600980546001600160a01b0319908116732524e7e53e655ca94986f6f445a74a4796a42289179091556acecb8f27f4200f3a00000060035563604ea37f600c55601080549091167309911dd354141452a21eb69527b510a8941caaff17908190556001600160a01b0316600090815260016020526040908190206a0422ca8b0a00a4250000009055805160608101909152806200016962278d00636032f3ff62000525565b81526a034f086f3b33b6840000006020808301829052604092830191909152601080546001600160a01b039081166000908152600884528481208651815586850151600182810191909155968601516002909101559154168082529390915281812054915190916000805160206200211083398151915291620001ed919062000501565b60405180910390a3733a23d3e9be80a804fceb418b451e3100d9264f7e600081905260016020526a084595161401484a0000007f8981b911498d80017c74d32aeb6a884ea718fabb526543555a17240f1c6f26f85560408051606081019091526011548190620002619062ed4e006200050a565b81526a084595161401484a00000060208083018290526040928301919091526001600160a01b038416600081815260088352838120855181558584015160018083019190915595850151600290910155939091528183205491519092916000805160206200211083398151915291620002db919062000501565b60405180910390a3736b65ddfe7f46594181a05a121ee93fcf71e586bc600081815260016020526a14adf4b7320334b90000007fd51abff14c93c8b7a9ec90e9f7ba11f5ffb834d7555c31484acbd18e68460087819055604051839291600080516020620021108339815191529162000355919062000501565b60405180910390a36001600160a01b038082166000908152600760209081526040808320805460ff19166001908117909155600980548616855292528083206aa56fa5b99019a5c800000090819055915490519316926000805160206200211083398151915291620003c79162000501565b60405180910390a3600d80546001600160a01b031916738f8a97b50a325499eb7dd72956ccd307e2b8d6a4178082556001600160a01b039081166000908152600160205260408082206a084595161401484a00000090559254909116808252828220549251909260008051602062002110833981519152916200044b919062000501565b60405180910390a3505062000592565b82805462000469906200053f565b90600052602060002090601f0160209004810192826200048d5760008555620004d8565b82601f10620004a857805160ff1916838001178555620004d8565b82800160010185558215620004d8579182015b82811115620004d8578251825591602001919060010190620004bb565b50620004e6929150620004ea565b5090565b5b80821115620004e65760008155600101620004eb565b90815260200190565b600082198211156200052057620005206200057c565b500190565b6000828210156200053a576200053a6200057c565b500390565b6002810460018216806200055457607f821691505b602082108114156200057657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b611b6e80620005a26000396000f3fe60806040526004361061025c5760003560e01c80637147f70011610144578063a7411c92116100b6578063c40868931161007a578063c40868931461067e578063cae9ca511461069e578063dd62ed3e146106be578063df878f0b146106de578063edf4d847146106f3578063fa2af9da146107085761025c565b8063a7411c92146105ff578063a9059cbb1461061f578063b52a58511461063f578063bdb97e8914610654578063beda6ab6146106695761025c565b80638e762ff9116101085780638e762ff91461056d5780639533d8d41461058257806395d89b41146105a2578063a4b99ea8146105b7578063a6f2ae3a146105d7578063a6f9dae1146105df5761025c565b80637147f700146104c75780637f76b223146104dc57806387b0be481461050b5780638831e9cf1461052b578063893d20e81461054b5761025c565b806327e235e3116101dd57806342966c68116101a157806342966c68146104125780634412d552146104325780635c658165146104525780635d4ccdcb146104725780636a4b86c91461048757806370a08231146104a75761025c565b806327e235e314610391578063313ce567146103b157806337150140146103d35780633eaaf86b146103e857806340e687a8146103fd5761025c565b806318160ddd1161022457806318160ddd1461031057806319c741f2146103255780632042e5c21461033a57806323b872dd1461035c578063250f3f851461037c5761025c565b8063031d769f1461026157806306fdde031461028c578063095ea7b3146102ae5780630c0c91a2146102db57806313ddb69a146102fb575b600080fd5b34801561026d57600080fd5b5061027661071d565b6040516102839190611a25565b60405180910390f35b34801561029857600080fd5b506102a1610723565b60405161028391906118a6565b3480156102ba57600080fd5b506102ce6102c93660046116c9565b6107b1565b604051610283919061189b565b3480156102e757600080fd5b506102ce6102f6366004611642565b61081b565b34801561030757600080fd5b5061027661083d565b34801561031c57600080fd5b50610276610845565b34801561033157600080fd5b5061027661084c565b34801561034657600080fd5b5061035a610355366004611642565b61085b565b005b34801561036857600080fd5b506102ce61037736600461168e565b6108af565b34801561038857600080fd5b50610276610917565b34801561039d57600080fd5b506102766103ac366004611642565b61091d565b3480156103bd57600080fd5b506103c661092f565b6040516102839190611a44565b3480156103df57600080fd5b50610276610938565b3480156103f457600080fd5b50610276610940565b34801561040957600080fd5b50610276610946565b34801561041e57600080fd5b506102ce61042d3660046117e7565b61094c565b34801561043e57600080fd5b5061035a61044d366004611642565b6109f7565b34801561045e57600080fd5b5061027661046d36600461165c565b610a45565b34801561047e57600080fd5b506102ce610a62565b34801561049357600080fd5b5061035a6104a23660046117af565b610a72565b3480156104b357600080fd5b506102766104c2366004611642565b610aba565b3480156104d357600080fd5b50610276610ad5565b3480156104e857600080fd5b506104fc6104f7366004611642565b610adb565b60405161028393929190611a2e565b34801561051757600080fd5b5061035a610526366004611642565b610afc565b34801561053757600080fd5b5061035a610546366004611642565b610bd4565b34801561055757600080fd5b50610560610c20565b604051610283919061184a565b34801561057957600080fd5b50610276610c2f565b34801561058e57600080fd5b506102ce61059d366004611642565b610c35565b3480156105ae57600080fd5b506102a1610c4a565b3480156105c357600080fd5b506102ce6105d2366004611642565b610c57565b61035a610c6c565b3480156105eb57600080fd5b5061035a6105fa366004611642565b610eef565b34801561060b57600080fd5b5061027661061a366004611642565b610f74565b34801561062b57600080fd5b506102ce61063a3660046116c9565b610f86565b34801561064b57600080fd5b5061035a610fe0565b34801561066057600080fd5b50610276611093565b34801561067557600080fd5b50610276611099565b34801561068a57600080fd5b50610276610699366004611642565b6110a1565b3480156106aa57600080fd5b506102ce6106b93660046116f2565b6110bf565b3480156106ca57600080fd5b506102766106d936600461165c565b6111ba565b3480156106ea57600080fd5b506102766111e5565b3480156106ff57600080fd5b506105606111f4565b34801561071457600080fd5b50610560611203565b600c5481565b6004805461073090611ac0565b80601f016020809104026020016040519081016040528092919081815260200182805461075c90611ac0565b80156107a95780601f1061077e576101008083540402835291602001916107a9565b820191906000526020600020905b81548152906001019060200180831161078c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080a908690611a25565b60405180910390a350600192915050565b6001600160a01b03811660009081526007602052604090205460ff165b919050565b63603a88a081565b6003545b90565b6a021165458500521280000081565b6000546001600160a01b0316331461088e5760405162461bcd60e51b8152600401610885906118f0565b60405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b60006108ba84611212565b6108c357600080fd5b336000908152600860209081526040808320600201546001600160a01b03881684526001909252909120546108f89190611aa9565b82111561090457600080fd5b61090f848484611292565b949350505050565b614e2081565b60016020526000908152604090205481565b60055460ff1681565b63604ea37f81565b60035481565b60115481565b3360009081526001602052604081205482111561097b5760405162461bcd60e51b81526004016108859061198b565b3360009081526001602052604090205461099590836113eb565b336000908152600160205260409020556003546109b290836113eb565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906109e7908590611a25565b60405180910390a2506001919050565b6000546001600160a01b03163314610a215760405162461bcd60e51b8152600401610885906118f0565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b600954600160a01b900460ff1681565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610885906118f0565b60098054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b031660009081526001602052604090205490565b600e5481565b60086020526000908152604090208054600182015460029092015490919083565b6001600160a01b03811660009081526008602052604081205462278d0090610b249042611aa9565b610b2e9190611a6a565b905060148110610b59576001600160a01b038216600090815260086020526040812060020155610bd0565b6001600160a01b0382166000908152600860205260409020600101548190610b8390601490611a6a565b610b8d9190611a8a565b6001600160a01b038316600090815260086020526040902060010154610bb39190611aa9565b6001600160a01b0383166000908152600860205260409020600201555b5050565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b8152600401610885906118f0565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b600f5481565b60076020526000908152604090205460ff1681565b6006805461073090611ac0565b600a6020526000908152604090205460ff1681565b60115442118015610c805750636032f3ff42105b80610c9c575063603a88a042118015610c9c575063604ea37f42105b610cb85760405162461bcd60e51b81526004016108859061191d565b3466b1a2bc2ec50000811015610ccd57600080fd5b60008060115442118015610ce45750636032f3ff42105b15610d4057610cf583614e20611a8a565b905080600e6000828254610d099190611a52565b9091555050600e546a02116545850052128000001015610d3b5760405162461bcd60e51b8152600401610885906119ee565b610d97565b610d4c83613a98611a8a565b905080600f6000828254610d609190611a52565b9091555050600f546a06342fd08f00f6378000001015610d925760405162461bcd60e51b8152600401610885906119ee565b600191505b600d546001600160a01b0316600090815260016020526040902054610dbc90826113eb565b600d546001600160a01b0316600090815260016020526040808220929092553381522054610dea908261142d565b336000908152600160208190526040909120919091558215151415610e2457336000908152600760205260409020805460ff191660011790555b600d546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050610e5657600080fd5b600d5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e95908590611a25565b60405180910390a3600f546a06342fd08f00f637800000148015610ebc575063604514a042105b15610eea57610ece62278d0042611aa9565b6010546001600160a01b03166000908152600860205260409020555b505050565b6000546001600160a01b03163314610f195760405162461bcd60e51b8152600401610885906118f0565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205481565b6000610f9133611212565b610f9a57600080fd5b33600090815260086020908152604080832060020154600190925290912054610fc39190611aa9565b821115610fcf57600080fd5b610fd9838361145c565b9392505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b8152600401610885906118f0565b63604ea37f421161101a57600080fd5b600d546001600160a01b03166000908152600160205260408120805491905560035461104690826113eb565b600355600d546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590611088908490611a25565b60405180910390a250565b613a9881565b636032f3ff81565b6001600160a01b031660009081526008602052604090206002015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611118908790611a25565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb19061115490339088903090899060040161185e565b602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906117cb565b6111af57600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600d546001600160a01b031681565b6009546001600160a01b031681565b600061121c611548565b151560011461122a57600080fd5b6001600160a01b03821660009081526007602052604090205460ff1615156001141561128a57600c5442111561128257506001600160a01b0381166000908152600760205260409020805460ff191690556001610838565b506000610838565b506001610838565b60006001600160a01b0383166112ba5760405162461bcd60e51b8152600401610885906119b7565b6001600160a01b0384166000908152600160205260409020548211156112f25760405162461bcd60e51b81526004016108859061198b565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156113355760405162461bcd60e51b8152600401610885906118b9565b6001600160a01b03841660009081526001602052604090205461135890836113eb565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611387908361142d565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d9908690611a25565b60405180910390a35060019392505050565b6000610fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115eb565b60008061143a8385611a52565b905083811015610fd95760405162461bcd60e51b815260040161088590611954565b60006001600160a01b0383166114845760405162461bcd60e51b8152600401610885906119b7565b336000908152600160205260409020548211156114b35760405162461bcd60e51b81526004016108859061198b565b336000908152600160205260409020546114cd90836113eb565b33600090815260016020526040808220929092556001600160a01b038516815220546114f9908361142d565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061080a908690611a25565b60003361155481611625565b156115e157600954600160a01b900460ff161515600114801561159057506001600160a01b0381166000908152600a602052604090205460ff16155b156115e1576001600160a01b0381166000908152600b60205260409020544314156115bf576000915050610849565b6001600160a01b03166000908152600b60205260409020439055506001610849565b6001915050610849565b6000818484111561160f5760405162461bcd60e51b815260040161088591906118a6565b50600061161c8486611aa9565b95945050505050565b3b151590565b80356001600160a01b038116811461083857600080fd5b600060208284031215611653578081fd5b610fd98261162b565b6000806040838503121561166e578081fd5b6116778361162b565b91506116856020840161162b565b90509250929050565b6000806000606084860312156116a2578081fd5b6116ab8461162b565b92506116b96020850161162b565b9150604084013590509250925092565b600080604083850312156116db578182fd5b6116e48361162b565b946020939093013593505050565b600080600060608486031215611706578283fd5b61170f8461162b565b92506020808501359250604085013567ffffffffffffffff80821115611733578384fd5b818701915087601f830112611746578384fd5b81358181111561175857611758611b11565b604051601f8201601f191681018501838111828210171561177b5761177b611b11565b60405281815283820185018a1015611791578586fd5b81858501868301378585838301015280955050505050509250925092565b6000602082840312156117c0578081fd5b8135610fd981611b27565b6000602082840312156117dc578081fd5b8151610fd981611b27565b6000602082840312156117f8578081fd5b5035919050565b60008151808452815b8181101561182457602081850181015186830182015201611808565b818111156118355782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682526020820185905283166040820152608060608201819052600090611891908301846117ff565b9695505050505050565b901515815260200190565b600060208252610fd960208301846117ff565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611a6557611a65611afb565b500190565b600082611a8557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611aa457611aa4611afb565b500290565b600082821015611abb57611abb611afb565b500390565b600281046001821680611ad457607f821691505b60208210811415611af557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114611b3557600080fd5b5056fea2646970667358221220d2d1e73dcd1fb863b5cd91ccaf8763878674e069d3ffa107fb03575b4a258fb264736f6c63430008000033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061025c5760003560e01c80637147f70011610144578063a7411c92116100b6578063c40868931161007a578063c40868931461067e578063cae9ca511461069e578063dd62ed3e146106be578063df878f0b146106de578063edf4d847146106f3578063fa2af9da146107085761025c565b8063a7411c92146105ff578063a9059cbb1461061f578063b52a58511461063f578063bdb97e8914610654578063beda6ab6146106695761025c565b80638e762ff9116101085780638e762ff91461056d5780639533d8d41461058257806395d89b41146105a2578063a4b99ea8146105b7578063a6f2ae3a146105d7578063a6f9dae1146105df5761025c565b80637147f700146104c75780637f76b223146104dc57806387b0be481461050b5780638831e9cf1461052b578063893d20e81461054b5761025c565b806327e235e3116101dd57806342966c68116101a157806342966c68146104125780634412d552146104325780635c658165146104525780635d4ccdcb146104725780636a4b86c91461048757806370a08231146104a75761025c565b806327e235e314610391578063313ce567146103b157806337150140146103d35780633eaaf86b146103e857806340e687a8146103fd5761025c565b806318160ddd1161022457806318160ddd1461031057806319c741f2146103255780632042e5c21461033a57806323b872dd1461035c578063250f3f851461037c5761025c565b8063031d769f1461026157806306fdde031461028c578063095ea7b3146102ae5780630c0c91a2146102db57806313ddb69a146102fb575b600080fd5b34801561026d57600080fd5b5061027661071d565b6040516102839190611a25565b60405180910390f35b34801561029857600080fd5b506102a1610723565b60405161028391906118a6565b3480156102ba57600080fd5b506102ce6102c93660046116c9565b6107b1565b604051610283919061189b565b3480156102e757600080fd5b506102ce6102f6366004611642565b61081b565b34801561030757600080fd5b5061027661083d565b34801561031c57600080fd5b50610276610845565b34801561033157600080fd5b5061027661084c565b34801561034657600080fd5b5061035a610355366004611642565b61085b565b005b34801561036857600080fd5b506102ce61037736600461168e565b6108af565b34801561038857600080fd5b50610276610917565b34801561039d57600080fd5b506102766103ac366004611642565b61091d565b3480156103bd57600080fd5b506103c661092f565b6040516102839190611a44565b3480156103df57600080fd5b50610276610938565b3480156103f457600080fd5b50610276610940565b34801561040957600080fd5b50610276610946565b34801561041e57600080fd5b506102ce61042d3660046117e7565b61094c565b34801561043e57600080fd5b5061035a61044d366004611642565b6109f7565b34801561045e57600080fd5b5061027661046d36600461165c565b610a45565b34801561047e57600080fd5b506102ce610a62565b34801561049357600080fd5b5061035a6104a23660046117af565b610a72565b3480156104b357600080fd5b506102766104c2366004611642565b610aba565b3480156104d357600080fd5b50610276610ad5565b3480156104e857600080fd5b506104fc6104f7366004611642565b610adb565b60405161028393929190611a2e565b34801561051757600080fd5b5061035a610526366004611642565b610afc565b34801561053757600080fd5b5061035a610546366004611642565b610bd4565b34801561055757600080fd5b50610560610c20565b604051610283919061184a565b34801561057957600080fd5b50610276610c2f565b34801561058e57600080fd5b506102ce61059d366004611642565b610c35565b3480156105ae57600080fd5b506102a1610c4a565b3480156105c357600080fd5b506102ce6105d2366004611642565b610c57565b61035a610c6c565b3480156105eb57600080fd5b5061035a6105fa366004611642565b610eef565b34801561060b57600080fd5b5061027661061a366004611642565b610f74565b34801561062b57600080fd5b506102ce61063a3660046116c9565b610f86565b34801561064b57600080fd5b5061035a610fe0565b34801561066057600080fd5b50610276611093565b34801561067557600080fd5b50610276611099565b34801561068a57600080fd5b50610276610699366004611642565b6110a1565b3480156106aa57600080fd5b506102ce6106b93660046116f2565b6110bf565b3480156106ca57600080fd5b506102766106d936600461165c565b6111ba565b3480156106ea57600080fd5b506102766111e5565b3480156106ff57600080fd5b506105606111f4565b34801561071457600080fd5b50610560611203565b600c5481565b6004805461073090611ac0565b80601f016020809104026020016040519081016040528092919081815260200182805461075c90611ac0565b80156107a95780601f1061077e576101008083540402835291602001916107a9565b820191906000526020600020905b81548152906001019060200180831161078c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061080a908690611a25565b60405180910390a350600192915050565b6001600160a01b03811660009081526007602052604090205460ff165b919050565b63603a88a081565b6003545b90565b6a021165458500521280000081565b6000546001600160a01b0316331461088e5760405162461bcd60e51b8152600401610885906118f0565b60405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b60006108ba84611212565b6108c357600080fd5b336000908152600860209081526040808320600201546001600160a01b03881684526001909252909120546108f89190611aa9565b82111561090457600080fd5b61090f848484611292565b949350505050565b614e2081565b60016020526000908152604090205481565b60055460ff1681565b63604ea37f81565b60035481565b60115481565b3360009081526001602052604081205482111561097b5760405162461bcd60e51b81526004016108859061198b565b3360009081526001602052604090205461099590836113eb565b336000908152600160205260409020556003546109b290836113eb565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906109e7908590611a25565b60405180910390a2506001919050565b6000546001600160a01b03163314610a215760405162461bcd60e51b8152600401610885906118f0565b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b600954600160a01b900460ff1681565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b8152600401610885906118f0565b60098054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b031660009081526001602052604090205490565b600e5481565b60086020526000908152604090208054600182015460029092015490919083565b6001600160a01b03811660009081526008602052604081205462278d0090610b249042611aa9565b610b2e9190611a6a565b905060148110610b59576001600160a01b038216600090815260086020526040812060020155610bd0565b6001600160a01b0382166000908152600860205260409020600101548190610b8390601490611a6a565b610b8d9190611a8a565b6001600160a01b038316600090815260086020526040902060010154610bb39190611aa9565b6001600160a01b0383166000908152600860205260409020600201555b5050565b6000546001600160a01b03163314610bfe5760405162461bcd60e51b8152600401610885906118f0565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b600f5481565b60076020526000908152604090205460ff1681565b6006805461073090611ac0565b600a6020526000908152604090205460ff1681565b60115442118015610c805750636032f3ff42105b80610c9c575063603a88a042118015610c9c575063604ea37f42105b610cb85760405162461bcd60e51b81526004016108859061191d565b3466b1a2bc2ec50000811015610ccd57600080fd5b60008060115442118015610ce45750636032f3ff42105b15610d4057610cf583614e20611a8a565b905080600e6000828254610d099190611a52565b9091555050600e546a02116545850052128000001015610d3b5760405162461bcd60e51b8152600401610885906119ee565b610d97565b610d4c83613a98611a8a565b905080600f6000828254610d609190611a52565b9091555050600f546a06342fd08f00f6378000001015610d925760405162461bcd60e51b8152600401610885906119ee565b600191505b600d546001600160a01b0316600090815260016020526040902054610dbc90826113eb565b600d546001600160a01b0316600090815260016020526040808220929092553381522054610dea908261142d565b336000908152600160208190526040909120919091558215151415610e2457336000908152600760205260409020805460ff191660011790555b600d546040516001600160a01b039091169084156108fc029085906000818181858888f19350505050610e5657600080fd5b600d5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e95908590611a25565b60405180910390a3600f546a06342fd08f00f637800000148015610ebc575063604514a042105b15610eea57610ece62278d0042611aa9565b6010546001600160a01b03166000908152600860205260409020555b505050565b6000546001600160a01b03163314610f195760405162461bcd60e51b8152600401610885906118f0565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600b6020526000908152604090205481565b6000610f9133611212565b610f9a57600080fd5b33600090815260086020908152604080832060020154600190925290912054610fc39190611aa9565b821115610fcf57600080fd5b610fd9838361145c565b9392505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b8152600401610885906118f0565b63604ea37f421161101a57600080fd5b600d546001600160a01b03166000908152600160205260408120805491905560035461104690826113eb565b600355600d546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590611088908490611a25565b60405180910390a250565b613a9881565b636032f3ff81565b6001600160a01b031660009081526008602052604090206002015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611118908790611a25565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb19061115490339088903090899060040161185e565b602060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a691906117cb565b6111af57600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600d546001600160a01b031681565b6009546001600160a01b031681565b600061121c611548565b151560011461122a57600080fd5b6001600160a01b03821660009081526007602052604090205460ff1615156001141561128a57600c5442111561128257506001600160a01b0381166000908152600760205260409020805460ff191690556001610838565b506000610838565b506001610838565b60006001600160a01b0383166112ba5760405162461bcd60e51b8152600401610885906119b7565b6001600160a01b0384166000908152600160205260409020548211156112f25760405162461bcd60e51b81526004016108859061198b565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156113355760405162461bcd60e51b8152600401610885906118b9565b6001600160a01b03841660009081526001602052604090205461135890836113eb565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611387908361142d565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d9908690611a25565b60405180910390a35060019392505050565b6000610fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115eb565b60008061143a8385611a52565b905083811015610fd95760405162461bcd60e51b815260040161088590611954565b60006001600160a01b0383166114845760405162461bcd60e51b8152600401610885906119b7565b336000908152600160205260409020548211156114b35760405162461bcd60e51b81526004016108859061198b565b336000908152600160205260409020546114cd90836113eb565b33600090815260016020526040808220929092556001600160a01b038516815220546114f9908361142d565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061080a908690611a25565b60003361155481611625565b156115e157600954600160a01b900460ff161515600114801561159057506001600160a01b0381166000908152600a602052604090205460ff16155b156115e1576001600160a01b0381166000908152600b60205260409020544314156115bf576000915050610849565b6001600160a01b03166000908152600b60205260409020439055506001610849565b6001915050610849565b6000818484111561160f5760405162461bcd60e51b815260040161088591906118a6565b50600061161c8486611aa9565b95945050505050565b3b151590565b80356001600160a01b038116811461083857600080fd5b600060208284031215611653578081fd5b610fd98261162b565b6000806040838503121561166e578081fd5b6116778361162b565b91506116856020840161162b565b90509250929050565b6000806000606084860312156116a2578081fd5b6116ab8461162b565b92506116b96020850161162b565b9150604084013590509250925092565b600080604083850312156116db578182fd5b6116e48361162b565b946020939093013593505050565b600080600060608486031215611706578283fd5b61170f8461162b565b92506020808501359250604085013567ffffffffffffffff80821115611733578384fd5b818701915087601f830112611746578384fd5b81358181111561175857611758611b11565b604051601f8201601f191681018501838111828210171561177b5761177b611b11565b60405281815283820185018a1015611791578586fd5b81858501868301378585838301015280955050505050509250925092565b6000602082840312156117c0578081fd5b8135610fd981611b27565b6000602082840312156117dc578081fd5b8151610fd981611b27565b6000602082840312156117f8578081fd5b5035919050565b60008151808452815b8181101561182457602081850181015186830182015201611808565b818111156118355782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682526020820185905283166040820152608060608201819052600090611891908301846117ff565b9695505050505050565b901515815260200190565b600060208252610fd960208301846117ff565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60008219821115611a6557611a65611afb565b500190565b600082611a8557634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611aa457611aa4611afb565b500290565b600082821015611abb57611abb611afb565b500390565b600281046001821680611ad457607f821691505b60208210811415611af557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8015158114611b3557600080fd5b5056fea2646970667358221220d2d1e73dcd1fb863b5cd91ccaf8763878674e069d3ffa107fb03575b4a258fb264736f6c63430008000033

Deployed Bytecode Sourcemap

4143:8760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4752:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4230:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3746:223::-;;;;;;;;;;-1:-1:-1;3746:223:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10688:125::-;;;;;;;;;;-1:-1:-1;10688:125:0;;;;;:::i;:::-;;:::i;5123:52::-;;;;;;;;;;;;;:::i;2437:107::-;;;;;;;;;;;;;:::i;5349:53::-;;;;;;;;;;;;;:::i;10545:131::-;;;;;;;;;;-1:-1:-1;10545:131:0;;;;;:::i;:::-;;:::i;:::-;;7529:292;;;;;;;;;;-1:-1:-1;7529:292:0;;;;;:::i;:::-;;:::i;5239:48::-;;;;;;;;;;;;;:::i;2101:44::-;;;;;;;;;;-1:-1:-1;2101:44:0;;;;;:::i;:::-;;:::i;4270:26::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5182:50::-;;;;;;;;;;;;;:::i;2223:27::-;;;;;;;;;;;;;:::i;5007:50::-;;;;;;;;;;;;;:::i;7833:362::-;;;;;;;;;;-1:-1:-1;7833:362:0;;;;;:::i;:::-;;:::i;10402:131::-;;;;;;;;;;-1:-1:-1;10402:131:0;;;;;:::i;:::-;;:::i;2152:64::-;;;;;;;;;;-1:-1:-1;2152:64:0;;;;;:::i;:::-;;:::i;4610:26::-;;;;;;;;;;;;;:::i;10291:99::-;;;;;;;;;;-1:-1:-1;10291:99:0;;;;;:::i;:::-;;:::i;3614:124::-;;;;;;;;;;-1:-1:-1;3614:124:0;;;;;:::i;:::-;;:::i;4903:26::-;;;;;;;;;;;;;:::i;4514:46::-;;;;;;;;;;-1:-1:-1;4514:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;8623:383::-;;;;;;;;;;-1:-1:-1;8623:383:0;;;;;:::i;:::-;;:::i;10825:129::-;;;;;;;;;;-1:-1:-1;10825:129:0;;;;;:::i;:::-;;:::i;1927:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4936:26::-;;;;;;;;;;;;;:::i;4339:46::-;;;;;;;;;;-1:-1:-1;4339:46:0;;;;;:::i;:::-;;:::i;4303:29::-;;;;;;;;;;;;;:::i;4643:51::-;;;;;;;;;;-1:-1:-1;4643:51:0;;;;;:::i;:::-;;:::i;11140:1453::-;;;:::i;1787:132::-;;;;;;;;;;-1:-1:-1;1787:132:0;;;;;:::i;:::-;;:::i;4701:44::-;;;;;;;;;;-1:-1:-1;4701:44:0;;;;;:::i;:::-;;:::i;7245:272::-;;;;;;;;;;-1:-1:-1;7245:272:0;;;;;:::i;:::-;;:::i;12605:295::-;;;;;;;;;;;;;:::i;5294:48::-;;;;;;;;;;;;;:::i;5064:52::-;;;;;;;;;;;;;:::i;10962:145::-;;;;;;;;;;-1:-1:-1;10962:145:0;;;;;:::i;:::-;;:::i;8207:402::-;;;;;;;;;;-1:-1:-1;8207:402:0;;;;;:::i;:::-;;:::i;3977:153::-;;;;;;;;;;-1:-1:-1;3977:153:0;;;;;:::i;:::-;;:::i;5409:53::-;;;;;;;;;;;;;:::i;4860:34::-;;;;;;;;;;;;;:::i;4574:29::-;;;;;;;;;;;;;:::i;4752:28::-;;;;:::o;4230:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3746:223::-;3855:10;3822:12;3847:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3847:29:0;;;;;;;;;;:38;;;3901;3822:12;;3847:29;;3901:38;;;;3879:6;;3901:38;:::i;:::-;;;;;;;;-1:-1:-1;3957:4:0;3746:223;;;;:::o;10688:125::-;-1:-1:-1;;;;;10783:22:0;;10750:13;10783:22;;;:13;:22;;;;;;;;10688:125;;;;:::o;5123:52::-;5165:10;5123:52;:::o;2437:107::-;2524:12;;2437:107;;:::o;5349:53::-;5389:13;5349:53;:::o;10545:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10624:36:0::1;10663:5;10624:36:::0;;;:18:::1;:36;::::0;;;;:44;;-1:-1:-1;;10624:44:0::1;::::0;;10545:131::o;7529:292::-;7620:12;7653:18;7665:5;7653:11;:18::i;:::-;7645:27;;;;;;7730:10;7720:21;;;;:9;:21;;;;;;;;:35;;;-1:-1:-1;;;;;7702:15:0;;;;:8;:15;;;;;;;:53;;7720:35;7702:53;:::i;:::-;7691:6;:65;;7683:74;;;;;;7775:38;7794:5;7801:3;7806:6;7775:18;:38::i;:::-;7768:45;7529:292;-1:-1:-1;;;;7529:292:0:o;5239:48::-;5282:5;5239:48;:::o;2101:44::-;;;;;;;;;;;;;:::o;4270:26::-;;;;;;:::o;5182:50::-;5222:10;5182:50;:::o;2223:27::-;;;;:::o;5007:50::-;;;;:::o;7833:362::-;7921:10;7879:12;7912:20;;;:8;:20;;;;;;:30;-1:-1:-1;7912:30:0;7904:61;;;;-1:-1:-1;;;7904:61:0;;;;;;;:::i;:::-;8052:10;8043:20;;;;:8;:20;;;;;;:32;;8068:6;8043:24;:32::i;:::-;8029:10;8020:20;;;;:8;:20;;;;;:55;8101:12;;:24;;8118:6;8101:16;:24::i;:::-;8086:12;:39;8141:24;;8146:10;;8141:24;;;;8158:6;;8141:24;:::i;:::-;;;;;;;;-1:-1:-1;8183:4:0;7833:362;;;:::o;10402:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10482:36:0::1;;::::0;;;:18:::1;:36;::::0;;;;:43;;-1:-1:-1;;10482:43:0::1;10521:4;10482:43;::::0;;10402:131::o;2152:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4610:26::-;;;-1:-1:-1;;;4610:26:0;;;;;:::o;10291:99::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10359:14:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;10359:23:0::1;-1:-1:-1::0;;;;10359:23:0;;::::1;::::0;;;::::1;::::0;;10291:99::o;3614:124::-;-1:-1:-1;;;;;3714:16:0;3679:15;3714:16;;;:8;:16;;;;;;;3614:124::o;4903:26::-;;;;:::o;4514:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8623:383::-;-1:-1:-1;;;;;8714:19:0;;8682:10;8714:19;;;:9;:19;;;;;:32;8751:7;;8696:50;;:15;:50;:::i;:::-;8695:64;;;;:::i;:::-;8682:77;;8782:2;8774:5;:10;8770:229;;-1:-1:-1;;;;;8801:19:0;;8837:1;8801:19;;;:9;:19;;;;;:33;;:37;8770:229;;;-1:-1:-1;;;;;8943:19:0;;;;;;:9;:19;;;;;:31;;;8981:5;;8943:34;;8975:2;;8943:34;:::i;:::-;8942:44;;;;:::i;:::-;-1:-1:-1;;;;;8907:19:0;;;;;;:9;:19;;;;;:31;;;:80;;;;:::i;:::-;-1:-1:-1;;;;;8871:19:0;;;;;;:9;:19;;;;;:33;;:116;8770:229;8623:383;;:::o;10825:129::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10905:14:::1;:41:::0;;-1:-1:-1;;;;;;10905:41:0::1;-1:-1:-1::0;;;;;10905:41:0;;;::::1;::::0;;;::::1;::::0;;10825:129::o;1927:83::-;1970:7;1997:5;-1:-1:-1;;;;;1997:5:0;1927:83;:::o;4936:26::-;;;;:::o;4339:46::-;;;;;;;;;;;;;;;:::o;4303:29::-;;;;;;;:::i;4643:51::-;;;;;;;;;;;;;;;:::o;11140:1453::-;11209:17;;11191:15;:35;11190:76;;;;;5106:10;11232:15;:33;11190:76;11189:156;;;;5165:10;11273:15;:33;11272:72;;;;;5222:10;11312:15;:31;11272:72;11181:199;;;;-1:-1:-1;;;11181:199:0;;;;;;;:::i;:::-;11407:9;11448:14;11435:28;;;11427:37;;;;;;11475:16;11510:11;11559:17;;11541:15;:35;11540:76;;;;;5106:10;11582:15;:33;11540:76;11536:499;;;11642:27;11661:8;5282:5;11642:27;:::i;:::-;11633:36;;11699:6;11684:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;11729:11:0;;5389:13;-1:-1:-1;11728:32:0;11720:75;;;;-1:-1:-1;;;11720:75:0;;;;;;;:::i;:::-;11536:499;;;11837:27;11856:8;5337:5;11837:27;:::i;:::-;11828:36;;11894:6;11879:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;11924:11:0;;5449:13;-1:-1:-1;11923:32:0;11915:75;;;;-1:-1:-1;;;11915:75:0;;;;;;;:::i;:::-;12019:4;12005:18;;11536:499;12080:11;;-1:-1:-1;;;;;12080:11:0;12071:21;;;;:8;:21;;;;;;:33;;12097:6;12071:25;:33::i;:::-;12056:11;;-1:-1:-1;;;;;12056:11:0;12047:21;;;;:8;:21;;;;;;:57;;;;12147:10;12138:20;;;;:32;;12163:6;12138:24;:32::i;:::-;12124:10;12115:20;;;;:8;:20;;;;;;;;:55;;;;12186:19;;;;12181:58;;;12221:10;12207:25;;;;:13;:25;;;;;:32;;-1:-1:-1;;12207:32:0;12235:4;12207:32;;;12181:58;12258:11;;:26;;-1:-1:-1;;;;;12258:11:0;;;;:26;;;;;12275:8;;12258:11;:26;:11;:26;12275:8;12258:11;:26;;;;;;;12250:35;;;;;;12310:11;;12301:41;;12323:10;;-1:-1:-1;;;;;12310:11:0;;12301:41;;;;12335:6;;12301:41;:::i;:::-;;;;;;;;12374:11;;5449:13;12357:28;:60;;;;;12407:10;12389:15;:28;12357:60;12353:231;;;12547:25;12565:7;12547:15;:25;:::i;:::-;12515:15;;-1:-1:-1;;;;;12515:15:0;12505:26;;;;:9;:26;;;;;:67;12353:231;11140:1453;;;:::o;1787:132::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;1868:5:::1;::::0;;1859:25:::1;::::0;-1:-1:-1;;;;;1859:25:0;;::::1;::::0;1868:5;::::1;::::0;1859:25:::1;::::0;::::1;1895:5;:16:::0;;-1:-1:-1;;;;;;1895:16:0::1;-1:-1:-1::0;;;;;1895:16:0;;;::::1;::::0;;;::::1;::::0;;1787:132::o;4701:44::-;;;;;;;;;;;;;:::o;7245:272::-;7317:12;7350:23;7362:10;7350:11;:23::i;:::-;7342:32;;;;;;7437:10;7427:21;;;;:9;:21;;;;;;;;:35;;;7404:8;:20;;;;;;;:58;;7427:35;7404:58;:::i;:::-;7393:6;:70;;7385:79;;;;;;7482:27;7497:3;7502:6;7482:14;:27::i;:::-;7475:34;7245:272;-1:-1:-1;;;7245:272:0:o;12605:295::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;5222:10:::1;12663:15;:31;12655:40;;;::::0;::::1;;12737:11;::::0;-1:-1:-1;;;;;12737:11:0::1;12706:19;12728:21:::0;;;:8:::1;:21;::::0;;;;;;12760:25;;;12811:12:::1;::::0;:32:::1;::::0;12728:21;12811:16:::1;:32::i;:::-;12796:12;:47:::0;12864:11:::1;::::0;12859:33:::1;::::0;-1:-1:-1;;;;;12864:11:0;;::::1;::::0;12859:33:::1;::::0;::::1;::::0;12877:14;;12859:33:::1;:::i;:::-;;;;;;;;1587:1;12605:295::o:0;5294:48::-;5337:5;5294:48;:::o;5064:52::-;5106:10;5064:52;:::o;10962:145::-;-1:-1:-1;;;;;11067:18:0;11026:21;11067:18;;;:9;:18;;;;;:32;;;;10962:145::o;8207:402::-;8339:10;8306:12;8331:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8331:29:0;;;;;;;;;;:38;;;8385;8306:12;;8331:29;;8385:38;;;;8363:6;;8385:38;:::i;:::-;;;;;;;;8506:72;;-1:-1:-1;;;8506:72:0;;8478:8;;-1:-1:-1;;;;;8506:25:0;;;;;:72;;8532:10;;8544:6;;8560:4;;8567:10;;8506:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8498:81;;;;;;-1:-1:-1;8597:4:0;;8207:402;-1:-1:-1;;;;8207:402:0:o;3977:153::-;-1:-1:-1;;;;;4097:15:0;;;4060:17;4097:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;3977:153::o;5409:53::-;5449:13;5409:53;:::o;4860:34::-;;;-1:-1:-1;;;;;4860:34:0;;:::o;4574:29::-;;;-1:-1:-1;;;;;4574:29:0;;:::o;9018:421::-;9073:4;9098:20;:18;:20::i;:::-;:28;;9122:4;9098:28;9090:37;;;;;;-1:-1:-1;;;;;9142:22:0;;;;;;:13;:22;;;;;;;;:30;;:22;:30;9138:294;;;9211:16;;9193:15;:34;9189:188;;;-1:-1:-1;;;;;;9248:22:0;;9273:5;9248:22;;;:13;:22;;;;;:30;;-1:-1:-1;;9248:30:0;;;;9297:11;;9189:188;-1:-1:-1;9356:5:0;9349:12;;9138:294;-1:-1:-1;9416:4:0;9409:11;;3041:565;3140:12;-1:-1:-1;;;;;3173:19:0;;3165:57;;;;-1:-1:-1;;;3165:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3310:15:0;;;;;;:8;:15;;;;;;:25;-1:-1:-1;3310:25:0;3302:56;;;;-1:-1:-1;;;3302:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3371:14:0;;;;;;:7;:14;;;;;;;;3386:10;3371:26;;;;;;;;:36;-1:-1:-1;3371:36:0;3363:79;;;;-1:-1:-1;;;3363:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3465:15:0;;;;;;:8;:15;;;;;;:27;;3485:6;3465:19;:27::i;:::-;-1:-1:-1;;;;;3447:15:0;;;;;;;:8;:15;;;;;;:45;;;;3513:13;;;;;;;:25;;3531:6;3513:17;:25::i;:::-;-1:-1:-1;;;;;3497:13:0;;;;;;;:8;:13;;;;;;;:41;;;;3548:28;;;;;;;;;;3569:6;;3548:28;:::i;:::-;;;;;;;;-1:-1:-1;3594:4:0;3041:565;;;;;:::o;277:136::-;335:7;362:43;366:1;369;362:43;;;;;;;;;;;;;;;;;:3;:43::i;88:181::-;146:7;;178:5;182:1;178;:5;:::i;:::-;166:17;;207:1;202;:6;;194:46;;;;-1:-1:-1;;;194:46:0;;;;;;;:::i;2552:481::-;2632:12;-1:-1:-1;;;;;2665:19:0;;2657:57;;;;-1:-1:-1;;;2657:57:0;;;;;;;:::i;:::-;2810:10;2801:20;;;;:8;:20;;;;;;:30;-1:-1:-1;2801:30:0;2793:61;;;;-1:-1:-1;;;2793:61:0;;;;;;;:::i;:::-;2891:10;2882:20;;;;:8;:20;;;;;;:32;;2907:6;2882:24;:32::i;:::-;2868:10;2859:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;2935:13:0;;;;;;:25;;2953:6;2935:17;:25::i;:::-;-1:-1:-1;;;;;2919:13:0;;;;;;:8;:13;;;;;;;:41;;;;2970:33;;2979:10;;2970:33;;;;2996:6;;2970:33;:::i;9694:585::-;9742:14;9787:10;9812:19;9787:10;9812;:19::i;:::-;9808:464;;;9852:14;;-1:-1:-1;;;9852:14:0;;;;:22;;9870:4;9852:22;:62;;;;-1:-1:-1;;;;;;9878:27:0;;;;;;:18;:27;;;;;;;;:36;9852:62;9848:369;;;-1:-1:-1;;;;;9939:20:0;;;;;;:11;:20;;;;;;9963:12;9939:36;9935:215;;;10007:5;10000:12;;;;;9935:215;-1:-1:-1;;;;;10061:20:0;;;;;:11;:20;;;;;10084:12;10061:35;;-1:-1:-1;10126:4:0;10119:11;;9848:369;10197:4;10190:11;;;;;421:192;507:7;543:12;535:6;;;;527:29;;;;-1:-1:-1;;;527:29:0;;;;;;;;:::i;:::-;-1:-1:-1;567:9:0;579:5;583:1;579;:5;:::i;:::-;567:17;421:192;-1:-1:-1;;;;;421:192:0:o;9451:231::-;9627:20;9666:8;;;9451:231::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:1101::-;;;;1449:2;1437:9;1428:7;1424:23;1420:32;1417:2;;;1470:6;1462;1455:22;1417:2;1498:31;1519:9;1498:31;:::i;:::-;1488:41;;1548:2;1597;1586:9;1582:18;1569:32;1559:42;;1652:2;1641:9;1637:18;1624:32;1675:18;1716:2;1708:6;1705:14;1702:2;;;1737:6;1729;1722:22;1702:2;1780:6;1769:9;1765:22;1755:32;;1825:7;1818:4;1814:2;1810:13;1806:27;1796:2;;1852:6;1844;1837:22;1796:2;1893;1880:16;1915:2;1911;1908:10;1905:2;;;1921:18;;:::i;:::-;1970:2;1964:9;2039:2;2020:13;;-1:-1:-1;;2016:27:1;2004:40;;2000:49;;2064:18;;;2084:22;;;2061:46;2058:2;;;2110:18;;:::i;:::-;2146:2;2139:22;2170:18;;;2207:11;;;2203:20;;2200:33;-1:-1:-1;2197:2:1;;;2251:6;2243;2236:22;2197:2;2312;2307;2303;2299:11;2294:2;2286:6;2282:15;2269:46;2357:6;2352:2;2347;2339:6;2335:15;2331:24;2324:40;2383:6;2373:16;;;;;;;1407:988;;;;;:::o;2400:253::-;;2509:2;2497:9;2488:7;2484:23;2480:32;2477:2;;;2530:6;2522;2515:22;2477:2;2574:9;2561:23;2593:30;2617:5;2593:30;:::i;2658:257::-;;2778:2;2766:9;2757:7;2753:23;2749:32;2746:2;;;2799:6;2791;2784:22;2746:2;2836:9;2830:16;2855:30;2879:5;2855:30;:::i;2920:190::-;;3032:2;3020:9;3011:7;3007:23;3003:32;3000:2;;;3053:6;3045;3038:22;3000:2;-1:-1:-1;3081:23:1;;2990:120;-1:-1:-1;2990:120:1:o;3115:477::-;;3196:5;3190:12;3223:6;3218:3;3211:19;3248:3;3260:162;3274:6;3271:1;3268:13;3260:162;;;3336:4;3392:13;;;3388:22;;3382:29;3364:11;;;3360:20;;3353:59;3289:12;3260:162;;;3440:6;3437:1;3434:13;3431:2;;;3506:3;3499:4;3490:6;3485:3;3481:16;3477:27;3470:40;3431:2;-1:-1:-1;3574:2:1;3553:15;-1:-1:-1;;3549:29:1;3540:39;;;;3581:4;3536:50;;3166:426;-1:-1:-1;;3166:426:1:o;3597:203::-;-1:-1:-1;;;;;3761:32:1;;;;3743:51;;3731:2;3716:18;;3698:102::o;4029:490::-;-1:-1:-1;;;;;4298:15:1;;;4280:34;;4345:2;4330:18;;4323:34;;;4393:15;;4388:2;4373:18;;4366:43;4445:3;4440:2;4425:18;;4418:31;;;4029:490;;4466:47;;4493:19;;4485:6;4466:47;:::i;:::-;4458:55;4232:287;-1:-1:-1;;;;;;4232:287:1:o;4524:187::-;4689:14;;4682:22;4664:41;;4652:2;4637:18;;4619:92::o;4716:221::-;;4865:2;4854:9;4847:21;4885:46;4927:2;4916:9;4912:18;4904:6;4885:46;:::i;4942:354::-;5144:2;5126:21;;;5183:2;5163:18;;;5156:30;5222:32;5217:2;5202:18;;5195:60;5287:2;5272:18;;5116:180::o;5301:343::-;5503:2;5485:21;;;5542:2;5522:18;;;5515:30;-1:-1:-1;;;5576:2:1;5561:18;;5554:49;5635:2;5620:18;;5475:169::o;5992:354::-;6194:2;6176:21;;;6233:2;6213:18;;;6206:30;6272:32;6267:2;6252:18;;6245:60;6337:2;6322:18;;6166:180::o;6351:351::-;6553:2;6535:21;;;6592:2;6572:18;;;6565:30;6631:29;6626:2;6611:18;;6604:57;6693:2;6678:18;;6525:177::o;6707:342::-;6909:2;6891:21;;;6948:2;6928:18;;;6921:30;-1:-1:-1;;;6982:2:1;6967:18;;6960:48;7040:2;7025:18;;6881:168::o;7054:349::-;7256:2;7238:21;;;7295:2;7275:18;;;7268:30;7334:27;7329:2;7314:18;;7307:55;7394:2;7379:18;;7228:175::o;7408:354::-;7610:2;7592:21;;;7649:2;7629:18;;;7622:30;7688:32;7683:2;7668:18;;7661:60;7753:2;7738:18;;7582:180::o;7767:177::-;7913:25;;;7901:2;7886:18;;7868:76::o;7949:319::-;8151:25;;;8207:2;8192:18;;8185:34;;;;8250:2;8235:18;;8228:34;8139:2;8124:18;;8106:162::o;8273:184::-;8445:4;8433:17;;;;8415:36;;8403:2;8388:18;;8370:87::o;8462:128::-;;8533:1;8529:6;8526:1;8523:13;8520:2;;;8539:18;;:::i;:::-;-1:-1:-1;8575:9:1;;8510:80::o;8595:217::-;;8661:1;8651:2;;-1:-1:-1;;;8686:31:1;;8740:4;8737:1;8730:15;8768:4;8693:1;8758:15;8651:2;-1:-1:-1;8797:9:1;;8641:171::o;8817:168::-;;8923:1;8919;8915:6;8911:14;8908:1;8905:21;8900:1;8893:9;8886:17;8882:45;8879:2;;;8930:18;;:::i;:::-;-1:-1:-1;8970:9:1;;8869:116::o;8990:125::-;;9058:1;9055;9052:8;9049:2;;;9063:18;;:::i;:::-;-1:-1:-1;9100:9:1;;9039:76::o;9120:380::-;9205:1;9195:12;;9252:1;9242:12;;;9263:2;;9317:4;9309:6;9305:17;9295:27;;9263:2;9370;9362:6;9359:14;9339:18;9336:38;9333:2;;;9416:10;9411:3;9407:20;9404:1;9397:31;9451:4;9448:1;9441:15;9479:4;9476:1;9469:15;9333:2;;9175:325;;;:::o;9505:127::-;9566:10;9561:3;9557:20;9554:1;9547:31;9597:4;9594:1;9587:15;9621:4;9618:1;9611:15;9637:127;9698:10;9693:3;9689:20;9686:1;9679:31;9729:4;9726:1;9719:15;9753:4;9750:1;9743:15;9769:120;9857:5;9850:13;9843:21;9836:5;9833:32;9823:2;;9879:1;9876;9869:12;9823:2;9813:76;:::o

Swarm Source

ipfs://d2d1e73dcd1fb863b5cd91ccaf8763878674e069d3ffa107fb03575b4a258fb2
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.