ETH Price: $3,031.47 (+3.94%)
 

Overview

Max Total Supply

222,222,222,222 2PAC

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 2PAC

Value
$0.00
0x857b0dd63bacce14acc603968cf6668dc76adab2
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:
TwoPacInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-25
*/

/**

✉️ Telegram : t.me/TwoPacToken
🌐 Website : www.2pacinu.info
                                                                                        
⠄⠄⠄⠄⠄⠄⠄⠄⡀⠔⠂⠉⣭⡭⣭⣶⡖⠒⣩⣯⠐⠠⢄
⠄⠄⠄⠄⢀⠤⠊⡩⠔⠉⠄⠄⠄⠄⠄⠴⣿⣿⣿⣿⢷⣶⣤⣱⢄
⠄⠄⠄⡠⠡⠂⢁⣤⠞⠄⢀⠴⠃⠄⢀⣀⡀⠄⠄⠄⠄⠄⠉⣿⣷⣅⢄
⠄⡠⢊⣄⠄⣴⠏⣠⠆⡐⢋⢀⣶⣾⠟⠛⠃⠉⠄⠄⠠⢶⡶⡽⡟⣿⣯⠣⡀
⡰⣱⣟⣿⡾⢁⣾⠟⠄⠐⢡⣿⣿⠄⠄⠄⠈⢷⠄⠄⡀⡀⠙⠻⠈⠪⡘⢷⣵⠄
⢇⡏⡘⡞⢀⡾⣫⡆⣪⢀⠏⣿⣿⣷⣿⣩⠗⠄⠄⠄⠈⢿⡉⢷⠄⠄⠈⠢⣿⠆
⠈⠄⡼⡡⢏⣽⠟⠠⠉⠄⠄⠁⠄⠉⠉⠁⠄⠄⠄⡀⠄⠄⠄⠘⡀⠄⠄⠄⠄⠈
⠄⢉⠳⡳⠟⠁⠄⠄⠸⠁⠄⠄⠄⠄⠄⠄⠄⠄⢠⣤⣶⣆⢠⠄⢡
⠄⠦⣶⣶⣴⡄⠄⢺⠄⣴⣶⣄⠄⠄⠄⠄⠄⠄⠄⣡⣴⡄⠲⠦⢸
⠄⠈⢟⣿⢿⢇⡀⠄⠄⣿⣿⣿⣷⡀⠄⠄⠄⣠⣾⣨⣎⣠⣀⣀⣰
⠄⠄⠄⠻⢎⠉⠄⠄⠄⢻⣿⣿⣿⣷⡀⠄⠐⠛⣏⣉⣭⠅⢐⣀⢹
⠄⠄⠄⠄⠄⢱⠄⢾⣷⣤⣻⣿⣿⣿⣷⣤⡀⠄⠈⠛⠛⠋⠉⠁⡆
⠄⠄⠄⠄⠄⠘⠄⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣤⣀⣀⣀⣠⠇
⠄⠄⠄⠄⠄⠄⠄⠄⣿⣿⣿⣿⣿⣿⣿⣿⡟⠉⠛⠛⠿⠿⠿⠋
⠄⠄⠄⠄⠄⠄⠄⢀⣿⣿⣿⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⡆
⠄⠄⠄⠄⠄⠜⠄⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠄⠄⠄⡇
⠄⠄⠄⠄⠄⠡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠄⠄⣠⡇
⠄⠄⠄⠄⠄⠄⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣥⣴⣾⣿⠃
⠄⠄⠄⠄⠄⠄⠄⠄⠉⠛⠻⠿⢿⣿⣿⣿⣿⠿⠟⠋⠁




*/

pragma solidity ^0.8.7;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _dev;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

    contract TwoPacInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 222222222222 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    struct Taxes {
        uint256 buyFee1;
        uint256 buyFee2;
        uint256 sellFee1;
        uint256 sellFee2;
    }

    Taxes private _taxes = Taxes(0,9,0,9);
    uint256 private initialTotalBuyFee = _taxes.buyFee1 + _taxes.buyFee2;
    uint256 private initialTotalSellFee = _taxes.sellFee1 + _taxes.sellFee2;
    address payable private _feeAddrWallet;
    uint256 private _feeRate = 15;

    uint256 launchedAt;
    uint256 deadBlock;
    
    string private constant _name = "2Pac Inu Token";
    string private constant _symbol = "2PAC";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool private _isBuy = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 private _maxWalletSize = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0x84C3e174f58B881028C1699D87222818564E2F72);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        _isBuy = true;

        if (from != owner() && to != owner()) {


            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // buy
                require(amount <= _maxTxAmount);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if (from != address(uniswapV2Router) && ! _isExcludedFromFee[from] && to == uniswapV2Pair){
                require(!bots[to]);
                _isBuy = false;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
            }

            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from,to,amount);
    }


    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    function getIsBuy() private view returns (bool){
        return _isBuy;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function adjustFees(uint256 buyFee1, uint256 buyFee2, uint256 sellFee1, uint256 sellFee2) external onlyOwner {
        require(buyFee1 + buyFee2 <= initialTotalBuyFee);
        require(sellFee1 + sellFee2 <= initialTotalSellFee);
        _taxes.buyFee1 = buyFee1;
        _taxes.buyFee2 = buyFee2;
        _taxes.sellFee1 = sellFee1;
        _taxes.sellFee2 = sellFee2;
    }

    function changeMaxTxAmount(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxTxAmount = _tTotal.mul(percentage).div(100);
    }

    function changeMaxWalletSize(uint256 percentage) external onlyOwner{
        require(percentage>0);
        _maxWalletSize = _tTotal.mul(percentage).div(100);
    }

    function setFeeRate(uint256 rate) external {
        require(_msgSender() == _feeAddrWallet);
        require(rate<=49);
        _feeRate = rate;
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }  

    function openTrading(uint256 db) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        require(db <= 1);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(2).div(100);
        _maxWalletSize = _tTotal.mul(4).div(100);
        tradingOpen = true;
        deadBlock = db;
        launchedAt = block.number;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function addBot(address bot) public onlyOwner {
                bots[bot] = true;

    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = getIsBuy() ? _getTValues(tAmount, _taxes.buyFee1, _taxes.buyFee2) : _getTValues(tAmount, _taxes.sellFee1, _taxes.sellFee2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"bot","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee1","type":"uint256"},{"internalType":"uint256","name":"buyFee2","type":"uint256"},{"internalType":"uint256","name":"sellFee1","type":"uint256"},{"internalType":"uint256","name":"sellFee2","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"db","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052680c0bf3edba243a0c006000196200001d919062000568565b6000196200002c919062000523565b60095560405180608001604052806000815260200160098152602001600081526020016009815250600b600082015181600001556020820151816001015560408201518160020155606082015181600301555050600b60010154600b60000154620000989190620004c6565b600f55600b60030154600b60020154620000b39190620004c6565b601055600f6012556000601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff0219169083151502179055506000601660176101000a81548160ff0219169083151502179055506000601660186101000a81548160ff021916908315150217905550680c0bf3edba243a0c00601755680c0bf3edba243a0c006018553480156200014d57600080fd5b506000620001606200046760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507384c3e174f58b881028c1699d87222818564e2f72601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600360006200026a6200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620002be6200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003f16200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef680c0bf3edba243a0c00604051620004599190620004a9565b60405180910390a3620005fe565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004a3816200055e565b82525050565b6000602082019050620004c0600083018462000498565b92915050565b6000620004d3826200055e565b9150620004e0836200055e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005185762000517620005a0565b5b828201905092915050565b600062000530826200055e565b91506200053d836200055e565b925082821015620005535762000552620005a0565b5b828203905092915050565b6000819050919050565b600062000575826200055e565b915062000582836200055e565b925082620005955762000594620005cf565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b613590806200060e6000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb146103e5578063b87f137a14610422578063c3c8cd801461044b578063d163364914610462578063dd62ed3e1461048b578063ffecf516146104c857610140565b806370a0823114610324578063715018a614610361578063751039fc146103785780638da5cb5b1461038f57806395d89b41146103ba57610140565b8063273123b7116100fd578063273123b71461023e578063313ce5671461026757806345596e2e146102925780635932ead1146102bb578063677daa57146102e45780636fc3eaec1461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f1565b6040516101679190612e16565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612968565b61052e565b6040516101a49190612dfb565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612a82565b61054c565b005b3480156101e257600080fd5b506101eb610643565b6040516101f89190612f58565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612915565b610654565b6040516102359190612dfb565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061287b565b61072d565b005b34801561027357600080fd5b5061027c61081d565b6040516102899190612fcd565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612a02565b610826565b005b3480156102c757600080fd5b506102e260048036038101906102dd91906129a8565b61089f565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612a02565b610951565b005b34801561031957600080fd5b50610322610a2b565b005b34801561033057600080fd5b5061034b6004803603810190610346919061287b565b610a9d565b6040516103589190612f58565b60405180910390f35b34801561036d57600080fd5b50610376610aee565b005b34801561038457600080fd5b5061038d610c41565b005b34801561039b57600080fd5b506103a4610cf8565b6040516103b19190612d2d565b60405180910390f35b3480156103c657600080fd5b506103cf610d21565b6040516103dc9190612e16565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612968565b610d5e565b6040516104199190612dfb565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190612a02565b610d7c565b005b34801561045757600080fd5b50610460610e56565b005b34801561046e57600080fd5b5061048960048036038101906104849190612a02565b610ed0565b005b34801561049757600080fd5b506104b260048036038101906104ad91906128d5565b6114a5565b6040516104bf9190612f58565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061287b565b61152c565b005b60606040518060400160405280600e81526020017f3250616320496e7520546f6b656e000000000000000000000000000000000000815250905090565b600061054261053b61161c565b8484611624565b6001905092915050565b61055461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d890612eb8565b60405180910390fd5b600f5483856105f0919061303d565b11156105fb57600080fd5b601054818361060a919061303d565b111561061557600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b6000680c0bf3edba243a0c00905090565b60006106618484846117ef565b6107228461066d61161c565b61071d8560405180606001604052806028815260200161353360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d361161c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3d9092919063ffffffff16565b611624565b600190509392505050565b61073561161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b990612eb8565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086761161c565b73ffffffffffffffffffffffffffffffffffffffff161461088757600080fd5b603181111561089557600080fd5b8060128190555050565b6108a761161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612eb8565b60405180910390fd5b80601660176101000a81548160ff02191690831515021790555050565b61095961161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90612eb8565b60405180910390fd5b600081116109f357600080fd5b610a226064610a1483680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60178190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c61161c565b73ffffffffffffffffffffffffffffffffffffffff1614610a8c57600080fd5b6000479050610a9a81611e66565b50565b6000610ae7600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed2565b9050919050565b610af661161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612eb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c4961161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612eb8565b60405180910390fd5b680c0bf3edba243a0c00601781905550680c0bf3edba243a0c00601881905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f3250414300000000000000000000000000000000000000000000000000000000815250905090565b6000610d72610d6b61161c565b84846117ef565b6001905092915050565b610d8461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890612eb8565b60405180910390fd5b60008111610e1e57600080fd5b610e4d6064610e3f83680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60188190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e9761161c565b73ffffffffffffffffffffffffffffffffffffffff1614610eb757600080fd5b6000610ec230610a9d565b9050610ecd81611f40565b50565b610ed861161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5c90612eb8565b60405180910390fd5b601660149054906101000a900460ff1615610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612f38565b60405180910390fd5b6001811115610fc357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061105330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16680c0bf3edba243a0c00611624565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561109957600080fd5b505afa1580156110ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d191906128a8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b91906128a8565b6040518363ffffffff1660e01b8152600401611188929190612d48565b602060405180830381600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111da91906128a8565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061126330610a9d565b60008061126e610cf8565b426040518863ffffffff1660e01b815260040161129096959493929190612d9a565b6060604051808303818588803b1580156112a957600080fd5b505af11580156112bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112e29190612a2f565b50505060016016806101000a81548160ff0219169083151502179055506001601660176101000a81548160ff02191690831515021790555061134a606461133c6002680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60178190555061138060646113726004680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b6018819055506001601660146101000a81548160ff0219169083151502179055508160148190555043601381905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161144e929190612d71565b602060405180830381600087803b15801561146857600080fd5b505af115801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a091906129d5565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61153461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612eb8565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b90612f18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90612e58565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117e29190612f58565b60405180910390a3505050565b60008111611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612ed8565b60405180910390fd5b6001601660186101000a81548160ff021916908315150217905550611855610cf8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118c35750611893610cf8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2d57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119735750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e15750601660179054906101000a900460ff165b15611a4e576017548111156119f557600080fd5b60185481611a0284610a9d565b611a0c919061303d565b1115611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490612ef8565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af65750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b4f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611bc757600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bab57600080fd5b6000601660186101000a81548160ff0219169083151502179055505b6000611bd230610a9d565b9050611c266064611c18601254611c0a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a9d565b611da190919063ffffffff16565b611e1c90919063ffffffff16565b811115611c8257611c7f6064611c71601254611c63601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a9d565b611da190919063ffffffff16565b611e1c90919063ffffffff16565b90505b601660159054906101000a900460ff16158015611ced5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d03575060168054906101000a900460ff165b15611d2b57611d1181611f40565b60004790506000811115611d2957611d2847611e66565b5b505b505b611d388383836121c8565b505050565b6000838311158290611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c9190612e16565b60405180910390fd5b5060008385611d94919061311e565b9050809150509392505050565b600080831415611db45760009050611e16565b60008284611dc291906130c4565b9050828482611dd19190613093565b14611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0890612e98565b60405180910390fd5b809150505b92915050565b6000611e5e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d8565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ece573d6000803e3d6000fd5b5050565b6000600954821115611f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1090612e38565b60405180910390fd5b6000611f2361223b565b9050611f388184611e1c90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f7857611f77613279565b5b604051908082528060200260200182016040528015611fa65781602001602082028036833780820191505090505b5090503081600081518110611fbe57611fbd61324a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206057600080fd5b505afa158015612074573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209891906128a8565b816001815181106120ac576120ab61324a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611624565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612177959493929190612f73565b600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b6121d3838383612266565b505050565b6000808311829061221f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122169190612e16565b60405180910390fd5b506000838561222e9190613093565b9050809150509392505050565b6000806000612248612431565b9150915061225f8183611e1c90919063ffffffff16565b9250505090565b60008060008060008061227887612493565b9550955095509550955095506122d686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252890919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236b85600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257290919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123b7816125d0565b6123c1848361268d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161241e9190612f58565b60405180910390a3505050505050505050565b600080600060095490506000680c0bf3edba243a0c009050612467680c0bf3edba243a0c00600954611e1c90919063ffffffff16565b82101561248657600954680c0bf3edba243a0c0093509350505061248f565b81819350935050505b9091565b60008060008060008060008060006124a96126c7565b6124c7576124c28a600b60020154600b600301546126de565b6124dd565b6124dc8a600b60000154600b600101546126de565b5b92509250925060006124ed61223b565b905060008060006125008e878787612774565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061256a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d3d565b905092915050565b6000808284612581919061303d565b9050838110156125c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bd90612e78565b60405180910390fd5b8091505092915050565b60006125da61223b565b905060006125f18284611da190919063ffffffff16565b905061264581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257290919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126a28260095461252890919063ffffffff16565b6009819055506126bd81600a5461257290919063ffffffff16565b600a819055505050565b6000601660189054906101000a900460ff16905090565b60008060008061270a60646126fc888a611da190919063ffffffff16565b611e1c90919063ffffffff16565b905060006127346064612726888b611da190919063ffffffff16565b611e1c90919063ffffffff16565b9050600061275d8261274f858c61252890919063ffffffff16565b61252890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061278d8589611da190919063ffffffff16565b905060006127a48689611da190919063ffffffff16565b905060006127bb8789611da190919063ffffffff16565b905060006127e4826127d6858761252890919063ffffffff16565b61252890919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061280c816134ed565b92915050565b600081519050612821816134ed565b92915050565b60008135905061283681613504565b92915050565b60008151905061284b81613504565b92915050565b6000813590506128608161351b565b92915050565b6000815190506128758161351b565b92915050565b600060208284031215612891576128906132a8565b5b600061289f848285016127fd565b91505092915050565b6000602082840312156128be576128bd6132a8565b5b60006128cc84828501612812565b91505092915050565b600080604083850312156128ec576128eb6132a8565b5b60006128fa858286016127fd565b925050602061290b858286016127fd565b9150509250929050565b60008060006060848603121561292e5761292d6132a8565b5b600061293c868287016127fd565b935050602061294d868287016127fd565b925050604061295e86828701612851565b9150509250925092565b6000806040838503121561297f5761297e6132a8565b5b600061298d858286016127fd565b925050602061299e85828601612851565b9150509250929050565b6000602082840312156129be576129bd6132a8565b5b60006129cc84828501612827565b91505092915050565b6000602082840312156129eb576129ea6132a8565b5b60006129f98482850161283c565b91505092915050565b600060208284031215612a1857612a176132a8565b5b6000612a2684828501612851565b91505092915050565b600080600060608486031215612a4857612a476132a8565b5b6000612a5686828701612866565b9350506020612a6786828701612866565b9250506040612a7886828701612866565b9150509250925092565b60008060008060808587031215612a9c57612a9b6132a8565b5b6000612aaa87828801612851565b9450506020612abb87828801612851565b9350506040612acc87828801612851565b9250506060612add87828801612851565b91505092959194509250565b6000612af58383612b01565b60208301905092915050565b612b0a81613152565b82525050565b612b1981613152565b82525050565b6000612b2a82612ff8565b612b34818561301b565b9350612b3f83612fe8565b8060005b83811015612b70578151612b578882612ae9565b9750612b628361300e565b925050600181019050612b43565b5085935050505092915050565b612b8681613164565b82525050565b612b95816131a7565b82525050565b6000612ba682613003565b612bb0818561302c565b9350612bc08185602086016131b9565b612bc9816132ad565b840191505092915050565b6000612be1602a8361302c565b9150612bec826132be565b604082019050919050565b6000612c0460228361302c565b9150612c0f8261330d565b604082019050919050565b6000612c27601b8361302c565b9150612c328261335c565b602082019050919050565b6000612c4a60218361302c565b9150612c5582613385565b604082019050919050565b6000612c6d60208361302c565b9150612c78826133d4565b602082019050919050565b6000612c9060298361302c565b9150612c9b826133fd565b604082019050919050565b6000612cb3601a8361302c565b9150612cbe8261344c565b602082019050919050565b6000612cd660248361302c565b9150612ce182613475565b604082019050919050565b6000612cf960178361302c565b9150612d04826134c4565b602082019050919050565b612d1881613190565b82525050565b612d278161319a565b82525050565b6000602082019050612d426000830184612b10565b92915050565b6000604082019050612d5d6000830185612b10565b612d6a6020830184612b10565b9392505050565b6000604082019050612d866000830185612b10565b612d936020830184612d0f565b9392505050565b600060c082019050612daf6000830189612b10565b612dbc6020830188612d0f565b612dc96040830187612b8c565b612dd66060830186612b8c565b612de36080830185612b10565b612df060a0830184612d0f565b979650505050505050565b6000602082019050612e106000830184612b7d565b92915050565b60006020820190508181036000830152612e308184612b9b565b905092915050565b60006020820190508181036000830152612e5181612bd4565b9050919050565b60006020820190508181036000830152612e7181612bf7565b9050919050565b60006020820190508181036000830152612e9181612c1a565b9050919050565b60006020820190508181036000830152612eb181612c3d565b9050919050565b60006020820190508181036000830152612ed181612c60565b9050919050565b60006020820190508181036000830152612ef181612c83565b9050919050565b60006020820190508181036000830152612f1181612ca6565b9050919050565b60006020820190508181036000830152612f3181612cc9565b9050919050565b60006020820190508181036000830152612f5181612cec565b9050919050565b6000602082019050612f6d6000830184612d0f565b92915050565b600060a082019050612f886000830188612d0f565b612f956020830187612b8c565b8181036040830152612fa78186612b1f565b9050612fb66060830185612b10565b612fc36080830184612d0f565b9695505050505050565b6000602082019050612fe26000830184612d1e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061304882613190565b915061305383613190565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613088576130876131ec565b5b828201905092915050565b600061309e82613190565b91506130a983613190565b9250826130b9576130b861321b565b5b828204905092915050565b60006130cf82613190565b91506130da83613190565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613113576131126131ec565b5b828202905092915050565b600061312982613190565b915061313483613190565b925082821015613147576131466131ec565b5b828203905092915050565b600061315d82613170565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131b282613190565b9050919050565b60005b838110156131d75780820151818401526020810190506131bc565b838111156131e6576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6134f681613152565b811461350157600080fd5b50565b61350d81613164565b811461351857600080fd5b50565b61352481613190565b811461352f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122009d514b200257efa0dbb17263c6108e805689f115a4710673a57c1db1d110e6c64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb146103e5578063b87f137a14610422578063c3c8cd801461044b578063d163364914610462578063dd62ed3e1461048b578063ffecf516146104c857610140565b806370a0823114610324578063715018a614610361578063751039fc146103785780638da5cb5b1461038f57806395d89b41146103ba57610140565b8063273123b7116100fd578063273123b71461023e578063313ce5671461026757806345596e2e146102925780635932ead1146102bb578063677daa57146102e45780636fc3eaec1461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f1565b6040516101679190612e16565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612968565b61052e565b6040516101a49190612dfb565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612a82565b61054c565b005b3480156101e257600080fd5b506101eb610643565b6040516101f89190612f58565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612915565b610654565b6040516102359190612dfb565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061287b565b61072d565b005b34801561027357600080fd5b5061027c61081d565b6040516102899190612fcd565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612a02565b610826565b005b3480156102c757600080fd5b506102e260048036038101906102dd91906129a8565b61089f565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612a02565b610951565b005b34801561031957600080fd5b50610322610a2b565b005b34801561033057600080fd5b5061034b6004803603810190610346919061287b565b610a9d565b6040516103589190612f58565b60405180910390f35b34801561036d57600080fd5b50610376610aee565b005b34801561038457600080fd5b5061038d610c41565b005b34801561039b57600080fd5b506103a4610cf8565b6040516103b19190612d2d565b60405180910390f35b3480156103c657600080fd5b506103cf610d21565b6040516103dc9190612e16565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612968565b610d5e565b6040516104199190612dfb565b60405180910390f35b34801561042e57600080fd5b5061044960048036038101906104449190612a02565b610d7c565b005b34801561045757600080fd5b50610460610e56565b005b34801561046e57600080fd5b5061048960048036038101906104849190612a02565b610ed0565b005b34801561049757600080fd5b506104b260048036038101906104ad91906128d5565b6114a5565b6040516104bf9190612f58565b60405180910390f35b3480156104d457600080fd5b506104ef60048036038101906104ea919061287b565b61152c565b005b60606040518060400160405280600e81526020017f3250616320496e7520546f6b656e000000000000000000000000000000000000815250905090565b600061054261053b61161c565b8484611624565b6001905092915050565b61055461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d890612eb8565b60405180910390fd5b600f5483856105f0919061303d565b11156105fb57600080fd5b601054818361060a919061303d565b111561061557600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b6000680c0bf3edba243a0c00905090565b60006106618484846117ef565b6107228461066d61161c565b61071d8560405180606001604052806028815260200161353360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106d361161c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d3d9092919063ffffffff16565b611624565b600190509392505050565b61073561161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b990612eb8565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086761161c565b73ffffffffffffffffffffffffffffffffffffffff161461088757600080fd5b603181111561089557600080fd5b8060128190555050565b6108a761161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612eb8565b60405180910390fd5b80601660176101000a81548160ff02191690831515021790555050565b61095961161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd90612eb8565b60405180910390fd5b600081116109f357600080fd5b610a226064610a1483680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60178190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c61161c565b73ffffffffffffffffffffffffffffffffffffffff1614610a8c57600080fd5b6000479050610a9a81611e66565b50565b6000610ae7600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ed2565b9050919050565b610af661161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90612eb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c4961161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612eb8565b60405180910390fd5b680c0bf3edba243a0c00601781905550680c0bf3edba243a0c00601881905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f3250414300000000000000000000000000000000000000000000000000000000815250905090565b6000610d72610d6b61161c565b84846117ef565b6001905092915050565b610d8461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0890612eb8565b60405180910390fd5b60008111610e1e57600080fd5b610e4d6064610e3f83680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60188190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e9761161c565b73ffffffffffffffffffffffffffffffffffffffff1614610eb757600080fd5b6000610ec230610a9d565b9050610ecd81611f40565b50565b610ed861161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5c90612eb8565b60405180910390fd5b601660149054906101000a900460ff1615610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612f38565b60405180910390fd5b6001811115610fc357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061105330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16680c0bf3edba243a0c00611624565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561109957600080fd5b505afa1580156110ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d191906128a8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b91906128a8565b6040518363ffffffff1660e01b8152600401611188929190612d48565b602060405180830381600087803b1580156111a257600080fd5b505af11580156111b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111da91906128a8565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061126330610a9d565b60008061126e610cf8565b426040518863ffffffff1660e01b815260040161129096959493929190612d9a565b6060604051808303818588803b1580156112a957600080fd5b505af11580156112bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112e29190612a2f565b50505060016016806101000a81548160ff0219169083151502179055506001601660176101000a81548160ff02191690831515021790555061134a606461133c6002680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b60178190555061138060646113726004680c0bf3edba243a0c00611da190919063ffffffff16565b611e1c90919063ffffffff16565b6018819055506001601660146101000a81548160ff0219169083151502179055508160148190555043601381905550601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161144e929190612d71565b602060405180830381600087803b15801561146857600080fd5b505af115801561147c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a091906129d5565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61153461161c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612eb8565b60405180910390fd5b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b90612f18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90612e58565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117e29190612f58565b60405180910390a3505050565b60008111611832576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182990612ed8565b60405180910390fd5b6001601660186101000a81548160ff021916908315150217905550611855610cf8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118c35750611893610cf8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d2d57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119735750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119c95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119e15750601660179054906101000a900460ff165b15611a4e576017548111156119f557600080fd5b60185481611a0284610a9d565b611a0c919061303d565b1115611a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4490612ef8565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611af65750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b4f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611bc757600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bab57600080fd5b6000601660186101000a81548160ff0219169083151502179055505b6000611bd230610a9d565b9050611c266064611c18601254611c0a601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a9d565b611da190919063ffffffff16565b611e1c90919063ffffffff16565b811115611c8257611c7f6064611c71601254611c63601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a9d565b611da190919063ffffffff16565b611e1c90919063ffffffff16565b90505b601660159054906101000a900460ff16158015611ced5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d03575060168054906101000a900460ff165b15611d2b57611d1181611f40565b60004790506000811115611d2957611d2847611e66565b5b505b505b611d388383836121c8565b505050565b6000838311158290611d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7c9190612e16565b60405180910390fd5b5060008385611d94919061311e565b9050809150509392505050565b600080831415611db45760009050611e16565b60008284611dc291906130c4565b9050828482611dd19190613093565b14611e11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0890612e98565b60405180910390fd5b809150505b92915050565b6000611e5e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d8565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ece573d6000803e3d6000fd5b5050565b6000600954821115611f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1090612e38565b60405180910390fd5b6000611f2361223b565b9050611f388184611e1c90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f7857611f77613279565b5b604051908082528060200260200182016040528015611fa65781602001602082028036833780820191505090505b5090503081600081518110611fbe57611fbd61324a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206057600080fd5b505afa158015612074573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209891906128a8565b816001815181106120ac576120ab61324a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611624565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612177959493929190612f73565b600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b6121d3838383612266565b505050565b6000808311829061221f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122169190612e16565b60405180910390fd5b506000838561222e9190613093565b9050809150509392505050565b6000806000612248612431565b9150915061225f8183611e1c90919063ffffffff16565b9250505090565b60008060008060008061227887612493565b9550955095509550955095506122d686600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252890919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236b85600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257290919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123b7816125d0565b6123c1848361268d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161241e9190612f58565b60405180910390a3505050505050505050565b600080600060095490506000680c0bf3edba243a0c009050612467680c0bf3edba243a0c00600954611e1c90919063ffffffff16565b82101561248657600954680c0bf3edba243a0c0093509350505061248f565b81819350935050505b9091565b60008060008060008060008060006124a96126c7565b6124c7576124c28a600b60020154600b600301546126de565b6124dd565b6124dc8a600b60000154600b600101546126de565b5b92509250925060006124ed61223b565b905060008060006125008e878787612774565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061256a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d3d565b905092915050565b6000808284612581919061303d565b9050838110156125c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bd90612e78565b60405180910390fd5b8091505092915050565b60006125da61223b565b905060006125f18284611da190919063ffffffff16565b905061264581600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461257290919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6126a28260095461252890919063ffffffff16565b6009819055506126bd81600a5461257290919063ffffffff16565b600a819055505050565b6000601660189054906101000a900460ff16905090565b60008060008061270a60646126fc888a611da190919063ffffffff16565b611e1c90919063ffffffff16565b905060006127346064612726888b611da190919063ffffffff16565b611e1c90919063ffffffff16565b9050600061275d8261274f858c61252890919063ffffffff16565b61252890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061278d8589611da190919063ffffffff16565b905060006127a48689611da190919063ffffffff16565b905060006127bb8789611da190919063ffffffff16565b905060006127e4826127d6858761252890919063ffffffff16565b61252890919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008135905061280c816134ed565b92915050565b600081519050612821816134ed565b92915050565b60008135905061283681613504565b92915050565b60008151905061284b81613504565b92915050565b6000813590506128608161351b565b92915050565b6000815190506128758161351b565b92915050565b600060208284031215612891576128906132a8565b5b600061289f848285016127fd565b91505092915050565b6000602082840312156128be576128bd6132a8565b5b60006128cc84828501612812565b91505092915050565b600080604083850312156128ec576128eb6132a8565b5b60006128fa858286016127fd565b925050602061290b858286016127fd565b9150509250929050565b60008060006060848603121561292e5761292d6132a8565b5b600061293c868287016127fd565b935050602061294d868287016127fd565b925050604061295e86828701612851565b9150509250925092565b6000806040838503121561297f5761297e6132a8565b5b600061298d858286016127fd565b925050602061299e85828601612851565b9150509250929050565b6000602082840312156129be576129bd6132a8565b5b60006129cc84828501612827565b91505092915050565b6000602082840312156129eb576129ea6132a8565b5b60006129f98482850161283c565b91505092915050565b600060208284031215612a1857612a176132a8565b5b6000612a2684828501612851565b91505092915050565b600080600060608486031215612a4857612a476132a8565b5b6000612a5686828701612866565b9350506020612a6786828701612866565b9250506040612a7886828701612866565b9150509250925092565b60008060008060808587031215612a9c57612a9b6132a8565b5b6000612aaa87828801612851565b9450506020612abb87828801612851565b9350506040612acc87828801612851565b9250506060612add87828801612851565b91505092959194509250565b6000612af58383612b01565b60208301905092915050565b612b0a81613152565b82525050565b612b1981613152565b82525050565b6000612b2a82612ff8565b612b34818561301b565b9350612b3f83612fe8565b8060005b83811015612b70578151612b578882612ae9565b9750612b628361300e565b925050600181019050612b43565b5085935050505092915050565b612b8681613164565b82525050565b612b95816131a7565b82525050565b6000612ba682613003565b612bb0818561302c565b9350612bc08185602086016131b9565b612bc9816132ad565b840191505092915050565b6000612be1602a8361302c565b9150612bec826132be565b604082019050919050565b6000612c0460228361302c565b9150612c0f8261330d565b604082019050919050565b6000612c27601b8361302c565b9150612c328261335c565b602082019050919050565b6000612c4a60218361302c565b9150612c5582613385565b604082019050919050565b6000612c6d60208361302c565b9150612c78826133d4565b602082019050919050565b6000612c9060298361302c565b9150612c9b826133fd565b604082019050919050565b6000612cb3601a8361302c565b9150612cbe8261344c565b602082019050919050565b6000612cd660248361302c565b9150612ce182613475565b604082019050919050565b6000612cf960178361302c565b9150612d04826134c4565b602082019050919050565b612d1881613190565b82525050565b612d278161319a565b82525050565b6000602082019050612d426000830184612b10565b92915050565b6000604082019050612d5d6000830185612b10565b612d6a6020830184612b10565b9392505050565b6000604082019050612d866000830185612b10565b612d936020830184612d0f565b9392505050565b600060c082019050612daf6000830189612b10565b612dbc6020830188612d0f565b612dc96040830187612b8c565b612dd66060830186612b8c565b612de36080830185612b10565b612df060a0830184612d0f565b979650505050505050565b6000602082019050612e106000830184612b7d565b92915050565b60006020820190508181036000830152612e308184612b9b565b905092915050565b60006020820190508181036000830152612e5181612bd4565b9050919050565b60006020820190508181036000830152612e7181612bf7565b9050919050565b60006020820190508181036000830152612e9181612c1a565b9050919050565b60006020820190508181036000830152612eb181612c3d565b9050919050565b60006020820190508181036000830152612ed181612c60565b9050919050565b60006020820190508181036000830152612ef181612c83565b9050919050565b60006020820190508181036000830152612f1181612ca6565b9050919050565b60006020820190508181036000830152612f3181612cc9565b9050919050565b60006020820190508181036000830152612f5181612cec565b9050919050565b6000602082019050612f6d6000830184612d0f565b92915050565b600060a082019050612f886000830188612d0f565b612f956020830187612b8c565b8181036040830152612fa78186612b1f565b9050612fb66060830185612b10565b612fc36080830184612d0f565b9695505050505050565b6000602082019050612fe26000830184612d1e565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061304882613190565b915061305383613190565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613088576130876131ec565b5b828201905092915050565b600061309e82613190565b91506130a983613190565b9250826130b9576130b861321b565b5b828204905092915050565b60006130cf82613190565b91506130da83613190565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613113576131126131ec565b5b828202905092915050565b600061312982613190565b915061313483613190565b925082821015613147576131466131ec565b5b828203905092915050565b600061315d82613170565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131b282613190565b9050919050565b60005b838110156131d75780820151818401526020810190506131bc565b838111156131e6576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6134f681613152565b811461350157600080fd5b50565b61350d81613164565b811461351857600080fd5b50565b61352481613190565b811461352f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122009d514b200257efa0dbb17263c6108e805689f115a4710673a57c1db1d110e6c64736f6c63430008070033

Deployed Bytecode Sourcemap

5195:11711:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7305:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8157:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11464:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7582:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8326:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13561:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7491:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12200:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8647:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11854:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14937:193;;;;;;;;;;;;;:::i;:::-;;7685:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4270:148;;;;;;;;;;;;;:::i;:::-;;11338:118;;;;;;;;;;;;;:::i;:::-;;4056:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7396:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7831:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12025;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14731:194;;;;;;;;;;;;;:::i;:::-;;12477:969;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8006:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13458:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7305:83;7342:13;7375:5;;;;;;;;;;;;;;;;;7368:12;;7305:83;:::o;8157:161::-;8232:4;8249:39;8258:12;:10;:12::i;:::-;8272:7;8281:6;8249:8;:39::i;:::-;8306:4;8299:11;;8157:161;;;;:::o;11464:382::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11613:18:::1;;11602:7;11592;:17;;;;:::i;:::-;:39;;11584:48;;;::::0;::::1;;11674:19;;11662:8;11651;:19;;;;:::i;:::-;:42;;11643:51;;;::::0;::::1;;11722:7;11705:6;:14;;:24;;;;11757:7;11740:6;:14;;:24;;;;11793:8;11775:6;:15;;:26;;;;11830:8;11812:6;:15;;:26;;;;11464:382:::0;;;;:::o;7582:95::-;7635:7;5697:20;7655:14;;7582:95;:::o;8326:313::-;8424:4;8441:36;8451:6;8459:9;8470:6;8441:9;:36::i;:::-;8488:121;8497:6;8505:12;:10;:12::i;:::-;8519:89;8557:6;8519:89;;;;;;;;;;;;;;;;;:11;:19;8531:6;8519:19;;;;;;;;;;;;;;;:33;8539:12;:10;:12::i;:::-;8519:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8488:8;:121::i;:::-;8627:4;8620:11;;8326:313;;;;;:::o;13561:88::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13636:5:::1;13621:4;:12;13626:6;13621:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13561:88:::0;:::o;7491:83::-;7532:5;6426:1;7550:16;;7491:83;:::o;12200:155::-;12278:14;;;;;;;;;;;12262:30;;:12;:10;:12::i;:::-;:30;;;12254:39;;;;;;12318:2;12312:4;:8;;12304:17;;;;;;12343:4;12332:8;:15;;;;12200:155;:::o;8647:103::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8737:5:::1;8719:15;;:23;;;;;;;;;;;;;;;;;;8647:103:::0;:::o;11854:163::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11949:1:::1;11938:10;:12;11930:21;;;::::0;::::1;;11977:32;12005:3;11977:23;11989:10;5697:20;11977:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;11962:12;:47;;;;11854:163:::0;:::o;14937:193::-;15003:14;;;;;;;;;;;14987:30;;:12;:10;:12::i;:::-;:30;;;14979:39;;;;;;15029:26;15058:21;15029:50;;15090:32;15103:18;15090:12;:32::i;:::-;14968:162;14937:193::o;7685:138::-;7751:7;7778:37;7798:7;:16;7806:7;7798:16;;;;;;;;;;;;;;;;7778:19;:37::i;:::-;7771:44;;7685:138;;;:::o;4270:148::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4377:1:::1;4340:40;;4361:6;::::0;::::1;;;;;;;;4340:40;;;;;;;;;;;;4408:1;4391:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4270:148::o:0;11338:118::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5697:20:::1;11391:12;:22;;;;5697:20;11424:14;:24;;;;11338:118::o:0;4056:79::-;4094:7;4121:6;;;;;;;;;;;4114:13;;4056:79;:::o;7396:87::-;7435:13;7468:7;;;;;;;;;;;;;;;;;7461:14;;7396:87;:::o;7831:167::-;7909:4;7926:42;7936:12;:10;:12::i;:::-;7950:9;7961:6;7926:9;:42::i;:::-;7986:4;7979:11;;7831:167;;;;:::o;12025:::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12122:1:::1;12111:10;:12;12103:21;;;::::0;::::1;;12152:32;12180:3;12152:23;12164:10;5697:20;12152:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;12135:14;:49;;;;12025:167:::0;:::o;14731:194::-;14797:14;;;;;;;;;;;14781:30;;:12;:10;:12::i;:::-;:30;;;14773:39;;;;;;14823:23;14849:24;14867:4;14849:9;:24::i;:::-;14823:50;;14884:33;14901:15;14884:16;:33::i;:::-;14762:163;14731:194::o;12477:969::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12551:11:::1;;;;;;;;;;;12550:12;12542:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12614:1;12608:2;:7;;12600:16;;;::::0;::::1;;12627:35;12684:42;12627:100;;12756:16;12738:15;;:34;;;;;;;;;;;;;;;;;;12783:58;12800:4;12815:15;;;;;;;;;;;5697:20;12783:8;:58::i;:::-;12886:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12868:56;;;12933:4;12940:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12868:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12852:13;;:112;;;;;;;;;;;;;;;;;;12975:15;;;;;;;;;;;:31;;;13014:21;13045:4;13051:24;13069:4;13051:9;:24::i;:::-;13076:1;13078::::0;13080:7:::1;:5;:7::i;:::-;13088:15;12975:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13129:4;13115:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13162:4;13144:15;;:22;;;;;;;;;;;;;;;;;;13192:23;13211:3;13192:14;13204:1;5697:20;13192:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13177:12;:38;;;;13243:23;13262:3;13243:14;13255:1;5697:20;13243:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13226:14;:40;;;;13291:4;13277:11;;:18;;;;;;;;;;;;;;;;;;13318:2;13306:9;:14;;;;13344:12;13331:10;:25;;;;13374:13;;;;;;;;;;;13367:29;;;13405:15;;;;;;;;;;;13423:14;13367:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12531:915;12477:969:::0;:::o;8006:143::-;8087:7;8114:11;:18;8126:5;8114:18;;;;;;;;;;;;;;;:27;8133:7;8114:27;;;;;;;;;;;;;;;;8107:34;;8006:143;;;;:::o;13458:91::-;4193:12;:10;:12::i;:::-;4183:22;;:6;;;;;;;;;;:22;;;4175:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13535:4:::1;13523;:9;13528:3;13523:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;13458:91:::0;:::o;1747:98::-;1800:7;1827:10;1820:17;;1747:98;:::o;9020:335::-;9130:1;9113:19;;:5;:19;;;;9105:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9211:1;9192:21;;:7;:21;;;;9184:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9293:6;9263:11;:18;9275:5;9263:18;;;;;;;;;;;;;;;:27;9282:7;9263:27;;;;;;;;;;;;;;;:36;;;;9331:7;9315:32;;9324:5;9315:32;;;9340:6;9315:32;;;;;;:::i;:::-;;;;;;;;9020:335;;;:::o;9363:1387::-;9460:1;9451:6;:10;9443:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9527:4;9518:6;;:13;;;;;;;;;;;;;;;;;;9556:7;:5;:7::i;:::-;9548:15;;:4;:15;;;;:32;;;;;9573:7;:5;:7::i;:::-;9567:13;;:2;:13;;;;9548:32;9544:1156;;;9613:13;;;;;;;;;;;9605:21;;:4;:21;;;:55;;;;;9644:15;;;;;;;;;;;9630:30;;:2;:30;;;;9605:55;:83;;;;;9666:18;:22;9685:2;9666:22;;;;;;;;;;;;;;;;;;;;;;;;;9664:24;9605:83;:102;;;;;9692:15;;;;;;;;;;;9605:102;9601:296;;;9770:12;;9760:6;:22;;9752:31;;;;;;9836:14;;9826:6;9810:13;9820:2;9810:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9802:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9601:296;9933:15;;;;;;;;;;;9917:32;;:4;:32;;;;:62;;;;;9955:18;:24;9974:4;9955:24;;;;;;;;;;;;;;;;;;;;;;;;;9953:26;9917:62;:85;;;;;9989:13;;;;;;;;;;;9983:19;;:2;:19;;;9917:85;9913:176;;;10031:4;:8;10036:2;10031:8;;;;;;;;;;;;;;;;;;;;;;;;;10030:9;10022:18;;;;;;10068:5;10059:6;;:14;;;;;;;;;;;;;;;;;;9913:176;10105:28;10136:24;10154:4;10136:9;:24::i;:::-;10105:55;;10201:47;10244:3;10201:38;10230:8;;10201:24;10211:13;;;;;;;;;;;10201:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;10178:20;:70;10175:180;;;10292:47;10335:3;10292:38;10321:8;;10292:24;10302:13;;;;;;;;;;;10292:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;10269:70;;10175:180;10376:6;;;;;;;;;;;10375:7;:32;;;;;10394:13;;;;;;;;;;;10386:21;;:4;:21;;;;10375:32;:47;;;;;10411:11;;;;;;;;;;10375:47;10371:318;;;10443:38;10460:20;10443:16;:38::i;:::-;10500:26;10529:21;10500:50;;10593:1;10572:18;:22;10569:105;;;10619:35;10632:21;10619:12;:35::i;:::-;10569:105;10424:265;10371:318;9582:1118;9544:1156;10712:30;10727:4;10732:2;10735:6;10712:14;:30::i;:::-;9363:1387;;;:::o;2884:190::-;2970:7;3003:1;2998;:6;;3006:12;2990:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3030:9;3046:1;3042;:5;;;;:::i;:::-;3030:17;;3065:1;3058:8;;;2884:190;;;;;:::o;3082:246::-;3140:7;3169:1;3164;:6;3160:47;;;3194:1;3187:8;;;;3160:47;3217:9;3233:1;3229;:5;;;;:::i;:::-;3217:17;;3262:1;3257;3253;:5;;;;:::i;:::-;:10;3245:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3319:1;3312:8;;;3082:246;;;;;:::o;3336:132::-;3394:7;3421:39;3425:1;3428;3421:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3414:46;;3336:132;;;;:::o;12371:96::-;12428:14;;;;;;;;;;;:23;;:31;12452:6;12428:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12371:96;:::o;8758:254::-;8825:7;8864;;8853;:18;;8845:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8929:19;8952:10;:8;:10::i;:::-;8929:33;;8980:24;8992:11;8980:7;:11;;:24;;;;:::i;:::-;8973:31;;;8758:254;;;:::o;10760:483::-;6889:4;6880:6;;:13;;;;;;;;;;;;;;;;;;10838:21:::1;10876:1;10862:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10838:40;;10907:4;10889;10894:1;10889:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10933:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10923:4;10928:1;10923:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10966:62;10983:4;10998:15;;;;;;;;;;;11016:11;10966:8;:62::i;:::-;11039:15;;;;;;;;;;;:66;;;11120:11;11146:1;11162:4;11189;11209:15;11039:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10827:416;6925:5:::0;6916:6;;:14;;;;;;;;;;;;;;;;;;10760:483;:::o;13665:146::-;13759:44;13777:6;13785:9;13796:6;13759:17;:44::i;:::-;13665:146;;;:::o;3476:189::-;3562:7;3594:1;3590;:5;3597:12;3582:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3621:9;3637:1;3633;:5;;;;:::i;:::-;3621:17;;3656:1;3649:8;;;3476:189;;;;;:::o;16470:163::-;16511:7;16532:15;16549;16568:19;:17;:19::i;:::-;16531:56;;;;16605:20;16617:7;16605;:11;;:20;;;;:::i;:::-;16598:27;;;;16470:163;:::o;13819:488::-;13918:15;13935:23;13960:12;13974:23;13999:12;14013:13;14030:19;14041:7;14030:10;:19::i;:::-;13917:132;;;;;;;;;;;;14078:28;14098:7;14078;:15;14086:6;14078:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14060:7;:15;14068:6;14060:15;;;;;;;;;;;;;;;:46;;;;14138:39;14161:15;14138:7;:18;14146:9;14138:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14117:7;:18;14125:9;14117:18;;;;;;;;;;;;;;;:60;;;;14189:16;14199:5;14189:9;:16::i;:::-;14216:23;14228:4;14234;14216:11;:23::i;:::-;14272:9;14255:44;;14264:6;14255:44;;;14283:15;14255:44;;;;;;:::i;:::-;;;;;;;;13906:401;;;;;;13819:488;;;:::o;16641:262::-;16691:7;16700;16720:15;16738:7;;16720:25;;16756:15;5697:20;16756:25;;16812:20;5697;16812:7;;:11;;:20;;;;:::i;:::-;16802:7;:30;16798:61;;;16842:7;;5697:20;16834:25;;;;;;;;16798:61;16878:7;16887;16870:25;;;;;;16641:262;;;:::o;15138:551::-;15197:7;15206;15215;15224;15233;15242;15263:23;15288:12;15302:13;15319:10;:8;:10::i;:::-;:122;;15387:54;15399:7;15408:6;:15;;;15425:6;:15;;;15387:11;:54::i;:::-;15319:122;;;15332:52;15344:7;15353:6;:14;;;15369:6;:14;;;15332:11;:52::i;:::-;15319:122;15262:179;;;;;;15452:19;15475:10;:8;:10::i;:::-;15452:33;;15497:15;15514:23;15539:12;15555:46;15567:7;15576:4;15582:5;15589:11;15555;:46::i;:::-;15496:105;;;;;;15620:7;15629:15;15646:4;15652:15;15669:4;15675:5;15612:69;;;;;;;;;;;;;;;;;;;15138:551;;;;;;;:::o;2740:136::-;2798:7;2825:43;2829:1;2832;2825:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2818:50;;2740:136;;;;:::o;2553:179::-;2611:7;2631:9;2647:1;2643;:5;;;;:::i;:::-;2631:17;;2672:1;2667;:6;;2659:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2723:1;2716:8;;;2553:179;;;;:::o;14315:212::-;14368:19;14391:10;:8;:10::i;:::-;14368:33;;14412:13;14428:22;14438:11;14428:5;:9;;:22;;;;:::i;:::-;14412:38;;14486:33;14513:5;14486:7;:22;14502:4;14486:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14461:7;:22;14477:4;14461:22;;;;;;;;;;;;;;;:58;;;;14357:170;;14315:212;:::o;14535:147::-;14613:17;14625:4;14613:7;;:11;;:17;;;;:::i;:::-;14603:7;:27;;;;14654:20;14669:4;14654:10;;:14;;:20;;;;:::i;:::-;14641:10;:33;;;;14535:147;;:::o;11251:79::-;11293:4;11316:6;;;;;;;;;;;11309:13;;11251:79;:::o;15697:351::-;15790:7;15799;15808;15828:12;15843:28;15867:3;15843:19;15855:6;15843:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15828:43;;15882:13;15898:29;15923:3;15898:20;15910:7;15898;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15882:45;;15938:23;15964:28;15986:5;15964:17;15976:4;15964:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15938:54;;16011:15;16028:4;16034:5;16003:37;;;;;;;;;15697:351;;;;;;;:::o;16056:409::-;16166:7;16175;16184;16204:15;16222:24;16234:11;16222:7;:11;;:24;;;;:::i;:::-;16204:42;;16257:12;16272:21;16281:11;16272:4;:8;;:21;;;;:::i;:::-;16257:36;;16304:13;16320:22;16330:11;16320:5;:9;;:22;;;;:::i;:::-;16304:38;;16353:23;16379:28;16401:5;16379:17;16391:4;16379:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16353:54;;16426:7;16435:15;16452:4;16418:39;;;;;;;;;;16056:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:119;;;2805:79;;:::i;:::-;2767:119;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2674:474;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3154:323;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:119;;;3605:79;;:::i;:::-;3567:119;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3483:345;;;;:::o;3834:329::-;3893:6;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;3834:329;;;;:::o;4169:663::-;4257:6;4265;4273;4322:2;4310:9;4301:7;4297:23;4293:32;4290:119;;;4328:79;;:::i;:::-;4290:119;4448:1;4473:64;4529:7;4520:6;4509:9;4505:22;4473:64;:::i;:::-;4463:74;;4419:128;4586:2;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4557:129;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4169:663;;;;;:::o;4838:765::-;4924:6;4932;4940;4948;4997:3;4985:9;4976:7;4972:23;4968:33;4965:120;;;5004:79;;:::i;:::-;4965:120;5124:1;5149:53;5194:7;5185:6;5174:9;5170:22;5149:53;:::i;:::-;5139:63;;5095:117;5251:2;5277:53;5322:7;5313:6;5302:9;5298:22;5277:53;:::i;:::-;5267:63;;5222:118;5379:2;5405:53;5450:7;5441:6;5430:9;5426:22;5405:53;:::i;:::-;5395:63;;5350:118;5507:2;5533:53;5578:7;5569:6;5558:9;5554:22;5533:53;:::i;:::-;5523:63;;5478:118;4838:765;;;;;;;:::o;5609:179::-;5678:10;5699:46;5741:3;5733:6;5699:46;:::i;:::-;5777:4;5772:3;5768:14;5754:28;;5609:179;;;;:::o;5794:108::-;5871:24;5889:5;5871:24;:::i;:::-;5866:3;5859:37;5794:108;;:::o;5908:118::-;5995:24;6013:5;5995:24;:::i;:::-;5990:3;5983:37;5908:118;;:::o;6062:732::-;6181:3;6210:54;6258:5;6210:54;:::i;:::-;6280:86;6359:6;6354:3;6280:86;:::i;:::-;6273:93;;6390:56;6440:5;6390:56;:::i;:::-;6469:7;6500:1;6485:284;6510:6;6507:1;6504:13;6485:284;;;6586:6;6580:13;6613:63;6672:3;6657:13;6613:63;:::i;:::-;6606:70;;6699:60;6752:6;6699:60;:::i;:::-;6689:70;;6545:224;6532:1;6529;6525:9;6520:14;;6485:284;;;6489:14;6785:3;6778:10;;6186:608;;;6062:732;;;;:::o;6800:109::-;6881:21;6896:5;6881:21;:::i;:::-;6876:3;6869:34;6800:109;;:::o;6915:147::-;7010:45;7049:5;7010:45;:::i;:::-;7005:3;6998:58;6915:147;;:::o;7068:364::-;7156:3;7184:39;7217:5;7184:39;:::i;:::-;7239:71;7303:6;7298:3;7239:71;:::i;:::-;7232:78;;7319:52;7364:6;7359:3;7352:4;7345:5;7341:16;7319:52;:::i;:::-;7396:29;7418:6;7396:29;:::i;:::-;7391:3;7387:39;7380:46;;7160:272;7068:364;;;;:::o;7438:366::-;7580:3;7601:67;7665:2;7660:3;7601:67;:::i;:::-;7594:74;;7677:93;7766:3;7677:93;:::i;:::-;7795:2;7790:3;7786:12;7779:19;;7438:366;;;:::o;7810:::-;7952:3;7973:67;8037:2;8032:3;7973:67;:::i;:::-;7966:74;;8049:93;8138:3;8049:93;:::i;:::-;8167:2;8162:3;8158:12;8151:19;;7810:366;;;:::o;8182:::-;8324:3;8345:67;8409:2;8404:3;8345:67;:::i;:::-;8338:74;;8421:93;8510:3;8421:93;:::i;:::-;8539:2;8534:3;8530:12;8523:19;;8182:366;;;:::o;8554:::-;8696:3;8717:67;8781:2;8776:3;8717:67;:::i;:::-;8710:74;;8793:93;8882:3;8793:93;:::i;:::-;8911:2;8906:3;8902:12;8895:19;;8554:366;;;:::o;8926:::-;9068:3;9089:67;9153:2;9148:3;9089:67;:::i;:::-;9082:74;;9165:93;9254:3;9165:93;:::i;:::-;9283:2;9278:3;9274:12;9267:19;;8926:366;;;:::o;9298:::-;9440:3;9461:67;9525:2;9520:3;9461:67;:::i;:::-;9454:74;;9537:93;9626:3;9537:93;:::i;:::-;9655:2;9650:3;9646:12;9639:19;;9298:366;;;:::o;9670:::-;9812:3;9833:67;9897:2;9892:3;9833:67;:::i;:::-;9826:74;;9909:93;9998:3;9909:93;:::i;:::-;10027:2;10022:3;10018:12;10011:19;;9670:366;;;:::o;10042:::-;10184:3;10205:67;10269:2;10264:3;10205:67;:::i;:::-;10198:74;;10281:93;10370:3;10281:93;:::i;:::-;10399:2;10394:3;10390:12;10383:19;;10042:366;;;:::o;10414:::-;10556:3;10577:67;10641:2;10636:3;10577:67;:::i;:::-;10570:74;;10653:93;10742:3;10653:93;:::i;:::-;10771:2;10766:3;10762:12;10755:19;;10414:366;;;:::o;10786:118::-;10873:24;10891:5;10873:24;:::i;:::-;10868:3;10861:37;10786:118;;:::o;10910:112::-;10993:22;11009:5;10993:22;:::i;:::-;10988:3;10981:35;10910:112;;:::o;11028:222::-;11121:4;11159:2;11148:9;11144:18;11136:26;;11172:71;11240:1;11229:9;11225:17;11216:6;11172:71;:::i;:::-;11028:222;;;;:::o;11256:332::-;11377:4;11415:2;11404:9;11400:18;11392:26;;11428:71;11496:1;11485:9;11481:17;11472:6;11428:71;:::i;:::-;11509:72;11577:2;11566:9;11562:18;11553:6;11509:72;:::i;:::-;11256:332;;;;;:::o;11594:::-;11715:4;11753:2;11742:9;11738:18;11730:26;;11766:71;11834:1;11823:9;11819:17;11810:6;11766:71;:::i;:::-;11847:72;11915:2;11904:9;11900:18;11891:6;11847:72;:::i;:::-;11594:332;;;;;:::o;11932:807::-;12181:4;12219:3;12208:9;12204:19;12196:27;;12233:71;12301:1;12290:9;12286:17;12277:6;12233:71;:::i;:::-;12314:72;12382:2;12371:9;12367:18;12358:6;12314:72;:::i;:::-;12396:80;12472:2;12461:9;12457:18;12448:6;12396:80;:::i;:::-;12486;12562:2;12551:9;12547:18;12538:6;12486:80;:::i;:::-;12576:73;12644:3;12633:9;12629:19;12620:6;12576:73;:::i;:::-;12659;12727:3;12716:9;12712:19;12703:6;12659:73;:::i;:::-;11932:807;;;;;;;;;:::o;12745:210::-;12832:4;12870:2;12859:9;12855:18;12847:26;;12883:65;12945:1;12934:9;12930:17;12921:6;12883:65;:::i;:::-;12745:210;;;;:::o;12961:313::-;13074:4;13112:2;13101:9;13097:18;13089:26;;13161:9;13155:4;13151:20;13147:1;13136:9;13132:17;13125:47;13189:78;13262:4;13253:6;13189:78;:::i;:::-;13181:86;;12961:313;;;;:::o;13280:419::-;13446:4;13484:2;13473:9;13469:18;13461:26;;13533:9;13527:4;13523:20;13519:1;13508:9;13504:17;13497:47;13561:131;13687:4;13561:131;:::i;:::-;13553:139;;13280:419;;;:::o;13705:::-;13871:4;13909:2;13898:9;13894:18;13886:26;;13958:9;13952:4;13948:20;13944:1;13933:9;13929:17;13922:47;13986:131;14112:4;13986:131;:::i;:::-;13978:139;;13705:419;;;:::o;14130:::-;14296:4;14334:2;14323:9;14319:18;14311:26;;14383:9;14377:4;14373:20;14369:1;14358:9;14354:17;14347:47;14411:131;14537:4;14411:131;:::i;:::-;14403:139;;14130:419;;;:::o;14555:::-;14721:4;14759:2;14748:9;14744:18;14736:26;;14808:9;14802:4;14798:20;14794:1;14783:9;14779:17;14772:47;14836:131;14962:4;14836:131;:::i;:::-;14828:139;;14555:419;;;:::o;14980:::-;15146:4;15184:2;15173:9;15169:18;15161:26;;15233:9;15227:4;15223:20;15219:1;15208:9;15204:17;15197:47;15261:131;15387:4;15261:131;:::i;:::-;15253:139;;14980:419;;;:::o;15405:::-;15571:4;15609:2;15598:9;15594:18;15586:26;;15658:9;15652:4;15648:20;15644:1;15633:9;15629:17;15622:47;15686:131;15812:4;15686:131;:::i;:::-;15678:139;;15405:419;;;:::o;15830:::-;15996:4;16034:2;16023:9;16019:18;16011:26;;16083:9;16077:4;16073:20;16069:1;16058:9;16054:17;16047:47;16111:131;16237:4;16111:131;:::i;:::-;16103:139;;15830:419;;;:::o;16255:::-;16421:4;16459:2;16448:9;16444:18;16436:26;;16508:9;16502:4;16498:20;16494:1;16483:9;16479:17;16472:47;16536:131;16662:4;16536:131;:::i;:::-;16528:139;;16255:419;;;:::o;16680:::-;16846:4;16884:2;16873:9;16869:18;16861:26;;16933:9;16927:4;16923:20;16919:1;16908:9;16904:17;16897:47;16961:131;17087:4;16961:131;:::i;:::-;16953:139;;16680:419;;;:::o;17105:222::-;17198:4;17236:2;17225:9;17221:18;17213:26;;17249:71;17317:1;17306:9;17302:17;17293:6;17249:71;:::i;:::-;17105:222;;;;:::o;17333:831::-;17596:4;17634:3;17623:9;17619:19;17611:27;;17648:71;17716:1;17705:9;17701:17;17692:6;17648:71;:::i;:::-;17729:80;17805:2;17794:9;17790:18;17781:6;17729:80;:::i;:::-;17856:9;17850:4;17846:20;17841:2;17830:9;17826:18;17819:48;17884:108;17987:4;17978:6;17884:108;:::i;:::-;17876:116;;18002:72;18070:2;18059:9;18055:18;18046:6;18002:72;:::i;:::-;18084:73;18152:3;18141:9;18137:19;18128:6;18084:73;:::i;:::-;17333:831;;;;;;;;:::o;18170:214::-;18259:4;18297:2;18286:9;18282:18;18274:26;;18310:67;18374:1;18363:9;18359:17;18350:6;18310:67;:::i;:::-;18170:214;;;;:::o;18471:132::-;18538:4;18561:3;18553:11;;18591:4;18586:3;18582:14;18574:22;;18471:132;;;:::o;18609:114::-;18676:6;18710:5;18704:12;18694:22;;18609:114;;;:::o;18729:99::-;18781:6;18815:5;18809:12;18799:22;;18729:99;;;:::o;18834:113::-;18904:4;18936;18931:3;18927:14;18919:22;;18834:113;;;:::o;18953:184::-;19052:11;19086:6;19081:3;19074:19;19126:4;19121:3;19117:14;19102:29;;18953:184;;;;:::o;19143:169::-;19227:11;19261:6;19256:3;19249:19;19301:4;19296:3;19292:14;19277:29;;19143:169;;;;:::o;19318:305::-;19358:3;19377:20;19395:1;19377:20;:::i;:::-;19372:25;;19411:20;19429:1;19411:20;:::i;:::-;19406:25;;19565:1;19497:66;19493:74;19490:1;19487:81;19484:107;;;19571:18;;:::i;:::-;19484:107;19615:1;19612;19608:9;19601:16;;19318:305;;;;:::o;19629:185::-;19669:1;19686:20;19704:1;19686:20;:::i;:::-;19681:25;;19720:20;19738:1;19720:20;:::i;:::-;19715:25;;19759:1;19749:35;;19764:18;;:::i;:::-;19749:35;19806:1;19803;19799:9;19794:14;;19629:185;;;;:::o;19820:348::-;19860:7;19883:20;19901:1;19883:20;:::i;:::-;19878:25;;19917:20;19935:1;19917:20;:::i;:::-;19912:25;;20105:1;20037:66;20033:74;20030:1;20027:81;20022:1;20015:9;20008:17;20004:105;20001:131;;;20112:18;;:::i;:::-;20001:131;20160:1;20157;20153:9;20142:20;;19820:348;;;;:::o;20174:191::-;20214:4;20234:20;20252:1;20234:20;:::i;:::-;20229:25;;20268:20;20286:1;20268:20;:::i;:::-;20263:25;;20307:1;20304;20301:8;20298:34;;;20312:18;;:::i;:::-;20298:34;20357:1;20354;20350:9;20342:17;;20174:191;;;;:::o;20371:96::-;20408:7;20437:24;20455:5;20437:24;:::i;:::-;20426:35;;20371:96;;;:::o;20473:90::-;20507:7;20550:5;20543:13;20536:21;20525:32;;20473:90;;;:::o;20569:126::-;20606:7;20646:42;20639:5;20635:54;20624:65;;20569:126;;;:::o;20701:77::-;20738:7;20767:5;20756:16;;20701:77;;;:::o;20784:86::-;20819:7;20859:4;20852:5;20848:16;20837:27;;20784:86;;;:::o;20876:121::-;20934:9;20967:24;20985:5;20967:24;:::i;:::-;20954:37;;20876:121;;;:::o;21003:307::-;21071:1;21081:113;21095:6;21092:1;21089:13;21081:113;;;21180:1;21175:3;21171:11;21165:18;21161:1;21156:3;21152:11;21145:39;21117:2;21114:1;21110:10;21105:15;;21081:113;;;21212:6;21209:1;21206:13;21203:101;;;21292:1;21283:6;21278:3;21274:16;21267:27;21203:101;21052:258;21003:307;;;:::o;21316:180::-;21364:77;21361:1;21354:88;21461:4;21458:1;21451:15;21485:4;21482:1;21475:15;21502:180;21550:77;21547:1;21540:88;21647:4;21644:1;21637:15;21671:4;21668:1;21661:15;21688:180;21736:77;21733:1;21726:88;21833:4;21830:1;21823:15;21857:4;21854:1;21847:15;21874:180;21922:77;21919:1;21912:88;22019:4;22016:1;22009:15;22043:4;22040:1;22033:15;22183:117;22292:1;22289;22282:12;22306:102;22347:6;22398:2;22394:7;22389:2;22382:5;22378:14;22374:28;22364:38;;22306:102;;;:::o;22414:229::-;22554:34;22550:1;22542:6;22538:14;22531:58;22623:12;22618:2;22610:6;22606:15;22599:37;22414:229;:::o;22649:221::-;22789:34;22785:1;22777:6;22773:14;22766:58;22858:4;22853:2;22845:6;22841:15;22834:29;22649:221;:::o;22876:177::-;23016:29;23012:1;23004:6;23000:14;22993:53;22876:177;:::o;23059:220::-;23199:34;23195:1;23187:6;23183:14;23176:58;23268:3;23263:2;23255:6;23251:15;23244:28;23059:220;:::o;23285:182::-;23425:34;23421:1;23413:6;23409:14;23402:58;23285:182;:::o;23473:228::-;23613:34;23609:1;23601:6;23597:14;23590:58;23682:11;23677:2;23669:6;23665:15;23658:36;23473:228;:::o;23707:176::-;23847:28;23843:1;23835:6;23831:14;23824:52;23707:176;:::o;23889:223::-;24029:34;24025:1;24017:6;24013:14;24006:58;24098:6;24093:2;24085:6;24081:15;24074:31;23889:223;:::o;24118:173::-;24258:25;24254:1;24246:6;24242:14;24235:49;24118:173;:::o;24297:122::-;24370:24;24388:5;24370:24;:::i;:::-;24363:5;24360:35;24350:63;;24409:1;24406;24399:12;24350:63;24297:122;:::o;24425:116::-;24495:21;24510:5;24495:21;:::i;:::-;24488:5;24485:32;24475:60;;24531:1;24528;24521:12;24475:60;24425:116;:::o;24547:122::-;24620:24;24638:5;24620:24;:::i;:::-;24613:5;24610:35;24600:63;;24659:1;24656;24649:12;24600:63;24547:122;:::o

Swarm Source

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