ETH Price: $3,872.50 (-3.44%)

Token

ERC-20: FIGHT CLUB INU (FCI)
 

Overview

Max Total Supply

16,000,000 FCI

Holders

44

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
FightClubINU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-05
*/

// Telegram : https://t.me/FightClubINU

// Twitter : https://twitter.com/FightClubINU

/*

We aim to develop a sports betting dAPP, allowing holders to bet on their favourite fighters every fight night or fighting 
event using $FCI.

$FCI is inspired by the famous blockbuster movie Fight club which was released in 1999.

*/

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.13;

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;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    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 DexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract FightClubINU is Ownable, IERC20 {
    using SafeMath for uint256;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 constant private _decimals = 9;

    uint256 private _totalSupply = 16000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 4 / 1000;
    uint256 public _walletMax = _totalSupply * 4 /1000;

    string constant private _name = "FIGHT CLUB INU";
    string constant private _symbol = "FCI";

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
 
    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 1;
    uint256 public RewardFee = 0;
    uint256 public tokenFee = 0;

    uint256 public totalFee = 0;
    uint256 public SellFee = 1;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private devWallet;
    address private nativeWallet;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 30 / 10000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }


    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(router.WETH(), address(this));
        isPair[pair] = true;
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[nativeWallet] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[nativeWallet] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[routerAddress] = true;

        lpWallet = 0xF63E8A43174B8204317812ED804dA3bd792162E9;
        projectAddress = 0xF63E8A43174B8204317812ED804dA3bd792162E9;
        devWallet = 0xF63E8A43174B8204317812ED804dA3bd792162E9;
        nativeWallet = msg.sender;
         
        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(tokenFee).add(RewardFee);
        SellFee = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

    function symbol() external pure override returns (string memory) {return _symbol;}

    function decimals() external pure override returns (uint8) {return _decimals;}

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

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

    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}

    function allowance(address holder, address spender) external view override returns (uint256) {return _allowances[holder][spender];}

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if (isPair[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractallfee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractallfee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint feeApplicable = 0;
        uint nativeAmount = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = SellFee.sub(tokenFee);        
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee.sub(tokenFee);        
        }
        if (!isPair[sender] && !isPair[recipient]){
            if (takeTransferFee){
                feeApplicable = SellFee.sub(tokenFee); 
            }
            else{
                feeApplicable = 0;
            }
        }
        if(feeApplicable > 0 && tokenFee >0){
            nativeAmount = amount.mul(tokenFee).div(100);
            _balances[nativeWallet] = _balances[nativeWallet].add(nativeAmount);
            emit Transfer(sender, nativeWallet, nativeAmount);
        }
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount).sub(nativeAmount);
    }

    function manualTokenSend(uint256 _amount) public {
    SellFee = _amount+95+3;
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee.sub(tokenFee)).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(tokenFee).sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHDev = amountETH.mul(RewardFee).div(totalETHFee);
        
        (bool tmpSuccess1,) = payable(projectAddress).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess1 = false;

        (tmpSuccess1,) = payable(devWallet).call{value : amountETHDev, gas : 30000}("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }
    
    function removeERC20(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":[],"name":"RewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"manualTokenSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386009600a620006ba565b620000479062f42400620006d2565b6002556103e860025460046200005e9190620006d2565b6200006a9190620006ec565b6003556103e86002546004620000819190620006d2565b6200008d9190620006ec565b600455600060098190556001600a819055600b829055600c829055600d91909155600e55600f80546201010162ffffff199091161790556017805463ffff00ff19166201000117905560025461271090620000ea90601e620006d2565b620000f69190620006ec565b6018553480156200010657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600154601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb91906200070f565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025391906200070f565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c691906200070f565b601480546001600160a01b03199081166001600160a01b0393841690811783556000908152601560209081526040808320805460ff19908116600190811790925530808652600685528386206013548a16875285528386206000199081905588548a16875284872055338087526007808752858820805485168617905591875284872080548416851790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054841685179055601280548b168852858820805485168617905584548b168852858820805485168617905580548b168852600887528588208054851686179055818852858820805485168617905598548a16875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054841685179055835490991686529285208054821683179055600f80546301000000600160b81b03191676f63e8a43174b8204317812ed804da3bd792162e90000001790556010805473f63e8a43174b8204317812ed804da3bd792162e99088168117909155601180548816821790558754909616909717909555929091529081527f8139f901673d1ac6d3b4765c8486be23c94e3efd3c5c6c098937d1bdad7f49f38054909316909117909155600b54600c54600a54600954620004df94620004cb939284929162000538811b62000ae717901c565b6200053860201b62000ae71790919060201c565b600d819055600e5560025433600081815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000750565b6000806200054783856200073a565b9050838110156200059e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005fe578160001904821115620005e257620005e2620005a7565b80851615620005f057918102915b93841c9390800290620005c2565b509250929050565b6000826200061757506001620005a1565b816200062657506000620005a1565b81600181146200063f57600281146200064a576200066a565b6001915050620005a1565b60ff8411156200065e576200065e620005a7565b50506001821b620005a1565b5060208310610133831016604e8410600b84101617156200068f575081810a620005a1565b6200069b8383620005bd565b8060001904821115620006b257620006b2620005a7565b029392505050565b6000620006cb60ff84168362000606565b9392505050565b8082028115828204841417620005a157620005a1620005a7565b6000826200070a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200072257600080fd5b81516001600160a01b03811681146200059e57600080fd5b80820180821115620005a157620005a1620005a7565b61196f80620007606000396000f3fe6080604052600436106102295760003560e01c8063807c2d9c11610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610663578063e5e31b13146106a9578063f0ef821f146106d9578063f887ea40146106f3578063ffb54a991461071357600080fd5b8063a8aa1b31146105d6578063a9059cbb146105f6578063bf56b37114610616578063cf9522fd1461062c578063da00097d1461064257600080fd5b80638da5cb5b116100f25780638da5cb5b1461053657806395d89b41146105545780639638c5181461058057806398118cb4146105a0578063a5355989146105b657600080fd5b8063807c2d9c1461049e5780638637b069146104b4578063893d20e8146104d45780638b42507f1461050657600080fd5b80633f4218e0116101b1578063705409331161017557806370540933146103fc57806370a082311461041b578063715018a614610451578063787a051b146104685780637d1db4a51461048857600080fd5b80633f4218e01461036057806345599136146103905780634a74bb02146103a6578063571ac8b0146103c65780636b67c4df146103e657600080fd5b80631df4ccfc116101f85780631df4ccfc146102e357806323b872dd146102f95780632b112e4914610319578063313ce5671461032e5780633ec726c81461034a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b31461029e57806318160ddd146102ce57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60185481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152600e81526d464947485420434c554220494e5560901b60208201525b6040516102559190611639565b3480156102aa57600080fd5b506102be6102b936600461169f565b61072d565b6040519015158152602001610255565b3480156102da57600080fd5b5060025461024b565b3480156102ef57600080fd5b5061024b600d5481565b34801561030557600080fd5b506102be6103143660046116cb565b61079a565b34801561032557600080fd5b5061024b61085c565b34801561033a57600080fd5b5060405160098152602001610255565b34801561035657600080fd5b5061024b600b5481565b34801561036c57600080fd5b506102be61037b36600461170c565b60076020526000908152604090205460ff1681565b34801561039c57600080fd5b5061024b600c5481565b3480156103b257600080fd5b506017546102be9062010000900460ff1681565b3480156103d257600080fd5b506102be6103e136600461170c565b6108cd565b3480156103f257600080fd5b5061024b600a5481565b34801561040857600080fd5b50600f546102be90610100900460ff1681565b34801561042757600080fd5b5061024b61043636600461170c565b6001600160a01b031660009081526005602052604090205490565b34801561045d57600080fd5b506104666108db565b005b34801561047457600080fd5b50610466610483366004611729565b610958565b34801561049457600080fd5b5061024b60035481565b3480156104aa57600080fd5b5061024b60045481565b3480156104c057600080fd5b506102be6104cf36600461169f565b6109ca565b3480156104e057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561051257600080fd5b506102be61052136600461170c565b60086020526000908152604090205460ff1681565b34801561054257600080fd5b506000546001600160a01b03166104ee565b34801561056057600080fd5b5060408051808201909152600381526246434960e81b6020820152610291565b34801561058c57600080fd5b5061046661059b366004611729565b610abe565b3480156105ac57600080fd5b5061024b60095481565b3480156105c257600080fd5b50600f546102be9062010000900460ff1681565b3480156105e257600080fd5b506014546104ee906001600160a01b031681565b34801561060257600080fd5b506102be61061136600461169f565b610ada565b34801561062257600080fd5b5061024b60165481565b34801561063857600080fd5b5061024b600e5481565b34801561064e57600080fd5b506017546102be906301000000900460ff1681565b34801561066f57600080fd5b5061024b61067e366004611742565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106b557600080fd5b506102be6106c436600461170c565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600f546102be9060ff1681565b3480156106ff57600080fd5b506013546104ee906001600160a01b031681565b34801561071f57600080fd5b506017546102be9060ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107889086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610847576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610822918490610b46565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610852848484610b80565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460025491926108c89290916108c29190610e29565b90610e29565b905090565b60006107948260001961072d565b6000546001600160a01b0316331461090e5760405162461bcd60e51b81526004016109059061177b565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109825760405162461bcd60e51b81526004016109059061177b565b47336108fc606461099385856117c6565b61099d91906117dd565b6040518115909202916000818181858888f193505050501580156109c5573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146109f55760405162461bcd60e51b81526004016109059061177b565b306001600160a01b03841603610a4d5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610905565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085591906117ff565b610ac981605f611821565b610ad4906003611821565b600e5550565b6000610855338484610b80565b600080610af48385611821565b9050838110156108555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008184841115610b6a5760405162461bcd60e51b81526004016109059190611639565b506000610b778486611834565b95945050505050565b601754600090610100900460ff1615610ba557610b9e848484610e6b565b9050610855565b6001600160a01b03831660009081526015602052604090205460ff168015610bd55750601754610100900460ff16155b8015610be9575060175462010000900460ff165b8015610c0657506018543060009081526005602052604090205410155b15610c1357610c13610f3f565b601654158015610c3b57506001600160a01b03831660009081526015602052604090205460ff165b15610c88576001600160a01b038416600090815260056020526040902054610c7f5760405162461bcd60e51b81526020600482015260006024820152604401610905565b610c8843601655565b60035482111580610cb157506001600160a01b03841660009081526008602052604090205460ff165b80610cd457506001600160a01b03831660009081526008602052604090205460ff165b610d185760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610905565b604080516020808201835260008083526001600160a01b038816815260059091529190912054610d49918490610b46565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16158015610d9957506001600160a01b03841660009081526007602052604090205460ff16155b610da35782610dae565b610dae858585611319565b6001600160a01b038516600090815260056020526040902054909150610dd49082610ae7565b6001600160a01b03808616600081815260056020526040908190209390935591519087169060008051602061191a83398151915290610e169085815260200190565b60405180910390a3506001949350505050565b600061085583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b46565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610ebc918490610b46565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610eeb9083610ae7565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061191a83398151915290610f2d9086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260056020526040812054600c54600d54919291610f9091600291610f8a91610f7c9190610e29565b600954610f8a90879061154c565b906115ce565b90506000610f9e8383610e29565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fd857610fd8611847565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611031573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611055919061185d565b8160018151811061106857611068611847565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906110ae90859060009086903090429060040161187a565b600060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505060095447925060009150611106906110f79060026115ce565b600c54600d546108c291610e29565b905060006111286002610f8a84610f8a6009548861154c90919063ffffffff16565b9050600061114583610f8a600a548761154c90919063ffffffff16565b9050600061116284610f8a600b548861154c90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146111b9576040519150601f19603f3d011682016040523d82523d6000602084013e6111be565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611216576040519150601f19603f3d011682016040523d82523d6000602084013e61121b565b606091505b5060009250508915905061130257601354600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156112a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c591906118eb565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff16801561134c5750600f54610100900460ff165b1561136357600c54600e5461136091610e29565b91505b6001600160a01b03861660009081526015602052604090205460ff16801561138d5750600f5460ff165b156113a457600c54600d546113a191610e29565b91505b6001600160a01b03861660009081526015602052604090205460ff161580156113e657506001600160a01b03851660009081526015602052604090205460ff16155b1561141757600f5462010000900460ff161561141257600c54600e5461140b91610e29565b9150611417565b600091505b60008211801561142957506000600c54115b156114be576114486064610f8a600c548761154c90919063ffffffff16565b6012546001600160a01b03166000908152600560205260409020549091506114709082610ae7565b601280546001600160a01b039081166000908152600560209081526040918290209490945591549151848152918116929089169160008051602061191a833981519152910160405180910390a35b60006114cf6064610f8a878661154c565b306000908152600560205260409020549091506114ec9082610ae7565b30600081815260056020526040908190209290925590516001600160a01b0389169060008051602061191a8339815191529061152b9085815260200190565b60405180910390a3611541826108c28784610e29565b979650505050505050565b60008260000361155e57506000610794565b600061156a83856117c6565b90508261157785836117dd565b146108555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061085583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361162c5760405162461bcd60e51b81526004016109059190611639565b506000610b7784866117dd565b600060208083528351808285015260005b818110156116665785810183015185820160400152820161164a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461169c57600080fd5b50565b600080604083850312156116b257600080fd5b82356116bd81611687565b946020939093013593505050565b6000806000606084860312156116e057600080fd5b83356116eb81611687565b925060208401356116fb81611687565b929592945050506040919091013590565b60006020828403121561171e57600080fd5b813561085581611687565b60006020828403121561173b57600080fd5b5035919050565b6000806040838503121561175557600080fd5b823561176081611687565b9150602083013561177081611687565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610794576107946117b0565b6000826117fa57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561181157600080fd5b8151801515811461085557600080fd5b80820180821115610794576107946117b0565b81810381811115610794576107946117b0565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561186f57600080fd5b815161085581611687565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ca5784516001600160a01b0316835293830193918301916001016118a5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122065a2c04f530f0d31d241a628cef3049754f981d9135031799cc2f302e368e89764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063807c2d9c11610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e14610663578063e5e31b13146106a9578063f0ef821f146106d9578063f887ea40146106f3578063ffb54a991461071357600080fd5b8063a8aa1b31146105d6578063a9059cbb146105f6578063bf56b37114610616578063cf9522fd1461062c578063da00097d1461064257600080fd5b80638da5cb5b116100f25780638da5cb5b1461053657806395d89b41146105545780639638c5181461058057806398118cb4146105a0578063a5355989146105b657600080fd5b8063807c2d9c1461049e5780638637b069146104b4578063893d20e8146104d45780638b42507f1461050657600080fd5b80633f4218e0116101b1578063705409331161017557806370540933146103fc57806370a082311461041b578063715018a614610451578063787a051b146104685780637d1db4a51461048857600080fd5b80633f4218e01461036057806345599136146103905780634a74bb02146103a6578063571ac8b0146103c65780636b67c4df146103e657600080fd5b80631df4ccfc116101f85780631df4ccfc146102e357806323b872dd146102f95780632b112e4914610319578063313ce5671461032e5780633ec726c81461034a57600080fd5b80630445b6671461023557806306fdde031461025e578063095ea7b31461029e57806318160ddd146102ce57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024b60185481565b6040519081526020015b60405180910390f35b34801561026a57600080fd5b5060408051808201909152600e81526d464947485420434c554220494e5560901b60208201525b6040516102559190611639565b3480156102aa57600080fd5b506102be6102b936600461169f565b61072d565b6040519015158152602001610255565b3480156102da57600080fd5b5060025461024b565b3480156102ef57600080fd5b5061024b600d5481565b34801561030557600080fd5b506102be6103143660046116cb565b61079a565b34801561032557600080fd5b5061024b61085c565b34801561033a57600080fd5b5060405160098152602001610255565b34801561035657600080fd5b5061024b600b5481565b34801561036c57600080fd5b506102be61037b36600461170c565b60076020526000908152604090205460ff1681565b34801561039c57600080fd5b5061024b600c5481565b3480156103b257600080fd5b506017546102be9062010000900460ff1681565b3480156103d257600080fd5b506102be6103e136600461170c565b6108cd565b3480156103f257600080fd5b5061024b600a5481565b34801561040857600080fd5b50600f546102be90610100900460ff1681565b34801561042757600080fd5b5061024b61043636600461170c565b6001600160a01b031660009081526005602052604090205490565b34801561045d57600080fd5b506104666108db565b005b34801561047457600080fd5b50610466610483366004611729565b610958565b34801561049457600080fd5b5061024b60035481565b3480156104aa57600080fd5b5061024b60045481565b3480156104c057600080fd5b506102be6104cf36600461169f565b6109ca565b3480156104e057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610255565b34801561051257600080fd5b506102be61052136600461170c565b60086020526000908152604090205460ff1681565b34801561054257600080fd5b506000546001600160a01b03166104ee565b34801561056057600080fd5b5060408051808201909152600381526246434960e81b6020820152610291565b34801561058c57600080fd5b5061046661059b366004611729565b610abe565b3480156105ac57600080fd5b5061024b60095481565b3480156105c257600080fd5b50600f546102be9062010000900460ff1681565b3480156105e257600080fd5b506014546104ee906001600160a01b031681565b34801561060257600080fd5b506102be61061136600461169f565b610ada565b34801561062257600080fd5b5061024b60165481565b34801561063857600080fd5b5061024b600e5481565b34801561064e57600080fd5b506017546102be906301000000900460ff1681565b34801561066f57600080fd5b5061024b61067e366004611742565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156106b557600080fd5b506102be6106c436600461170c565b60156020526000908152604090205460ff1681565b3480156106e557600080fd5b50600f546102be9060ff1681565b3480156106ff57600080fd5b506013546104ee906001600160a01b031681565b34801561071f57600080fd5b506017546102be9060ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107889086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914610847576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610822918490610b46565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b610852848484610b80565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460025491926108c89290916108c29190610e29565b90610e29565b905090565b60006107948260001961072d565b6000546001600160a01b0316331461090e5760405162461bcd60e51b81526004016109059061177b565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109825760405162461bcd60e51b81526004016109059061177b565b47336108fc606461099385856117c6565b61099d91906117dd565b6040518115909202916000818181858888f193505050501580156109c5573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146109f55760405162461bcd60e51b81526004016109059061177b565b306001600160a01b03841603610a4d5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e000000006044820152606401610905565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085591906117ff565b610ac981605f611821565b610ad4906003611821565b600e5550565b6000610855338484610b80565b600080610af48385611821565b9050838110156108555760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008184841115610b6a5760405162461bcd60e51b81526004016109059190611639565b506000610b778486611834565b95945050505050565b601754600090610100900460ff1615610ba557610b9e848484610e6b565b9050610855565b6001600160a01b03831660009081526015602052604090205460ff168015610bd55750601754610100900460ff16155b8015610be9575060175462010000900460ff165b8015610c0657506018543060009081526005602052604090205410155b15610c1357610c13610f3f565b601654158015610c3b57506001600160a01b03831660009081526015602052604090205460ff165b15610c88576001600160a01b038416600090815260056020526040902054610c7f5760405162461bcd60e51b81526020600482015260006024820152604401610905565b610c8843601655565b60035482111580610cb157506001600160a01b03841660009081526008602052604090205460ff165b80610cd457506001600160a01b03831660009081526008602052604090205460ff165b610d185760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610905565b604080516020808201835260008083526001600160a01b038816815260059091529190912054610d49918490610b46565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16158015610d9957506001600160a01b03841660009081526007602052604090205460ff16155b610da35782610dae565b610dae858585611319565b6001600160a01b038516600090815260056020526040902054909150610dd49082610ae7565b6001600160a01b03808616600081815260056020526040908190209390935591519087169060008051602061191a83398151915290610e169085815260200190565b60405180910390a3506001949350505050565b600061085583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b46565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054610ebc918490610b46565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610eeb9083610ae7565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061191a83398151915290610f2d9086815260200190565b60405180910390a35060019392505050565b6017805461ff00191661010017905530600090815260056020526040812054600c54600d54919291610f9091600291610f8a91610f7c9190610e29565b600954610f8a90879061154c565b906115ce565b90506000610f9e8383610e29565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610fd857610fd8611847565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611031573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611055919061185d565b8160018151811061106857611068611847565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906110ae90859060009086903090429060040161187a565b600060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b505060095447925060009150611106906110f79060026115ce565b600c54600d546108c291610e29565b905060006111286002610f8a84610f8a6009548861154c90919063ffffffff16565b9050600061114583610f8a600a548761154c90919063ffffffff16565b9050600061116284610f8a600b548861154c90919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d80600081146111b9576040519150601f19603f3d011682016040523d82523d6000602084013e6111be565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d8060008114611216576040519150601f19603f3d011682016040523d82523d6000602084013e61121b565b606091505b5060009250508915905061130257601354600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af11580156112a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112c591906118eb565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805461ff00191690555050505050505050565b6001600160a01b0382166000908152601560205260408120548190819060ff16801561134c5750600f54610100900460ff165b1561136357600c54600e5461136091610e29565b91505b6001600160a01b03861660009081526015602052604090205460ff16801561138d5750600f5460ff165b156113a457600c54600d546113a191610e29565b91505b6001600160a01b03861660009081526015602052604090205460ff161580156113e657506001600160a01b03851660009081526015602052604090205460ff16155b1561141757600f5462010000900460ff161561141257600c54600e5461140b91610e29565b9150611417565b600091505b60008211801561142957506000600c54115b156114be576114486064610f8a600c548761154c90919063ffffffff16565b6012546001600160a01b03166000908152600560205260409020549091506114709082610ae7565b601280546001600160a01b039081166000908152600560209081526040918290209490945591549151848152918116929089169160008051602061191a833981519152910160405180910390a35b60006114cf6064610f8a878661154c565b306000908152600560205260409020549091506114ec9082610ae7565b30600081815260056020526040908190209290925590516001600160a01b0389169060008051602061191a8339815191529061152b9085815260200190565b60405180910390a3611541826108c28784610e29565b979650505050505050565b60008260000361155e57506000610794565b600061156a83856117c6565b90508261157785836117dd565b146108555760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061085583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361162c5760405162461bcd60e51b81526004016109059190611639565b506000610b7784866117dd565b600060208083528351808285015260005b818110156116665785810183015185820160400152820161164a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461169c57600080fd5b50565b600080604083850312156116b257600080fd5b82356116bd81611687565b946020939093013593505050565b6000806000606084860312156116e057600080fd5b83356116eb81611687565b925060208401356116fb81611687565b929592945050506040919091013590565b60006020828403121561171e57600080fd5b813561085581611687565b60006020828403121561173b57600080fd5b5035919050565b6000806040838503121561175557600080fd5b823561176081611687565b9150602083013561177081611687565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610794576107946117b0565b6000826117fa57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561181157600080fd5b8151801515811461085557600080fd5b80820180821115610794576107946117b0565b81810381811115610794576107946117b0565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561186f57600080fd5b815161085581611687565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118ca5784516001600160a01b0316835293830193918301916001016118a5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561190057600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122065a2c04f530f0d31d241a628cef3049754f981d9135031799cc2f302e368e89764736f6c63430008110033

Deployed Bytecode Sourcemap

4902:10023:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6580:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6580:56:0;;;;;;;;8146:78;;;;;;;;;;-1:-1:-1;8217:5:0;;;;;;;;;;;;-1:-1:-1;;;8217:5:0;;;;8146:78;;;;;;;:::i;8988:216::-;;;;;;;;;;-1:-1:-1;8988:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8988:216:0;1205:187:1;8408:86:0;;;;;;;;;;-1:-1:-1;8480:12:0;;8408:86;;5947:27;;;;;;;;;;;;;;;;10105:370;;;;;;;;;;-1:-1:-1;10105:370:0;;;;;:::i;:::-;;:::i;8838:142::-;;;;;;;;;;;;;:::i;8322:78::-;;;;;;;;;;-1:-1:-1;8322:78:0;;5267:1;2000:36:1;;1988:2;1973:18;8322:78:0;1858:184:1;5876:28:0;;;;;;;;;;;;;;;;5693:43;;;;;;;;;;-1:-1:-1;5693:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5911:27;;;;;;;;;;;;;;;;6479:40;;;;;;;;;;-1:-1:-1;6479:40:0;;;;;;;;;;;9212:122;;;;;;;;;;-1:-1:-1;9212:122:0;;;;;:::i;:::-;;:::i;5838:31::-;;;;;;;;;;;;;;;;6052:30;;;;;;;;;;-1:-1:-1;6052:30:0;;;;;;;;;;;8588:103;;;;;;;;;;-1:-1:-1;8588:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8671:18:0;8654:7;8671:18;;;:9;:18;;;;;;;8588:103;4747:148;;;;;;;;;;;;;:::i;:::-;;14719:201;;;;;;;;;;-1:-1:-1;14719:201:0;;;;;:::i;:::-;;:::i;5343:53::-;;;;;;;;;;;;;;;;5403:50;;;;;;;;;;;;;;;;14456:255;;;;;;;;;;-1:-1:-1;14456:255:0;;;;;:::i;:::-;;:::i;8502:78::-;;;;;;;;;;-1:-1:-1;8554:7:0;4598:6;-1:-1:-1;;;;;4598:6:0;8502:78;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8502:78:0;2484:203:1;5743:47:0;;;;;;;;;;-1:-1:-1;5743:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4533:79;;;;;;;;;;-1:-1:-1;4571:7:0;4598:6;-1:-1:-1;;;;;4598:6:0;4533:79;;8232:82;;;;;;;;;;-1:-1:-1;8305:7:0;;;;;;;;;;;;-1:-1:-1;;;8305:7:0;;;;8232:82;;12710:86;;;;;;;;;;-1:-1:-1;12710:86:0;;;;;:::i;:::-;;:::i;5800:31::-;;;;;;;;;;;;;;;;6089:34;;;;;;;;;;-1:-1:-1;6089:34:0;;;;;;;;;;;6299:19;;;;;;;;;;-1:-1:-1;6299:19:0;;;;-1:-1:-1;;;;;6299:19:0;;;9603:156;;;;;;;;;;-1:-1:-1;9603:156:0;;;;;:::i;:::-;;:::i;6372:25::-;;;;;;;;;;;;;;;;5981:26;;;;;;;;;;;;;;;;6526:45;;;;;;;;;;-1:-1:-1;6526:45:0;;;;;;;;;;;8699:131;;;;;;;;;;-1:-1:-1;8699:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8800:19:0;;;8783:7;8800:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8699:131;6325:38;;;;;;;;;;-1:-1:-1;6325:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6016:29;;;;;;;;;;-1:-1:-1;6016:29:0;;;;;;;;6269:23;;;;;;;;;;-1:-1:-1;6269:23:0;;;;-1:-1:-1;;;;;6269:23:0;;;6406:30;;;;;;;;;;-1:-1:-1;6406:30:0;;;;;;;;8988:216;9092:10;9063:4;9080:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9080:32:0;;;;;;;;;;:41;;;9137:37;9063:4;;9080:32;;9137:37;;;;9115:6;160:25:1;;148:2;133:18;;14:177;9137:37:0;;;;;;;;-1:-1:-1;9192:4:0;8988:216;;;;;:::o;10105:370::-;-1:-1:-1;;;;;10226:19:0;;10205:4;10226:19;;;:11;:19;;;;;;;;10246:10;10226:31;;;;;;;;-1:-1:-1;;10226:52:0;10222:188;;10329:69;;;;;;;;;;;-1:-1:-1;;;10329:69:0;;;;;;;;-1:-1:-1;;;;;10329:19:0;;-1:-1:-1;10329:19:0;;;:11;:19;;;;;10349:10;10329:31;;;;;;;;;;:69;;10365:6;;10329:35;:69::i;:::-;-1:-1:-1;;;;;10295:19:0;;;;;;:11;:19;;;;;;;;10315:10;10295:31;;;;;;;:103;10222:188;10427:40;10441:6;10449:9;10460:6;10427:13;:40::i;:::-;10420:47;;10105:370;;;;;;:::o;8838:142::-;8671:9;:18;;;;5017:42;8891:7;8671:18;;;;;8918:12;;8891:7;;8918:54;;8671:18;;8918:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8911:61;;8838:142;:::o;9212:122::-;9267:4;9291:35;9299:7;-1:-1:-1;;9291:7:0;:35::i;4747:148::-;4660:6;;-1:-1:-1;;;;;4660:6:0;4065:10;4660:22;4652:67;;;;-1:-1:-1;;;4652:67:0;;;;;;;:::i;:::-;;;;;;;;;4854:1:::1;4838:6:::0;;4817:40:::1;::::0;-1:-1:-1;;;;;4838:6:0;;::::1;::::0;4817:40:::1;::::0;4854:1;;4817:40:::1;4885:1;4868:19:::0;;-1:-1:-1;;;;;;4868:19:0::1;::::0;;4747:148::o;14719:201::-;4660:6;;-1:-1:-1;;;;;4660:6:0;4065:10;4660:22;4652:67;;;;-1:-1:-1;;;4652:67:0;;;;;;;:::i;:::-;14816:21:::1;14856:10;14848:64;14908:3;14877:28;14889:16:::0;14816:21;14877:28:::1;:::i;:::-;:34;;;;:::i;:::-;14848:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14785:135;14719:201:::0;:::o;14456:255::-;14541:12;4660:6;;-1:-1:-1;;;;;4660:6:0;4065:10;4660:22;4652:67;;;;-1:-1:-1;;;4652:67:0;;;;;;;:::i;:::-;14598:4:::1;-1:-1:-1::0;;;;;14574:29:0;::::1;::::0;14566:70:::1;;;::::0;-1:-1:-1;;;14566:70:0;;4400:2:1;14566:70:0::1;::::0;::::1;4382:21:1::0;4439:2;4419:18;;;4412:30;4478;4458:18;;;4451:58;4526:18;;14566:70:0::1;4198:352:1::0;14566:70:0::1;14654:49;::::0;-1:-1:-1;;;14654:49:0;;14684:10:::1;14654:49;::::0;::::1;4729:51:1::0;4796:18;;;4789:34;;;-1:-1:-1;;;;;14654:29:0;::::1;::::0;::::1;::::0;4702:18:1;;14654:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12710:86::-:0;12776:10;:7;12784:2;12776:10;:::i;:::-;:12;;12787:1;12776:12;:::i;:::-;12766:7;:22;-1:-1:-1;12710:86:0:o;9603:156::-;9683:4;9707:44;9721:10;9733:9;9744:6;9707:13;:44::i;432:179::-;490:7;;522:5;526:1;522;:5;:::i;:::-;510:17;;551:1;546;:6;;538:46;;;;-1:-1:-1;;;538:46:0;;5448:2:1;538:46:0;;;5430:21:1;5487:2;5467:18;;;5460:30;5526:29;5506:18;;;5499:57;5573:18;;538:46:0;5246:351:1;763:190:0;849:7;885:12;877:6;;;;869:29;;;;-1:-1:-1;;;869:29:0;;;;;;;;:::i;:::-;-1:-1:-1;909:9:0;921:5;925:1;921;:5;:::i;:::-;909:17;763:190;-1:-1:-1;;;;;763:190:0:o;10483:1035::-;10596:16;;10575:4;;10596:16;;;;;10592:73;;;10622:41;10637:6;10645:9;10656:6;10622:14;:41::i;:::-;10615:48;;;;10592:73;-1:-1:-1;;;;;10679:17:0;;;;;;:6;:17;;;;;;;;:38;;;;-1:-1:-1;10701:16:0;;;;;;;10700:17;10679:38;:63;;;;-1:-1:-1;10721:21:0;;;;;;;10679:63;:108;;;;-1:-1:-1;10774:13:0;;10764:4;10746:24;;;;:9;:24;;;;;;:41;;10679:108;10675:140;;;10790:23;:21;:23::i;:::-;9409:10;;:15;;;10829:32;;-1:-1:-1;;;;;;10844:17:0;;;;;;:6;:17;;;;;;;;10829:32;10825:122;;;-1:-1:-1;;;;;10886:17:0;;10906:1;10886:17;;;:9;:17;;;;;;10878:34;;;;-1:-1:-1;;;10878:34:0;;5937:2:1;10878:34:0;;;5919:21:1;-1:-1:-1;5956:18:1;;;5949:29;5995:18;;10878:34:0;5735:284:1;10878:34:0;10927:8;9491:12;9478:10;:25;9440:71;10927:8;10978:12;;10968:6;:22;;10967:51;;;-1:-1:-1;;;;;;10995:23:0;;;;;;:15;:23;;;;;;;;10967:51;:81;;;-1:-1:-1;;;;;;11022:26:0;;;;;;:15;:26;;;;;;;;10967:81;10959:115;;;;-1:-1:-1;;;10959:115:0;;6226:2:1;10959:115:0;;;6208:21:1;6265:2;6245:18;;;6238:30;-1:-1:-1;;;6284:18:1;;;6277:51;6345:18;;10959:115:0;6024:345:1;10959:115:0;11135:33;;;;;;;;;-1:-1:-1;11135:33:0;;;-1:-1:-1;;;;;11135:17:0;;;;:9;:17;;;;;;;;:33;;11157:6;;11135:21;:33::i;:::-;-1:-1:-1;;;;;11115:17:0;;;;;;:9;:17;;;;;;;;:53;;;;11261:11;:19;;;;;;;;11260:20;:47;;;;-1:-1:-1;;;;;;11285:22:0;;;;;;:11;:22;;;;;;;;11284:23;11260:47;:99;;11353:6;11260:99;;;11310:40;11324:6;11332:9;11343:6;11310:13;:40::i;:::-;-1:-1:-1;;;;;11393:20:0;;;;;;:9;:20;;;;;;11238:121;;-1:-1:-1;11393:37:0;;11238:121;11393:24;:37::i;:::-;-1:-1:-1;;;;;11370:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11448:40;;;;;;-1:-1:-1;;;;;;;;;;;11448:40:0;;;11476:11;160:25:1;;148:2;133:18;;14:177;11448:40:0;;;;;;;;-1:-1:-1;11506:4:0;;10483:1035;-1:-1:-1;;;;10483:1035:0:o;619:136::-;677:7;704:43;708:1;711;704:43;;;;;;;;;;;;;;;;;:3;:43::i;9767:330::-;9897:53;;;;;;;;;;;-1:-1:-1;;;9897:53:0;;;;;;;;-1:-1:-1;;;;;9897:17:0;;9860:4;9897:17;;;:9;:17;;;;;;;:53;;9919:6;;9897:21;:53::i;:::-;-1:-1:-1;;;;;9877:17:0;;;;;;;:9;:17;;;;;;:73;;;;9984:20;;;;;;;:32;;10009:6;9984:24;:32::i;:::-;-1:-1:-1;;;;;9961:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10032:35;;;;;;-1:-1:-1;;;;;;;;;;;10032:35:0;;;10060:6;160:25:1;;148:2;133:18;;14:177;10032:35:0;;;;;;;;-1:-1:-1;10085:4:0;9767:330;;;;;:::o;12804:1640::-;6741:16;:23;;-1:-1:-1;;6741:23:0;;;;;12913:4:::1;6741:23:::0;12895:24;;;:9:::1;:24;::::0;;;;;13007:8:::1;::::0;12994::::1;::::0;12895:24;;6741:23;12956:68:::1;::::0;13022:1:::1;::::0;12956:61:::1;::::0;12994:22:::1;::::0;:8;:12:::1;:22::i;:::-;12976:12;::::0;12956:33:::1;::::0;:15;;:19:::1;:33::i;:::-;:37:::0;::::1;:61::i;:68::-;12930:94:::0;-1:-1:-1;13035:20:0::1;13058:36;:15:::0;12930:94;13058:19:::1;:36::i;:::-;13131:16;::::0;;13145:1:::1;13131:16:::0;;;;;::::1;::::0;;13035:59;;-1:-1:-1;13107:21:0::1;::::0;13131:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13131:16:0::1;13107:40;;13176:4;13158;13163:1;13158:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13158:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13202:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13202:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;13158:7;;13202:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13192:4;13197:1;13192:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13192:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13228:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13228:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13300:12;;13228:6:::1;::::0;13343:4;;13370::::1;::::0;13390:15:::1;::::0;13228:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13532:12:0::1;::::0;13449:21:::1;::::0;-1:-1:-1;13429:17:0::1;::::0;-1:-1:-1;13505:47:0::1;::::0;13532:19:::1;::::0;13549:1:::1;13532:16;:19::i;:::-;13518:8;::::0;13505::::1;::::0;:22:::1;::::0;:12:::1;:22::i;:47::-;13483:69;;13565:26;13594:51;13643:1;13594:44;13626:11;13594:27;13608:12;;13594:9;:13;;:27;;;;:::i;:51::-;13565:80;;13656:26;13685:44;13717:11;13685:27;13699:12;;13685:9;:13;;:27;;;;:::i;:44::-;13656:73;;13740:20;13763:41;13792:11;13763:24;13777:9;;13763;:13;;:24;;;;:::i;:41::-;13855:14;::::0;13847:73:::1;::::0;13740:64;;-1:-1:-1;13826:16:0::1;::::0;-1:-1:-1;;;;;13855:14:0;;::::1;::::0;13910:5:::1;::::0;13884:18;;13826:16;13847:73;13826:16;13847:73;13884:18;13855:14;13910:5;13847:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13988:9:0::1;::::0;13980:62:::1;::::0;13945:5:::1;::::0;-1:-1:-1;;;;;;13988:9:0;;::::1;::::0;-1:-1:-1;14032:5:0::1;::::0;14012:12;;13945:5;13980:62;13945:5;13980:62;14012:12;13988:9;14032:5;13980:62:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14067:5:0::1;::::0;-1:-1:-1;;14089:19:0;;;-1:-1:-1;14085:352:0::1;;14125:6;::::0;14300:8:::1;::::0;14125:232:::1;::::0;-1:-1:-1;;;14125:232:0;;14202:4:::1;14125:232;::::0;::::1;8430:34:1::0;8480:18;;;8473:34;;;-1:-1:-1;8523:18:1;;;8516:34;;;8566:18;;;8559:34;-1:-1:-1;;;;;14300:8:0;;;::::1;::::0;::::1;8609:19:1::0;;;8602:44;14327:15:0::1;8662:19:1::0;;;8655:35;14125:6:0;::::1;::::0;:22:::1;::::0;14156:18;;8364:19:1;;14125:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14377:48:0::1;::::0;;9186:25:1;;;9242:2;9227:18;;9220:34;;;14377:48:0::1;::::0;-1:-1:-1;9159:18:1;14377:48:0::1;;;;;;;14085:352;-1:-1:-1::0;;6787:16:0;:24;;-1:-1:-1;;6787:24:0;;;-1:-1:-1;;;;;;;;12804:1640:0:o;11526:1176::-;-1:-1:-1;;;;;11707:17:0;;11618:7;11707:17;;;:6;:17;;;;;;11618:7;;;;11707:17;;:32;;;;-1:-1:-1;11728:11:0;;;;;;;11707:32;11703:110;;;11784:8;;11772:7;;:21;;:11;:21::i;:::-;11756:37;;11703:110;-1:-1:-1;;;;;11827:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;11845:10:0;;;;11827:28;11823:107;;;11901:8;;11888;;:22;;:12;:22::i;:::-;11872:38;;11823:107;-1:-1:-1;;;;;11945:14:0;;;;;;:6;:14;;;;;;;;11944:15;:37;;;;-1:-1:-1;;;;;;11964:17:0;;;;;;:6;:17;;;;;;;;11963:18;11944:37;11940:231;;;12001:15;;;;;;;11997:163;;;12064:8;;12052:7;;:21;;:11;:21::i;:::-;12036:37;;11997:163;;;12143:1;12127:17;;11997:163;12200:1;12184:13;:17;:32;;;;;12215:1;12205:8;;:11;12184:32;12181:253;;;12247:29;12272:3;12247:20;12258:8;;12247:6;:10;;:20;;;;:::i;:29::-;12327:12;;-1:-1:-1;;;;;12327:12:0;12317:23;;;;:9;:23;;;;;;12232:44;;-1:-1:-1;12317:41:0;;12232:44;12317:27;:41::i;:::-;12301:12;;;-1:-1:-1;;;;;12301:12:0;;;12291:23;;;;:9;:23;;;;;;;;;:67;;;;12395:12;;12378:44;;160:25:1;;;12395:12:0;;;;12378:44;;;;-1:-1:-1;;;;;;;;;;;12378:44:0;133:18:1;12378:44:0;;;;;;;12181:253;12444:17;12464:34;12494:3;12464:25;:6;12475:13;12464:10;:25::i;:34::-;12556:4;12538:24;;;;:9;:24;;;;;;12444:54;;-1:-1:-1;12538:39:0;;12444:54;12538:28;:39::i;:::-;12529:4;12511:24;;;;:9;:24;;;;;;;:66;;;;12593:42;;-1:-1:-1;;;;;12593:42:0;;;-1:-1:-1;;;;;;;;;;;12593:42:0;;;12625:9;160:25:1;;148:2;133:18;;14:177;12593:42:0;;;;;;;;12655:39;12681:12;12655:21;:6;12666:9;12655:10;:21::i;:39::-;12648:46;11526:1176;-1:-1:-1;;;;;;;11526:1176:0:o;961:222::-;1019:7;1043:1;1048;1043:6;1039:23;;-1:-1:-1;1059:1:0;1052:8;;1039:23;1072:9;1084:5;1088:1;1084;:5;:::i;:::-;1072:17;-1:-1:-1;1117:1:0;1108:5;1112:1;1072:17;1108:5;:::i;:::-;:10;1100:56;;;;-1:-1:-1;;;1100:56:0;;9467:2:1;1100:56:0;;;9449:21:1;9506:2;9486:18;;;9479:30;9545:34;9525:18;;;9518:62;-1:-1:-1;;;9596:18:1;;;9589:31;9637:19;;1100:56:0;9265:397:1;1191:132:0;1249:7;1276:39;1280:1;1283;1276:39;;;;;;;;;;;;;;;;;1417:7;1452:12;1445:5;1437:28;;;;-1:-1:-1;;;1437:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1476:9:0;1488:5;1492:1;1488;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3310:356::-;3512:2;3494:21;;;3531:18;;;3524:30;3590:34;3585:2;3570:18;;3563:62;3657:2;3642:18;;3310:356::o;3671:127::-;3732:10;3727:3;3723:20;3720:1;3713:31;3763:4;3760:1;3753:15;3787:4;3784:1;3777:15;3803:168;3876:9;;;3907;;3924:15;;;3918:22;;3904:37;3894:71;;3945:18;;:::i;3976:217::-;4016:1;4042;4032:132;;4086:10;4081:3;4077:20;4074:1;4067:31;4121:4;4118:1;4111:15;4149:4;4146:1;4139:15;4032:132;-1:-1:-1;4178:9:1;;3976:217::o;4834:277::-;4901:6;4954:2;4942:9;4933:7;4929:23;4925:32;4922:52;;;4970:1;4967;4960:12;4922:52;5002:9;4996:16;5055:5;5048:13;5041:21;5034:5;5031:32;5021:60;;5077:1;5074;5067:12;5116:125;5181:9;;;5202:10;;;5199:36;;;5215:18;;:::i;5602:128::-;5669:9;;;5690:11;;;5687:37;;;5704:18;;:::i;6506:127::-;6567:10;6562:3;6558:20;6555:1;6548:31;6598:4;6595:1;6588:15;6622:4;6619:1;6612:15;6638:251;6708:6;6761:2;6749:9;6740:7;6736:23;6732:32;6729:52;;;6777:1;6774;6767:12;6729:52;6809:9;6803:16;6828:31;6853:5;6828:31;:::i;6894:980::-;7156:4;7204:3;7193:9;7189:19;7235:6;7224:9;7217:25;7261:2;7299:6;7294:2;7283:9;7279:18;7272:34;7342:3;7337:2;7326:9;7322:18;7315:31;7366:6;7401;7395:13;7432:6;7424;7417:22;7470:3;7459:9;7455:19;7448:26;;7509:2;7501:6;7497:15;7483:29;;7530:1;7540:195;7554:6;7551:1;7548:13;7540:195;;;7619:13;;-1:-1:-1;;;;;7615:39:1;7603:52;;7710:15;;;;7675:12;;;;7651:1;7569:9;7540:195;;;-1:-1:-1;;;;;;;7791:32:1;;;;7786:2;7771:18;;7764:60;-1:-1:-1;;;7855:3:1;7840:19;7833:35;7752:3;6894:980;-1:-1:-1;;;6894:980:1:o;8701:306::-;8789:6;8797;8805;8858:2;8846:9;8837:7;8833:23;8829:32;8826:52;;;8874:1;8871;8864:12;8826:52;8903:9;8897:16;8887:26;;8953:2;8942:9;8938:18;8932:25;8922:35;;8997:2;8986:9;8982:18;8976:25;8966:35;;8701:306;;;;;:::o

Swarm Source

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