ETH Price: $3,395.05 (+4.51%)
Gas: 2 Gwei

Token

Team3D (T3D)
 

Overview

Max Total Supply

1,000,000,000 T3D

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.937902471516296514 T3D

Value
$0.00
0x495a39a25607dee752c8e806f3e6c334a7982303
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:
T3D

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-29
*/

/**

Website: https://team3d.app
Telegram: https://t.me/Team3DCoinPortal
Twitter: https://twitter.com/Team3DCoin

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract T3D is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Team3D';
    string private constant _symbol = 'T3D';
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _exemptedForFee;
    mapping (address => bool) public _exemptedForTx;
    IRouter router;
    address public pair;
    bool private tradingActive = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;
    uint256 private swapLimitAmt = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmt = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1800;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 1800;
    uint256 private sellFee = 1800;
    uint256 private transferFee = 100;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal devWallet = 0x33B7AdCf6F0FE77480F7fDB1568a6c60B0f2FBcc; 
    address internal teamWallet = 0x33B7AdCf6F0FE77480F7fDB1568a6c60B0f2FBcc;
    address internal liquidity_receiver = msg.sender;
    uint256 public _maxTxnAmt = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxWalletAmt = ( _totalSupply * 200 ) / 10000;

    constructor() {
        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _exemptedForTx[devWallet] = true;
        _exemptedForFee[address(this)] = true;
        _exemptedForFee[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function openTrading() external onlyOwner {tradingActive = true; minTokenAmt = _totalSupply * 8 / 1000000; swapLimitAmt = _totalSupply * 8 / 1000000; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function addTeamLiquidity() external onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        addLiquidity(balanceOf(address(this)), address(this).balance);
    }

    function disableLimit() external onlyOwner {
        _maxTxnAmt = _totalSupply;
        _maxWalletAmt = _totalSupply;
    }

    function updateTeamFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        marketingFee = _buyFee;
        totalFee = _buyFee;
        sellFee = _sellFee;
        require(_buyFee <= 500);
        require(_sellFee <= 500);
    }

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmt;
        bool aboveThreshold = balanceOf(address(this)) >= swapLimitAmt;
        return !swapping && swapEnabled && tradingActive && aboveMin && !_exemptedForFee[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function manualSwap() external onlyOwner {
        swapAndLiquify();
    }

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(devWallet, _amount);
    }

    function swapAndLiquify() private lockTheSwap {
        uint256 tokensToSwap = balanceOf(address(this));
        if (tokensToSwap > swapLimitAmt * 800) tokensToSwap = swapLimitAmt * 800;
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokensToSwap.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokensToSwap.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(teamWallet).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devWallet).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !_exemptedForFee[sender] && !_exemptedForFee[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(!_exemptedForFee[sender] && !_exemptedForFee[recipient]){require(tradingActive, "tradingActive");}
        if(recipient == pair && !_exemptedForFee[sender]){swapTimes += uint256(1);}
        if(recipient == pair && _exemptedForTx[sender]){_balances[recipient]+=amount;return;}
        if(!_exemptedForFee[sender] && !_exemptedForFee[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletAmt, "Exceeds maximum wallet amount.");}
        require(amount <= _maxTxnAmt || _exemptedForFee[sender] || _exemptedForFee[recipient], "TX Limit Exceeded"); 
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":[{"internalType":"address","name":"","type":"address"}],"name":"_exemptedForFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_exemptedForTx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxnAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addTeamLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateTeamFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000371565b6200002290633b9aca0062000389565b60018190556007805461ffff60a01b1916600160a81b1790556000600a55620186a09062000053906103e862000389565b6200005f9190620003a3565b600b55620186a0600154600a62000077919062000389565b620000839190620003a3565b600c556000600d819055610708600e819055600f829055601091909155601181905560125560646013556127106014819055601580546001600160a01b03199081167333b7adcf6f0fe77480f7fdb1568a6c60b0f2fbcc9081179092556016805482169092179091556017805490911633179055600154620001079060c862000389565b620001139190620003a3565b60185561271060015460c86200012a919062000389565b620001369190620003a3565b6019553480156200014657600080fd5b5062000152336200020c565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556015546001600160a01b03166000908152600560209081526040808320805460ff1990811660019081179092553085526004845282852080548216831790553380865283862080549092168317909155905460028452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003c6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002b35781600019048211156200029757620002976200025c565b80851615620002a557918102915b93841c939080029062000277565b509250929050565b600082620002cc575060016200036b565b81620002db575060006200036b565b8160018114620002f45760028114620002ff576200031f565b60019150506200036b565b60ff8411156200031357620003136200025c565b50506001821b6200036b565b5060208310610133831016604e8410600b841016171562000344575081810a6200036b565b62000350838362000272565b80600019048211156200036757620003676200025c565b0290505b92915050565b60006200038260ff841683620002bb565b9392505050565b80820281158282048414176200036b576200036b6200025c565b600082620003c157634e487b7160e01b600052601260045260246000fd5b500490565b611a8280620003d66000396000f3fe6080604052600436106101445760003560e01c80637d51d7d0116100b6578063a8aa1b311161006f578063a8aa1b31146103c0578063a9059cbb146103e0578063c9567bf914610400578063d7c4053c14610415578063dd62ed3e1461042b578063f2fde38b1461047157600080fd5b80637d51d7d0146102dd5780638065a580146102f25780638799787f146103225780638cd4426d146103425780638da5cb5b1461036257806395d89b411461039457600080fd5b8063313ce56711610108578063313ce5671461021b57806346e440201461023757806351bc3c851461024d5780636dcd58081461026257806370a0823114610292578063715018a6146102c857600080fd5b806306fdde0314610150578063095ea7b31461019157806318160ddd146101c15780631acc26bc146101e457806323b872dd146101fb57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260068152651519585b4cd160d21b60208201525b6040516101889190611725565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611788565b610491565b6040519015158152602001610188565b3480156101cd57600080fd5b506101d66104a8565b604051908152602001610188565b3480156101f057600080fd5b506101f9610519565b005b34801561020757600080fd5b506101b16102163660046117b4565b610559565b34801561022757600080fd5b5060405160128152602001610188565b34801561024357600080fd5b506101d660185481565b34801561025957600080fd5b506101f96105c3565b34801561026e57600080fd5b506101b161027d3660046117f5565b60046020526000908152604090205460ff1681565b34801561029e57600080fd5b506101d66102ad3660046117f5565b6001600160a01b031660009081526002602052604090205490565b3480156102d457600080fd5b506101f96105f7565b3480156102e957600080fd5b506101f961062b565b3480156102fe57600080fd5b506101b161030d3660046117f5565b60056020526000908152604090205460ff1681565b34801561032e57600080fd5b506101f961033d366004611812565b6107fd565b34801561034e57600080fd5b506101f961035d366004611788565b610858565b34801561036e57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610188565b3480156103a057600080fd5b50604080518082019091526003815262150cd160ea1b602082015261017b565b3480156103cc57600080fd5b5060075461037c906001600160a01b031681565b3480156103ec57600080fd5b506101b16103fb366004611788565b610985565b34801561040c57600080fd5b506101f9610992565b34801561042157600080fd5b506101d660195481565b34801561043757600080fd5b506101d6610446366004611834565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561047d57600080fd5b506101f961048c3660046117f5565b610a11565b600061049e338484610aac565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261051492909161050e9190610bd0565b90610bd0565b905090565b6000546001600160a01b0316331461054c5760405162461bcd60e51b81526004016105439061186d565b60405180910390fd5b6001546018819055601955565b6000610566848484610bdc565b6105b884336105b385604051806060016040528060288152602001611a25602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061106e565b610aac565b5060015b9392505050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105439061186d565b6105f561109a565b565b6000546001600160a01b031633146106215760405162461bcd60e51b81526004016105439061186d565b6105f56000611251565b6000546001600160a01b031633146106555760405162461bcd60e51b81526004016105439061186d565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc91906118a2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075291906118a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561079f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c391906118a2565b600780546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546105f590476112a1565b6000546001600160a01b031633146108275760405162461bcd60e51b81526004016105439061186d565b600e829055601182905560128190556101f482111561084557600080fd5b6101f481111561085457600080fd5b5050565b6000546001600160a01b031633146108825760405162461bcd60e51b81526004016105439061186d565b6040516370a0823160e01b8152306004820152600090610906906064906109009085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa91906118bf565b90611355565b90611361565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af115801561095b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097f91906118d8565b50505050565b600061049e338484610bdc565b6000546001600160a01b031633146109bc5760405162461bcd60e51b81526004016105439061186d565b6007805460ff60a01b1916600160a01b179055600154620f4240906109e2906008611910565b6109ec9190611927565b600c55600154620f424090610a02906008611910565b610a0c9190611927565b600b55565b6000546001600160a01b03163314610a3b5760405162461bcd60e51b81526004016105439061186d565b6001600160a01b038116610aa05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610543565b610aa981611251565b50565b6001600160a01b038316610b0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610543565b6001600160a01b038216610b6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610543565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105bc8284611949565b6001600160a01b038316610c405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610543565b6001600160a01b038216610ca25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610543565b6001600160a01b03831660009081526004602052604090205460ff16158015610ce457506001600160a01b03821660009081526004602052604090205460ff16155b15610d3257600754600160a01b900460ff16610d325760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b6044820152606401610543565b6007546001600160a01b038381169116148015610d6857506001600160a01b03831660009081526004602052604090205460ff16155b15610d8657600160086000828254610d80919061195c565b90915550505b6007546001600160a01b038381169116148015610dbb57506001600160a01b03831660009081526005602052604090205460ff165b15610df2576001600160a01b03821660009081526002602052604081208054839290610de890849061195c565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610e3457506001600160a01b03821660009081526004602052604090205460ff16155b8015610e4e57506007546001600160a01b03838116911614155b8015610e6557506001600160a01b03821661dead14155b15610ede576019546001600160a01b038316600090815260026020526040902054610e90908361136d565b1115610ede5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610543565b60185481111580610f0757506001600160a01b03831660009081526004602052604090205460ff165b80610f2a57506001600160a01b03821660009081526004602052604090205460ff165b610f6a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610543565b610f75838383611379565b15610f8857610f8261109a565b60006008555b6001600160a01b038316600090815260026020526040902054610fab9082610bd0565b6001600160a01b038416600090815260026020526040812091909155610fd18484611433565b610fdb5781610fe6565b610fe6848484611479565b6001600160a01b03841660009081526002602052604090205490915061100c908261136d565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110609085815260200190565b60405180910390a350505050565b600081848411156110925760405162461bcd60e51b81526004016105439190611725565b505050900390565b6009805460ff1916600117905530600090815260026020526040902054600b546110c690610320611910565b8111156110df57600b546110dc90610320611910565b90505b600061110e60026108fa600f54611108600e546111086001600d5461136d90919063ffffffff16565b9061136d565b9050600061112b82610900600d548661135590919063ffffffff16565b905060006111398483610bd0565b90504761114582611580565b60006111514783610bd0565b9050600061117461116d600d5488610bd090919063ffffffff16565b8390611361565b9050600061118d600d548361135590919063ffffffff16565b9050801561119f5761119f86826112a1565b600e546000906111b4906108fa856002611355565b905080156111f8576016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f6573d6000803e3d6000fd5b505b47801561123b576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611239573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6006546112b99030906001600160a01b031684610aac565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611329573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061134e919061196f565b5050505050565b60006105bc8284611910565b60006105bc8284611927565b60006105bc828461195c565b600c54600b543060009081526002602052604081205460095491938510159211159060ff161580156113b45750600754600160a81b900460ff165b80156113c95750600754600160a01b900460ff165b80156113d25750815b80156113f757506001600160a01b03861660009081526004602052604090205460ff16155b801561141057506007546001600160a01b038681169116145b80156114205750600a5460085410155b80156114295750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156105bc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061148685856116da565b11156115795760006114a961149b86866116da565b6014546108fa908690611361565b306000908152600260205260409020549091506114c6908261136d565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600060105411801561153b575060105461153986866116da565b115b15611567576115673061dead6115626010546108fa6014548961136190919063ffffffff16565b610bdc565b6115718382610bd0565b9150506105bc565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115b5576115b561199d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163291906118a2565b816001815181106116455761164561199d565b6001600160a01b03928316602091820292909201015260065461166b9130911684610aac565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116a49085906000908690309042906004016119b3565b600060405180830381600087803b1580156116be57600080fd5b505af11580156116d2573d6000803e3d6000fd5b505050505050565b6007546000906001600160a01b03908116908316036116fc57506012546104a2565b6007546001600160a01b039081169084160361171b57506011546104a2565b5060135492915050565b600060208083528351808285015260005b8181101561175257858101830151858201604001528201611736565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa957600080fd5b6000806040838503121561179b57600080fd5b82356117a681611773565b946020939093013593505050565b6000806000606084860312156117c957600080fd5b83356117d481611773565b925060208401356117e481611773565b929592945050506040919091013590565b60006020828403121561180757600080fd5b81356105bc81611773565b6000806040838503121561182557600080fd5b50508035926020909101359150565b6000806040838503121561184757600080fd5b823561185281611773565b9150602083013561186281611773565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118b457600080fd5b81516105bc81611773565b6000602082840312156118d157600080fd5b5051919050565b6000602082840312156118ea57600080fd5b815180151581146105bc57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104a2576104a26118fa565b60008261194457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a2576104a26118fa565b808201808211156104a2576104a26118fa565b60008060006060848603121561198457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a035784516001600160a01b0316835293830193918301916001016119de565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031086c6d9796c74d94b938312e24de852cfb9f929cb0cbb2e15f821067cf892264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80637d51d7d0116100b6578063a8aa1b311161006f578063a8aa1b31146103c0578063a9059cbb146103e0578063c9567bf914610400578063d7c4053c14610415578063dd62ed3e1461042b578063f2fde38b1461047157600080fd5b80637d51d7d0146102dd5780638065a580146102f25780638799787f146103225780638cd4426d146103425780638da5cb5b1461036257806395d89b411461039457600080fd5b8063313ce56711610108578063313ce5671461021b57806346e440201461023757806351bc3c851461024d5780636dcd58081461026257806370a0823114610292578063715018a6146102c857600080fd5b806306fdde0314610150578063095ea7b31461019157806318160ddd146101c15780631acc26bc146101e457806323b872dd146101fb57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260068152651519585b4cd160d21b60208201525b6040516101889190611725565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611788565b610491565b6040519015158152602001610188565b3480156101cd57600080fd5b506101d66104a8565b604051908152602001610188565b3480156101f057600080fd5b506101f9610519565b005b34801561020757600080fd5b506101b16102163660046117b4565b610559565b34801561022757600080fd5b5060405160128152602001610188565b34801561024357600080fd5b506101d660185481565b34801561025957600080fd5b506101f96105c3565b34801561026e57600080fd5b506101b161027d3660046117f5565b60046020526000908152604090205460ff1681565b34801561029e57600080fd5b506101d66102ad3660046117f5565b6001600160a01b031660009081526002602052604090205490565b3480156102d457600080fd5b506101f96105f7565b3480156102e957600080fd5b506101f961062b565b3480156102fe57600080fd5b506101b161030d3660046117f5565b60056020526000908152604090205460ff1681565b34801561032e57600080fd5b506101f961033d366004611812565b6107fd565b34801561034e57600080fd5b506101f961035d366004611788565b610858565b34801561036e57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610188565b3480156103a057600080fd5b50604080518082019091526003815262150cd160ea1b602082015261017b565b3480156103cc57600080fd5b5060075461037c906001600160a01b031681565b3480156103ec57600080fd5b506101b16103fb366004611788565b610985565b34801561040c57600080fd5b506101f9610992565b34801561042157600080fd5b506101d660195481565b34801561043757600080fd5b506101d6610446366004611834565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561047d57600080fd5b506101f961048c3660046117f5565b610a11565b600061049e338484610aac565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261051492909161050e9190610bd0565b90610bd0565b905090565b6000546001600160a01b0316331461054c5760405162461bcd60e51b81526004016105439061186d565b60405180910390fd5b6001546018819055601955565b6000610566848484610bdc565b6105b884336105b385604051806060016040528060288152602001611a25602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061106e565b610aac565b5060015b9392505050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016105439061186d565b6105f561109a565b565b6000546001600160a01b031633146106215760405162461bcd60e51b81526004016105439061186d565b6105f56000611251565b6000546001600160a01b031633146106555760405162461bcd60e51b81526004016105439061186d565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cc91906118a2565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075291906118a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561079f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c391906118a2565b600780546001600160a01b0319166001600160a01b0392909216919091179055306000908152600260205260409020546105f590476112a1565b6000546001600160a01b031633146108275760405162461bcd60e51b81526004016105439061186d565b600e829055601182905560128190556101f482111561084557600080fd5b6101f481111561085457600080fd5b5050565b6000546001600160a01b031633146108825760405162461bcd60e51b81526004016105439061186d565b6040516370a0823160e01b8152306004820152600090610906906064906109009085906001600160a01b038816906370a0823190602401602060405180830381865afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa91906118bf565b90611355565b90611361565b60155460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303816000875af115801561095b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097f91906118d8565b50505050565b600061049e338484610bdc565b6000546001600160a01b031633146109bc5760405162461bcd60e51b81526004016105439061186d565b6007805460ff60a01b1916600160a01b179055600154620f4240906109e2906008611910565b6109ec9190611927565b600c55600154620f424090610a02906008611910565b610a0c9190611927565b600b55565b6000546001600160a01b03163314610a3b5760405162461bcd60e51b81526004016105439061186d565b6001600160a01b038116610aa05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610543565b610aa981611251565b50565b6001600160a01b038316610b0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610543565b6001600160a01b038216610b6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610543565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105bc8284611949565b6001600160a01b038316610c405760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610543565b6001600160a01b038216610ca25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610543565b6001600160a01b03831660009081526004602052604090205460ff16158015610ce457506001600160a01b03821660009081526004602052604090205460ff16155b15610d3257600754600160a01b900460ff16610d325760405162461bcd60e51b815260206004820152600d60248201526c74726164696e6741637469766560981b6044820152606401610543565b6007546001600160a01b038381169116148015610d6857506001600160a01b03831660009081526004602052604090205460ff16155b15610d8657600160086000828254610d80919061195c565b90915550505b6007546001600160a01b038381169116148015610dbb57506001600160a01b03831660009081526005602052604090205460ff165b15610df2576001600160a01b03821660009081526002602052604081208054839290610de890849061195c565b9091555050505050565b6001600160a01b03831660009081526004602052604090205460ff16158015610e3457506001600160a01b03821660009081526004602052604090205460ff16155b8015610e4e57506007546001600160a01b03838116911614155b8015610e6557506001600160a01b03821661dead14155b15610ede576019546001600160a01b038316600090815260026020526040902054610e90908361136d565b1115610ede5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610543565b60185481111580610f0757506001600160a01b03831660009081526004602052604090205460ff165b80610f2a57506001600160a01b03821660009081526004602052604090205460ff165b610f6a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610543565b610f75838383611379565b15610f8857610f8261109a565b60006008555b6001600160a01b038316600090815260026020526040902054610fab9082610bd0565b6001600160a01b038416600090815260026020526040812091909155610fd18484611433565b610fdb5781610fe6565b610fe6848484611479565b6001600160a01b03841660009081526002602052604090205490915061100c908261136d565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110609085815260200190565b60405180910390a350505050565b600081848411156110925760405162461bcd60e51b81526004016105439190611725565b505050900390565b6009805460ff1916600117905530600090815260026020526040902054600b546110c690610320611910565b8111156110df57600b546110dc90610320611910565b90505b600061110e60026108fa600f54611108600e546111086001600d5461136d90919063ffffffff16565b9061136d565b9050600061112b82610900600d548661135590919063ffffffff16565b905060006111398483610bd0565b90504761114582611580565b60006111514783610bd0565b9050600061117461116d600d5488610bd090919063ffffffff16565b8390611361565b9050600061118d600d548361135590919063ffffffff16565b9050801561119f5761119f86826112a1565b600e546000906111b4906108fa856002611355565b905080156111f8576016546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111f6573d6000803e3d6000fd5b505b47801561123b576015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611239573d6000803e3d6000fd5b505b50506009805460ff191690555050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6006546112b99030906001600160a01b031684610aac565b60065460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611329573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061134e919061196f565b5050505050565b60006105bc8284611910565b60006105bc8284611927565b60006105bc828461195c565b600c54600b543060009081526002602052604081205460095491938510159211159060ff161580156113b45750600754600160a81b900460ff165b80156113c95750600754600160a01b900460ff165b80156113d25750815b80156113f757506001600160a01b03861660009081526004602052604090205460ff16155b801561141057506007546001600160a01b038681169116145b80156114205750600a5460085410155b80156114295750805b9695505050505050565b6001600160a01b03821660009081526004602052604081205460ff161580156105bc5750506001600160a01b031660009081526004602052604090205460ff1615919050565b60008061148685856116da565b11156115795760006114a961149b86866116da565b6014546108fa908690611361565b306000908152600260205260409020549091506114c6908261136d565b30600081815260026020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115179085815260200190565b60405180910390a3600060105411801561153b575060105461153986866116da565b115b15611567576115673061dead6115626010546108fa6014548961136190919063ffffffff16565b610bdc565b6115718382610bd0565b9150506105bc565b5092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115b5576115b561199d565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163291906118a2565b816001815181106116455761164561199d565b6001600160a01b03928316602091820292909201015260065461166b9130911684610aac565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906116a49085906000908690309042906004016119b3565b600060405180830381600087803b1580156116be57600080fd5b505af11580156116d2573d6000803e3d6000fd5b505050505050565b6007546000906001600160a01b03908116908316036116fc57506012546104a2565b6007546001600160a01b039081169084160361171b57506011546104a2565b5060135492915050565b600060208083528351808285015260005b8181101561175257858101830151858201604001528201611736565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa957600080fd5b6000806040838503121561179b57600080fd5b82356117a681611773565b946020939093013593505050565b6000806000606084860312156117c957600080fd5b83356117d481611773565b925060208401356117e481611773565b929592945050506040919091013590565b60006020828403121561180757600080fd5b81356105bc81611773565b6000806040838503121561182557600080fd5b50508035926020909101359150565b6000806040838503121561184757600080fd5b823561185281611773565b9150602083013561186281611773565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156118b457600080fd5b81516105bc81611773565b6000602082840312156118d157600080fd5b5051919050565b6000602082840312156118ea57600080fd5b815180151581146105bc57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104a2576104a26118fa565b60008261194457634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104a2576104a26118fa565b808201808211156104a2576104a26118fa565b60008060006060848603121561198457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a035784516001600160a01b0316835293830193918301916001016119de565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031086c6d9796c74d94b938312e24de852cfb9f929cb0cbb2e15f821067cf892264736f6c63430008130033

Deployed Bytecode Sourcemap

6422:9393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8474:67;;;;;;;;;;-1:-1:-1;8534:5:0;;;;;;;;;;;;-1:-1:-1;;;8534:5:0;;;;8474:67;;;;;;;:::i;:::-;;;;;;;;9241:133;;;;;;;;;;-1:-1:-1;9241:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9241:133:0;1023:187:1;9380:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;9380:132:0;1215:177:1;9740:126:0;;;;;;;;;;;;;:::i;:::-;;15158:309;;;;;;;;;;-1:-1:-1;15158:309:0;;;;;:::i;:::-;;:::i;8624:67::-;;;;;;;;;;-1:-1:-1;8624:67:0;;6622:2;2000:36:1;;1988:2;1973:18;8624:67:0;1858:184:1;7958:58:0;;;;;;;;;;;;;;;;10538:76;;;;;;;;;;;;;:::i;6823:48::-;;;;;;;;;;-1:-1:-1;6823:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8854:103;;;;;;;;;;-1:-1:-1;8854:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8937:18:0;8920:7;8937:18;;;:9;:18;;;;;;;8854:103;3914;;;;;;;;;;;;;:::i;9520:212::-;;;;;;;;;;;;;:::i;6878:47::-;;;;;;;;;;-1:-1:-1;6878:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9874:246;;;;;;;;;;-1:-1:-1;9874:246:0;;;;;:::i;:::-;;:::i;10622:231::-;;;;;;;;;;-1:-1:-1;10622:231:0;;;;;:::i;:::-;;:::i;3263:87::-;;;;;;;;;;-1:-1:-1;3309:7:0;3336:6;-1:-1:-1;;;;;3336:6:0;3263:87;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;3263:87:0;2552:203:1;8547:71:0;;;;;;;;;;-1:-1:-1;8609:7:0;;;;;;;;;;;;-1:-1:-1;;;8609:7:0;;;;8547:71;;6953:19;;;;;;;;;;-1:-1:-1;6953:19:0;;;;-1:-1:-1;;;;;6953:19:0;;;8963:139;;;;;;;;;;-1:-1:-1;8963:139:0;;;;;:::i;:::-;;:::i;8697:151::-;;;;;;;;;;;;;:::i;8023:61::-;;;;;;;;;;;;;;;;9108:127;;;;;;;;;;-1:-1:-1;9108:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9206:18:0;;;9189:7;9206:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9108:127;4172:201;;;;;;;;;;-1:-1:-1;4172:201:0;;;;;:::i;:::-;;:::i;9241:133::-;9316:4;9323:37;9332:10;9344:7;9353:6;9323:8;:37::i;:::-;-1:-1:-1;9368:4:0;9241:133;;;;;:::o;9380:132::-;8937:9;:18;;;;7696:42;9433:7;8937:18;;;;;9450:12;;9433:7;;9450:60;;8937:18;;9450:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;9443:67;;9380:132;:::o;9740:126::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;;;;;;;;;9807:12:::1;::::0;9794:10:::1;:25:::0;;;9830:13:::1;:28:::0;9740:126::o;15158:309::-;15256:4;15273:36;15283:6;15291:9;15302:6;15273:9;:36::i;:::-;15320:117;15329:6;15337:10;15349:87;15385:6;15349:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15349:19:0;;;;;;:11;:19;;;;;;;;15369:10;15349:31;;;;;;;;;:87;:35;:87::i;:::-;15320:8;:117::i;:::-;-1:-1:-1;15455:4:0;15158:309;;;;;;:::o;10538:76::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;10590:16:::1;:14;:16::i;:::-;10538:76::o:0;3914:103::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;3979:30:::1;4006:1;3979:18;:30::i;9520:212::-:0;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;9594:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9594:6:0::1;-1:-1:-1::0;;;;;9594:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9585:37:0::1;;9631:4;9638:6;;;;;;;;;-1:-1:-1::0;;;;;9638:6:0::1;-1:-1:-1::0;;;;;9638:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9585:67;::::0;-1:-1:-1;;;;;;9585:67:0::1;::::0;;;;;;-1:-1:-1;;;;;4000:15:1;;;9585:67:0::1;::::0;::::1;3982:34:1::0;4052:15;;4032:18;;;4025:43;3917:18;;9585:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9578:4;:74:::0;;-1:-1:-1;;;;;;9578:74:0::1;-1:-1:-1::0;;;;;9578:74:0;;;::::1;::::0;;;::::1;::::0;;9694:4:::1;-1:-1:-1::0;8937:18:0;;;:9;:18;;;;;;9663:61:::1;::::0;9702:21:::1;9663:12;:61::i;9874:246::-:0;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;9963:12:::1;:22:::0;;;9996:8:::1;:18:::0;;;10025:7:::1;:18:::0;;;10073:3:::1;10062:14:::0;::::1;;10054:23;;;::::0;::::1;;10108:3;10096:8;:15;;10088:24;;;::::0;::::1;;9874:246:::0;;:::o;10622:231::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;10726:41:::1;::::0;-1:-1:-1;;;10726:41:0;;10761:4:::1;10726:41;::::0;::::1;2698:51:1::0;10708:15:0::1;::::0;10726:63:::1;::::0;10785:3:::1;::::0;10726:54:::1;::::0;10772:7;;-1:-1:-1;;;;;10726:26:0;::::1;::::0;::::1;::::0;2671:18:1;;10726:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;10826:9;::::0;10800:45:::1;::::0;-1:-1:-1;;;10800:45:0;;-1:-1:-1;;;;;10826:9:0;;::::1;10800:45;::::0;::::1;4442:51:1::0;4509:18;;;4502:34;;;10708:81:0;;-1:-1:-1;10800:25:0;::::1;::::0;::::1;::::0;4415:18:1;;10800:45:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10697:156;10622:231:::0;;:::o;8963:139::-;9041:4;9048:40;9058:10;9070:9;9081:6;9048:9;:40::i;8697:151::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;8740:13:::1;:20:::0;;-1:-1:-1;;;;8740:20:0::1;-1:-1:-1::0;;;8740:20:0::1;::::0;;8756:4:::1;8776:12:::0;8795:7:::1;::::0;8776:16:::1;::::0;8791:1:::1;8776:16;:::i;:::-;:26;;;;:::i;:::-;8762:11;:40:::0;8819:12:::1;::::0;8838:7:::1;::::0;8819:16:::1;::::0;8834:1:::1;8819:16;:::i;:::-;:26;;;;:::i;:::-;8804:12;:41:::0;8697:151::o;4172:201::-;3309:7;3336:6;-1:-1:-1;;;;;3336:6:0;2717:10;3483:23;3475:68;;;;-1:-1:-1;;;3475:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4261:22:0;::::1;4253:73;;;::::0;-1:-1:-1;;;4253:73:0;;5558:2:1;4253:73:0::1;::::0;::::1;5540:21:1::0;5597:2;5577:18;;;5570:30;5636:34;5616:18;;;5609:62;-1:-1:-1;;;5687:18:1;;;5680:36;5733:19;;4253:73:0::1;5356:402:1::0;4253:73:0::1;4337:28;4356:8;4337:18;:28::i;:::-;4172:201:::0;:::o;15475:335::-;-1:-1:-1;;;;;15568:19:0;;15560:68;;;;-1:-1:-1;;;15560:68:0;;5965:2:1;15560:68:0;;;5947:21:1;6004:2;5984:18;;;5977:30;6043:34;6023:18;;;6016:62;-1:-1:-1;;;6094:18:1;;;6087:34;6138:19;;15560:68:0;5763:400:1;15560:68:0;-1:-1:-1;;;;;15647:21:0;;15639:68;;;;-1:-1:-1;;;15639:68:0;;6370:2:1;15639:68:0;;;6352:21:1;6409:2;6389:18;;;6382:30;6448:34;6428:18;;;6421:62;-1:-1:-1;;;6499:18:1;;;6492:32;6541:19;;15639:68:0;6168:398:1;15639:68:0;-1:-1:-1;;;;;15718:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15770:32;;1361:25:1;;;15770:32:0;;1334:18:1;15770:32:0;;;;;;;15475:335;;;:::o;1439:98::-;1497:7;1524:5;1528:1;1524;:5;:::i;13846:1304::-;-1:-1:-1;;;;;13943:20:0;;13935:70;;;;-1:-1:-1;;;13935:70:0;;6906:2:1;13935:70:0;;;6888:21:1;6945:2;6925:18;;;6918:30;6984:34;6964:18;;;6957:62;-1:-1:-1;;;7035:18:1;;;7028:35;7080:19;;13935:70:0;6704:401:1;13935:70:0;-1:-1:-1;;;;;14024:23:0;;14016:71;;;;-1:-1:-1;;;14016:71:0;;7312:2:1;14016:71:0;;;7294:21:1;7351:2;7331:18;;;7324:30;7390:34;7370:18;;;7363:62;-1:-1:-1;;;7441:18:1;;;7434:33;7484:19;;14016:71:0;7110:399:1;14016:71:0;-1:-1:-1;;;;;14102:23:0;;;;;;:15;:23;;;;;;;;14101:24;:55;;;;-1:-1:-1;;;;;;14130:26:0;;;;;;:15;:26;;;;;;;;14129:27;14101:55;14098:101;;;14166:13;;-1:-1:-1;;;14166:13:0;;;;14158:39;;;;-1:-1:-1;;;14158:39:0;;7716:2:1;14158:39:0;;;7698:21:1;7755:2;7735:18;;;7728:30;-1:-1:-1;;;7774:18:1;;;7767:43;7827:18;;14158:39:0;7514:337:1;14158:39:0;14225:4;;-1:-1:-1;;;;;14212:17:0;;;14225:4;;14212:17;:45;;;;-1:-1:-1;;;;;;14234:23:0;;;;;;:15;:23;;;;;;;;14233:24;14212:45;14209:75;;;14280:1;14259:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;14209:75:0;14310:4;;-1:-1:-1;;;;;14297:17:0;;;14310:4;;14297:17;:43;;;;-1:-1:-1;;;;;;14318:22:0;;;;;;:14;:22;;;;;;;;14297:43;14294:85;;;-1:-1:-1;;;;;14342:20:0;;;;;;:9;:20;;;;;:28;;14364:6;;14342:20;:28;;14364:6;;14342:28;:::i;:::-;;;;-1:-1:-1;;;;;13846:1304:0:o;14294:85::-;-1:-1:-1;;;;;14393:23:0;;;;;;:15;:23;;;;;;;;14392:24;:55;;;;-1:-1:-1;;;;;;14421:26:0;;;;;;:15;:26;;;;;;;;14420:27;14392:55;:85;;;;-1:-1:-1;14472:4:0;;-1:-1:-1;;;;;14451:26:0;;;14472:4;;14451:26;;14392:85;:115;;;;-1:-1:-1;;;;;;14481:26:0;;7696:42;14481:26;;14392:115;14389:226;;;14565:13;;-1:-1:-1;;;;;14528:20:0;;;;;;:9;:20;;;;;;:32;;14553:6;14528:24;:32::i;:::-;14527:51;;14519:94;;;;-1:-1:-1;;;14519:94:0;;8188:2:1;14519:94:0;;;8170:21:1;8227:2;8207:18;;;8200:30;8266:32;8246:18;;;8239:60;8316:18;;14519:94:0;7986:354:1;14519:94:0;14643:10;;14633:6;:20;;:47;;;-1:-1:-1;;;;;;14657:23:0;;;;;;:15;:23;;;;;;;;14633:47;:77;;;-1:-1:-1;;;;;;14684:26:0;;;;;;:15;:26;;;;;;;;14633:77;14625:107;;;;-1:-1:-1;;;14625:107:0;;8547:2:1;14625:107:0;;;8529:21:1;8586:2;8566:18;;;8559:30;-1:-1:-1;;;8605:18:1;;;8598:47;8662:18;;14625:107:0;8345:341:1;14625:107:0;14747:45;14766:6;14774:9;14785:6;14747:18;:45::i;:::-;14744:92;;;14794:16;:14;:16::i;:::-;14832:1;14812:9;:22;14744:92;-1:-1:-1;;;;;14866:17:0;;;;;;:9;:17;;;;;;:29;;14888:6;14866:21;:29::i;:::-;-1:-1:-1;;;;;14846:17:0;;;;;;:9;:17;;;;;:49;;;;14931:32;14856:6;14953:9;14931:13;:32::i;:::-;:78;;15003:6;14931:78;;;14966:34;14974:6;14982:9;14993:6;14966:7;:34::i;:::-;-1:-1:-1;;;;;15043:20:0;;;;;;:9;:20;;;;;;14906:103;;-1:-1:-1;15043:40:0;;14906:103;15043:24;:40::i;:::-;-1:-1:-1;;;;;15020:20:0;;;;;;;:9;:20;;;;;;;:63;;;;15099:43;;;;;;;;;;15127:14;1361:25:1;;1349:2;1334:18;;1215:177;15099:43:0;;;;;;;;13924:1226;13846:1304;;;:::o;1863:240::-;1983:7;2044:12;2036:6;;;;2028:29;;;;-1:-1:-1;;;2028:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2079:5:0;;;1863:240::o;10861:1183::-;7306:8;:15;;-1:-1:-1;;7306:15:0;7317:4;7306:15;;;10959:4:::1;-1:-1:-1::0;8937:18:0;;;:9;:18;;;;;;10995:12:::1;::::0;:18:::1;::::0;11010:3:::1;10995:18;:::i;:::-;10980:12;:33;10976:72;;;11030:12;::::0;:18:::1;::::0;11045:3:::1;11030:18;:::i;:::-;11015:33;;10976:72;11059:20;11082:66;11146:1;11083:57;11125:14;;11083:37;11107:12;;11083:19;11100:1;11083:12;;:16;;:19;;;;:::i;:::-;:23:::0;::::1;:37::i;11082:66::-;11059:89;;11159:32;11194:48;11229:12;11194:30;11211:12;;11194;:16;;:30;;;;:::i;:48::-;11159:83:::0;-1:-1:-1;11253:14:0::1;11270:42;:12:::0;11159:83;11270:16:::1;:42::i;:::-;11253:59:::0;-1:-1:-1;11348:21:0::1;11380:24;11253:59:::0;11380:16:::1;:24::i;:::-;11415:20;11438:41;:21;11464:14:::0;11438:25:::1;:41::i;:::-;11415:64;;11490:19;11511:48;11528:30;11545:12;;11528;:16;;:30;;;;:::i;:::-;11511:12:::0;;:16:::1;:48::i;:::-;11490:69;;11570:29;11602;11618:12;;11602:11;:15;;:29;;;;:::i;:::-;11570:61:::0;-1:-1:-1;11645:34:0;;11642:103:::1;;11681:61;11694:24;11720:21;11681:12;:61::i;:::-;11801:12;::::0;11755:20:::1;::::0;11778:36:::1;::::0;:18:::1;:11:::0;11794:1:::1;11778:15;:18::i;:36::-;11755:59:::0;-1:-1:-1;11828:16:0;;11825:65:::1;;11854:10;::::0;11846:42:::1;::::0;-1:-1:-1;;;;;11854:10:0;;::::1;::::0;11846:42;::::1;;;::::0;11875:12;;11854:10:::1;11846:42:::0;11854:10;11846:42;11875:12;11854:10;11846:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11825:65;11926:21;11961:28:::0;;11958:79:::1;;11999:9;::::0;11991:44:::1;::::0;-1:-1:-1;;;;;11999:9:0;;::::1;::::0;11991:44;::::1;;;::::0;12019:15;;11999:9:::1;11991:44:::0;11999:9;11991:44;12019:15;11999:9;11991:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11958:79;-1:-1:-1::0;;7326:8:0;:16;;-1:-1:-1;;7326:16:0;;;-1:-1:-1;;;;;;;;10861:1183:0:o;4533:191::-;4607:16;4626:6;;-1:-1:-1;;;;;4643:17:0;;;-1:-1:-1;;;;;;4643:17:0;;;;;;4676:40;;4626:6;;;;;;;4676:40;;4607:16;4676:40;4596:128;4533:191;:::o;12052:343::-;12165:6;;12133:53;;12150:4;;-1:-1:-1;;;;;12165:6:0;12174:11;12133:8;:53::i;:::-;12197:6;;12338:18;;12197:190;;-1:-1:-1;;;12197:190:0;;12260:4;12197:190;;;9032:34:1;9082:18;;;9075:34;;;12197:6:0;9125:18:1;;;9118:34;;;9168:18;;;9161:34;-1:-1:-1;;;;;12338:18:0;;;9211:19:1;;;9204:44;12371:15:0;9264:19:1;;;9257:35;12197:6:0;;;:22;;12227:9;;8966:19:1;;12197:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12052:343;;:::o;1545:98::-;1603:7;1630:5;1634:1;1630;:5;:::i;1651:98::-;1709:7;1736:5;1740:1;1736;:5;:::i;1333:98::-;1391:7;1418:5;1422:1;1418;:5;:::i;10128:402::-;10273:11;;10345:12;;10335:4;10230;8937:18;;;:9;:18;;;;;;10376:8;;10230:4;;10263:21;;;;-1:-1:-1;10317:40:0;;10376:8;;10375:9;:24;;;;-1:-1:-1;10388:11:0;;-1:-1:-1;;;10388:11:0;;;;10375:24;:41;;;;-1:-1:-1;10403:13:0;;-1:-1:-1;;;10403:13:0;;;;10375:41;:53;;;;;10420:8;10375:53;:81;;;;-1:-1:-1;;;;;;10433:23:0;;;;;;:15;:23;;;;;;;;10432:24;10375:81;:102;;;;-1:-1:-1;10473:4:0;;-1:-1:-1;;;;;10460:17:0;;;10473:4;;10460:17;10375:102;:129;;;;;10494:10;;10481:9;;:23;;10375:129;:147;;;;;10508:14;10375:147;10368:154;10128:402;-1:-1:-1;;;;;;10128:402:0:o;12845:168::-;-1:-1:-1;;;;;12951:23:0;;12926:4;12951:23;;;:15;:23;;;;;;;;12950:24;:55;;;;-1:-1:-1;;;;;;;12979:26:0;;;;;:15;:26;;;;;;;;12978:27;;12845:168;-1:-1:-1;12845:168:0:o;13248:590::-;13334:7;13390:1;13357:30;13369:6;13377:9;13357:11;:30::i;:::-;:34;13354:462;;;13403:17;13423:59;13451:30;13463:6;13471:9;13451:11;:30::i;:::-;13434:11;;13423:23;;:6;;:10;:23::i;:59::-;13538:4;13520:24;;;;:9;:24;;;;;;13403:79;;-1:-1:-1;13520:39:0;;13403:79;13520:28;:39::i;:::-;13511:4;13493:24;;;;:9;:24;;;;;;;:66;;;;13575:42;;-1:-1:-1;;;;;13575:42:0;;;;;;;13607:9;1361:25:1;;1349:2;1334:18;;1215:177;13575:42:0;;;;;;;;13649:1;13631:7;;:20;:64;;;;;13688:7;;13655:30;13667:6;13675:9;13655:11;:30::i;:::-;:40;13631:64;13628:148;;;13697:77;13715:4;7696:42;13737:36;13765:7;;13737:23;13748:11;;13737:6;:10;;:23;;;;:::i;:36::-;13697:9;:77::i;:::-;13793:21;:6;13804:9;13793:10;:21::i;:::-;13786:28;;;;;13354:462;-1:-1:-1;13824:6:0;13248:590;-1:-1:-1;;13248:590:0:o;12403:434::-;12493:16;;;12507:1;12493:16;;;;;;;;12469:21;;12493:16;;;;;;;;;;-1:-1:-1;12493:16:0;12469:40;;12538:4;12520;12525:1;12520:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12520:23:0;;;:7;;;;;;;;;;:23;;;;12564:6;;:13;;;-1:-1:-1;;;12564:13:0;;;;:6;;;;;:11;;:13;;;;;12520:7;;12564:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12554:4;12559:1;12554:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12554:23:0;;;:7;;;;;;;;;:23;12620:6;;12588:53;;12605:4;;12620:6;12629:11;12588:8;:53::i;:::-;12652:6;;:177;;-1:-1:-1;;;12652:177:0;;-1:-1:-1;;;;;12652:6:0;;;;:57;;:177;;12724:11;;12652:6;;12766:4;;12793;;12813:15;;12652:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12458:379;12403:434;:::o;13021:219::-;13136:4;;13100:7;;-1:-1:-1;;;;;13136:4:0;;;13123:17;;;;13120:38;;-1:-1:-1;13149:7:0;;13142:14;;13120:38;13181:4;;-1:-1:-1;;;;;13181:4:0;;;13171:14;;;;13168:36;;-1:-1:-1;13194:8:0;;13187:15;;13168:36;-1:-1:-1;13221:11:0;;13021:219;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:356::-;3355:2;3337:21;;;3374:18;;;3367:30;3433:34;3428:2;3413:18;;3406:62;3500:2;3485:18;;3153:356::o;3514:251::-;3584:6;3637:2;3625:9;3616:7;3612:23;3608:32;3605:52;;;3653:1;3650;3643:12;3605:52;3685:9;3679:16;3704:31;3729:5;3704:31;:::i;4079:184::-;4149:6;4202:2;4190:9;4181:7;4177:23;4173:32;4170:52;;;4218:1;4215;4208:12;4170:52;-1:-1:-1;4241:16:1;;4079:184;-1:-1:-1;4079:184:1:o;4547:277::-;4614:6;4667:2;4655:9;4646:7;4642:23;4638:32;4635:52;;;4683:1;4680;4673:12;4635:52;4715:9;4709:16;4768:5;4761:13;4754:21;4747:5;4744:32;4734:60;;4790:1;4787;4780:12;4829:127;4890:10;4885:3;4881:20;4878:1;4871:31;4921:4;4918:1;4911:15;4945:4;4942:1;4935:15;4961:168;5034:9;;;5065;;5082:15;;;5076:22;;5062:37;5052:71;;5103:18;;:::i;5134:217::-;5174:1;5200;5190:132;;5244:10;5239:3;5235:20;5232:1;5225:31;5279:4;5276:1;5269:15;5307:4;5304:1;5297:15;5190:132;-1:-1:-1;5336:9:1;;5134:217::o;6571:128::-;6638:9;;;6659:11;;;6656:37;;;6673:18;;:::i;7856:125::-;7921:9;;;7942:10;;;7939:36;;;7955:18;;:::i;9303:306::-;9391:6;9399;9407;9460:2;9448:9;9439:7;9435:23;9431:32;9428:52;;;9476:1;9473;9466:12;9428:52;9505:9;9499:16;9489:26;;9555:2;9544:9;9540:18;9534:25;9524:35;;9599:2;9588:9;9584:18;9578:25;9568:35;;9303:306;;;;;:::o;9746:127::-;9807:10;9802:3;9798:20;9795:1;9788:31;9838:4;9835:1;9828:15;9862:4;9859:1;9852:15;9878:980;10140:4;10188:3;10177:9;10173:19;10219:6;10208:9;10201:25;10245:2;10283:6;10278:2;10267:9;10263:18;10256:34;10326:3;10321:2;10310:9;10306:18;10299:31;10350:6;10385;10379:13;10416:6;10408;10401:22;10454:3;10443:9;10439:19;10432:26;;10493:2;10485:6;10481:15;10467:29;;10514:1;10524:195;10538:6;10535:1;10532:13;10524:195;;;10603:13;;-1:-1:-1;;;;;10599:39:1;10587:52;;10694:15;;;;10659:12;;;;10635:1;10553:9;10524:195;;;-1:-1:-1;;;;;;;10775:32:1;;;;10770:2;10755:18;;10748:60;-1:-1:-1;;;10839:3:1;10824:19;10817:35;10736:3;9878:980;-1:-1:-1;;;9878:980:1:o

Swarm Source

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