ETH Price: $2,458.28 (+0.82%)

Token

Dev Reveal (DOXXED)
 

Overview

Max Total Supply

1,000,000,000 DOXXED

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
nguyentinngo.eth
Balance
15,863,018.438907347 DOXXED

Value
$0.00
0xac7553de90e900d2b1e4495b44c439c92802ef98
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:
SmartContract

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-08-09
*/

// SPDX-License-Identifier: NOLICENSE

/*********************
Tax
0% buy
1% sell


-----> renounced
-----> initial lock 7 days will extend to 30 days then 365 days

max buy (20,000,000) 2% total supply

Token Name: Dev Reveal
Symbol: DOXXED
Supply: 1,000,000,000

Telegram: https://t.me/doxxederc20

***********************/

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 SmartContract 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 = "Dev Reveal";
    string private constant _symbol = "DOXXED";
    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;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private _tTotal = 1000000000 * 10**9;
    uint256 private maxWalletAmount = 20000001 * 10**9;
    uint256 private maxTxAmount = 20000001 * 10**9;
    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(0x5747B1351bD585B34773D6EB68bC5cC1e7e146Ed); 
        _tOwned[owner()] = _tTotal;
                
        uint256 _buyAutoLiquidityFee = 0;
        uint256 _buyAutoBurnFee = 0;
        uint256 _buyMarketingFee = 0;

        uint256 _sellAutoLiquidityFee = 0;
        uint256 _sellAutoBurnFee = 0; 
        uint256 _sellMarketingFee = 1500; 
        
        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;  
        
        swapEnabled = true;
        tradingOpen = true;
        maxTxAmount = 20000001 * 10**9;
        maxWalletAmount = 20000001 * 10**9;
                
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        emit Transfer(address(0), owner(), _tTotal);
    }

    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 RervertSellFeesToOriginalTax() external onlyOwner {
        //Revert to original sell tax
        sellAutoLiquidityFee = 0;
        sellAutoBurnFee = 0;
        sellMarketingFee = 100;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
    }
    
    function renounceOwnership() external onlyOwner{
        sellAutoLiquidityFee = 0;
        sellAutoBurnFee = 0;
        sellMarketingFee = 100;
        swapEnabled = false;
        tradingOpen = false;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
    }

    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":[],"name":"RervertSellFeesToOriginalTax","outputs":[],"stateMutability":"nonpayable","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":"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"}]

608060405260075460065460055462000019919062000b76565b62000025919062000b76565b600855600b54600a546009546200003d919062000b76565b62000049919062000b76565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff021916908315150217905550670de0b6b3a764000060135566470de51b1cca0060145566470de51b1cca00601555348015620000d057600080fd5b50620000f1620000e562000a4860201b60201c565b62000a5060201b60201c565b601260149054906101000a900460ff161562000144576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013b9062000c34565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000210919062000cc0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000278573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029e919062000cc0565b6040518363ffffffff1660e01b8152600401620002bd92919062000d03565b6020604051808303816000875af1158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000303919062000cc0565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000cc0565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000cc0565b6040518363ffffffff1660e01b81526004016200046292919062000d03565b602060405180830381865afa15801562000480573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a6919062000cc0565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735747b1351bd585b34773d6eb68bc5cc1e7e146ed601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601354600160006200055262000b1460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000806000806105dc9050856005819055508460068190555083600781905550600754600654600554620005c8919062000b76565b620005d4919062000b76565b6008819055508260098190555081600a8190555080600b81905550600b54600a5460095462000604919062000b76565b62000610919062000b76565b600c819055506001600360006200062c62000b1460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460006200076562000b1460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff02191690831515021790555066470de51b1cca0060158190555066470de51b1cca00601481905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200097b92919062000d41565b6020604051808303816000875af11580156200099b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009c1919062000dab565b50620009d262000b1460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000a33919062000ddd565b60405180910390a35050505050505062000dfa565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b838262000b3d565b915062000b908362000b3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000bc85762000bc762000b47565b5b828201905092915050565b600082825260208201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600062000c1c60178362000bd3565b915062000c298262000be4565b602082019050919050565b6000602082019050818103600083015262000c4f8162000c0d565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c888262000c5b565b9050919050565b62000c9a8162000c7b565b811462000ca657600080fd5b50565b60008151905062000cba8162000c8f565b92915050565b60006020828403121562000cd95762000cd862000c56565b5b600062000ce98482850162000ca9565b91505092915050565b62000cfd8162000c7b565b82525050565b600060408201905062000d1a600083018562000cf2565b62000d29602083018462000cf2565b9392505050565b62000d3b8162000b3d565b82525050565b600060408201905062000d58600083018562000cf2565b62000d67602083018462000d30565b9392505050565b60008115159050919050565b62000d858162000d6e565b811462000d9157600080fd5b50565b60008151905062000da58162000d7a565b92915050565b60006020828403121562000dc45762000dc362000c56565b5b600062000dd48482850162000d94565b91505092915050565b600060208201905062000df4600083018462000d30565b92915050565b6133e78062000e0a6000396000f3fe6080604052600436106101fd5760003560e01c806384d6c8c61161010d578063b9e93700116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063b9e9370014610656578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639740a946116100dc5780639740a9461461059a5780639f71146d146105c5578063a8b08982146105ee578063a9059cbb1461061957610204565b806384d6c8c6146104ee5780638da5cb5b14610519578063921369131461054457806395d89b411461056f57610204565b8063313ce5671161019057806347afcbfe1161015f57806347afcbfe146104195780636cce46fc1461044457806370a082311461046f578063715018a6146104ac5780637bce5a04146104c357610204565b8063313ce567146103855780633722355c146103b05780633e0c23b8146103d9578063437823ec146103f057610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b91906124a5565b60405180910390f35b34801561024057600080fd5b506102496107eb565b6040516102569190612559565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125e2565b610828565b604051610293919061263d565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612667565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612667565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b604051610314919061269f565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612667565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a91906126ba565b610874565b60405161037c919061263d565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612729565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612744565b61097e565b005b3480156103e557600080fd5b506103ee610a55565b005b3480156103fc57600080fd5b5061041760048036038101906104129190612744565b610b0e565b005b34801561042557600080fd5b5061042e610be5565b60405161043b9190612667565b60405180910390f35b34801561045057600080fd5b50610459610beb565b6040516104669190612667565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190612744565b610bf1565b6040516104a39190612667565b60405180910390f35b3480156104b857600080fd5b506104c1610c3a565b005b3480156104cf57600080fd5b506104d8610d29565b6040516104e59190612667565b60405180910390f35b3480156104fa57600080fd5b50610503610d2f565b6040516105109190612667565b60405180910390f35b34801561052557600080fd5b5061052e610d39565b60405161053b91906124a5565b60405180910390f35b34801561055057600080fd5b50610559610d62565b6040516105669190612667565b60405180910390f35b34801561057b57600080fd5b50610584610d68565b6040516105919190612559565b60405180910390f35b3480156105a657600080fd5b506105af610da5565b6040516105bc9190612667565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190612744565b610dab565b005b3480156105fa57600080fd5b50610603610e82565b60405161061091906124a5565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906125e2565b610ea8565b60405161064d919061263d565b60405180910390f35b34801561066257600080fd5b5061066b610ec6565b6040516106789190612667565b60405180910390f35b34801561068d57600080fd5b50610696610ecc565b6040516106a39190612667565b60405180910390f35b3480156106b857600080fd5b506106c1610ed2565b6040516106ce9190612667565b60405180910390f35b3480156106e357600080fd5b506106ec610ed8565b6040516106f99190612667565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612771565b610ede565b6040516107369190612667565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612744565b610f65565b005b34801561077457600080fd5b5061078f600480360381019061078a91906127b1565b61103c565b005b34801561079d57600080fd5b506107a66110fa565b6040516107b39190612667565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612744565b611100565b005b61dead81565b60606040518060400160405280600a81526020017f4465762052657665616c00000000000000000000000000000000000000000000815250905090565b600061083c6108356111f7565b84846111ff565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113c8565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612863565b60405180910390fd5b610969856109586111f7565b858461096491906128b2565b6111ff565b60019150509392505050565b60006009905090565b6109866111f7565b73ffffffffffffffffffffffffffffffffffffffff166109a4610d39565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612932565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111f7565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612932565b60405180910390fd5b60006009819055506000600a819055506064600b81905550600b54600a54600954610afc9190612952565b610b069190612952565b600c81905550565b610b166111f7565b73ffffffffffffffffffffffffffffffffffffffff16610b34610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612932565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c426111f7565b73ffffffffffffffffffffffffffffffffffffffff16610c60610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612932565b60405180910390fd5b60006009819055506000600a819055506064600b819055506000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550600b54600a54600954610d179190612952565b610d219190612952565b600c81905550565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f444f585845440000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610db36111f7565b73ffffffffffffffffffffffffffffffffffffffff16610dd1610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90612932565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebc610eb56111f7565b84846113c8565b6001905092915050565b60085481565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6d6111f7565b73ffffffffffffffffffffffffffffffffffffffff16610f8b610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612932565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110446111f7565b73ffffffffffffffffffffffffffffffffffffffff16611062610d39565b73ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612932565b60405180910390fd5b6009600a6110c69190612adb565b826110d19190612b26565b6015819055506009600a6110e59190612adb565b816110f09190612b26565b6014819055505050565b60055481565b6111086111f7565b73ffffffffffffffffffffffffffffffffffffffff16611126610d39565b73ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390612932565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290612bf2565b60405180910390fd5b6111f481611aa5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590612c84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490612d16565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bb9190612667565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612da8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90612e3a565b60405180910390fd5b600081116114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612ecc565b60405180910390fd5b6114f283610bf1565b811115611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90612f5e565b60405180910390fd5b601260149054906101000a900460ff16806115985750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115ec5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290612fca565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116d65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561172c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57601554811115611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90613036565b60405180910390fd5b6014548161178384610bf1565b61178d9190612952565b11156117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906130a2565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192e576014546118e183610bf1565b826118ec9190612952565b111561192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613134565b60405180910390fd5b5b600061193930610bf1565b9050601260159054906101000a900460ff161580156119a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119be5750601260169054906101000a900460ff165b80156119ca5750600081115b156119f2576119d881611b69565b600047905060008111156119f0576119ef47611de2565b5b505b611a9f848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a995750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e4e565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba157611ba0613154565b5b604051908082528060200260200182016040528015611bcf5781602001602082028036833780820191505090505b5090503081600081518110611be757611be6613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb291906131c7565b81600181518110611cc657611cc5613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ff565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d919594939291906132f7565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e4a573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e9d91906128b2565b92505081905550600081611eb15782611ebd565b611ebc858585611f81565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0e9190612952565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f729190612667565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fe257506000600854115b1561208557601060009054906101000a900461ffff1661ffff166005548361200a9190612b26565b6120149190613380565b600d81905550601060009054906101000a900461ffff1661ffff166006548361203d9190612b26565b6120479190613380565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120709190612b26565b61207a9190613380565b600f81905550612184565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120e457506000600c54115b1561218357601060009054906101000a900461ffff1661ffff166009548361210c9190612b26565b6121169190613380565b600d81905550601060009054906101000a900461ffff1661ffff16600a548361213f9190612b26565b6121499190613380565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121729190612b26565b61217c9190613380565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121f79190612952565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161227f9190612667565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122da9190612952565b92505081905550600e546013546122f191906128b2565b6013819055506122ff610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516123669190612667565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123bf9190612952565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516124259190612667565b60405180910390a36000600f54600e54600d546124429190612952565b61244c9190612952565b9050808361245a91906128b2565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248f82612464565b9050919050565b61249f81612484565b82525050565b60006020820190506124ba6000830184612496565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124fa5780820151818401526020810190506124df565b83811115612509576000848401525b50505050565b6000601f19601f8301169050919050565b600061252b826124c0565b61253581856124cb565b93506125458185602086016124dc565b61254e8161250f565b840191505092915050565b600060208201905081810360008301526125738184612520565b905092915050565b600080fd5b61258981612484565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f861257b565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b612661816125ac565b82525050565b600060208201905061267c6000830184612658565b92915050565b600061ffff82169050919050565b61269981612682565b82525050565b60006020820190506126b46000830184612690565b92915050565b6000806000606084860312156126d3576126d261257b565b5b60006126e186828701612597565b93505060206126f286828701612597565b9250506040612703868287016125cd565b9150509250925092565b600060ff82169050919050565b6127238161270d565b82525050565b600060208201905061273e600083018461271a565b92915050565b60006020828403121561275a5761275961257b565b5b600061276884828501612597565b91505092915050565b600080604083850312156127885761278761257b565b5b600061279685828601612597565b92505060206127a785828601612597565b9150509250929050565b600080604083850312156127c8576127c761257b565b5b60006127d6858286016125cd565b92505060206127e7858286016125cd565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061284d6028836124cb565b9150612858826127f1565b604082019050919050565b6000602082019050818103600083015261287c81612840565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128bd826125ac565b91506128c8836125ac565b9250828210156128db576128da612883565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291c6020836124cb565b9150612927826128e6565b602082019050919050565b6000602082019050818103600083015261294b8161290f565b9050919050565b600061295d826125ac565b9150612968836125ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299d5761299c612883565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b60018511156129ff578086048111156129db576129da612883565b5b60018516156129ea5780820291505b80810290506129f8856129a8565b94506129bf565b94509492505050565b600082612a185760019050612ad4565b81612a265760009050612ad4565b8160018114612a3c5760028114612a4657612a75565b6001915050612ad4565b60ff841115612a5857612a57612883565b5b8360020a915084821115612a6f57612a6e612883565b5b50612ad4565b5060208310610133831016604e8410600b8410161715612aaa5782820a905083811115612aa557612aa4612883565b5b612ad4565b612ab784848460016129b5565b92509050818404811115612ace57612acd612883565b5b81810290505b9392505050565b6000612ae6826125ac565b9150612af18361270d565b9250612b1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a08565b905092915050565b6000612b31826125ac565b9150612b3c836125ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b7557612b74612883565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bdc6026836124cb565b9150612be782612b80565b604082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e6024836124cb565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d006022836124cb565b9150612d0b82612ca4565b604082019050919050565b60006020820190508181036000830152612d2f81612cf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d926025836124cb565b9150612d9d82612d36565b604082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e246023836124cb565b9150612e2f82612dc8565b604082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb66029836124cb565b9150612ec182612e5a565b604082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612f486031836124cb565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612fb46017836124cb565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130206019836124cb565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061308c601a836124cb565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061311e6022836124cb565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131c181612580565b92915050565b6000602082840312156131dd576131dc61257b565b5b60006131eb848285016131b2565b91505092915050565b6000819050919050565b6000819050919050565b600061322361321e613219846131f4565b6131fe565b6125ac565b9050919050565b61323381613208565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61326e81612484565b82525050565b60006132808383613265565b60208301905092915050565b6000602082019050919050565b60006132a482613239565b6132ae8185613244565b93506132b983613255565b8060005b838110156132ea5781516132d18882613274565b97506132dc8361328c565b9250506001810190506132bd565b5085935050505092915050565b600060a08201905061330c6000830188612658565b613319602083018761322a565b818103604083015261332b8186613299565b905061333a6060830185612496565b6133476080830184612658565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061338b826125ac565b9150613396836125ac565b9250826133a6576133a5613351565b5b82820490509291505056fea264697066735822122036c653d52c0ae56e8540f95215316dcacf6a4a1d522c3ff65c5ae7554170354264736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806384d6c8c61161010d578063b9e93700116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063b9e9370014610656578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639740a946116100dc5780639740a9461461059a5780639f71146d146105c5578063a8b08982146105ee578063a9059cbb1461061957610204565b806384d6c8c6146104ee5780638da5cb5b14610519578063921369131461054457806395d89b411461056f57610204565b8063313ce5671161019057806347afcbfe1161015f57806347afcbfe146104195780636cce46fc1461044457806370a082311461046f578063715018a6146104ac5780637bce5a04146104c357610204565b8063313ce567146103855780633722355c146103b05780633e0c23b8146103d9578063437823ec146103f057610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b91906124a5565b60405180910390f35b34801561024057600080fd5b506102496107eb565b6040516102569190612559565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125e2565b610828565b604051610293919061263d565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612667565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612667565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b604051610314919061269f565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612667565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a91906126ba565b610874565b60405161037c919061263d565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612729565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612744565b61097e565b005b3480156103e557600080fd5b506103ee610a55565b005b3480156103fc57600080fd5b5061041760048036038101906104129190612744565b610b0e565b005b34801561042557600080fd5b5061042e610be5565b60405161043b9190612667565b60405180910390f35b34801561045057600080fd5b50610459610beb565b6040516104669190612667565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190612744565b610bf1565b6040516104a39190612667565b60405180910390f35b3480156104b857600080fd5b506104c1610c3a565b005b3480156104cf57600080fd5b506104d8610d29565b6040516104e59190612667565b60405180910390f35b3480156104fa57600080fd5b50610503610d2f565b6040516105109190612667565b60405180910390f35b34801561052557600080fd5b5061052e610d39565b60405161053b91906124a5565b60405180910390f35b34801561055057600080fd5b50610559610d62565b6040516105669190612667565b60405180910390f35b34801561057b57600080fd5b50610584610d68565b6040516105919190612559565b60405180910390f35b3480156105a657600080fd5b506105af610da5565b6040516105bc9190612667565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e79190612744565b610dab565b005b3480156105fa57600080fd5b50610603610e82565b60405161061091906124a5565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906125e2565b610ea8565b60405161064d919061263d565b60405180910390f35b34801561066257600080fd5b5061066b610ec6565b6040516106789190612667565b60405180910390f35b34801561068d57600080fd5b50610696610ecc565b6040516106a39190612667565b60405180910390f35b3480156106b857600080fd5b506106c1610ed2565b6040516106ce9190612667565b60405180910390f35b3480156106e357600080fd5b506106ec610ed8565b6040516106f99190612667565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612771565b610ede565b6040516107369190612667565b60405180910390f35b34801561074b57600080fd5b5061076660048036038101906107619190612744565b610f65565b005b34801561077457600080fd5b5061078f600480360381019061078a91906127b1565b61103c565b005b34801561079d57600080fd5b506107a66110fa565b6040516107b39190612667565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de9190612744565b611100565b005b61dead81565b60606040518060400160405280600a81526020017f4465762052657665616c00000000000000000000000000000000000000000000815250905090565b600061083c6108356111f7565b84846111ff565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113c8565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612863565b60405180910390fd5b610969856109586111f7565b858461096491906128b2565b6111ff565b60019150509392505050565b60006009905090565b6109866111f7565b73ffffffffffffffffffffffffffffffffffffffff166109a4610d39565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612932565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111f7565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612932565b60405180910390fd5b60006009819055506000600a819055506064600b81905550600b54600a54600954610afc9190612952565b610b069190612952565b600c81905550565b610b166111f7565b73ffffffffffffffffffffffffffffffffffffffff16610b34610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612932565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c426111f7565b73ffffffffffffffffffffffffffffffffffffffff16610c60610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612932565b60405180910390fd5b60006009819055506000600a819055506064600b819055506000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550600b54600a54600954610d179190612952565b610d219190612952565b600c81905550565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f444f585845440000000000000000000000000000000000000000000000000000815250905090565b600d5481565b610db36111f7565b73ffffffffffffffffffffffffffffffffffffffff16610dd1610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90612932565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebc610eb56111f7565b84846113c8565b6001905092915050565b60085481565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6d6111f7565b73ffffffffffffffffffffffffffffffffffffffff16610f8b610d39565b73ffffffffffffffffffffffffffffffffffffffff1614610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612932565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110446111f7565b73ffffffffffffffffffffffffffffffffffffffff16611062610d39565b73ffffffffffffffffffffffffffffffffffffffff16146110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af90612932565b60405180910390fd5b6009600a6110c69190612adb565b826110d19190612b26565b6015819055506009600a6110e59190612adb565b816110f09190612b26565b6014819055505050565b60055481565b6111086111f7565b73ffffffffffffffffffffffffffffffffffffffff16611126610d39565b73ffffffffffffffffffffffffffffffffffffffff161461117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390612932565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e290612bf2565b60405180910390fd5b6111f481611aa5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590612c84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490612d16565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bb9190612667565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612da8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90612e3a565b60405180910390fd5b600081116114e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e090612ecc565b60405180910390fd5b6114f283610bf1565b811115611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b90612f5e565b60405180910390fd5b601260149054906101000a900460ff16806115985750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115ec5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290612fca565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116d65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561172c5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117cf57601554811115611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90613036565b60405180910390fd5b6014548161178384610bf1565b61178d9190612952565b11156117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c5906130a2565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187a5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192e576014546118e183610bf1565b826118ec9190612952565b111561192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613134565b60405180910390fd5b5b600061193930610bf1565b9050601260159054906101000a900460ff161580156119a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119be5750601260169054906101000a900460ff165b80156119ca5750600081115b156119f2576119d881611b69565b600047905060008111156119f0576119ef47611de2565b5b505b611a9f848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a995750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e4e565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba157611ba0613154565b5b604051908082528060200260200182016040528015611bcf5781602001602082028036833780820191505090505b5090503081600081518110611be757611be6613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb291906131c7565b81600181518110611cc657611cc5613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2d30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ff565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d919594939291906132f7565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e4a573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e9d91906128b2565b92505081905550600081611eb15782611ebd565b611ebc858585611f81565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f0e9190612952565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f729190612667565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fe257506000600854115b1561208557601060009054906101000a900461ffff1661ffff166005548361200a9190612b26565b6120149190613380565b600d81905550601060009054906101000a900461ffff1661ffff166006548361203d9190612b26565b6120479190613380565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120709190612b26565b61207a9190613380565b600f81905550612184565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120e457506000600c54115b1561218357601060009054906101000a900461ffff1661ffff166009548361210c9190612b26565b6121169190613380565b600d81905550601060009054906101000a900461ffff1661ffff16600a548361213f9190612b26565b6121499190613380565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121729190612b26565b61217c9190613380565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121f79190612952565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d5460405161227f9190612667565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122da9190612952565b92505081905550600e546013546122f191906128b2565b6013819055506122ff610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516123669190612667565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123bf9190612952565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516124259190612667565b60405180910390a36000600f54600e54600d546124429190612952565b61244c9190612952565b9050808361245a91906128b2565b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248f82612464565b9050919050565b61249f81612484565b82525050565b60006020820190506124ba6000830184612496565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124fa5780820151818401526020810190506124df565b83811115612509576000848401525b50505050565b6000601f19601f8301169050919050565b600061252b826124c0565b61253581856124cb565b93506125458185602086016124dc565b61254e8161250f565b840191505092915050565b600060208201905081810360008301526125738184612520565b905092915050565b600080fd5b61258981612484565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f861257b565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b612661816125ac565b82525050565b600060208201905061267c6000830184612658565b92915050565b600061ffff82169050919050565b61269981612682565b82525050565b60006020820190506126b46000830184612690565b92915050565b6000806000606084860312156126d3576126d261257b565b5b60006126e186828701612597565b93505060206126f286828701612597565b9250506040612703868287016125cd565b9150509250925092565b600060ff82169050919050565b6127238161270d565b82525050565b600060208201905061273e600083018461271a565b92915050565b60006020828403121561275a5761275961257b565b5b600061276884828501612597565b91505092915050565b600080604083850312156127885761278761257b565b5b600061279685828601612597565b92505060206127a785828601612597565b9150509250929050565b600080604083850312156127c8576127c761257b565b5b60006127d6858286016125cd565b92505060206127e7858286016125cd565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061284d6028836124cb565b9150612858826127f1565b604082019050919050565b6000602082019050818103600083015261287c81612840565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128bd826125ac565b91506128c8836125ac565b9250828210156128db576128da612883565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291c6020836124cb565b9150612927826128e6565b602082019050919050565b6000602082019050818103600083015261294b8161290f565b9050919050565b600061295d826125ac565b9150612968836125ac565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561299d5761299c612883565b5b828201905092915050565b60008160011c9050919050565b6000808291508390505b60018511156129ff578086048111156129db576129da612883565b5b60018516156129ea5780820291505b80810290506129f8856129a8565b94506129bf565b94509492505050565b600082612a185760019050612ad4565b81612a265760009050612ad4565b8160018114612a3c5760028114612a4657612a75565b6001915050612ad4565b60ff841115612a5857612a57612883565b5b8360020a915084821115612a6f57612a6e612883565b5b50612ad4565b5060208310610133831016604e8410600b8410161715612aaa5782820a905083811115612aa557612aa4612883565b5b612ad4565b612ab784848460016129b5565b92509050818404811115612ace57612acd612883565b5b81810290505b9392505050565b6000612ae6826125ac565b9150612af18361270d565b9250612b1e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a08565b905092915050565b6000612b31826125ac565b9150612b3c836125ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b7557612b74612883565b5b828202905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612bdc6026836124cb565b9150612be782612b80565b604082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e6024836124cb565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d006022836124cb565b9150612d0b82612ca4565b604082019050919050565b60006020820190508181036000830152612d2f81612cf3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d926025836124cb565b9150612d9d82612d36565b604082019050919050565b60006020820190508181036000830152612dc181612d85565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e246023836124cb565b9150612e2f82612dc8565b604082019050919050565b60006020820190508181036000830152612e5381612e17565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb66029836124cb565b9150612ec182612e5a565b604082019050919050565b60006020820190508181036000830152612ee581612ea9565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612f486031836124cb565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b6000612fb46017836124cb565b9150612fbf82612f7e565b602082019050919050565b60006020820190508181036000830152612fe381612fa7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130206019836124cb565b915061302b82612fea565b602082019050919050565b6000602082019050818103600083015261304f81613013565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061308c601a836124cb565b915061309782613056565b602082019050919050565b600060208201905081810360008301526130bb8161307f565b9050919050565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b600061311e6022836124cb565b9150613129826130c2565b604082019050919050565b6000602082019050818103600083015261314d81613111565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131c181612580565b92915050565b6000602082840312156131dd576131dc61257b565b5b60006131eb848285016131b2565b91505092915050565b6000819050919050565b6000819050919050565b600061322361321e613219846131f4565b6131fe565b6125ac565b9050919050565b61323381613208565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61326e81612484565b82525050565b60006132808383613265565b60208301905092915050565b6000602082019050919050565b60006132a482613239565b6132ae8185613244565b93506132b983613255565b8060005b838110156132ea5781516132d18882613274565b97506132dc8361328c565b9250506001810190506132bd565b5085935050505092915050565b600060a08201905061330c6000830188612658565b613319602083018761322a565b818103604083015261332b8186613299565b905061333a6060830185612496565b6133476080830184612658565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061338b826125ac565b9150613396836125ac565b9250826133a6576133a5613351565b5b82820490509291505056fea264697066735822122036c653d52c0ae56e8540f95215316dcacf6a4a1d522c3ff65c5ae7554170354264736f6c634300080f0033

Deployed Bytecode Sourcemap

4357:10769:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5446:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8106:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8979:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8260:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8498:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5399:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5359:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9125:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8423:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13894:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14380:288;;;;;;;;;;;;;:::i;:::-;;13656:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5101:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5059:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8585:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14680:297;;;;;;;;;;;;;:::i;:::-;;4929:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8181:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2796:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5138:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8344:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5274:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14025:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5526:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8694:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4966:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4893:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5176:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8844:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13775:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14155:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4852:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3122:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5446:73;5477:42;5446:73;:::o;8106:69::-;8143:13;8167:5;;;;;;;;;;;;;;;;;8160:12;;8106:69;:::o;8979:138::-;9054:4;9062:39;9071:12;:10;:12::i;:::-;9085:7;9094:6;9062:8;:39::i;:::-;9110:4;9103:11;;8979:138;;;;:::o;8260:78::-;8304:7;8321:15;;8314:22;;8260:78;:::o;8498:81::-;8551:7;8569;;8562:14;;8498:81;:::o;5399:38::-;;;;;;;;;;;;;:::o;5359:33::-;;;;:::o;9125:420::-;9231:4;9248:36;9258:6;9266:9;9277:6;9248:9;:36::i;:::-;9297:24;9324:11;:19;9336:6;9324:19;;;;;;;;;;;;;;;:33;9344:12;:10;:12::i;:::-;9324:33;;;;;;;;;;;;;;;;9297:60;;9396:6;9376:16;:26;;9368:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9458:57;9467:6;9475:12;:10;:12::i;:::-;9508:6;9489:16;:25;;;;:::i;:::-;9458:8;:57::i;:::-;9533:4;9526:11;;;9125:420;;;;;:::o;8423:69::-;8464:5;4842:1;8473:16;;8423:69;:::o;13894:123::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14008:4:::1;13968:28;:37;13997:7;13968:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;13894:123:::0;:::o;14380:288::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14512:1:::1;14489:20;:24;;;;14542:1;14524:15;:19;;;;14573:3;14554:16;:22;;;;14644:16;;14626:15;;14603:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14587:13;:73;;;;14380:288::o:0;13656:111::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13755:4:::1;13725:18;:27;13744:7;13725:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13656:111:::0;:::o;5101:30::-;;;;:::o;5059:35::-;;;;:::o;8585:103::-;8651:7;8669;:16;8677:7;8669:16;;;;;;;;;;;;;;;;8662:23;;8585:103;;;:::o;14680:297::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14761:1:::1;14738:20;:24;;;;14791:1;14773:15;:19;;;;14822:3;14803:16;:22;;;;14850:5;14836:11;;:19;;;;;;;;;;;;;;;;;;14880:5;14866:11;;:19;;;;;;;;;;;;;;;;;;14953:16;;14935:15;;14912:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14896:13;:73;;;;14680:297::o:0;4929:30::-;;;;:::o;8181:73::-;8224:7;8241:11;;8234:18;;8181:73;:::o;2796:87::-;2842:7;2869:6;;;;;;;;;;;2862:13;;2796:87;:::o;5138:31::-;;;;:::o;8344:73::-;8383:13;8407:7;;;;;;;;;;;;;;;;;8400:14;;8344:73;:::o;5274:37::-;;;;:::o;14025:122::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14137:5:::1;14097:28;:37;14126:7;14097:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14025:122:::0;:::o;5526:26::-;;;;;;;;;;;;;:::o;8694:144::-;8772:4;8780:42;8790:12;:10;:12::i;:::-;8804:9;8815:6;8780:9;:42::i;:::-;8831:4;8824:11;;8694:144;;;;:::o;4966:84::-;;;;:::o;4893:29::-;;;;:::o;5318:32::-;;;;:::o;5176:89::-;;;;:::o;8844:129::-;8925:7;8943:11;:18;8955:5;8943:18;;;;;;;;;;;;;;;:27;8962:7;8943:27;;;;;;;;;;;;;;;;8936:34;;8844:129;;;;:::o;13775:110::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13872:5:::1;13842:18;:27;13861:7;13842:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13775:110:::0;:::o;14155:217::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4842:1:::1;14290:2;:14;;;;:::i;:::-;14275:12;:29;;;;:::i;:::-;14261:11;:43;;;;4842:1;14350:2;:14;;;;:::i;:::-;14333;:31;;;;:::i;:::-;14315:15;:49;;;;14155:217:::0;;:::o;4852:34::-;;;;:::o;3122:192::-;2942:12;:10;:12::i;:::-;2931:23;;:7;:5;:7::i;:::-;:23;;;2923:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3231:1:::1;3211:22;;:8;:22;;::::0;3203:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3287:19;3297:8;3287:9;:19::i;:::-;3122:192:::0;:::o;2217:98::-;2270:7;2297:10;2290:17;;2217:98;:::o;9553:335::-;9663:1;9646:19;;:5;:19;;;9638:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9744:1;9725:21;;:7;:21;;;9717:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9826:6;9796:11;:18;9808:5;9796:18;;;;;;;;;;;;;;;:27;9815:7;9796:27;;;;;;;;;;;;;;;:36;;;;9864:7;9848:32;;9857:5;9848:32;;;9873:6;9848:32;;;;;;:::i;:::-;;;;;;;;9553:335;;;:::o;9896:1576::-;10000:1;9984:18;;:4;:18;;;9976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10077:1;10063:16;;:2;:16;;;10055:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10147:1;10138:6;:10;10130:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10223:15;10233:4;10223:9;:15::i;:::-;10213:6;:25;;10205:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10314:11;;;;;;;;;;;:39;;;;10329:18;:24;10348:4;10329:24;;;;;;;;;;;;;;;;;;;;;;;;;10314:39;:65;;;;10357:18;:22;10376:2;10357:22;;;;;;;;;;;;;;;;;;;;;;;;;10314:65;10306:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10432:13;;;;;;;;;;;10424:21;;:4;:21;;;:55;;;;;10463:15;;;;;;;;;;;10449:30;;:2;:30;;;;10424:55;:83;;;;;10485:18;:22;10504:2;10485:22;;;;;;;;;;;;;;;;;;;;;;;;;10483:24;10424:83;10420:278;;;10546:11;;10536:6;:21;;10528:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10640:15;;10630:6;10614:13;10624:2;10614:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10606:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:278;10720:13;;;;;;;;;;;10712:21;;:4;:21;;;:55;;;;;10751:15;;;;;;;;;;;10737:30;;:2;:30;;;;10712:55;:93;;;;;10773:28;:32;10802:2;10773:32;;;;;;;;;;;;;;;;;;;;;;;;;10771:34;10712:93;10708:231;;;10873:15;;10856:13;10866:2;10856:9;:13::i;:::-;10847:6;:22;;;;:::i;:::-;:41;;10839:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10708:231;10951:28;10982:24;11000:4;10982:9;:24::i;:::-;10951:55;;11026:6;;;;;;;;;;;11025:7;:32;;;;;11044:13;;;;;;;;;;;11036:21;;:4;:21;;;;11025:32;:47;;;;;11061:11;;;;;;;;;;;11025:47;:73;;;;;11097:1;11076:20;:22;11025:73;11021:344;;;11119:38;11136:20;11119:16;:38::i;:::-;11176:26;11205:21;11176:50;;11269:1;11248:18;:22;11245:105;;;11295:35;11308:21;11295:12;:35::i;:::-;11245:105;11100:265;11021:344;11377:87;11392:4;11398:2;11402:6;11412:18;:24;11431:4;11412:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11440:18;:22;11459:2;11440:22;;;;;;;;;;;;;;;;;;;;;;;;;11412:50;11410:53;11377:14;:87::i;:::-;9965:1507;9896:1576;;;:::o;3322:173::-;3378:16;3397:6;;;;;;;;;;;3378:25;;3423:8;3414:6;;:17;;;;;;;;;;;;;;;;;;3478:8;3447:40;;3468:8;3447:40;;;;;;;;;;;;3367:128;3322:173;:::o;11480:483::-;6061:4;6052:6;;:13;;;;;;;;;;;;;;;;;;11558:21:::1;11596:1;11582:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11558:40;;11627:4;11609;11614:1;11609:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11653:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11643:4;11648:1;11643:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11686:62;11703:4;11718:15;;;;;;;;;;;11736:11;11686:8;:62::i;:::-;11759:15;;;;;;;;;;;:66;;;11840:11;11866:1;11882:4;11909;11929:15;11759:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11547:416;6097:5:::0;6088:6;;:14;;;;;;;;;;;;;;;;;;11480:483;:::o;14985:95::-;15042:13;;;;;;;;;;;:22;;:30;15065:6;15042:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14985:95;:::o;11971:340::-;12098:6;12079:7;:15;12087:6;12079:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12115:22;12141:7;12140:57;;12191:6;12140:57;;;12152:36;12162:6;12170:9;12181:6;12152:9;:36::i;:::-;12140:57;12115:82;;12230:14;12208:7;:18;12216:9;12208:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12277:9;12260:43;;12269:6;12260:43;;;12288:14;12260:43;;;;;;:::i;:::-;;;;;;;;12068:243;11971:340;;;;:::o;12319:1329::-;12398:7;12429:13;;;;;;;;;;;12421:21;;:4;:21;;;:41;;;;;12461:1;12446:12;;:16;12421:41;12418:637;;;12537:16;;;;;;;;;;;12506:47;;12515:19;;12506:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;12481:22;:72;;;;12614:16;;;;;;;;;;;12588:42;;12597:14;;12588:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;12568:17;:62;;;;12702:16;;;;;;;;;;;12675:43;;12684:15;;12675:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12654:18;:64;;;;12418:637;;;12750:13;;;;;;;;;;;12744:19;;:2;:19;;;:41;;;;;12784:1;12768:13;;:17;12744:41;12740:315;;;12861:16;;;;;;;;;;;12829:48;;12838:20;;12829:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;12804:22;:73;;;;12939:16;;;;;;;;;;;12912:43;;12921:15;;12912:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12892:17;:63;;;;13019:16;;;;;;;;;;;12991:44;;13000:16;;12991:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;12970:18;:65;;;;12740:315;12418:637;13089:22;;13065:7;:20;13073:11;;;;;;;;;;;13065:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13142:11;;;;;;;;;;;13127:51;;13136:4;13127:51;;;13155:22;;13127:51;;;;;;:::i;:::-;;;;;;;;13216:17;;13199:7;:13;5477:42;13199:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13264:17;;13254:7;;:27;;;;:::i;:::-;13244:7;:37;;;;13302:13;:11;:13::i;:::-;13292:7;:23;;;;5477:42;13331:39;;13340:4;13331:39;;;13352:17;;13331:39;;;;;;:::i;:::-;;;;;;;;13425:18;;13399:7;:22;13415:4;13399:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13482:4;13459:49;;13468:4;13459:49;;;13489:18;;13459:49;;;;;;:::i;:::-;;;;;;;;13521:17;13586:18;;13566:17;;13541:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13521:83;;13631:9;13622:6;:18;;;;:::i;:::-;13615:25;;;12319:1329;;;;;:::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:305::-;9426:3;9445:20;9463:1;9445:20;:::i;:::-;9440:25;;9479:20;9497:1;9479:20;:::i;:::-;9474:25;;9633:1;9565:66;9561:74;9558:1;9555:81;9552:107;;;9639:18;;:::i;:::-;9552:107;9683:1;9680;9676:9;9669:16;;9386:305;;;;:::o;9697:102::-;9739:8;9786:5;9783:1;9779:13;9758:34;;9697:102;;;:::o;9805:848::-;9866:5;9873:4;9897:6;9888:15;;9921:5;9912:14;;9935:712;9956:1;9946:8;9943:15;9935:712;;;10051:4;10046:3;10042:14;10036:4;10033:24;10030:50;;;10060:18;;:::i;:::-;10030:50;10110:1;10100:8;10096:16;10093:451;;;10525:4;10518:5;10514:16;10505:25;;10093:451;10575:4;10569;10565:15;10557:23;;10605:32;10628:8;10605:32;:::i;:::-;10593:44;;9935:712;;;9805:848;;;;;;;:::o;10659:1073::-;10713:5;10904:8;10894:40;;10925:1;10916:10;;10927:5;;10894:40;10953:4;10943:36;;10970:1;10961:10;;10972:5;;10943:36;11039:4;11087:1;11082:27;;;;11123:1;11118:191;;;;11032:277;;11082:27;11100:1;11091:10;;11102:5;;;11118:191;11163:3;11153:8;11150:17;11147:43;;;11170:18;;:::i;:::-;11147:43;11219:8;11216:1;11212:16;11203:25;;11254:3;11247:5;11244:14;11241:40;;;11261:18;;:::i;:::-;11241:40;11294:5;;;11032:277;;11418:2;11408:8;11405:16;11399:3;11393:4;11390:13;11386:36;11368:2;11358:8;11355:16;11350:2;11344:4;11341:12;11337:35;11321:111;11318:246;;;11474:8;11468:4;11464:19;11455:28;;11509:3;11502:5;11499:14;11496:40;;;11516:18;;:::i;:::-;11496:40;11549:5;;11318:246;11589:42;11627:3;11617:8;11611:4;11608:1;11589:42;:::i;:::-;11574:57;;;;11663:4;11658:3;11654:14;11647:5;11644:25;11641:51;;;11672:18;;:::i;:::-;11641:51;11721:4;11714:5;11710:16;11701:25;;10659:1073;;;;;;:::o;11738:281::-;11796:5;11820:23;11838:4;11820:23;:::i;:::-;11812:31;;11864:25;11880:8;11864:25;:::i;:::-;11852:37;;11908:104;11945:66;11935:8;11929:4;11908:104;:::i;:::-;11899:113;;11738:281;;;;:::o;12025:348::-;12065:7;12088:20;12106:1;12088:20;:::i;:::-;12083:25;;12122:20;12140:1;12122:20;:::i;:::-;12117:25;;12310:1;12242:66;12238:74;12235:1;12232:81;12227:1;12220:9;12213:17;12209:105;12206:131;;;12317:18;;:::i;:::-;12206:131;12365:1;12362;12358:9;12347:20;;12025:348;;;;:::o;12379:225::-;12519:34;12515:1;12507:6;12503:14;12496:58;12588:8;12583:2;12575:6;12571:15;12564:33;12379:225;:::o;12610:366::-;12752:3;12773:67;12837:2;12832:3;12773:67;:::i;:::-;12766:74;;12849:93;12938:3;12849:93;:::i;:::-;12967:2;12962:3;12958:12;12951:19;;12610:366;;;:::o;12982:419::-;13148:4;13186:2;13175:9;13171:18;13163:26;;13235:9;13229:4;13225:20;13221:1;13210:9;13206:17;13199:47;13263:131;13389:4;13263:131;:::i;:::-;13255:139;;12982:419;;;:::o;13407:223::-;13547:34;13543:1;13535:6;13531:14;13524:58;13616:6;13611:2;13603:6;13599:15;13592:31;13407:223;:::o;13636:366::-;13778:3;13799:67;13863:2;13858:3;13799:67;:::i;:::-;13792:74;;13875:93;13964:3;13875:93;:::i;:::-;13993:2;13988:3;13984:12;13977:19;;13636:366;;;:::o;14008:419::-;14174:4;14212:2;14201:9;14197:18;14189:26;;14261:9;14255:4;14251:20;14247:1;14236:9;14232:17;14225:47;14289:131;14415:4;14289:131;:::i;:::-;14281:139;;14008:419;;;:::o;14433:221::-;14573:34;14569:1;14561:6;14557:14;14550:58;14642:4;14637:2;14629:6;14625:15;14618:29;14433:221;:::o;14660:366::-;14802:3;14823:67;14887:2;14882:3;14823:67;:::i;:::-;14816:74;;14899:93;14988:3;14899:93;:::i;:::-;15017:2;15012:3;15008:12;15001:19;;14660:366;;;:::o;15032:419::-;15198:4;15236:2;15225:9;15221:18;15213:26;;15285:9;15279:4;15275:20;15271:1;15260:9;15256:17;15249:47;15313:131;15439:4;15313:131;:::i;:::-;15305:139;;15032:419;;;:::o;15457:224::-;15597:34;15593:1;15585:6;15581:14;15574:58;15666:7;15661:2;15653:6;15649:15;15642:32;15457:224;:::o;15687:366::-;15829:3;15850:67;15914:2;15909:3;15850:67;:::i;:::-;15843:74;;15926:93;16015:3;15926:93;:::i;:::-;16044:2;16039:3;16035:12;16028:19;;15687:366;;;:::o;16059:419::-;16225:4;16263:2;16252:9;16248:18;16240:26;;16312:9;16306:4;16302:20;16298:1;16287:9;16283:17;16276:47;16340:131;16466:4;16340:131;:::i;:::-;16332:139;;16059:419;;;:::o;16484:222::-;16624:34;16620:1;16612:6;16608:14;16601:58;16693:5;16688:2;16680:6;16676:15;16669:30;16484:222;:::o;16712:366::-;16854:3;16875:67;16939:2;16934:3;16875:67;:::i;:::-;16868:74;;16951:93;17040:3;16951:93;:::i;:::-;17069:2;17064:3;17060:12;17053:19;;16712:366;;;:::o;17084:419::-;17250:4;17288:2;17277:9;17273:18;17265:26;;17337:9;17331:4;17327:20;17323:1;17312:9;17308:17;17301:47;17365:131;17491:4;17365:131;:::i;:::-;17357:139;;17084:419;;;:::o;17509:228::-;17649:34;17645:1;17637:6;17633:14;17626:58;17718:11;17713:2;17705:6;17701:15;17694:36;17509:228;:::o;17743:366::-;17885:3;17906:67;17970:2;17965:3;17906:67;:::i;:::-;17899:74;;17982:93;18071:3;17982:93;:::i;:::-;18100:2;18095:3;18091:12;18084:19;;17743:366;;;:::o;18115:419::-;18281:4;18319:2;18308:9;18304:18;18296:26;;18368:9;18362:4;18358:20;18354:1;18343:9;18339:17;18332:47;18396:131;18522:4;18396:131;:::i;:::-;18388:139;;18115:419;;;:::o;18540:236::-;18680:34;18676:1;18668:6;18664:14;18657:58;18749:19;18744:2;18736:6;18732:15;18725:44;18540:236;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:173::-;19719:25;19715:1;19707:6;19703:14;19696:49;19579:173;:::o;19758:366::-;19900:3;19921:67;19985:2;19980:3;19921:67;:::i;:::-;19914:74;;19997:93;20086:3;19997:93;:::i;:::-;20115:2;20110:3;20106:12;20099:19;;19758:366;;;:::o;20130:419::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20383:9;20377:4;20373:20;20369:1;20358:9;20354:17;20347:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20130:419;;;:::o;20555:175::-;20695:27;20691:1;20683:6;20679:14;20672:51;20555:175;:::o;20736:366::-;20878:3;20899:67;20963:2;20958:3;20899:67;:::i;:::-;20892:74;;20975:93;21064:3;20975:93;:::i;:::-;21093:2;21088:3;21084:12;21077:19;;20736:366;;;:::o;21108:419::-;21274:4;21312:2;21301:9;21297:18;21289:26;;21361:9;21355:4;21351:20;21347:1;21336:9;21332:17;21325:47;21389:131;21515:4;21389:131;:::i;:::-;21381:139;;21108:419;;;:::o;21533:176::-;21673:28;21669:1;21661:6;21657:14;21650:52;21533:176;:::o;21715:366::-;21857:3;21878:67;21942:2;21937:3;21878:67;:::i;:::-;21871:74;;21954:93;22043:3;21954:93;:::i;:::-;22072:2;22067:3;22063:12;22056:19;;21715:366;;;:::o;22087:419::-;22253:4;22291:2;22280:9;22276:18;22268:26;;22340:9;22334:4;22330:20;22326:1;22315:9;22311:17;22304:47;22368:131;22494:4;22368:131;:::i;:::-;22360:139;;22087:419;;;:::o;22512:221::-;22652:34;22648:1;22640:6;22636:14;22629:58;22721:4;22716:2;22708:6;22704:15;22697:29;22512:221;:::o;22739:366::-;22881:3;22902:67;22966:2;22961:3;22902:67;:::i;:::-;22895:74;;22978:93;23067:3;22978:93;:::i;:::-;23096:2;23091:3;23087:12;23080:19;;22739:366;;;:::o;23111:419::-;23277:4;23315:2;23304:9;23300:18;23292:26;;23364:9;23358:4;23354:20;23350:1;23339:9;23335:17;23328:47;23392:131;23518:4;23392:131;:::i;:::-;23384:139;;23111:419;;;:::o;23536:180::-;23584:77;23581:1;23574:88;23681:4;23678:1;23671:15;23705:4;23702:1;23695:15;23722:180;23770:77;23767:1;23760:88;23867:4;23864:1;23857:15;23891:4;23888:1;23881:15;23908:143;23965:5;23996:6;23990:13;23981:22;;24012:33;24039:5;24012:33;:::i;:::-;23908:143;;;;:::o;24057:351::-;24127:6;24176:2;24164:9;24155:7;24151:23;24147:32;24144:119;;;24182:79;;:::i;:::-;24144:119;24302:1;24327:64;24383:7;24374:6;24363:9;24359:22;24327:64;:::i;:::-;24317:74;;24273:128;24057:351;;;;:::o;24414:85::-;24459:7;24488:5;24477:16;;24414:85;;;:::o;24505:60::-;24533:3;24554:5;24547:12;;24505:60;;;:::o;24571:158::-;24629:9;24662:61;24680:42;24689:32;24715:5;24689:32;:::i;:::-;24680:42;:::i;:::-;24662:61;:::i;:::-;24649:74;;24571:158;;;:::o;24735:147::-;24830:45;24869:5;24830:45;:::i;:::-;24825:3;24818:58;24735:147;;:::o;24888:114::-;24955:6;24989:5;24983:12;24973:22;;24888:114;;;:::o;25008:184::-;25107:11;25141:6;25136:3;25129:19;25181:4;25176:3;25172:14;25157:29;;25008:184;;;;:::o;25198:132::-;25265:4;25288:3;25280:11;;25318:4;25313:3;25309:14;25301:22;;25198:132;;;:::o;25336:108::-;25413:24;25431:5;25413:24;:::i;:::-;25408:3;25401:37;25336:108;;:::o;25450:179::-;25519:10;25540:46;25582:3;25574:6;25540:46;:::i;:::-;25618:4;25613:3;25609:14;25595:28;;25450:179;;;;:::o;25635:113::-;25705:4;25737;25732:3;25728:14;25720:22;;25635:113;;;:::o;25784:732::-;25903:3;25932:54;25980:5;25932:54;:::i;:::-;26002:86;26081:6;26076:3;26002:86;:::i;:::-;25995:93;;26112:56;26162:5;26112:56;:::i;:::-;26191:7;26222:1;26207:284;26232:6;26229:1;26226:13;26207:284;;;26308:6;26302:13;26335:63;26394:3;26379:13;26335:63;:::i;:::-;26328:70;;26421:60;26474:6;26421:60;:::i;:::-;26411:70;;26267:224;26254:1;26251;26247:9;26242:14;;26207:284;;;26211:14;26507:3;26500:10;;25908:608;;;25784:732;;;;:::o;26522:831::-;26785:4;26823:3;26812:9;26808:19;26800:27;;26837:71;26905:1;26894:9;26890:17;26881:6;26837:71;:::i;:::-;26918:80;26994:2;26983:9;26979:18;26970:6;26918:80;:::i;:::-;27045:9;27039:4;27035:20;27030:2;27019:9;27015:18;27008:48;27073:108;27176:4;27167:6;27073:108;:::i;:::-;27065:116;;27191:72;27259:2;27248:9;27244:18;27235:6;27191:72;:::i;:::-;27273:73;27341:3;27330:9;27326:19;27317:6;27273:73;:::i;:::-;26522:831;;;;;;;;:::o;27359:180::-;27407:77;27404:1;27397:88;27504:4;27501:1;27494:15;27528:4;27525:1;27518:15;27545:185;27585:1;27602:20;27620:1;27602:20;:::i;:::-;27597:25;;27636:20;27654:1;27636:20;:::i;:::-;27631:25;;27675:1;27665:35;;27680:18;;:::i;:::-;27665:35;27722:1;27719;27715:9;27710:14;;27545:185;;;;:::o

Swarm Source

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