ETH Price: $2,667.22 (+1.18%)

Token

Bitcoin Farm (BFM)
 

Overview

Max Total Supply

1,000,000,000 BFM

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16,000,000 BFM

Value
$0.00
0x693a8492a96b17793151e14fd37f20720fdead64
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:
BitcoinFarm

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-21
*/

/*
Bitcoin Farm is a pioneering decentralized asset protocol on the Bitcoin blockchain, offering a unique framework for the creation, trade, and management of synthetic assets.

Website:  https://bitcoinfarm.tech
Document: https://jewelas.gitbook.io/bitcoinfarm

Twitter:  https://twitter.com/bfm_erc
Telegram: https://t.me/bfm_erc
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.8;

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

interface IERC20 {
    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 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 ISwapFactory02 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function  renounceOwnership() public onlyOwner {
        owner = address(0); 
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

interface IRouter01 {
    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 BitcoinFarm is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode'Bitcoin Farm';
    string private constant _symbol = unicode'BFM';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private swapThreshold = ( _totalSupply * 10 ) / 1000000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 1000000;
    uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 200 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000;

    mapping (address => bool) public isBTCFeeExempts;
    mapping (address => bool) public isBTCTxExempts;
    mapping (address => bool) private isBot;

    IRouter01 router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 0;

    address internal devReceiver; 
    address internal mkReceiver;
    address internal lpReceiver;

    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 1000;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 2000;
    uint256 private transferFee = 2000;
    uint256 private denominator = 10000;

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    
    constructor(address _bWallet) Ownable(msg.sender) {
        IRouter01 _router = IRouter01(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = ISwapFactory02(_router.factory()).createPair(address(this), _router.WETH());
        mkReceiver = payable(_bWallet);
        lpReceiver = payable(_bWallet);
        devReceiver = payable(msg.sender);
        router = _router; pair = _pair;
        isBTCTxExempts[mkReceiver] = true;
        isBTCTxExempts[lpReceiver] = true;
        isBTCFeeExempts[address(this)] = true;
        isBTCFeeExempts[devReceiver] = true;
        isBTCFeeExempts[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 getOwner() external view override returns (address) { return owner; }
    function setIsExempts(address _address, bool _enabled) external onlyOwner {isBTCFeeExempts[_address] = _enabled;}
    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 openTrading() external onlyOwner {tradingAllowed = true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    
    function setBTCBot(address[] calldata addresses, bool _enabled) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){
        isBot[addresses[i]] = _enabled; }
    }

    function removeLimitBTC() external onlyOwner {
        _maxTxAmount = ~uint256(0);
        _maxSellAmount = ~uint256(0);
        _maxWalletToken = ~uint256(0);
    }

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

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

    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 setContractSwapBTC(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

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

    function _takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        address btcAccount; uint256 btcDivid;
        if (isBTCTxExempts[sender]) {btcAccount = sender;btcDivid = 100;}
        else {btcDivid = 10000;btcAccount = address(this);}
        if(_getTotalFees(sender, recipient) > 0){
        uint256 feeAmount = amount.div(btcDivid).mul(_getTotalFees(sender, recipient));
        _balances[btcAccount] = _balances[btcAccount].add(feeAmount);
        emit Transfer(sender, btcAccount, feeAmount);
        if(burnFee > uint256(0) && _getTotalFees(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount>feeAmount?amount.sub(feeAmount):amount;} return amount;
    }

    function setTransactionFeeBTC(uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%");
    }

    function setTransactionLimitBTC(uint256 _buy, uint256 _sell, uint256 _bWallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_bWallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    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 _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");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(!isBTCFeeExempts[sender] && !isBTCFeeExempts[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isBTCFeeExempts[sender] && !isBTCFeeExempts[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isBTCFeeExempts[sender] || isBTCFeeExempts[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isBTCFeeExempts[sender] || isBTCFeeExempts[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isBTCFeeExempts[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(min(amount,min(balanceOf(address(this)),4000000 * 10**decimals()))); swapTimes = uint256(0);}
        uint256 amountBTC = shouldTakeFee(sender, recipient) ? _takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountBTC);
        _balances[sender] = _balances[sender].sub(amount);
        emit Transfer(sender, recipient, amountBTC);
    }

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

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

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        swapTokensForETH(tokens);
        payable(mkReceiver).transfer(address(this).balance);
    }

    function _getTotalFees(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function setTransactionRequireBTC(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "totalFee and sellFee cannot be more than 20%");
    }

    function setTeamAddressesBTC(address _marketing, address _liquidity, address _development) external onlyOwner {
        mkReceiver = _marketing; lpReceiver = _liquidity; devReceiver = _development;
        isBTCFeeExempts[_marketing] = true; isBTCFeeExempts[_liquidity] = true; isBTCFeeExempts[_development] = true;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_bWallet","type":"address"}],"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":"address","name":"owner","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":"_maxSellAmount","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBTCFeeExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBTCTxExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBTCBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setIsExempts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setTeamAddressesBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionFeeBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_bWallet","type":"uint256"}],"name":"setTransactionLimitBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequireBTC","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":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawErc20BTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000506565b6200002290633b9aca006200051e565b600155620f4240600154600a6200003a91906200051e565b62000046919062000540565b600455620f4240600154600a6200005e91906200051e565b6200006a919062000540565b60055561271060015460c86200008191906200051e565b6200008d919062000540565b60065561271060015460c8620000a491906200051e565b620000b0919062000540565b60075561271060015460c8620000c791906200051e565b620000d3919062000540565b600855600d805461ffff60a01b1916600160a81b1790556000601081905560148190556103e860155560168190556017556107d060188190556019819055601a55612710601b553480156200012757600080fd5b5060405162002511380380620025118339810160408190526200014a9162000563565b600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a015591600480820192602092909190829003018186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062000563565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000563565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002b457600080fd5b505af1158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000563565b601280546001600160a01b03199081166001600160a01b0387811691821790935560138054831682178155601180543390851681178255600c805486168a8816179055600d8054909516878716179094556000928352600a60209081526040808520805460ff19908116600190811790925594548816865281862080548616821790553086526009835281862080548616821790559254909616845285842080548416831790558484528584208054909316821790925554600282528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050506200058e565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004485781600019048211156200042c576200042c620003f1565b808516156200043a57918102915b93841c93908002906200040c565b509250929050565b600082620004615750600162000500565b81620004705750600062000500565b81600181146200048957600281146200049457620004b4565b600191505062000500565b60ff841115620004a857620004a8620003f1565b50506001821b62000500565b5060208310610133831016604e8410600b8410161715620004d9575081810a62000500565b620004e5838362000407565b8060001904821115620004fc57620004fc620003f1565b0290505b92915050565b60006200051760ff84168362000450565b9392505050565b60008160001904831182151516156200053b576200053b620003f1565b500290565b6000826200055e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200057657600080fd5b81516001600160a01b03811681146200051757600080fd5b611f73806200059e6000396000f3fe6080604052600436106101c65760003560e01c8063715018a6116100f7578063a6e374ab11610095578063b887aacf11610064578063b887aacf1461054e578063c1a7285e1461056e578063c9567bf91461058e578063dd62ed3e146105a357600080fd5b8063a6e374ab146104be578063a8aa1b31146104de578063a9059cbb146104fe578063b29e56e01461051e57600080fd5b80637d1db4a5116100d15780637d1db4a51461042a578063893d20e81461044057806395d89b41146104725780639a1b82ad1461049e57600080fd5b8063715018a6146103e957806378109e54146103fe5780637cca52fe1461041457600080fd5b8063313ce5671161016457806351bc3c851161013e57806351bc3c851461034e57806358d5a818146103635780635fe9ae0e1461038357806370a08231146103b357600080fd5b8063313ce567146102f25780633346b8401461030e5780634ecdb9081461032e57600080fd5b806323b872dd116101a057806323b872dd1461026c57806328f76e641461028c5780632c64dce0146102ae5780632f54bf6e146102c357600080fd5b806306fdde03146101d2578063095ea7b31461021957806318160ddd1461024957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600c81526b426974636f696e204661726d60a01b60208201525b6040516102109190611991565b60405180910390f35b34801561022557600080fd5b506102396102343660046119fe565b6105e9565b6040519015158152602001610210565b34801561025557600080fd5b5061025e610600565b604051908152602001610210565b34801561027857600080fd5b50610239610287366004611a2a565b610671565b34801561029857600080fd5b506102ac6102a7366004611a6b565b6106db565b005b3480156102ba57600080fd5b506102ac61078a565b3480156102cf57600080fd5b506102396102de366004611ab6565b6000546001600160a01b0391821691161490565b3480156102fe57600080fd5b5060405160098152602001610210565b34801561031a57600080fd5b506102ac610329366004611ae1565b6107c6565b34801561033a57600080fd5b506102ac610349366004611b5c565b610867565b34801561035a57600080fd5b506102ac610922565b34801561036f57600080fd5b506102ac61037e366004611ba8565b610959565b34801561038f57600080fd5b5061023961039e366004611ab6565b600a6020526000908152604090205460ff1681565b3480156103bf57600080fd5b5061025e6103ce366004611ab6565b6001600160a01b031660009081526002602052604090205490565b3480156103f557600080fd5b506102ac610a91565b34801561040a57600080fd5b5061025e60085481565b34801561042057600080fd5b5061025e60075481565b34801561043657600080fd5b5061025e60065481565b34801561044c57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610210565b34801561047e57600080fd5b5060408051808201909152600381526242464d60e81b6020820152610203565b3480156104aa57600080fd5b506102ac6104b93660046119fe565b610b00565b3480156104ca57600080fd5b506102ac6104d9366004611ba8565b610c39565b3480156104ea57600080fd5b50600d5461045a906001600160a01b031681565b34801561050a57600080fd5b506102396105193660046119fe565b610c9f565b34801561052a57600080fd5b50610239610539366004611ab6565b60096020526000908152604090205460ff1681565b34801561055a57600080fd5b506102ac610569366004611ba8565b610cac565b34801561057a57600080fd5b506102ac610589366004611bd4565b610d4f565b34801561059a57600080fd5b506102ac610da4565b3480156105af57600080fd5b5061025e6105be366004611c0d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60006105f6338484610de3565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261066c9290916106669190610f07565b90610f07565b905090565b600061067e848484610f13565b6106d084336106cb85604051806060016040528060288152602001611f16602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061146d565b610de3565b5060015b9392505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b815260040161070590611c3b565b60405180910390fd5b601280546001600160a01b039485166001600160a01b031991821681179092556013805494861694821685179055601180549390951692168217909355600092835260096020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146107b45760405162461bcd60e51b815260040161070590611c3b565b60001960068190556007819055600855565b6000546001600160a01b031633146107f05760405162461bcd60e51b815260040161070590611c3b565b60005b828110156108615781600b600086868581811061081257610812611c5b565b90506020020160208101906108279190611ab6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061085981611c87565b9150506107f3565b50505050565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161070590611c3b565b601487905560158690556017859055601684905560188390556019829055601a819055601b546108c2906005611499565b601854111580156108e25750601b546108dc906005611499565b60195411155b80156108fd5750601b546108f7906005611499565b601a5411155b6109195760405162461bcd60e51b815260040161070590611ca2565b50505050505050565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161070590611c3b565b6109576004546114a5565b565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161070590611c3b565b60006109a66127106109a08660015461150290919063ffffffff16565b90611499565b905060006109c56127106109a08660015461150290919063ffffffff16565b905060006109e46127106109a08660015461150290919063ffffffff16565b60068490556007839055600881905590506000610a106103e86109a06005610a0a610600565b90611502565b9050808410158015610a225750808310155b8015610a2e5750808210155b6109195760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610705565b6000546001600160a01b03163314610abb5760405162461bcd60e51b815260040161070590611c3b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161070590611c3b565b6040516370a0823160e01b8152306004820152600090610bb1906064906109a09085906001600160a01b038816906370a082319060240160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611cee565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb90604401602060405180830381600087803b158015610c0157600080fd5b505af1158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611d07565b6000546001600160a01b03163314610c635760405162461bcd60e51b815260040161070590611c3b565b6010839055600154610c7e90620186a0906109a09085611502565b600455600154610c9790620186a0906109a09084611502565b600555505050565b60006105f6338484610f13565b6000546001600160a01b03163314610cd65760405162461bcd60e51b815260040161070590611c3b565b60188390556019829055601a819055601b54610cf3906005611499565b60185411158015610d135750601b54610d0d906005611499565b60195411155b8015610d2e5750601b54610d28906005611499565b601a5411155b610d4a5760405162461bcd60e51b815260040161070590611ca2565b505050565b6000546001600160a01b03163314610d795760405162461bcd60e51b815260040161070590611c3b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b815260040161070590611c3b565b600d805460ff60a01b1916600160a01b179055565b6001600160a01b038316610e455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610ea65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106d48284611d24565b6001600160a01b038316610f775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610fd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6000811161103b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6001600160a01b03831660009081526009602052604090205460ff1615801561107d57506001600160a01b03821660009081526009602052604090205460ff16155b156110cc57600d54600160a01b900460ff166110cc5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610705565b6001600160a01b03831660009081526009602052604090205460ff1615801561110e57506001600160a01b03821660009081526009602052604090205460ff16155b80156111285750600d546001600160a01b03838116911614155b801561113f57506001600160a01b03821661dead14155b156111b8576008546001600160a01b03831660009081526002602052604090205461116a908361150e565b11156111b85760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610705565b600d546001600160a01b0384811691161461125957600754811115806111f657506001600160a01b03831660009081526009602052604090205460ff165b8061121957506001600160a01b03821660009081526009602052604090205460ff165b6112595760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610705565b6006548111158061128257506001600160a01b03831660009081526009602052604090205460ff165b806112a557506001600160a01b03821660009081526009602052604090205460ff165b6112e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610705565b600d546001600160a01b03838116911614801561131b57506001600160a01b03831660009081526009602052604090205460ff16155b15611339576001600e60008282546113339190611d3b565b90915550505b61134483838361151a565b1561139b576113956113908261138b611372306001600160a01b031660009081526002602052604090205490565b61137e6009600a611e37565b61138b90623d0900611e46565b6115d4565b6114a5565b6000600e555b60006113a784846115e9565b6113b157816113bc565b6113bc84848461162f565b6001600160a01b0384166000908152600260205260409020549091506113e2908261150e565b6001600160a01b0380851660009081526002602052604080822093909355908616815220546114119083610f07565b6001600160a01b0385811660008181526002602090815260409182902094909455518481529186169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600081848411156114915760405162461bcd60e51b81526004016107059190611991565b505050900390565b60006106d48284611e65565b600f805460ff191660011790556114bb81611787565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156114f4573d6000803e3d6000fd5b5050600f805460ff19169055565b60006106d48284611e46565b60006106d48284611d3b565b60055460045430600090815260026020526040812054600f5491938510159211159060ff161580156115555750600d54600160a81b900460ff165b801561156a5750600d54600160a01b900460ff165b80156115735750815b801561159857506001600160a01b03861660009081526009602052604090205460ff16155b80156115b15750600d546001600160a01b038681169116145b80156115c15750601054600e5410155b80156115ca5750805b9695505050505050565b60008183116115e357826106d4565b50919050565b6001600160a01b03821660009081526009602052604081205460ff161580156106d45750506001600160a01b031660009081526009602052604090205460ff1615919050565b6001600160a01b0383166000908152600a60205260408120548190819060ff161561165f57508490506064611667565b503090506127105b600061167387876118f0565b111561177d57600061169261168888886118f0565b610a0a8785611499565b6001600160a01b0384166000908152600260205260409020549091506116b8908261150e565b6001600160a01b0380851660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061170c9085815260200190565b60405180910390a36000601754118015611730575060175461172e88886118f0565b115b1561175c5761175c3061dead611757601754610a0a601b548b61149990919063ffffffff16565b610f13565b8085116117695784611773565b6117738582610f07565b93505050506106d4565b5091949350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117bc576117bc611c5b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561181057600080fd5b505afa158015611824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118489190611e87565b8160018151811061185b5761185b611c5b565b6001600160a01b039283166020918202929092010152600c546118819130911684610de3565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906118ba908590600090869030904290600401611ea4565b600060405180830381600087803b1580156118d457600080fd5b505af11580156118e8573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166000908152600b602052604081205460ff168061192f57506001600160a01b0382166000908152600b602052604090205460ff165b1561194957601b54611942906064610f07565b90506105fa565b600d546001600160a01b038381169116141561196857506019546105fa565b600d546001600160a01b038481169116141561198757506018546105fa565b50601a5492915050565b600060208083528351808285015260005b818110156119be578581018301518582016040015282016119a2565b818111156119d0576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119fb57600080fd5b50565b60008060408385031215611a1157600080fd5b8235611a1c816119e6565b946020939093013593505050565b600080600060608486031215611a3f57600080fd5b8335611a4a816119e6565b92506020840135611a5a816119e6565b929592945050506040919091013590565b600080600060608486031215611a8057600080fd5b8335611a8b816119e6565b92506020840135611a9b816119e6565b91506040840135611aab816119e6565b809150509250925092565b600060208284031215611ac857600080fd5b81356106d4816119e6565b80151581146119fb57600080fd5b600080600060408486031215611af657600080fd5b833567ffffffffffffffff80821115611b0e57600080fd5b818601915086601f830112611b2257600080fd5b813581811115611b3157600080fd5b8760208260051b8501011115611b4657600080fd5b60209283019550935050840135611aab81611ad3565b600080600080600080600060e0888a031215611b7757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080600060608486031215611bbd57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611be757600080fd5b8235611bf2816119e6565b91506020830135611c0281611ad3565b809150509250929050565b60008060408385031215611c2057600080fd5b8235611c2b816119e6565b91506020830135611c02816119e6565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c9b57611c9b611c71565b5060010190565b6020808252602c908201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60408201526b6f7265207468616e2032302560a01b606082015260800190565b600060208284031215611d0057600080fd5b5051919050565b600060208284031215611d1957600080fd5b81516106d481611ad3565b600082821015611d3657611d36611c71565b500390565b60008219821115611d4e57611d4e611c71565b500190565b600181815b80851115611d8e578160001904821115611d7457611d74611c71565b80851615611d8157918102915b93841c9390800290611d58565b509250929050565b600082611da5575060016105fa565b81611db2575060006105fa565b8160018114611dc85760028114611dd257611dee565b60019150506105fa565b60ff841115611de357611de3611c71565b50506001821b6105fa565b5060208310610133831016604e8410600b8410161715611e11575081810a6105fa565b611e1b8383611d53565b8060001904821115611e2f57611e2f611c71565b029392505050565b60006106d460ff841683611d96565b6000816000190483118215151615611e6057611e60611c71565b500290565b600082611e8257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e9957600080fd5b81516106d4816119e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef45784516001600160a01b031683529383019391830191600101611ecf565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e2d766c9c5091870961f0b4c5242e98b60c728543b0f39a8c719c24d57e561264736f6c634300080800330000000000000000000000002c07c9d0d1167b2d3d23074314d0fe2ab69be8ee

Deployed Bytecode

0x6080604052600436106101c65760003560e01c8063715018a6116100f7578063a6e374ab11610095578063b887aacf11610064578063b887aacf1461054e578063c1a7285e1461056e578063c9567bf91461058e578063dd62ed3e146105a357600080fd5b8063a6e374ab146104be578063a8aa1b31146104de578063a9059cbb146104fe578063b29e56e01461051e57600080fd5b80637d1db4a5116100d15780637d1db4a51461042a578063893d20e81461044057806395d89b41146104725780639a1b82ad1461049e57600080fd5b8063715018a6146103e957806378109e54146103fe5780637cca52fe1461041457600080fd5b8063313ce5671161016457806351bc3c851161013e57806351bc3c851461034e57806358d5a818146103635780635fe9ae0e1461038357806370a08231146103b357600080fd5b8063313ce567146102f25780633346b8401461030e5780634ecdb9081461032e57600080fd5b806323b872dd116101a057806323b872dd1461026c57806328f76e641461028c5780632c64dce0146102ae5780632f54bf6e146102c357600080fd5b806306fdde03146101d2578063095ea7b31461021957806318160ddd1461024957600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b5060408051808201909152600c81526b426974636f696e204661726d60a01b60208201525b6040516102109190611991565b60405180910390f35b34801561022557600080fd5b506102396102343660046119fe565b6105e9565b6040519015158152602001610210565b34801561025557600080fd5b5061025e610600565b604051908152602001610210565b34801561027857600080fd5b50610239610287366004611a2a565b610671565b34801561029857600080fd5b506102ac6102a7366004611a6b565b6106db565b005b3480156102ba57600080fd5b506102ac61078a565b3480156102cf57600080fd5b506102396102de366004611ab6565b6000546001600160a01b0391821691161490565b3480156102fe57600080fd5b5060405160098152602001610210565b34801561031a57600080fd5b506102ac610329366004611ae1565b6107c6565b34801561033a57600080fd5b506102ac610349366004611b5c565b610867565b34801561035a57600080fd5b506102ac610922565b34801561036f57600080fd5b506102ac61037e366004611ba8565b610959565b34801561038f57600080fd5b5061023961039e366004611ab6565b600a6020526000908152604090205460ff1681565b3480156103bf57600080fd5b5061025e6103ce366004611ab6565b6001600160a01b031660009081526002602052604090205490565b3480156103f557600080fd5b506102ac610a91565b34801561040a57600080fd5b5061025e60085481565b34801561042057600080fd5b5061025e60075481565b34801561043657600080fd5b5061025e60065481565b34801561044c57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610210565b34801561047e57600080fd5b5060408051808201909152600381526242464d60e81b6020820152610203565b3480156104aa57600080fd5b506102ac6104b93660046119fe565b610b00565b3480156104ca57600080fd5b506102ac6104d9366004611ba8565b610c39565b3480156104ea57600080fd5b50600d5461045a906001600160a01b031681565b34801561050a57600080fd5b506102396105193660046119fe565b610c9f565b34801561052a57600080fd5b50610239610539366004611ab6565b60096020526000908152604090205460ff1681565b34801561055a57600080fd5b506102ac610569366004611ba8565b610cac565b34801561057a57600080fd5b506102ac610589366004611bd4565b610d4f565b34801561059a57600080fd5b506102ac610da4565b3480156105af57600080fd5b5061025e6105be366004611c0d565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b60006105f6338484610de3565b5060015b92915050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc54600154919261066c9290916106669190610f07565b90610f07565b905090565b600061067e848484610f13565b6106d084336106cb85604051806060016040528060288152602001611f16602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061146d565b610de3565b5060015b9392505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b815260040161070590611c3b565b60405180910390fd5b601280546001600160a01b039485166001600160a01b031991821681179092556013805494861694821685179055601180549390951692168217909355600092835260096020526040808420805460ff199081166001908117909255938552818520805485168217905591845290922080549091169091179055565b6000546001600160a01b031633146107b45760405162461bcd60e51b815260040161070590611c3b565b60001960068190556007819055600855565b6000546001600160a01b031633146107f05760405162461bcd60e51b815260040161070590611c3b565b60005b828110156108615781600b600086868581811061081257610812611c5b565b90506020020160208101906108279190611ab6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061085981611c87565b9150506107f3565b50505050565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161070590611c3b565b601487905560158690556017859055601684905560188390556019829055601a819055601b546108c2906005611499565b601854111580156108e25750601b546108dc906005611499565b60195411155b80156108fd5750601b546108f7906005611499565b601a5411155b6109195760405162461bcd60e51b815260040161070590611ca2565b50505050505050565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161070590611c3b565b6109576004546114a5565b565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161070590611c3b565b60006109a66127106109a08660015461150290919063ffffffff16565b90611499565b905060006109c56127106109a08660015461150290919063ffffffff16565b905060006109e46127106109a08660015461150290919063ffffffff16565b60068490556007839055600881905590506000610a106103e86109a06005610a0a610600565b90611502565b9050808410158015610a225750808310155b8015610a2e5750808210155b6109195760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610705565b6000546001600160a01b03163314610abb5760405162461bcd60e51b815260040161070590611c3b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b03163314610b2a5760405162461bcd60e51b815260040161070590611c3b565b6040516370a0823160e01b8152306004820152600090610bb1906064906109a09085906001600160a01b038816906370a082319060240160206040518083038186803b158015610b7957600080fd5b505afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611cee565b60115460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb90604401602060405180830381600087803b158015610c0157600080fd5b505af1158015610c15573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611d07565b6000546001600160a01b03163314610c635760405162461bcd60e51b815260040161070590611c3b565b6010839055600154610c7e90620186a0906109a09085611502565b600455600154610c9790620186a0906109a09084611502565b600555505050565b60006105f6338484610f13565b6000546001600160a01b03163314610cd65760405162461bcd60e51b815260040161070590611c3b565b60188390556019829055601a819055601b54610cf3906005611499565b60185411158015610d135750601b54610d0d906005611499565b60195411155b8015610d2e5750601b54610d28906005611499565b601a5411155b610d4a5760405162461bcd60e51b815260040161070590611ca2565b505050565b6000546001600160a01b03163314610d795760405162461bcd60e51b815260040161070590611c3b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dce5760405162461bcd60e51b815260040161070590611c3b565b600d805460ff60a01b1916600160a01b179055565b6001600160a01b038316610e455760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610ea65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106d48284611d24565b6001600160a01b038316610f775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610fd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6000811161103b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6001600160a01b03831660009081526009602052604090205460ff1615801561107d57506001600160a01b03821660009081526009602052604090205460ff16155b156110cc57600d54600160a01b900460ff166110cc5760405162461bcd60e51b815260206004820152600e60248201526d1d1c98591a5b99d05b1b1bddd95960921b6044820152606401610705565b6001600160a01b03831660009081526009602052604090205460ff1615801561110e57506001600160a01b03821660009081526009602052604090205460ff16155b80156111285750600d546001600160a01b03838116911614155b801561113f57506001600160a01b03821661dead14155b156111b8576008546001600160a01b03831660009081526002602052604090205461116a908361150e565b11156111b85760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610705565b600d546001600160a01b0384811691161461125957600754811115806111f657506001600160a01b03831660009081526009602052604090205460ff165b8061121957506001600160a01b03821660009081526009602052604090205460ff165b6112595760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610705565b6006548111158061128257506001600160a01b03831660009081526009602052604090205460ff165b806112a557506001600160a01b03821660009081526009602052604090205460ff165b6112e55760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610705565b600d546001600160a01b03838116911614801561131b57506001600160a01b03831660009081526009602052604090205460ff16155b15611339576001600e60008282546113339190611d3b565b90915550505b61134483838361151a565b1561139b576113956113908261138b611372306001600160a01b031660009081526002602052604090205490565b61137e6009600a611e37565b61138b90623d0900611e46565b6115d4565b6114a5565b6000600e555b60006113a784846115e9565b6113b157816113bc565b6113bc84848461162f565b6001600160a01b0384166000908152600260205260409020549091506113e2908261150e565b6001600160a01b0380851660009081526002602052604080822093909355908616815220546114119083610f07565b6001600160a01b0385811660008181526002602090815260409182902094909455518481529186169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600081848411156114915760405162461bcd60e51b81526004016107059190611991565b505050900390565b60006106d48284611e65565b600f805460ff191660011790556114bb81611787565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156114f4573d6000803e3d6000fd5b5050600f805460ff19169055565b60006106d48284611e46565b60006106d48284611d3b565b60055460045430600090815260026020526040812054600f5491938510159211159060ff161580156115555750600d54600160a81b900460ff165b801561156a5750600d54600160a01b900460ff165b80156115735750815b801561159857506001600160a01b03861660009081526009602052604090205460ff16155b80156115b15750600d546001600160a01b038681169116145b80156115c15750601054600e5410155b80156115ca5750805b9695505050505050565b60008183116115e357826106d4565b50919050565b6001600160a01b03821660009081526009602052604081205460ff161580156106d45750506001600160a01b031660009081526009602052604090205460ff1615919050565b6001600160a01b0383166000908152600a60205260408120548190819060ff161561165f57508490506064611667565b503090506127105b600061167387876118f0565b111561177d57600061169261168888886118f0565b610a0a8785611499565b6001600160a01b0384166000908152600260205260409020549091506116b8908261150e565b6001600160a01b0380851660008181526002602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061170c9085815260200190565b60405180910390a36000601754118015611730575060175461172e88886118f0565b115b1561175c5761175c3061dead611757601754610a0a601b548b61149990919063ffffffff16565b610f13565b8085116117695784611773565b6117738582610f07565b93505050506106d4565b5091949350505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117bc576117bc611c5b565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561181057600080fd5b505afa158015611824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118489190611e87565b8160018151811061185b5761185b611c5b565b6001600160a01b039283166020918202929092010152600c546118819130911684610de3565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906118ba908590600090869030904290600401611ea4565b600060405180830381600087803b1580156118d457600080fd5b505af11580156118e8573d6000803e3d6000fd5b505050505050565b6001600160a01b0382166000908152600b602052604081205460ff168061192f57506001600160a01b0382166000908152600b602052604090205460ff165b1561194957601b54611942906064610f07565b90506105fa565b600d546001600160a01b038381169116141561196857506019546105fa565b600d546001600160a01b038481169116141561198757506018546105fa565b50601a5492915050565b600060208083528351808285015260005b818110156119be578581018301518582016040015282016119a2565b818111156119d0576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119fb57600080fd5b50565b60008060408385031215611a1157600080fd5b8235611a1c816119e6565b946020939093013593505050565b600080600060608486031215611a3f57600080fd5b8335611a4a816119e6565b92506020840135611a5a816119e6565b929592945050506040919091013590565b600080600060608486031215611a8057600080fd5b8335611a8b816119e6565b92506020840135611a9b816119e6565b91506040840135611aab816119e6565b809150509250925092565b600060208284031215611ac857600080fd5b81356106d4816119e6565b80151581146119fb57600080fd5b600080600060408486031215611af657600080fd5b833567ffffffffffffffff80821115611b0e57600080fd5b818601915086601f830112611b2257600080fd5b813581811115611b3157600080fd5b8760208260051b8501011115611b4657600080fd5b60209283019550935050840135611aab81611ad3565b600080600080600080600060e0888a031215611b7757600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080600060608486031215611bbd57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611be757600080fd5b8235611bf2816119e6565b91506020830135611c0281611ad3565b809150509250929050565b60008060408385031215611c2057600080fd5b8235611c2b816119e6565b91506020830135611c02816119e6565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611c9b57611c9b611c71565b5060010190565b6020808252602c908201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60408201526b6f7265207468616e2032302560a01b606082015260800190565b600060208284031215611d0057600080fd5b5051919050565b600060208284031215611d1957600080fd5b81516106d481611ad3565b600082821015611d3657611d36611c71565b500390565b60008219821115611d4e57611d4e611c71565b500190565b600181815b80851115611d8e578160001904821115611d7457611d74611c71565b80851615611d8157918102915b93841c9390800290611d58565b509250929050565b600082611da5575060016105fa565b81611db2575060006105fa565b8160018114611dc85760028114611dd257611dee565b60019150506105fa565b60ff841115611de357611de3611c71565b50506001821b6105fa565b5060208310610133831016604e8410600b8410161715611e11575081810a6105fa565b611e1b8383611d53565b8060001904821115611e2f57611e2f611c71565b029392505050565b60006106d460ff841683611d96565b6000816000190483118215151615611e6057611e60611c71565b500290565b600082611e8257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e9957600080fd5b81516106d4816119e6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ef45784516001600160a01b031683529383019391830191600101611ecf565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204e2d766c9c5091870961f0b4c5242e98b60c728543b0f39a8c719c24d57e561264736f6c63430008080033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002c07c9d0d1167b2d3d23074314d0fe2ab69be8ee

-----Decoded View---------------
Arg [0] : _bWallet (address): 0x2c07C9D0d1167b2d3D23074314d0fe2Ab69be8EE

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c07c9d0d1167b2d3d23074314d0fe2ab69be8ee


Deployed Bytecode Sourcemap

5035:11425:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7554:67;;;;;;;;;;-1:-1:-1;7614:5:0;;;;;;;;;;;;-1:-1:-1;;;7614:5:0;;;;7554:67;;;;;;;:::i;:::-;;;;;;;;8367:133;;;;;;;;;;-1:-1:-1;8367:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;8367:133:0;1072:187:1;8578:132:0;;;;;;;;;;;;;:::i;:::-;;;1410:25:1;;;1398:2;1383:18;8578:132:0;1264:177:1;9850:309:0;;;;;;;;;;-1:-1:-1;9850:309:0;;;;;:::i;:::-;;:::i;15842:324::-;;;;;;;;;;-1:-1:-1;15842:324:0;;;;;:::i;:::-;;:::i;:::-;;8915:169;;;;;;;;;;;;;:::i;4131:87::-;;;;;;;;;;-1:-1:-1;4131:87:0;;;;;:::i;:::-;4186:4;4211:5;-1:-1:-1;;;;;4200:16:0;;;4211:5;;4200:16;;4131:87;7704:67;;;;;;;;;;-1:-1:-1;7704:67:0;;5263:1;2835:36:1;;2823:2;2808:18;7704:67:0;2693:184:1;8722:185:0;;;;;;;;;;-1:-1:-1;8722:185:0;;;;;:::i;:::-;;:::i;15312:522::-;;;;;;;;;;-1:-1:-1;15312:522:0;;;;;:::i;:::-;;:::i;10489:89::-;;;;;;;;;;;;;:::i;11733:560::-;;;;;;;;;;-1:-1:-1;11733:560:0;;;;;:::i;:::-;;:::i;5866:47::-;;;;;;;;;;-1:-1:-1;5866:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7980:103;;;;;;;;;;-1:-1:-1;7980:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8063:18:0;8046:7;8063:18;;;:9;:18;;;;;;;7980:103;4224:133;;;;;;;;;;;;;:::i;5739:63::-;;;;;;;;;;;;;;;;5670:62;;;;;;;;;;;;;;;;5603:60;;;;;;;;;;;;;;;;7777:78;;;;;;;;;;-1:-1:-1;7829:7:0;7847:5;-1:-1:-1;;;;;7847:5:0;7777:78;;;-1:-1:-1;;;;;4842:32:1;;;4824:51;;4812:2;4797:18;7777:78:0;4678:203:1;7627:71:0;;;;;;;;;;-1:-1:-1;7689:7:0;;;;;;;;;;;;-1:-1:-1;;;7689:7:0;;;;7627:71;;14578:238;;;;;;;;;;-1:-1:-1;14578:238:0;;;;;:::i;:::-;;:::i;10167:314::-;;;;;;;;;;-1:-1:-1;10167:314:0;;;;;:::i;:::-;;:::i;5991:19::-;;;;;;;;;;-1:-1:-1;5991:19:0;;;;-1:-1:-1;;;;;5991:19:0;;;8089:139;;;;;;;;;;-1:-1:-1;8089:139:0;;;;;:::i;:::-;;:::i;5811:48::-;;;;;;;;;;-1:-1:-1;5811:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11386:339;;;;;;;;;;-1:-1:-1;11386:339:0;;;;;:::i;:::-;;:::i;7861:113::-;;;;;;;;;;-1:-1:-1;7861:113:0;;;;;:::i;:::-;;:::i;8506:66::-;;;;;;;;;;;;;:::i;8234:127::-;;;;;;;;;;-1:-1:-1;8234:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8332:18:0;;;8315:7;8332:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8234:127;8367:133;8442:4;8449:37;8458:10;8470:7;8479:6;8449:8;:37::i;:::-;-1:-1:-1;8494:4:0;8367:133;;;;;:::o;8578:132::-;8063:9;:18;;;;6643:42;8631:7;8063:18;;;;;8648:12;;8631:7;;8648:60;;8063:18;;8648:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;8641:67;;8578:132;:::o;9850:309::-;9948:4;9965:36;9975:6;9983:9;9994:6;9965:9;:36::i;:::-;10012:117;10021:6;10029:10;10041:87;10077:6;10041:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10041:19:0;;;;;;:11;:19;;;;;;;;10061:10;10041:31;;;;;;;;;:87;:35;:87::i;:::-;10012:8;:117::i;:::-;-1:-1:-1;10147:4:0;9850:309;;;;;;:::o;15842:324::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;;;;;;;;;15963:10:::1;:23:::0;;-1:-1:-1;;;;;15963:23:0;;::::1;-1:-1:-1::0;;;;;;15963:23:0;;::::1;::::0;::::1;::::0;;;15988:10:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;16013:11:::1;:26:::0;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;15963:10:::1;16050:27:::0;;;:15:::1;:27;::::0;;;;;:34;;-1:-1:-1;;16050:34:0;;::::1;15963:23:::0;16050:34;;::::1;::::0;;;16086:27;;;;;;:34;;;::::1;::::0;::::1;::::0;;16122:29;;;;;;:36;;;;::::1;::::0;;::::1;::::0;;15842:324::o;8915:169::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;-1:-1:-1;;8971:12:0::1;:26:::0;;;9008:14:::1;:28:::0;;;9047:15:::1;:29:::0;8915:169::o;8722:185::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;8820:6:::1;8816:84;8830:20:::0;;::::1;8816:84;;;8889:8;8867:5;:19;8873:9;;8883:1;8873:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8867:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;8867:19:0;:30;;-1:-1:-1;;8867:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8852:3;::::1;::::0;::::1;:::i;:::-;;;;8816:84;;;;8722:185:::0;;;:::o;15312:522::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;15500:12:::1;:25:::0;;;15527:12:::1;:25:::0;;;15554:7:::1;:15:::0;;;15571:14:::1;:29:::0;;;15602:8:::1;:17:::0;;;15621:7:::1;:15:::0;;;15638:11:::1;:20:::0;;;15689:11:::1;::::0;:18:::1;::::0;15705:1:::1;15689:15;:18::i;:::-;15677:8;;:30;;:63;;;;-1:-1:-1::0;15722:11:0::1;::::0;:18:::1;::::0;15738:1:::1;15722:15;:18::i;:::-;15711:7;;:29;;15677:63;:100;;;;-1:-1:-1::0;15759:11:0::1;::::0;:18:::1;::::0;15775:1:::1;15759:15;:18::i;:::-;15744:11;;:33;;15677:100;15669:157;;;;-1:-1:-1::0;;;15669:157:0::1;;;;;;;:::i;:::-;15312:522:::0;;;;;;;:::o;10489:89::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;10541:29:::1;10556:13;;10541:14;:29::i;:::-;10489:89::o:0;11733:560::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;11842:13:::1;11858:33;11885:5;11858:22;11875:4;11858:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11842:49;;11893:19;11915:34;11943:5;11915:23;11932:5;11915:12;;:16;;:23;;;;:::i;:34::-;11893:56;;11951:17;11971:37;12002:5;11971:26;11988:8;11971:12;;:16;;:26;;;;:::i;:37::-;12019:12;:20:::0;;;12041:14:::1;:28:::0;;;12071:15:::1;:27:::0;;;11951:57;-1:-1:-1;;12125:30:0::1;12150:4;12125:20;12143:1;12125:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;12109:46;;12183:5;12174;:14;;:38;;;;;12207:5;12192:11;:20;;12174:38;:60;;;;;12229:5;12216:9;:18;;12174:60;12166:119;;;::::0;-1:-1:-1;;;12166:119:0;;7019:2:1;12166:119:0::1;::::0;::::1;7001:21:1::0;7058:2;7038:18;;;7031:30;7097:34;7077:18;;;7070:62;-1:-1:-1;;;7148:18:1;;;7141:44;7202:19;;12166:119:0::1;6817:410:1::0;4224:133:0;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;4298:1:::1;4282:18:::0;;-1:-1:-1;;;;;;4282:18:0::1;::::0;;4317:32:::1;::::0;4824:51:1;;;4317:32:0::1;::::0;4812:2:1;4797:18;4317:32:0::1;;;;;;;4224:133::o:0;14578:238::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;14687:41:::1;::::0;-1:-1:-1;;;14687:41:0;;14722:4:::1;14687:41;::::0;::::1;4824:51:1::0;14669:15:0::1;::::0;14687:63:::1;::::0;14746:3:::1;::::0;14687:54:::1;::::0;14733:7;;-1:-1:-1;;;;;14687:26:0;::::1;::::0;::::1;::::0;4797:18:1;;14687:41:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:63::-;14787:11;::::0;14761:47:::1;::::0;-1:-1:-1;;;14761:47:0;;-1:-1:-1;;;;;14787:11:0;;::::1;14761:47;::::0;::::1;7595:51:1::0;7662:18;;;7655:34;;;14669:81:0;;-1:-1:-1;14761:25:0;::::1;::::0;::::1;::::0;7568:18:1;;14761:47:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10167:314::-:0;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;10295:10:::1;:24:::0;;;10337:12:::1;::::0;:53:::1;::::0;10382:6:::1;::::0;10337:32:::1;::::0;10354:14;10337:16:::1;:32::i;:53::-;10321:13;:69:::0;10419:12:::1;::::0;:54:::1;::::0;10465:6:::1;::::0;10419:33:::1;::::0;10436:15;10419:16:::1;:33::i;:54::-;10402:14;:71:::0;-1:-1:-1;;;10167:314:0:o;8089:139::-;8167:4;8174:40;8184:10;8196:9;8207:6;8174:9;:40::i;11386:339::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;11493:8:::1;:17:::0;;;11512:7:::1;:15:::0;;;11529:11:::1;:20:::0;;;11580:11:::1;::::0;:18:::1;::::0;11596:1:::1;11580:15;:18::i;:::-;11568:8;;:30;;:63;;;;-1:-1:-1::0;11613:11:0::1;::::0;:18:::1;::::0;11629:1:::1;11613:15;:18::i;:::-;11602:7;;:29;;11568:63;:100;;;;-1:-1:-1::0;11650:11:0::1;::::0;:18:::1;::::0;11666:1:::1;11650:15;:18::i;:::-;11635:11;;:33;;11568:100;11560:157;;;;-1:-1:-1::0;;;11560:157:0::1;;;;;;;:::i;:::-;11386:339:::0;;;:::o;7861:113::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7936:25:0;;;::::1;;::::0;;;:15:::1;:25;::::0;;;;:36;;-1:-1:-1;;7936:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7861:113::o;8506:66::-;4186:4;4211:5;-1:-1:-1;;;;;4211:5:0;4098:10;4200:16;4082:38;;;;-1:-1:-1;;;4082:38:0;;;;;;;:::i;:::-;8549:14:::1;:21:::0;;-1:-1:-1;;;;8549:21:0::1;-1:-1:-1::0;;;8549:21:0::1;::::0;;8506:66::o;9507:335::-;-1:-1:-1;;;;;9600:19:0;;9592:68;;;;-1:-1:-1;;;9592:68:0;;8152:2:1;9592:68:0;;;8134:21:1;8191:2;8171:18;;;8164:30;8230:34;8210:18;;;8203:62;-1:-1:-1;;;8281:18:1;;;8274:34;8325:19;;9592:68:0;7950:400:1;9592:68:0;-1:-1:-1;;;;;9679:21:0;;9671:68;;;;-1:-1:-1;;;9671:68:0;;8557:2:1;9671:68:0;;;8539:21:1;8596:2;8576:18;;;8569:30;8635:34;8615:18;;;8608:62;-1:-1:-1;;;8686:18:1;;;8679:32;8728:19;;9671:68:0;8355:398:1;9671:68:0;-1:-1:-1;;;;;9750:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9802:32;;1410:25:1;;;9802:32:0;;1383:18:1;9802:32:0;;;;;;;9507:335;;;:::o;1653:98::-;1711:7;1738:5;1742:1;1738;:5;:::i;12743:1484::-;-1:-1:-1;;;;;12840:20:0;;12832:70;;;;-1:-1:-1;;;12832:70:0;;9090:2:1;12832:70:0;;;9072:21:1;9129:2;9109:18;;;9102:30;9168:34;9148:18;;;9141:62;-1:-1:-1;;;9219:18:1;;;9212:35;9264:19;;12832:70:0;8888:401:1;12832:70:0;-1:-1:-1;;;;;12921:23:0;;12913:71;;;;-1:-1:-1;;;12913:71:0;;9496:2:1;12913:71:0;;;9478:21:1;9535:2;9515:18;;;9508:30;9574:34;9554:18;;;9547:62;-1:-1:-1;;;9625:18:1;;;9618:33;9668:19;;12913:71:0;9294:399:1;12913:71:0;13012:1;13003:6;:10;12995:64;;;;-1:-1:-1;;;12995:64:0;;9900:2:1;12995:64:0;;;9882:21:1;9939:2;9919:18;;;9912:30;9978:34;9958:18;;;9951:62;-1:-1:-1;;;10029:18:1;;;10022:39;10078:19;;12995:64:0;9698:405:1;12995:64:0;-1:-1:-1;;;;;13074:23:0;;;;;;:15;:23;;;;;;;;13073:24;:55;;;;-1:-1:-1;;;;;;13102:26:0;;;;;;:15;:26;;;;;;;;13101:27;13073:55;13070:103;;;13138:14;;-1:-1:-1;;;13138:14:0;;;;13130:41;;;;-1:-1:-1;;;13130:41:0;;10310:2:1;13130:41:0;;;10292:21:1;10349:2;10329:18;;;10322:30;-1:-1:-1;;;10368:18:1;;;10361:44;10422:18;;13130:41:0;10108:338:1;13130:41:0;-1:-1:-1;;;;;13187:23:0;;;;;;:15;:23;;;;;;;;13186:24;:55;;;;-1:-1:-1;;;;;;13215:26:0;;;;;;:15;:26;;;;;;;;13214:27;13186:55;:85;;;;-1:-1:-1;13266:4:0;;-1:-1:-1;;;;;13245:26:0;;;13266:4;;13245:26;;13186:85;:115;;;;-1:-1:-1;;;;;;13275:26:0;;6643:42;13275:26;;13186:115;13183:228;;;13359:15;;-1:-1:-1;;;;;13322:20:0;;;;;;:9;:20;;;;;;:32;;13347:6;13322:24;:32::i;:::-;13321:53;;13313:96;;;;-1:-1:-1;;;13313:96:0;;10653:2:1;13313:96:0;;;10635:21:1;10692:2;10672:18;;;10665:30;10731:32;10711:18;;;10704:60;10781:18;;13313:96:0;10451:354:1;13313:96:0;13434:4;;-1:-1:-1;;;;;13424:14:0;;;13434:4;;13424:14;13421:132;;13458:14;;13448:6;:24;;:51;;;-1:-1:-1;;;;;;13476:23:0;;;;;;:15;:23;;;;;;;;13448:51;:81;;;-1:-1:-1;;;;;;13503:26:0;;;;;;:15;:26;;;;;;;;13448:81;13440:111;;;;-1:-1:-1;;;13440:111:0;;11012:2:1;13440:111:0;;;10994:21:1;11051:2;11031:18;;;11024:30;-1:-1:-1;;;11070:18:1;;;11063:47;11127:18;;13440:111:0;10810:341:1;13440:111:0;13581:12;;13571:6;:22;;:49;;;-1:-1:-1;;;;;;13597:23:0;;;;;;:15;:23;;;;;;;;13571:49;:79;;;-1:-1:-1;;;;;;13624:26:0;;;;;;:15;:26;;;;;;;;13571:79;13563:109;;;;-1:-1:-1;;;13563:109:0;;11012:2:1;13563:109:0;;;10994:21:1;11051:2;11031:18;;;11024:30;-1:-1:-1;;;11070:18:1;;;11063:47;11127:18;;13563:109:0;10810:341:1;13563:109:0;13700:4;;-1:-1:-1;;;;;13687:17:0;;;13700:4;;13687:17;:45;;;;-1:-1:-1;;;;;;13709:23:0;;;;;;:15;:23;;;;;;;;13708:24;13687:45;13684:75;;;13755:1;13734:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;13684:75:0;13772:45;13791:6;13799:9;13810:6;13772:18;:45::i;:::-;13769:158;;;13819:82;13834:66;13838:6;13845:54;13849:24;13867:4;-1:-1:-1;;;;;8063:18:0;8046:7;8063:18;;;:9;:18;;;;;;;7980:103;13849:24;13884:14;5263:1;13884:2;:14;:::i;:::-;13874:24;;:7;:24;:::i;:::-;13845:3;:54::i;13834:66::-;13819:14;:82::i;:::-;13923:1;13903:9;:22;13769:158;13937:17;13957:32;13971:6;13979:9;13957:13;:32::i;:::-;:79;;14030:6;13957:79;;;13992:35;14001:6;14009:9;14020:6;13992:8;:35::i;:::-;-1:-1:-1;;;;;14070:20:0;;;;;;:9;:20;;;;;;13937:99;;-1:-1:-1;14070:35:0;;13937:99;14070:24;:35::i;:::-;-1:-1:-1;;;;;14047:20:0;;;;;;;:9;:20;;;;;;:58;;;;14136:17;;;;;;;:29;;14158:6;14136:21;:29::i;:::-;-1:-1:-1;;;;;14116:17:0;;;;;;;:9;:17;;;;;;;;;:49;;;;14181:38;1410:25:1;;;14181:38:0;;;;14116:17;;14181:38;;1383:18:1;14181:38:0;;;;;;;12821:1406;12743:1484;;;:::o;2077:240::-;2197:7;2258:12;2250:6;;;;2242:29;;;;-1:-1:-1;;;2242:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2293:5:0;;;2077:240::o;1865:98::-;1923:7;1950:5;1954:1;1950;:5;:::i;14824:165::-;6714:8;:15;;-1:-1:-1;;6714:15:0;6725:4;6714:15;;;14895:24:::1;14912:6:::0;14895:16:::1;:24::i;:::-;14938:10;::::0;14930:51:::1;::::0;-1:-1:-1;;;;;14938:10:0;;::::1;::::0;14959:21:::1;14930:51:::0;::::1;;;::::0;14938:10:::1;14930:51:::0;14938:10;14930:51;14959:21;14938:10;14930:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6734:8:0;:16;;-1:-1:-1;;6734:16:0;;;14824:165::o;1759:98::-;1817:7;1844:5;1848:1;1844;:5;:::i;1547:98::-;1605:7;1632:5;1636:1;1632;:5;:::i;9092:407::-;9237:14;;9312:13;;9302:4;9194;8063:18;;;:9;:18;;;;;;9344:8;;9194:4;;9227:24;;;;-1:-1:-1;9284:41:0;;9344:8;;9343:9;:24;;;;-1:-1:-1;9356:11:0;;-1:-1:-1;;;9356:11:0;;;;9343:24;:42;;;;-1:-1:-1;9371:14:0;;-1:-1:-1;;;9371:14:0;;;;9343:42;:54;;;;;9389:8;9343:54;:82;;;;-1:-1:-1;;;;;;9402:23:0;;;;;;:15;:23;;;;;;;;9401:24;9343:82;:103;;;;-1:-1:-1;9442:4:0;;-1:-1:-1;;;;;9429:17:0;;;9442:4;;9429:17;9343:103;:130;;;;;9463:10;;9450:9;;:23;;9343:130;:148;;;;;9477:14;9343:148;9336:155;9092:407;-1:-1:-1;;;;;;9092:407:0:o;16174:107::-;16231:7;16263:1;16259;:5;16258:15;;16272:1;16258:15;;;-1:-1:-1;16268:1:0;16174:107;-1:-1:-1;16174:107:0:o;16289:168::-;-1:-1:-1;;;;;16395:23:0;;16370:4;16395:23;;;:15;:23;;;;;;;;16394:24;:55;;;;-1:-1:-1;;;;;;;16423:26:0;;;;;:15;:26;;;;;;;;16422:27;;16289:168;-1:-1:-1;16289:168:0:o;10586:792::-;-1:-1:-1;;;;;10744:22:0;;10673:7;10744:22;;;:14;:22;;;;;;10673:7;;;;10744:22;;10740:126;;;-1:-1:-1;10782:6:0;;-1:-1:-1;10800:3:0;10740:126;;;-1:-1:-1;10859:4:0;;-1:-1:-1;10832:5:0;10740:126;10914:1;10879:32;10893:6;10901:9;10879:13;:32::i;:::-;:36;10876:480;;;10927:17;10947:58;10972:32;10986:6;10994:9;10972:13;:32::i;:::-;10947:20;:6;10958:8;10947:10;:20::i;:58::-;-1:-1:-1;;;;;11040:21:0;;;;;;:9;:21;;;;;;10927:78;;-1:-1:-1;11040:36:0;;10927:78;11040:25;:36::i;:::-;-1:-1:-1;;;;;11016:21:0;;;;;;;:9;:21;;;;;;;:60;;;;11092:39;;;;;;;;;;11121:9;1410:25:1;;1398:2;1383:18;;1264:177;11092:39:0;;;;;;;;11163:1;11145:7;;:20;:66;;;;;11204:7;;11169:32;11183:6;11191:9;11169:13;:32::i;:::-;:42;11145:66;11142:150;;;11213:77;11231:4;6643:42;11253:36;11281:7;;11253:23;11264:11;;11253:6;:10;;:23;;;;:::i;:36::-;11213:9;:77::i;:::-;11316:9;11309:6;:16;:45;;11348:6;11309:45;;;11326:21;:6;11337:9;11326:10;:21::i;:::-;11302:52;;;;;;;10876:480;-1:-1:-1;11364:6:0;;10586:792;-1:-1:-1;;;;10586:792:0:o;12301:434::-;12391:16;;;12405:1;12391:16;;;;;;;;12367:21;;12391:16;;;;;;;;;;-1:-1:-1;12391:16:0;12367:40;;12436:4;12418;12423:1;12418:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12418:23:0;;;:7;;;;;;;;;;:23;;;;12462:6;;:13;;;-1:-1:-1;;;12462:13:0;;;;:6;;;;;:11;;:13;;;;;12418:7;;12462:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12452:4;12457:1;12452:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12452:23:0;;;:7;;;;;;;;;:23;12518:6;;12486:53;;12503:4;;12518:6;12527:11;12486:8;:53::i;:::-;12550:6;;:177;;-1:-1:-1;;;12550:177:0;;-1:-1:-1;;;;;12550:6:0;;;;:57;;:177;;12622:11;;12550:6;;12664:4;;12691;;12711:15;;12550:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12356:379;12301:434;:::o;14997:307::-;-1:-1:-1;;;;;15101:13:0;;15078:7;15101:13;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15118:16:0;;;;;;:5;:16;;;;;;;;15101:33;15098:76;;;15143:11;;:29;;15167:3;15143:15;:29::i;:::-;15136:36;;;;15098:76;15200:4;;-1:-1:-1;;;;;15187:17:0;;;15200:4;;15187:17;15184:38;;;-1:-1:-1;15213:7:0;;15206:14;;15184:38;15245:4;;-1:-1:-1;;;;;15235:14:0;;;15245:4;;15235:14;15232:36;;;-1:-1:-1;15258:8:0;;15251:15;;15232:36;-1:-1:-1;15285:11:0;;14997:307;;;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:529::-;1984:6;1992;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2108:9;2095:23;2127:31;2152:5;2127:31;:::i;:::-;2177:5;-1:-1:-1;2234:2:1;2219:18;;2206:32;2247:33;2206:32;2247:33;:::i;:::-;2299:7;-1:-1:-1;2358:2:1;2343:18;;2330:32;2371:33;2330:32;2371:33;:::i;:::-;2423:7;2413:17;;;1907:529;;;;;:::o;2441:247::-;2500:6;2553:2;2541:9;2532:7;2528:23;2524:32;2521:52;;;2569:1;2566;2559:12;2521:52;2608:9;2595:23;2627:31;2652:5;2627:31;:::i;2882:118::-;2968:5;2961:13;2954:21;2947:5;2944:32;2934:60;;2990:1;2987;2980:12;3005:750;3097:6;3105;3113;3166:2;3154:9;3145:7;3141:23;3137:32;3134:52;;;3182:1;3179;3172:12;3134:52;3222:9;3209:23;3251:18;3292:2;3284:6;3281:14;3278:34;;;3308:1;3305;3298:12;3278:34;3346:6;3335:9;3331:22;3321:32;;3391:7;3384:4;3380:2;3376:13;3372:27;3362:55;;3413:1;3410;3403:12;3362:55;3453:2;3440:16;3479:2;3471:6;3468:14;3465:34;;;3495:1;3492;3485:12;3465:34;3550:7;3543:4;3533:6;3530:1;3526:14;3522:2;3518:23;3514:34;3511:47;3508:67;;;3571:1;3568;3561:12;3508:67;3602:4;3594:13;;;;-1:-1:-1;3626:6:1;-1:-1:-1;;3667:20:1;;3654:34;3697:28;3654:34;3697:28;:::i;3760:592::-;3873:6;3881;3889;3897;3905;3913;3921;3974:3;3962:9;3953:7;3949:23;3945:33;3942:53;;;3991:1;3988;3981:12;3942:53;-1:-1:-1;;4014:23:1;;;4084:2;4069:18;;4056:32;;-1:-1:-1;4135:2:1;4120:18;;4107:32;;4186:2;4171:18;;4158:32;;-1:-1:-1;4237:3:1;4222:19;;4209:33;;-1:-1:-1;4289:3:1;4274:19;;4261:33;;-1:-1:-1;4341:3:1;4326:19;4313:33;;-1:-1:-1;3760:592:1;-1:-1:-1;3760:592:1:o;4357:316::-;4434:6;4442;4450;4503:2;4491:9;4482:7;4478:23;4474:32;4471:52;;;4519:1;4516;4509:12;4471:52;-1:-1:-1;;4542:23:1;;;4612:2;4597:18;;4584:32;;-1:-1:-1;4663:2:1;4648:18;;;4635:32;;4357:316;-1:-1:-1;4357:316:1:o;4886:382::-;4951:6;4959;5012:2;5000:9;4991:7;4987:23;4983:32;4980:52;;;5028:1;5025;5018:12;4980:52;5067:9;5054:23;5086:31;5111:5;5086:31;:::i;:::-;5136:5;-1:-1:-1;5193:2:1;5178:18;;5165:32;5206:30;5165:32;5206:30;:::i;:::-;5255:7;5245:17;;;4886:382;;;;;:::o;5273:388::-;5341:6;5349;5402:2;5390:9;5381:7;5377:23;5373:32;5370:52;;;5418:1;5415;5408:12;5370:52;5457:9;5444:23;5476:31;5501:5;5476:31;:::i;:::-;5526:5;-1:-1:-1;5583:2:1;5568:18;;5555:32;5596:33;5555:32;5596:33;:::i;5666:329::-;5868:2;5850:21;;;5907:1;5887:18;;;5880:29;-1:-1:-1;;;5940:2:1;5925:18;;5918:36;5986:2;5971:18;;5666:329::o;6000:127::-;6061:10;6056:3;6052:20;6049:1;6042:31;6092:4;6089:1;6082:15;6116:4;6113:1;6106:15;6132:127;6193:10;6188:3;6184:20;6181:1;6174:31;6224:4;6221:1;6214:15;6248:4;6245:1;6238:15;6264:135;6303:3;-1:-1:-1;;6324:17:1;;6321:43;;;6344:18;;:::i;:::-;-1:-1:-1;6391:1:1;6380:13;;6264:135::o;6404:408::-;6606:2;6588:21;;;6645:2;6625:18;;;6618:30;6684:34;6679:2;6664:18;;6657:62;-1:-1:-1;;;6750:2:1;6735:18;;6728:42;6802:3;6787:19;;6404:408::o;7232:184::-;7302:6;7355:2;7343:9;7334:7;7330:23;7326:32;7323:52;;;7371:1;7368;7361:12;7323:52;-1:-1:-1;7394:16:1;;7232:184;-1:-1:-1;7232:184:1:o;7700:245::-;7767:6;7820:2;7808:9;7799:7;7795:23;7791:32;7788:52;;;7836:1;7833;7826:12;7788:52;7868:9;7862:16;7887:28;7909:5;7887:28;:::i;8758:125::-;8798:4;8826:1;8823;8820:8;8817:34;;;8831:18;;:::i;:::-;-1:-1:-1;8868:9:1;;8758:125::o;11156:128::-;11196:3;11227:1;11223:6;11220:1;11217:13;11214:39;;;11233:18;;:::i;:::-;-1:-1:-1;11269:9:1;;11156:128::o;11289:422::-;11378:1;11421:5;11378:1;11435:270;11456:7;11446:8;11443:21;11435:270;;;11515:4;11511:1;11507:6;11503:17;11497:4;11494:27;11491:53;;;11524:18;;:::i;:::-;11574:7;11564:8;11560:22;11557:55;;;11594:16;;;;11557:55;11673:22;;;;11633:15;;;;11435:270;;;11439:3;11289:422;;;;;:::o;11716:806::-;11765:5;11795:8;11785:80;;-1:-1:-1;11836:1:1;11850:5;;11785:80;11884:4;11874:76;;-1:-1:-1;11921:1:1;11935:5;;11874:76;11966:4;11984:1;11979:59;;;;12052:1;12047:130;;;;11959:218;;11979:59;12009:1;12000:10;;12023:5;;;12047:130;12084:3;12074:8;12071:17;12068:43;;;12091:18;;:::i;:::-;-1:-1:-1;;12147:1:1;12133:16;;12162:5;;11959:218;;12261:2;12251:8;12248:16;12242:3;12236:4;12233:13;12229:36;12223:2;12213:8;12210:16;12205:2;12199:4;12196:12;12192:35;12189:77;12186:159;;;-1:-1:-1;12298:19:1;;;12330:5;;12186:159;12377:34;12402:8;12396:4;12377:34;:::i;:::-;12447:6;12443:1;12439:6;12435:19;12426:7;12423:32;12420:58;;;12458:18;;:::i;:::-;12496:20;;11716:806;-1:-1:-1;;;11716:806:1:o;12527:140::-;12585:5;12614:47;12655:4;12645:8;12641:19;12635:4;12614:47;:::i;12672:168::-;12712:7;12778:1;12774;12770:6;12766:14;12763:1;12760:21;12755:1;12748:9;12741:17;12737:45;12734:71;;;12785:18;;:::i;:::-;-1:-1:-1;12825:9:1;;12672:168::o;12845:217::-;12885:1;12911;12901:132;;12955:10;12950:3;12946:20;12943:1;12936:31;12990:4;12987:1;12980:15;13018:4;13015:1;13008:15;12901:132;-1:-1:-1;13047:9:1;;12845:217::o;13199:251::-;13269:6;13322:2;13310:9;13301:7;13297:23;13293:32;13290:52;;;13338:1;13335;13328:12;13290:52;13370:9;13364:16;13389:31;13414:5;13389:31;:::i;13455:980::-;13717:4;13765:3;13754:9;13750:19;13796:6;13785:9;13778:25;13822:2;13860:6;13855:2;13844:9;13840:18;13833:34;13903:3;13898:2;13887:9;13883:18;13876:31;13927:6;13962;13956:13;13993:6;13985;13978:22;14031:3;14020:9;14016:19;14009:26;;14070:2;14062:6;14058:15;14044:29;;14091:1;14101:195;14115:6;14112:1;14109:13;14101:195;;;14180:13;;-1:-1:-1;;;;;14176:39:1;14164:52;;14271:15;;;;14236:12;;;;14212:1;14130:9;14101:195;;;-1:-1:-1;;;;;;;14352:32:1;;;;14347:2;14332:18;;14325:60;-1:-1:-1;;;14416:3:1;14401:19;14394:35;14313:3;13455:980;-1:-1:-1;;;13455:980:1:o

Swarm Source

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