ETH Price: $2,533.09 (-0.01%)

Token

WildCatInu (WildCat)
 

Overview

Max Total Supply

1,000,000,000 WildCat

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,655,000 WildCat

Value
$0.00
0x92fe812b9cd8e0c2f17ae1eedb9bf9e191ce663a
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:
WildCatInu

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-01
*/

/*

// SPDX-License-Identifier: NOLICENSE

/**


Token Name: WildCat Inu 
Ticker: WildCat


Supply : 1,000,000,000
Max buy at launch is 0.005 = 5000000   


TOKENOMICS / TAX: 5%
B = 3% auto liquidity / 2% marketing wallet 
S = 5% marketing wallet

Telegram address: https://t.me/WildCatChat

*/


pragma solidity ^0.8.4;

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB)  external view 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 WildCatInu is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxWalletSize;

    string private constant _name = "WildCatInu"; //
    string private constant _symbol = "WildCat"; //
    uint8 private constant _decimals = 9;

    uint256 public buyAutoLiquidityFee;
    uint256 public buyAutoBurnFee;
    uint256 public buyMarketingFee;
    uint256 public totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;

    uint256 public sellAutoLiquidityFee;
    uint256 public sellAutoBurnFee;
    uint256 public sellMarketingFee;
    uint256 public totalSellFees =  sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;

    uint256 public tokensForAutoLiquidity;
    uint256 public tokensForAutoBurn;  
    uint256 public tokensForMarketing;
    uint16 public masterTaxDivisor = 10000;

    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public pairAddress;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _tTotal = 1000000000  * 10 ** _decimals; //
    uint256 private maxWalletAmount = 5000001 * 10 ** _decimals;
    uint256 private maxTxAmount = 5000001 * 10 ** _decimals; 
    address payable private feeAddrWallet;

    event MaxWalletAmountUpdated(uint maxWalletAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
  
    constructor () {
        //require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
        feeAddrWallet = payable(0xA0836c1DEc88C54Fe773236521437A6Db308D10d); //wallet
        _tOwned[owner()] = _tTotal;
                
        uint256 _buyAutoLiquidityFee = 300; //
        uint256 _buyAutoBurnFee = 0; //
        uint256 _buyMarketingFee = 200; //
        uint256 _sellAutoLiquidityFee = 0; //
        uint256 _sellAutoBurnFee = 0; //
        uint256 _sellMarketingFee = 500; // 
        
        buyAutoLiquidityFee = _buyAutoLiquidityFee;
        buyAutoBurnFee = _buyAutoBurnFee;
        buyMarketingFee = _buyMarketingFee;
        totalBuyFees = buyAutoLiquidityFee + buyAutoBurnFee + buyMarketingFee;
        
        sellAutoLiquidityFee = _sellAutoLiquidityFee;
        sellAutoBurnFee = _sellAutoBurnFee;
        sellMarketingFee = _sellMarketingFee;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeAddrWallet] = true;
        _isExcludedFromMaxWalletSize[owner()] = true;
        _isExcludedFromMaxWalletSize[address(this)] = true;
        _isExcludedFromMaxWalletSize[feeAddrWallet] = true;  
        emit Transfer(address(0), owner(), _tTotal);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
             
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        
    }

    function name() public pure returns (string memory) { return _name; }
    function getTxAmount() public view returns(uint256) {return maxTxAmount;}
    function getMaxWallet() public view returns(uint256) {return maxWalletAmount;}
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function totalSupply() public view override returns (uint256) { return _tTotal; }
    function balanceOf(address account) public view override returns (uint256) { return _tOwned[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 virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= balanceOf(from),"You are trying to transfer more than your balance");    
        require(tradingOpen || _isExcludedFromFee[from] || _isExcludedFromFee[to], "Trading not enabled yet");

        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= maxWalletAmount, "Exceeds the maxWalletSize.");
        }
        if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromMaxWalletSize[to]) {             
                require(amount + balanceOf(to) <= maxWalletAmount, "Recipient exceeds max wallet size.");
        }

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

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    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 _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        _tOwned[sender] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(sender, recipient, amount) : amount;
        _tOwned[recipient] += amountReceived;
        emit Transfer(sender, recipient, amountReceived);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        if(from == uniswapV2Pair && totalBuyFees > 0 ) { 
            tokensForAutoLiquidity = (amount * buyAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * buyAutoBurnFee) / masterTaxDivisor;         
            tokensForMarketing = (amount * buyMarketingFee) / masterTaxDivisor;    
        } else if (to == uniswapV2Pair  && totalSellFees > 0 ) { 
            tokensForAutoLiquidity = (amount * sellAutoLiquidityFee) / masterTaxDivisor;
            tokensForAutoBurn = (amount * sellAutoBurnFee) / masterTaxDivisor;
            tokensForMarketing = (amount * sellMarketingFee) / masterTaxDivisor;        
        }
        _tOwned[pairAddress] += tokensForAutoLiquidity;
        emit Transfer(from, pairAddress, tokensForAutoLiquidity);
        
        _tOwned[DEAD] += tokensForAutoBurn;
        _tTotal = _tTotal - tokensForAutoBurn;
        _tTotal = totalSupply();
        emit Transfer(from, DEAD, tokensForAutoBurn);
                
        _tOwned[address(this)] += tokensForMarketing;
        emit Transfer(from, address(this), tokensForMarketing);

        uint256 feeAmount = tokensForAutoLiquidity + tokensForAutoBurn + tokensForMarketing;
        return amount - feeAmount;
    }

    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

     function excludeFromMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = true;
	}

    function includeInMaxWalletLimit(address account) public onlyOwner {
		_isExcludedFromMaxWalletSize[account] = false;
	}

    function SetWalletandTxtAmount(uint256 _maxTxAmount, uint256 _maxWalletSize) external onlyOwner{
        maxTxAmount = _maxTxAmount * 10 **_decimals;
        maxWalletAmount = _maxWalletSize * 10 **_decimals;
    }
    
    function sendETHToFee(uint256 amount) private {
        feeAddrWallet.transfer(amount);
    } 

    receive() external payable{
    }
}

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":"maxWalletAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"SetWalletandTxtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterTaxDivisor","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellAutoBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellAutoLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokensForAutoBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForAutoLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260075460065460055462000019919062000b3e565b62000025919062000b3e565b600855600b54600a546009546200003d919062000b3e565b62000049919062000b3e565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506009600a620000cc919062000cfc565b633b9aca00620000dd919062000d4d565b6013556009600a620000f0919062000cfc565b624c4b4162000100919062000d4d565b6014556009600a62000113919062000cfc565b624c4b4162000123919062000d4d565b6015553480156200013357600080fd5b50620001546200014862000a1060201b60201c565b62000a1860201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000220919062000e18565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae919062000e18565b6040518363ffffffff1660e01b8152600401620002cd92919062000e5b565b6020604051808303816000875af1158015620002ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000313919062000e18565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c5919062000e18565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200042d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000453919062000e18565b6040518363ffffffff1660e01b81526004016200047292919062000e5b565b602060405180830381865afa15801562000490573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b6919062000e18565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0836c1dec88c54fe773236521437a6db308d10d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600160006200056262000adc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061012c905060008060c8905060008060006101f49050856005819055508460068190555083600781905550600754600654600554620005e2919062000b3e565b620005ee919062000b3e565b6008819055508260098190555081600a8190555080600b81905550600b54600a546009546200061e919062000b3e565b6200062a919062000b3e565b600c819055506001600360006200064662000adc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200077f62000adc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008b262000adc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000913919062000e99565b60405180910390a3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620009bc92919062000eb6565b6020604051808303816000875af1158015620009dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a02919062000f20565b505050505050505062000f52565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b4b8262000b05565b915062000b588362000b05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b905762000b8f62000b0f565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b600185111562000bfa5780860481111562000bd25762000bd162000b0f565b5b600185161562000be25780820291505b808102905062000bf28562000b9b565b945062000bb2565b94509492505050565b60008262000c15576001905062000ce8565b8162000c25576000905062000ce8565b816001811462000c3e576002811462000c495762000c7f565b600191505062000ce8565b60ff84111562000c5e5762000c5d62000b0f565b5b8360020a91508482111562000c785762000c7762000b0f565b5b5062000ce8565b5060208310610133831016604e8410600b841016171562000cb95782820a90508381111562000cb35762000cb262000b0f565b5b62000ce8565b62000cc8848484600162000ba8565b9250905081840481111562000ce25762000ce162000b0f565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d098262000b05565b915062000d168362000cef565b925062000d457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c03565b905092915050565b600062000d5a8262000b05565b915062000d678362000b05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000da35762000da262000b0f565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000de08262000db3565b9050919050565b62000df28162000dd3565b811462000dfe57600080fd5b50565b60008151905062000e128162000de7565b92915050565b60006020828403121562000e315762000e3062000dae565b5b600062000e418482850162000e01565b91505092915050565b62000e558162000dd3565b82525050565b600060408201905062000e72600083018562000e4a565b62000e81602083018462000e4a565b9392505050565b62000e938162000b05565b82525050565b600060208201905062000eb0600083018462000e88565b92915050565b600060408201905062000ecd600083018562000e4a565b62000edc602083018462000e88565b9392505050565b60008115159050919050565b62000efa8162000ee3565b811462000f0657600080fd5b50565b60008151905062000f1a8162000eef565b92915050565b60006020828403121562000f395762000f3862000dae565b5b600062000f498482850162000f09565b91505092915050565b6134378062000f626000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063c9567bf91461066a578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639f71146d116100dc5780639f71146d146105ae578063a8b08982146105d7578063a9059cbb14610602578063b9e937001461063f57610204565b80638da5cb5b14610502578063921369131461052d57806395d89b41146105585780639740a9461461058357610204565b8063313ce567116101905780636cce46fc1161015f5780636cce46fc1461042d57806370a0823114610458578063715018a6146104955780637bce5a04146104ac57806384d6c8c6146104d757610204565b8063313ce567146103855780633722355c146103b0578063437823ec146103d957806347afcbfe1461040257610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b9190612489565b60405180910390f35b34801561024057600080fd5b506102496107eb565b604051610256919061253d565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125c6565b610828565b6040516102939190612621565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be919061264b565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e9919061264b565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b6040516103149190612683565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f919061264b565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a919061269e565b610874565b60405161037c9190612621565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a7919061270d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612728565b61097e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612728565b610a55565b005b34801561040e57600080fd5b50610417610b2c565b604051610424919061264b565b60405180910390f35b34801561043957600080fd5b50610442610b32565b60405161044f919061264b565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612728565b610b38565b60405161048c919061264b565b60405180910390f35b3480156104a157600080fd5b506104aa610b81565b005b3480156104b857600080fd5b506104c1610c09565b6040516104ce919061264b565b60405180910390f35b3480156104e357600080fd5b506104ec610c0f565b6040516104f9919061264b565b60405180910390f35b34801561050e57600080fd5b50610517610c19565b6040516105249190612489565b60405180910390f35b34801561053957600080fd5b50610542610c42565b60405161054f919061264b565b60405180910390f35b34801561056457600080fd5b5061056d610c48565b60405161057a919061253d565b60405180910390f35b34801561058f57600080fd5b50610598610c85565b6040516105a5919061264b565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612728565b610c8b565b005b3480156105e357600080fd5b506105ec610d62565b6040516105f99190612489565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906125c6565b610d88565b6040516106369190612621565b60405180910390f35b34801561064b57600080fd5b50610654610da6565b604051610661919061264b565b60405180910390f35b34801561067657600080fd5b5061067f610dac565b005b34801561068d57600080fd5b50610696610eb0565b6040516106a3919061264b565b60405180910390f35b3480156106b857600080fd5b506106c1610eb6565b6040516106ce919061264b565b60405180910390f35b3480156106e357600080fd5b506106ec610ebc565b6040516106f9919061264b565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612755565b610ec2565b604051610736919061264b565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612728565b610f49565b005b34801561077457600080fd5b5061078f600480360381019061078a9190612795565b611020565b005b34801561079d57600080fd5b506107a66110de565b6040516107b3919061264b565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612728565b6110e4565b005b61dead81565b60606040518060400160405280600a81526020017f57696c64436174496e7500000000000000000000000000000000000000000000815250905090565b600061083c6108356111db565b84846111e3565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113ac565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612847565b60405180910390fd5b610969856109586111db565b85846109649190612896565b6111e3565b60019150509392505050565b60006009905090565b6109866111db565b73ffffffffffffffffffffffffffffffffffffffff166109a4610c19565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612916565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111db565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612916565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b896111db565b73ffffffffffffffffffffffffffffffffffffffff16610ba7610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612916565b60405180910390fd5b610c076000611a89565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600781526020017f57696c6443617400000000000000000000000000000000000000000000000000815250905090565b600d5481565b610c936111db565b73ffffffffffffffffffffffffffffffffffffffff16610cb1610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612916565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9c610d956111db565b84846113ac565b6001905092915050565b60085481565b610db46111db565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612916565b60405180910390fd5b601260149054906101000a900460ff1615610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612982565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f516111db565b73ffffffffffffffffffffffffffffffffffffffff16610f6f610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612916565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110286111db565b73ffffffffffffffffffffffffffffffffffffffff16611046610c19565b73ffffffffffffffffffffffffffffffffffffffff161461109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612916565b60405180910390fd5b6009600a6110aa9190612ad5565b826110b59190612b20565b6015819055506009600a6110c99190612ad5565b816110d49190612b20565b6014819055505050565b60055481565b6110ec6111db565b73ffffffffffffffffffffffffffffffffffffffff1661110a610c19565b73ffffffffffffffffffffffffffffffffffffffff1614611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612bec565b60405180910390fd5b6111d881611a89565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612c7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612d10565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139f919061264b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290612da2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190612e34565b60405180910390fd5b600081116114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612ec6565b60405180910390fd5b6114d683610b38565b811115611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90612f58565b60405180910390fd5b601260149054906101000a900460ff168061157c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115d05750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160690612fc4565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ba5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117105750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b35760155481111561175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613030565b60405180910390fd5b6014548161176784610b38565b6117719190613050565b11156117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a9906130f2565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611912576014546118c583610b38565b826118d09190613050565b1115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190890613184565b60405180910390fd5b5b600061191d30610b38565b9050601260159054906101000a900460ff1615801561198a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119a25750601260169054906101000a900460ff165b80156119ae5750600081115b156119d6576119bc81611b4d565b600047905060008111156119d4576119d347611dc6565b5b505b611a83848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a7d5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e32565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b8557611b846131a4565b5b604051908082528060200260200182016040528015611bb35781602001602082028036833780820191505090505b5090503081600081518110611bcb57611bca6131d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190613217565b81600181518110611caa57611ca96131d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e3565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d75959493929190613347565b600060405180830381600087803b158015611d8f57600080fd5b505af1158015611da3573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e2e573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e819190612896565b92505081905550600081611e955782611ea1565b611ea0858585611f65565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ef29190613050565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f56919061264b565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fc657506000600854115b1561206957601060009054906101000a900461ffff1661ffff1660055483611fee9190612b20565b611ff891906133d0565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120219190612b20565b61202b91906133d0565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120549190612b20565b61205e91906133d0565b600f81905550612168565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c857506000600c54115b1561216757601060009054906101000a900461ffff1661ffff16600954836120f09190612b20565b6120fa91906133d0565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121239190612b20565b61212d91906133d0565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121569190612b20565b61216091906133d0565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121db9190613050565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051612263919061264b565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122be9190613050565b92505081905550600e546013546122d59190612896565b6013819055506122e3610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161234a919061264b565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123a39190613050565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051612409919061264b565b60405180910390a36000600f54600e54600d546124269190613050565b6124309190613050565b9050808361243e9190612896565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061247382612448565b9050919050565b61248381612468565b82525050565b600060208201905061249e600083018461247a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124de5780820151818401526020810190506124c3565b838111156124ed576000848401525b50505050565b6000601f19601f8301169050919050565b600061250f826124a4565b61251981856124af565b93506125298185602086016124c0565b612532816124f3565b840191505092915050565b600060208201905081810360008301526125578184612504565b905092915050565b600080fd5b61256d81612468565b811461257857600080fd5b50565b60008135905061258a81612564565b92915050565b6000819050919050565b6125a381612590565b81146125ae57600080fd5b50565b6000813590506125c08161259a565b92915050565b600080604083850312156125dd576125dc61255f565b5b60006125eb8582860161257b565b92505060206125fc858286016125b1565b9150509250929050565b60008115159050919050565b61261b81612606565b82525050565b60006020820190506126366000830184612612565b92915050565b61264581612590565b82525050565b6000602082019050612660600083018461263c565b92915050565b600061ffff82169050919050565b61267d81612666565b82525050565b60006020820190506126986000830184612674565b92915050565b6000806000606084860312156126b7576126b661255f565b5b60006126c58682870161257b565b93505060206126d68682870161257b565b92505060406126e7868287016125b1565b9150509250925092565b600060ff82169050919050565b612707816126f1565b82525050565b600060208201905061272260008301846126fe565b92915050565b60006020828403121561273e5761273d61255f565b5b600061274c8482850161257b565b91505092915050565b6000806040838503121561276c5761276b61255f565b5b600061277a8582860161257b565b925050602061278b8582860161257b565b9150509250929050565b600080604083850312156127ac576127ab61255f565b5b60006127ba858286016125b1565b92505060206127cb858286016125b1565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006128316028836124af565b915061283c826127d5565b604082019050919050565b6000602082019050818103600083015261286081612824565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128a182612590565b91506128ac83612590565b9250828210156128bf576128be612867565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129006020836124af565b915061290b826128ca565b602082019050919050565b6000602082019050818103600083015261292f816128f3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061296c6017836124af565b915061297782612936565b602082019050919050565b6000602082019050818103600083015261299b8161295f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129f9578086048111156129d5576129d4612867565b5b60018516156129e45780820291505b80810290506129f2856129a2565b94506129b9565b94509492505050565b600082612a125760019050612ace565b81612a205760009050612ace565b8160018114612a365760028114612a4057612a6f565b6001915050612ace565b60ff841115612a5257612a51612867565b5b8360020a915084821115612a6957612a68612867565b5b50612ace565b5060208310610133831016604e8410600b8410161715612aa45782820a905083811115612a9f57612a9e612867565b5b612ace565b612ab184848460016129af565b92509050818404811115612ac857612ac7612867565b5b81810290505b9392505050565b6000612ae082612590565b9150612aeb836126f1565b9250612b187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a02565b905092915050565b6000612b2b82612590565b9150612b3683612590565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b6f57612b6e612867565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd66026836124af565b9150612be182612b7a565b604082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c686024836124af565b9150612c7382612c0c565b604082019050919050565b60006020820190508181036000830152612c9781612c5b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfa6022836124af565b9150612d0582612c9e565b604082019050919050565b60006020820190508181036000830152612d2981612ced565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d8c6025836124af565b9150612d9782612d30565b604082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e1e6023836124af565b9150612e2982612dc2565b604082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb06029836124af565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612f426031836124af565b9150612f4d82612ee6565b604082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612fae6017836124af565b9150612fb982612f78565b602082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061301a6019836124af565b915061302582612fe4565b602082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b600061305b82612590565b915061306683612590565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561309b5761309a612867565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130dc601a836124af565b91506130e7826130a6565b602082019050919050565b6000602082019050818103600083015261310b816130cf565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061316e6022836124af565b915061317982613112565b604082019050919050565b6000602082019050818103600083015261319d81613161565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061321181612564565b92915050565b60006020828403121561322d5761322c61255f565b5b600061323b84828501613202565b91505092915050565b6000819050919050565b6000819050919050565b600061327361326e61326984613244565b61324e565b612590565b9050919050565b61328381613258565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132be81612468565b82525050565b60006132d083836132b5565b60208301905092915050565b6000602082019050919050565b60006132f482613289565b6132fe8185613294565b9350613309836132a5565b8060005b8381101561333a57815161332188826132c4565b975061332c836132dc565b92505060018101905061330d565b5085935050505092915050565b600060a08201905061335c600083018861263c565b613369602083018761327a565b818103604083015261337b81866132e9565b905061338a606083018561247a565b613397608083018461263c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133db82612590565b91506133e683612590565b9250826133f6576133f56133a1565b5b82820490509291505056fea26469706673582212204332c23f2d78bab548ddd4e4f3e7c3a6985bcf87126da133f2ff254bb26f712f64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063c9567bf9116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063c9567bf91461066a578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639f71146d116100dc5780639f71146d146105ae578063a8b08982146105d7578063a9059cbb14610602578063b9e937001461063f57610204565b80638da5cb5b14610502578063921369131461052d57806395d89b41146105585780639740a9461461058357610204565b8063313ce567116101905780636cce46fc1161015f5780636cce46fc1461042d57806370a0823114610458578063715018a6146104955780637bce5a04146104ac57806384d6c8c6146104d757610204565b8063313ce567146103855780633722355c146103b0578063437823ec146103d957806347afcbfe1461040257610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b9190612489565b60405180910390f35b34801561024057600080fd5b506102496107eb565b604051610256919061253d565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125c6565b610828565b6040516102939190612621565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be919061264b565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e9919061264b565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b6040516103149190612683565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f919061264b565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a919061269e565b610874565b60405161037c9190612621565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a7919061270d565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612728565b61097e565b005b3480156103e557600080fd5b5061040060048036038101906103fb9190612728565b610a55565b005b34801561040e57600080fd5b50610417610b2c565b604051610424919061264b565b60405180910390f35b34801561043957600080fd5b50610442610b32565b60405161044f919061264b565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190612728565b610b38565b60405161048c919061264b565b60405180910390f35b3480156104a157600080fd5b506104aa610b81565b005b3480156104b857600080fd5b506104c1610c09565b6040516104ce919061264b565b60405180910390f35b3480156104e357600080fd5b506104ec610c0f565b6040516104f9919061264b565b60405180910390f35b34801561050e57600080fd5b50610517610c19565b6040516105249190612489565b60405180910390f35b34801561053957600080fd5b50610542610c42565b60405161054f919061264b565b60405180910390f35b34801561056457600080fd5b5061056d610c48565b60405161057a919061253d565b60405180910390f35b34801561058f57600080fd5b50610598610c85565b6040516105a5919061264b565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190612728565b610c8b565b005b3480156105e357600080fd5b506105ec610d62565b6040516105f99190612489565b60405180910390f35b34801561060e57600080fd5b50610629600480360381019061062491906125c6565b610d88565b6040516106369190612621565b60405180910390f35b34801561064b57600080fd5b50610654610da6565b604051610661919061264b565b60405180910390f35b34801561067657600080fd5b5061067f610dac565b005b34801561068d57600080fd5b50610696610eb0565b6040516106a3919061264b565b60405180910390f35b3480156106b857600080fd5b506106c1610eb6565b6040516106ce919061264b565b60405180910390f35b3480156106e357600080fd5b506106ec610ebc565b6040516106f9919061264b565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612755565b610ec2565b604051610736919061264b565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612728565b610f49565b005b34801561077457600080fd5b5061078f600480360381019061078a9190612795565b611020565b005b34801561079d57600080fd5b506107a66110de565b6040516107b3919061264b565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612728565b6110e4565b005b61dead81565b60606040518060400160405280600a81526020017f57696c64436174496e7500000000000000000000000000000000000000000000815250905090565b600061083c6108356111db565b84846111e3565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113ac565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612847565b60405180910390fd5b610969856109586111db565b85846109649190612896565b6111e3565b60019150509392505050565b60006009905090565b6109866111db565b73ffffffffffffffffffffffffffffffffffffffff166109a4610c19565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612916565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111db565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612916565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b896111db565b73ffffffffffffffffffffffffffffffffffffffff16610ba7610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612916565b60405180910390fd5b610c076000611a89565b565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600781526020017f57696c6443617400000000000000000000000000000000000000000000000000815250905090565b600d5481565b610c936111db565b73ffffffffffffffffffffffffffffffffffffffff16610cb1610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90612916565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610d9c610d956111db565b84846113ac565b6001905092915050565b60085481565b610db46111db565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612916565b60405180910390fd5b601260149054906101000a900460ff1615610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90612982565b60405180910390fd5b6001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f516111db565b73ffffffffffffffffffffffffffffffffffffffff16610f6f610c19565b73ffffffffffffffffffffffffffffffffffffffff1614610fc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbc90612916565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110286111db565b73ffffffffffffffffffffffffffffffffffffffff16611046610c19565b73ffffffffffffffffffffffffffffffffffffffff161461109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612916565b60405180910390fd5b6009600a6110aa9190612ad5565b826110b59190612b20565b6015819055506009600a6110c99190612ad5565b816110d49190612b20565b6014819055505050565b60055481565b6110ec6111db565b73ffffffffffffffffffffffffffffffffffffffff1661110a610c19565b73ffffffffffffffffffffffffffffffffffffffff1614611160576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115790612916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690612bec565b60405180910390fd5b6111d881611a89565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124990612c7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b890612d10565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139f919061264b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290612da2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148190612e34565b60405180910390fd5b600081116114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612ec6565b60405180910390fd5b6114d683610b38565b811115611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90612f58565b60405180910390fd5b601260149054906101000a900460ff168061157c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115d05750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160690612fc4565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ba5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117105750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b35760155481111561175a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175190613030565b60405180910390fd5b6014548161176784610b38565b6117719190613050565b11156117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a9906130f2565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611912576014546118c583610b38565b826118d09190613050565b1115611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190890613184565b60405180910390fd5b5b600061191d30610b38565b9050601260159054906101000a900460ff1615801561198a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119a25750601260169054906101000a900460ff165b80156119ae5750600081115b156119d6576119bc81611b4d565b600047905060008111156119d4576119d347611dc6565b5b505b611a83848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a7d5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e32565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b8557611b846131a4565b5b604051908082528060200260200182016040528015611bb35781602001602082028036833780820191505090505b5090503081600081518110611bcb57611bca6131d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190613217565b81600181518110611caa57611ca96131d3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e3565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d75959493929190613347565b600060405180830381600087803b158015611d8f57600080fd5b505af1158015611da3573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e2e573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e819190612896565b92505081905550600081611e955782611ea1565b611ea0858585611f65565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ef29190613050565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f56919061264b565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fc657506000600854115b1561206957601060009054906101000a900461ffff1661ffff1660055483611fee9190612b20565b611ff891906133d0565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120219190612b20565b61202b91906133d0565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120549190612b20565b61205e91906133d0565b600f81905550612168565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120c857506000600c54115b1561216757601060009054906101000a900461ffff1661ffff16600954836120f09190612b20565b6120fa91906133d0565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121239190612b20565b61212d91906133d0565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121569190612b20565b61216091906133d0565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121db9190613050565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051612263919061264b565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122be9190613050565b92505081905550600e546013546122d59190612896565b6013819055506122e3610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161234a919061264b565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123a39190613050565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051612409919061264b565b60405180910390a36000600f54600e54600d546124269190613050565b6124309190613050565b9050808361243e9190612896565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061247382612448565b9050919050565b61248381612468565b82525050565b600060208201905061249e600083018461247a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124de5780820151818401526020810190506124c3565b838111156124ed576000848401525b50505050565b6000601f19601f8301169050919050565b600061250f826124a4565b61251981856124af565b93506125298185602086016124c0565b612532816124f3565b840191505092915050565b600060208201905081810360008301526125578184612504565b905092915050565b600080fd5b61256d81612468565b811461257857600080fd5b50565b60008135905061258a81612564565b92915050565b6000819050919050565b6125a381612590565b81146125ae57600080fd5b50565b6000813590506125c08161259a565b92915050565b600080604083850312156125dd576125dc61255f565b5b60006125eb8582860161257b565b92505060206125fc858286016125b1565b9150509250929050565b60008115159050919050565b61261b81612606565b82525050565b60006020820190506126366000830184612612565b92915050565b61264581612590565b82525050565b6000602082019050612660600083018461263c565b92915050565b600061ffff82169050919050565b61267d81612666565b82525050565b60006020820190506126986000830184612674565b92915050565b6000806000606084860312156126b7576126b661255f565b5b60006126c58682870161257b565b93505060206126d68682870161257b565b92505060406126e7868287016125b1565b9150509250925092565b600060ff82169050919050565b612707816126f1565b82525050565b600060208201905061272260008301846126fe565b92915050565b60006020828403121561273e5761273d61255f565b5b600061274c8482850161257b565b91505092915050565b6000806040838503121561276c5761276b61255f565b5b600061277a8582860161257b565b925050602061278b8582860161257b565b9150509250929050565b600080604083850312156127ac576127ab61255f565b5b60006127ba858286016125b1565b92505060206127cb858286016125b1565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006128316028836124af565b915061283c826127d5565b604082019050919050565b6000602082019050818103600083015261286081612824565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128a182612590565b91506128ac83612590565b9250828210156128bf576128be612867565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129006020836124af565b915061290b826128ca565b602082019050919050565b6000602082019050818103600083015261292f816128f3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061296c6017836124af565b915061297782612936565b602082019050919050565b6000602082019050818103600083015261299b8161295f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129f9578086048111156129d5576129d4612867565b5b60018516156129e45780820291505b80810290506129f2856129a2565b94506129b9565b94509492505050565b600082612a125760019050612ace565b81612a205760009050612ace565b8160018114612a365760028114612a4057612a6f565b6001915050612ace565b60ff841115612a5257612a51612867565b5b8360020a915084821115612a6957612a68612867565b5b50612ace565b5060208310610133831016604e8410600b8410161715612aa45782820a905083811115612a9f57612a9e612867565b5b612ace565b612ab184848460016129af565b92509050818404811115612ac857612ac7612867565b5b81810290505b9392505050565b6000612ae082612590565b9150612aeb836126f1565b9250612b187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a02565b905092915050565b6000612b2b82612590565b9150612b3683612590565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b6f57612b6e612867565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bd66026836124af565b9150612be182612b7a565b604082019050919050565b60006020820190508181036000830152612c0581612bc9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c686024836124af565b9150612c7382612c0c565b604082019050919050565b60006020820190508181036000830152612c9781612c5b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfa6022836124af565b9150612d0582612c9e565b604082019050919050565b60006020820190508181036000830152612d2981612ced565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d8c6025836124af565b9150612d9782612d30565b604082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e1e6023836124af565b9150612e2982612dc2565b604082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb06029836124af565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612f426031836124af565b9150612f4d82612ee6565b604082019050919050565b60006020820190508181036000830152612f7181612f35565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612fae6017836124af565b9150612fb982612f78565b602082019050919050565b60006020820190508181036000830152612fdd81612fa1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061301a6019836124af565b915061302582612fe4565b602082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b600061305b82612590565b915061306683612590565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561309b5761309a612867565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130dc601a836124af565b91506130e7826130a6565b602082019050919050565b6000602082019050818103600083015261310b816130cf565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061316e6022836124af565b915061317982613112565b604082019050919050565b6000602082019050818103600083015261319d81613161565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061321181612564565b92915050565b60006020828403121561322d5761322c61255f565b5b600061323b84828501613202565b91505092915050565b6000819050919050565b6000819050919050565b600061327361326e61326984613244565b61324e565b612590565b9050919050565b61328381613258565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132be81612468565b82525050565b60006132d083836132b5565b60208301905092915050565b6000602082019050919050565b60006132f482613289565b6132fe8185613294565b9350613309836132a5565b8060005b8381101561333a57815161332188826132c4565b975061332c836132dc565b92505060018101905061330d565b5085935050505092915050565b600060a08201905061335c600083018861263c565b613369602083018761327a565b818103604083015261337b81866132e9565b905061338a606083018561247a565b613397608083018461263c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133db82612590565b91506133e683612590565b9250826133f6576133f56133a1565b5b82820490509291505056fea26469706673582212204332c23f2d78bab548ddd4e4f3e7c3a6985bcf87126da133f2ff254bb26f712f64736f6c634300080f0033

Deployed Bytecode Sourcemap

4330:10282:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8181:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9054:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8335:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8573:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5376:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5336:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9200:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8498:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13981:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13743:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5078:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5036:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8660:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2993:94;;;;;;;;;;;;;:::i;:::-;;4906:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8256:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2770:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5115:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8419:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5251:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14112:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5503:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8769:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4943:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7995:178;;;;;;;;;;;;;:::i;:::-;;4870:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5295:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5153:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8919:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13862:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14242:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4829:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3095:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5423:73;5454:42;5423:73;:::o;8181:69::-;8218:13;8242:5;;;;;;;;;;;;;;;;;8235:12;;8181:69;:::o;9054:138::-;9129:4;9137:39;9146:12;:10;:12::i;:::-;9160:7;9169:6;9137:8;:39::i;:::-;9185:4;9178:11;;9054:138;;;;:::o;8335:78::-;8379:7;8396:15;;8389:22;;8335:78;:::o;8573:81::-;8626:7;8644;;8637:14;;8573:81;:::o;5376:38::-;;;;;;;;;;;;;:::o;5336:33::-;;;;:::o;9200:420::-;9306:4;9323:36;9333:6;9341:9;9352:6;9323:9;:36::i;:::-;9372:24;9399:11;:19;9411:6;9399:19;;;;;;;;;;;;;;;:33;9419:12;:10;:12::i;:::-;9399:33;;;;;;;;;;;;;;;;9372:60;;9471:6;9451:16;:26;;9443:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9533:57;9542:6;9550:12;:10;:12::i;:::-;9583:6;9564:16;:25;;;;:::i;:::-;9533:8;:57::i;:::-;9608:4;9601:11;;;9200:420;;;;;:::o;8498:69::-;8539:5;4819:1;8548:16;;8498:69;:::o;13981:123::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14095:4:::1;14055:28;:37;14084:7;14055:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13981:123:::0;:::o;13743:111::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13842:4:::1;13812:18;:27;13831:7;13812:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13743:111:::0;:::o;5078:30::-;;;;:::o;5036:35::-;;;;:::o;8660:103::-;8726:7;8744;:16;8752:7;8744:16;;;;;;;;;;;;;;;;8737:23;;8660:103;;;:::o;2993:94::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3058:21:::1;3076:1;3058:9;:21::i;:::-;2993:94::o:0;4906:30::-;;;;:::o;8256:73::-;8299:7;8316:11;;8309:18;;8256:73;:::o;2770:87::-;2816:7;2843:6;;;;;;;;;;;2836:13;;2770:87;:::o;5115:31::-;;;;:::o;8419:73::-;8458:13;8482:7;;;;;;;;;;;;;;;;;8475:14;;8419:73;:::o;5251:37::-;;;;:::o;14112:122::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14224:5:::1;14184:28;:37;14213:7;14184:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14112:122:::0;:::o;5503:26::-;;;;;;;;;;;;;:::o;8769:144::-;8847:4;8855:42;8865:12;:10;:12::i;:::-;8879:9;8890:6;8855:9;:42::i;:::-;8906:4;8899:11;;8769:144;;;;:::o;4943:84::-;;;;:::o;7995:178::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8059:11:::1;;;;;;;;;;;8058:12;8050:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8122:4;8108:11;;:18;;;;;;;;;;;;;;;;;;8151:4;8137:11;;:18;;;;;;;;;;;;;;;;;;7995:178::o:0;4870:29::-;;;;:::o;5295:32::-;;;;:::o;5153:89::-;;;;:::o;8919:129::-;9000:7;9018:11;:18;9030:5;9018:18;;;;;;;;;;;;;;;:27;9037:7;9018:27;;;;;;;;;;;;;;;;9011:34;;8919:129;;;;:::o;13862:110::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13959:5:::1;13929:18;:27;13948:7;13929:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13862:110:::0;:::o;14242:217::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4819:1:::1;14377:2;:14;;;;:::i;:::-;14362:12;:29;;;;:::i;:::-;14348:11;:43;;;;4819:1;14437:2;:14;;;;:::i;:::-;14420;:31;;;;:::i;:::-;14402:15;:49;;;;14242:217:::0;;:::o;4829:34::-;;;;:::o;3095:192::-;2916:12;:10;:12::i;:::-;2905:23;;:7;:5;:7::i;:::-;:23;;;2897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3204:1:::1;3184:22;;:8;:22;;::::0;3176:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3260:19;3270:8;3260:9;:19::i;:::-;3095:192:::0;:::o;2191:98::-;2244:7;2271:10;2264:17;;2191:98;:::o;9628:335::-;9738:1;9721:19;;:5;:19;;;9713:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9819:1;9800:21;;:7;:21;;;9792:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9901:6;9871:11;:18;9883:5;9871:18;;;;;;;;;;;;;;;:27;9890:7;9871:27;;;;;;;;;;;;;;;:36;;;;9939:7;9923:32;;9932:5;9923:32;;;9948:6;9923:32;;;;;;:::i;:::-;;;;;;;;9628:335;;;:::o;9971:1576::-;10075:1;10059:18;;:4;:18;;;10051:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10152:1;10138:16;;:2;:16;;;10130:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10222:1;10213:6;:10;10205:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10298:15;10308:4;10298:9;:15::i;:::-;10288:6;:25;;10280:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10389:11;;;;;;;;;;;:39;;;;10404:18;:24;10423:4;10404:24;;;;;;;;;;;;;;;;;;;;;;;;;10389:39;:65;;;;10432:18;:22;10451:2;10432:22;;;;;;;;;;;;;;;;;;;;;;;;;10389:65;10381:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:13;;;;;;;;;;;10499:21;;:4;:21;;;:55;;;;;10538:15;;;;;;;;;;;10524:30;;:2;:30;;;;10499:55;:83;;;;;10560:18;:22;10579:2;10560:22;;;;;;;;;;;;;;;;;;;;;;;;;10558:24;10499:83;10495:278;;;10621:11;;10611:6;:21;;10603:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10715:15;;10705:6;10689:13;10699:2;10689:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10681:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10495:278;10795:13;;;;;;;;;;;10787:21;;:4;:21;;;:55;;;;;10826:15;;;;;;;;;;;10812:30;;:2;:30;;;;10787:55;:93;;;;;10848:28;:32;10877:2;10848:32;;;;;;;;;;;;;;;;;;;;;;;;;10846:34;10787:93;10783:231;;;10948:15;;10931:13;10941:2;10931:9;:13::i;:::-;10922:6;:22;;;;:::i;:::-;:41;;10914:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10783:231;11026:28;11057:24;11075:4;11057:9;:24::i;:::-;11026:55;;11101:6;;;;;;;;;;;11100:7;:32;;;;;11119:13;;;;;;;;;;;11111:21;;:4;:21;;;;11100:32;:47;;;;;11136:11;;;;;;;;;;;11100:47;:73;;;;;11172:1;11151:20;:22;11100:73;11096:344;;;11194:38;11211:20;11194:16;:38::i;:::-;11251:26;11280:21;11251:50;;11344:1;11323:18;:22;11320:105;;;11370:35;11383:21;11370:12;:35::i;:::-;11320:105;11175:265;11096:344;11452:87;11467:4;11473:2;11477:6;11487:18;:24;11506:4;11487:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11515:18;:22;11534:2;11515:22;;;;;;;;;;;;;;;;;;;;;;;;;11487:50;11485:53;11452:14;:87::i;:::-;10040:1507;9971:1576;;;:::o;3295:173::-;3351:16;3370:6;;;;;;;;;;;3351:25;;3396:8;3387:6;;:17;;;;;;;;;;;;;;;;;;3451:8;3420:40;;3441:8;3420:40;;;;;;;;;;;;3340:128;3295:173;:::o;11555:483::-;6079:4;6070:6;;:13;;;;;;;;;;;;;;;;;;11633:21:::1;11671:1;11657:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11633:40;;11702:4;11684;11689:1;11684:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11728:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11718:4;11723:1;11718:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11761:62;11778:4;11793:15;;;;;;;;;;;11811:11;11761:8;:62::i;:::-;11834:15;;;;;;;;;;;:66;;;11915:11;11941:1;11957:4;11984;12004:15;11834:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11622:416;6115:5:::0;6106:6;;:14;;;;;;;;;;;;;;;;;;11555:483;:::o;14471:95::-;14528:13;;;;;;;;;;;:22;;:30;14551:6;14528:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14471:95;:::o;12046:340::-;12173:6;12154:7;:15;12162:6;12154:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12190:22;12216:7;12215:57;;12266:6;12215:57;;;12227:36;12237:6;12245:9;12256:6;12227:9;:36::i;:::-;12215:57;12190:82;;12305:14;12283:7;:18;12291:9;12283:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12352:9;12335:43;;12344:6;12335:43;;;12363:14;12335:43;;;;;;:::i;:::-;;;;;;;;12143:243;12046:340;;;;:::o;12394:1341::-;12473:7;12504:13;;;;;;;;;;;12496:21;;:4;:21;;;:41;;;;;12536:1;12521:12;;:16;12496:41;12493:649;;;12614:16;;;;;;;;;;;12581:49;;12591:19;;12582:6;:28;;;;:::i;:::-;12581:49;;;;:::i;:::-;12556:22;:74;;;;12693:16;;;;;;;;;;;12665:44;;12675:14;;12666:6;:23;;;;:::i;:::-;12665:44;;;;:::i;:::-;12645:17;:64;;;;12783:16;;;;;;;;;;;12754:45;;12764:15;;12755:6;:24;;;;:::i;:::-;12754:45;;;;:::i;:::-;12733:18;:66;;;;12493:649;;;12831:13;;;;;;;;;;;12825:19;;:2;:19;;;:41;;;;;12865:1;12849:13;;:17;12825:41;12821:321;;;12944:16;;;;;;;;;;;12910:50;;12920:20;;12911:6;:29;;;;:::i;:::-;12910:50;;;;:::i;:::-;12885:22;:75;;;;13024:16;;;;;;;;;;;12995:45;;13005:15;;12996:6;:24;;;;:::i;:::-;12995:45;;;;:::i;:::-;12975:17;:65;;;;13106:16;;;;;;;;;;;13076:46;;13086:16;;13077:6;:25;;;;:::i;:::-;13076:46;;;;:::i;:::-;13055:18;:67;;;;12821:321;12493:649;13176:22;;13152:7;:20;13160:11;;;;;;;;;;;13152:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13229:11;;;;;;;;;;;13214:51;;13223:4;13214:51;;;13242:22;;13214:51;;;;;;:::i;:::-;;;;;;;;13303:17;;13286:7;:13;5454:42;13286:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13351:17;;13341:7;;:27;;;;:::i;:::-;13331:7;:37;;;;13389:13;:11;:13::i;:::-;13379:7;:23;;;;5454:42;13418:39;;13427:4;13418:39;;;13439:17;;13418:39;;;;;;:::i;:::-;;;;;;;;13512:18;;13486:7;:22;13502:4;13486:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13569:4;13546:49;;13555:4;13546:49;;;13576:18;;13546:49;;;;;;:::i;:::-;;;;;;;;13608:17;13673:18;;13653:17;;13628:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13608:83;;13718:9;13709:6;:18;;;;:::i;:::-;13702:25;;;12394:1341;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:307::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1050:1;1045:3;1041:11;1035:18;1031:1;1026:3;1022:11;1015:39;987:2;984:1;980:10;975:15;;951:113;;;1082:6;1079:1;1076:13;1073:101;;;1162:1;1153:6;1148:3;1144:16;1137:27;1073:101;922:258;873:307;;;:::o;1186:102::-;1227:6;1278:2;1274:7;1269:2;1262:5;1258:14;1254:28;1244:38;;1186:102;;;:::o;1294:364::-;1382:3;1410:39;1443:5;1410:39;:::i;:::-;1465:71;1529:6;1524:3;1465:71;:::i;:::-;1458:78;;1545:52;1590:6;1585:3;1578:4;1571:5;1567:16;1545:52;:::i;:::-;1622:29;1644:6;1622:29;:::i;:::-;1617:3;1613:39;1606:46;;1386:272;1294:364;;;;:::o;1664:313::-;1777:4;1815:2;1804:9;1800:18;1792:26;;1864:9;1858:4;1854:20;1850:1;1839:9;1835:17;1828:47;1892:78;1965:4;1956:6;1892:78;:::i;:::-;1884:86;;1664:313;;;;:::o;2064:117::-;2173:1;2170;2163:12;2310:122;2383:24;2401:5;2383:24;:::i;:::-;2376:5;2373:35;2363:63;;2422:1;2419;2412:12;2363:63;2310:122;:::o;2438:139::-;2484:5;2522:6;2509:20;2500:29;;2538:33;2565:5;2538:33;:::i;:::-;2438:139;;;;:::o;2583:77::-;2620:7;2649:5;2638:16;;2583:77;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:89::-;4234:7;4274:6;4267:5;4263:18;4252:29;;4198:89;;;:::o;4293:115::-;4378:23;4395:5;4378:23;:::i;:::-;4373:3;4366:36;4293:115;;:::o;4414:218::-;4505:4;4543:2;4532:9;4528:18;4520:26;;4556:69;4622:1;4611:9;4607:17;4598:6;4556:69;:::i;:::-;4414:218;;;;:::o;4638:619::-;4715:6;4723;4731;4780:2;4768:9;4759:7;4755:23;4751:32;4748:119;;;4786:79;;:::i;:::-;4748:119;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;5161:2;5187:53;5232:7;5223:6;5212:9;5208:22;5187:53;:::i;:::-;5177:63;;5132:118;4638:619;;;;;:::o;5263:86::-;5298:7;5338:4;5331:5;5327:16;5316:27;;5263:86;;;:::o;5355:112::-;5438:22;5454:5;5438:22;:::i;:::-;5433:3;5426:35;5355:112;;:::o;5473:214::-;5562:4;5600:2;5589:9;5585:18;5577:26;;5613:67;5677:1;5666:9;5662:17;5653:6;5613:67;:::i;:::-;5473:214;;;;:::o;5693:329::-;5752:6;5801:2;5789:9;5780:7;5776:23;5772:32;5769:119;;;5807:79;;:::i;:::-;5769:119;5927:1;5952:53;5997:7;5988:6;5977:9;5973:22;5952:53;:::i;:::-;5942:63;;5898:117;5693:329;;;;:::o;6028:474::-;6096:6;6104;6153:2;6141:9;6132:7;6128:23;6124:32;6121:119;;;6159:79;;:::i;:::-;6121:119;6279:1;6304:53;6349:7;6340:6;6329:9;6325:22;6304:53;:::i;:::-;6294:63;;6250:117;6406:2;6432:53;6477:7;6468:6;6457:9;6453:22;6432:53;:::i;:::-;6422:63;;6377:118;6028:474;;;;;:::o;6508:::-;6576:6;6584;6633:2;6621:9;6612:7;6608:23;6604:32;6601:119;;;6639:79;;:::i;:::-;6601:119;6759:1;6784:53;6829:7;6820:6;6809:9;6805:22;6784:53;:::i;:::-;6774:63;;6730:117;6886:2;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6857:118;6508:474;;;;;:::o;6988:227::-;7128:34;7124:1;7116:6;7112:14;7105:58;7197:10;7192:2;7184:6;7180:15;7173:35;6988:227;:::o;7221:366::-;7363:3;7384:67;7448:2;7443:3;7384:67;:::i;:::-;7377:74;;7460:93;7549:3;7460:93;:::i;:::-;7578:2;7573:3;7569:12;7562:19;;7221:366;;;:::o;7593:419::-;7759:4;7797:2;7786:9;7782:18;7774:26;;7846:9;7840:4;7836:20;7832:1;7821:9;7817:17;7810:47;7874:131;8000:4;7874:131;:::i;:::-;7866:139;;7593:419;;;:::o;8018:180::-;8066:77;8063:1;8056:88;8163:4;8160:1;8153:15;8187:4;8184:1;8177:15;8204:191;8244:4;8264:20;8282:1;8264:20;:::i;:::-;8259:25;;8298:20;8316:1;8298:20;:::i;:::-;8293:25;;8337:1;8334;8331:8;8328:34;;;8342:18;;:::i;:::-;8328:34;8387:1;8384;8380:9;8372:17;;8204:191;;;;:::o;8401:182::-;8541:34;8537:1;8529:6;8525:14;8518:58;8401:182;:::o;8589:366::-;8731:3;8752:67;8816:2;8811:3;8752:67;:::i;:::-;8745:74;;8828:93;8917:3;8828:93;:::i;:::-;8946:2;8941:3;8937:12;8930:19;;8589:366;;;:::o;8961:419::-;9127:4;9165:2;9154:9;9150:18;9142:26;;9214:9;9208:4;9204:20;9200:1;9189:9;9185:17;9178:47;9242:131;9368:4;9242:131;:::i;:::-;9234:139;;8961:419;;;:::o;9386:173::-;9526:25;9522:1;9514:6;9510:14;9503:49;9386:173;:::o;9565:366::-;9707:3;9728:67;9792:2;9787:3;9728:67;:::i;:::-;9721:74;;9804:93;9893:3;9804:93;:::i;:::-;9922:2;9917:3;9913:12;9906:19;;9565:366;;;:::o;9937:419::-;10103:4;10141:2;10130:9;10126:18;10118:26;;10190:9;10184:4;10180:20;10176:1;10165:9;10161:17;10154:47;10218:131;10344:4;10218:131;:::i;:::-;10210:139;;9937:419;;;:::o;10362:102::-;10404:8;10451:5;10448:1;10444:13;10423:34;;10362:102;;;:::o;10470:848::-;10531:5;10538:4;10562:6;10553:15;;10586:5;10577:14;;10600:712;10621:1;10611:8;10608:15;10600:712;;;10716:4;10711:3;10707:14;10701:4;10698:24;10695:50;;;10725:18;;:::i;:::-;10695:50;10775:1;10765:8;10761:16;10758:451;;;11190:4;11183:5;11179:16;11170:25;;10758:451;11240:4;11234;11230:15;11222:23;;11270:32;11293:8;11270:32;:::i;:::-;11258:44;;10600:712;;;10470:848;;;;;;;:::o;11324:1073::-;11378:5;11569:8;11559:40;;11590:1;11581:10;;11592:5;;11559:40;11618:4;11608:36;;11635:1;11626:10;;11637:5;;11608:36;11704:4;11752:1;11747:27;;;;11788:1;11783:191;;;;11697:277;;11747:27;11765:1;11756:10;;11767:5;;;11783:191;11828:3;11818:8;11815:17;11812:43;;;11835:18;;:::i;:::-;11812:43;11884:8;11881:1;11877:16;11868:25;;11919:3;11912:5;11909:14;11906:40;;;11926:18;;:::i;:::-;11906:40;11959:5;;;11697:277;;12083:2;12073:8;12070:16;12064:3;12058:4;12055:13;12051:36;12033:2;12023:8;12020:16;12015:2;12009:4;12006:12;12002:35;11986:111;11983:246;;;12139:8;12133:4;12129:19;12120:28;;12174:3;12167:5;12164:14;12161:40;;;12181:18;;:::i;:::-;12161:40;12214:5;;11983:246;12254:42;12292:3;12282:8;12276:4;12273:1;12254:42;:::i;:::-;12239:57;;;;12328:4;12323:3;12319:14;12312:5;12309:25;12306:51;;;12337:18;;:::i;:::-;12306:51;12386:4;12379:5;12375:16;12366:25;;11324:1073;;;;;;:::o;12403:281::-;12461:5;12485:23;12503:4;12485:23;:::i;:::-;12477:31;;12529:25;12545:8;12529:25;:::i;:::-;12517:37;;12573:104;12610:66;12600:8;12594:4;12573:104;:::i;:::-;12564:113;;12403:281;;;;:::o;12690:348::-;12730:7;12753:20;12771:1;12753:20;:::i;:::-;12748:25;;12787:20;12805:1;12787:20;:::i;:::-;12782:25;;12975:1;12907:66;12903:74;12900:1;12897:81;12892:1;12885:9;12878:17;12874:105;12871:131;;;12982:18;;:::i;:::-;12871:131;13030:1;13027;13023:9;13012:20;;12690:348;;;;:::o;13044:225::-;13184:34;13180:1;13172:6;13168:14;13161:58;13253:8;13248:2;13240:6;13236:15;13229:33;13044:225;:::o;13275:366::-;13417:3;13438:67;13502:2;13497:3;13438:67;:::i;:::-;13431:74;;13514:93;13603:3;13514:93;:::i;:::-;13632:2;13627:3;13623:12;13616:19;;13275:366;;;:::o;13647:419::-;13813:4;13851:2;13840:9;13836:18;13828:26;;13900:9;13894:4;13890:20;13886:1;13875:9;13871:17;13864:47;13928:131;14054:4;13928:131;:::i;:::-;13920:139;;13647:419;;;:::o;14072:223::-;14212:34;14208:1;14200:6;14196:14;14189:58;14281:6;14276:2;14268:6;14264:15;14257:31;14072:223;:::o;14301:366::-;14443:3;14464:67;14528:2;14523:3;14464:67;:::i;:::-;14457:74;;14540:93;14629:3;14540:93;:::i;:::-;14658:2;14653:3;14649:12;14642:19;;14301:366;;;:::o;14673:419::-;14839:4;14877:2;14866:9;14862:18;14854:26;;14926:9;14920:4;14916:20;14912:1;14901:9;14897:17;14890:47;14954:131;15080:4;14954:131;:::i;:::-;14946:139;;14673:419;;;:::o;15098:221::-;15238:34;15234:1;15226:6;15222:14;15215:58;15307:4;15302:2;15294:6;15290:15;15283:29;15098:221;:::o;15325:366::-;15467:3;15488:67;15552:2;15547:3;15488:67;:::i;:::-;15481:74;;15564:93;15653:3;15564:93;:::i;:::-;15682:2;15677:3;15673:12;15666:19;;15325:366;;;:::o;15697:419::-;15863:4;15901:2;15890:9;15886:18;15878:26;;15950:9;15944:4;15940:20;15936:1;15925:9;15921:17;15914:47;15978:131;16104:4;15978:131;:::i;:::-;15970:139;;15697:419;;;:::o;16122:224::-;16262:34;16258:1;16250:6;16246:14;16239:58;16331:7;16326:2;16318:6;16314:15;16307:32;16122:224;:::o;16352:366::-;16494:3;16515:67;16579:2;16574:3;16515:67;:::i;:::-;16508:74;;16591:93;16680:3;16591:93;:::i;:::-;16709:2;16704:3;16700:12;16693:19;;16352:366;;;:::o;16724:419::-;16890:4;16928:2;16917:9;16913:18;16905:26;;16977:9;16971:4;16967:20;16963:1;16952:9;16948:17;16941:47;17005:131;17131:4;17005:131;:::i;:::-;16997:139;;16724:419;;;:::o;17149:222::-;17289:34;17285:1;17277:6;17273:14;17266:58;17358:5;17353:2;17345:6;17341:15;17334:30;17149:222;:::o;17377:366::-;17519:3;17540:67;17604:2;17599:3;17540:67;:::i;:::-;17533:74;;17616:93;17705:3;17616:93;:::i;:::-;17734:2;17729:3;17725:12;17718:19;;17377:366;;;:::o;17749:419::-;17915:4;17953:2;17942:9;17938:18;17930:26;;18002:9;17996:4;17992:20;17988:1;17977:9;17973:17;17966:47;18030:131;18156:4;18030:131;:::i;:::-;18022:139;;17749:419;;;:::o;18174:228::-;18314:34;18310:1;18302:6;18298:14;18291:58;18383:11;18378:2;18370:6;18366:15;18359:36;18174:228;:::o;18408:366::-;18550:3;18571:67;18635:2;18630:3;18571:67;:::i;:::-;18564:74;;18647:93;18736:3;18647:93;:::i;:::-;18765:2;18760:3;18756:12;18749:19;;18408:366;;;:::o;18780:419::-;18946:4;18984:2;18973:9;18969:18;18961:26;;19033:9;19027:4;19023:20;19019:1;19008:9;19004:17;18997:47;19061:131;19187:4;19061:131;:::i;:::-;19053:139;;18780:419;;;:::o;19205:236::-;19345:34;19341:1;19333:6;19329:14;19322:58;19414:19;19409:2;19401:6;19397:15;19390:44;19205:236;:::o;19447:366::-;19589:3;19610:67;19674:2;19669:3;19610:67;:::i;:::-;19603:74;;19686:93;19775:3;19686:93;:::i;:::-;19804:2;19799:3;19795:12;19788:19;;19447:366;;;:::o;19819:419::-;19985:4;20023:2;20012:9;20008:18;20000:26;;20072:9;20066:4;20062:20;20058:1;20047:9;20043:17;20036:47;20100:131;20226:4;20100:131;:::i;:::-;20092:139;;19819:419;;;:::o;20244:173::-;20384:25;20380:1;20372:6;20368:14;20361:49;20244:173;:::o;20423:366::-;20565:3;20586:67;20650:2;20645:3;20586:67;:::i;:::-;20579:74;;20662:93;20751:3;20662:93;:::i;:::-;20780:2;20775:3;20771:12;20764:19;;20423:366;;;:::o;20795:419::-;20961:4;20999:2;20988:9;20984:18;20976:26;;21048:9;21042:4;21038:20;21034:1;21023:9;21019:17;21012:47;21076:131;21202:4;21076:131;:::i;:::-;21068:139;;20795:419;;;:::o;21220:175::-;21360:27;21356:1;21348:6;21344:14;21337:51;21220:175;:::o;21401:366::-;21543:3;21564:67;21628:2;21623:3;21564:67;:::i;:::-;21557:74;;21640:93;21729:3;21640:93;:::i;:::-;21758:2;21753:3;21749:12;21742:19;;21401:366;;;:::o;21773:419::-;21939:4;21977:2;21966:9;21962:18;21954:26;;22026:9;22020:4;22016:20;22012:1;22001:9;21997:17;21990:47;22054:131;22180:4;22054:131;:::i;:::-;22046:139;;21773:419;;;:::o;22198:305::-;22238:3;22257:20;22275:1;22257:20;:::i;:::-;22252:25;;22291:20;22309:1;22291:20;:::i;:::-;22286:25;;22445:1;22377:66;22373:74;22370:1;22367:81;22364:107;;;22451:18;;:::i;:::-;22364:107;22495:1;22492;22488:9;22481:16;;22198:305;;;;:::o;22509:176::-;22649:28;22645:1;22637:6;22633:14;22626:52;22509:176;:::o;22691:366::-;22833:3;22854:67;22918:2;22913:3;22854:67;:::i;:::-;22847:74;;22930:93;23019:3;22930:93;:::i;:::-;23048:2;23043:3;23039:12;23032:19;;22691:366;;;:::o;23063:419::-;23229:4;23267:2;23256:9;23252:18;23244:26;;23316:9;23310:4;23306:20;23302:1;23291:9;23287:17;23280:47;23344:131;23470:4;23344:131;:::i;:::-;23336:139;;23063:419;;;:::o;23488:221::-;23628:34;23624:1;23616:6;23612:14;23605:58;23697:4;23692:2;23684:6;23680:15;23673:29;23488:221;:::o;23715:366::-;23857:3;23878:67;23942:2;23937:3;23878:67;:::i;:::-;23871:74;;23954:93;24043:3;23954:93;:::i;:::-;24072:2;24067:3;24063:12;24056:19;;23715:366;;;:::o;24087:419::-;24253:4;24291:2;24280:9;24276:18;24268:26;;24340:9;24334:4;24330:20;24326:1;24315:9;24311:17;24304:47;24368:131;24494:4;24368:131;:::i;:::-;24360:139;;24087:419;;;:::o;24512:180::-;24560:77;24557:1;24550:88;24657:4;24654:1;24647:15;24681:4;24678:1;24671:15;24698:180;24746:77;24743:1;24736:88;24843:4;24840:1;24833:15;24867:4;24864:1;24857:15;24884:143;24941:5;24972:6;24966:13;24957:22;;24988:33;25015:5;24988:33;:::i;:::-;24884:143;;;;:::o;25033:351::-;25103:6;25152:2;25140:9;25131:7;25127:23;25123:32;25120:119;;;25158:79;;:::i;:::-;25120:119;25278:1;25303:64;25359:7;25350:6;25339:9;25335:22;25303:64;:::i;:::-;25293:74;;25249:128;25033:351;;;;:::o;25390:85::-;25435:7;25464:5;25453:16;;25390:85;;;:::o;25481:60::-;25509:3;25530:5;25523:12;;25481:60;;;:::o;25547:158::-;25605:9;25638:61;25656:42;25665:32;25691:5;25665:32;:::i;:::-;25656:42;:::i;:::-;25638:61;:::i;:::-;25625:74;;25547:158;;;:::o;25711:147::-;25806:45;25845:5;25806:45;:::i;:::-;25801:3;25794:58;25711:147;;:::o;25864:114::-;25931:6;25965:5;25959:12;25949:22;;25864:114;;;:::o;25984:184::-;26083:11;26117:6;26112:3;26105:19;26157:4;26152:3;26148:14;26133:29;;25984:184;;;;:::o;26174:132::-;26241:4;26264:3;26256:11;;26294:4;26289:3;26285:14;26277:22;;26174:132;;;:::o;26312:108::-;26389:24;26407:5;26389:24;:::i;:::-;26384:3;26377:37;26312:108;;:::o;26426:179::-;26495:10;26516:46;26558:3;26550:6;26516:46;:::i;:::-;26594:4;26589:3;26585:14;26571:28;;26426:179;;;;:::o;26611:113::-;26681:4;26713;26708:3;26704:14;26696:22;;26611:113;;;:::o;26760:732::-;26879:3;26908:54;26956:5;26908:54;:::i;:::-;26978:86;27057:6;27052:3;26978:86;:::i;:::-;26971:93;;27088:56;27138:5;27088:56;:::i;:::-;27167:7;27198:1;27183:284;27208:6;27205:1;27202:13;27183:284;;;27284:6;27278:13;27311:63;27370:3;27355:13;27311:63;:::i;:::-;27304:70;;27397:60;27450:6;27397:60;:::i;:::-;27387:70;;27243:224;27230:1;27227;27223:9;27218:14;;27183:284;;;27187:14;27483:3;27476:10;;26884:608;;;26760:732;;;;:::o;27498:831::-;27761:4;27799:3;27788:9;27784:19;27776:27;;27813:71;27881:1;27870:9;27866:17;27857:6;27813:71;:::i;:::-;27894:80;27970:2;27959:9;27955:18;27946:6;27894:80;:::i;:::-;28021:9;28015:4;28011:20;28006:2;27995:9;27991:18;27984:48;28049:108;28152:4;28143:6;28049:108;:::i;:::-;28041:116;;28167:72;28235:2;28224:9;28220:18;28211:6;28167:72;:::i;:::-;28249:73;28317:3;28306:9;28302:19;28293:6;28249:73;:::i;:::-;27498:831;;;;;;;;:::o;28335:180::-;28383:77;28380:1;28373:88;28480:4;28477:1;28470:15;28504:4;28501:1;28494:15;28521:185;28561:1;28578:20;28596:1;28578:20;:::i;:::-;28573:25;;28612:20;28630:1;28612:20;:::i;:::-;28607:25;;28651:1;28641:35;;28656:18;;:::i;:::-;28641:35;28698:1;28695;28691:9;28686:14;;28521:185;;;;:::o

Swarm Source

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