ETH Price: $2,522.01 (-5.11%)

Token

77 Years Commemoration (HIROSHIMA)
 

Overview

Max Total Supply

140,000,000 HIROSHIMA

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Null: 0x00...dEaD
Balance
0 HIROSHIMA

Value
$0.00
0x000000000000000000000000000000000000dead
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.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-06
*/

// SPDX-License-Identifier: NOLICENSE

/**
Tax
0% buy
0% sell

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ $HIROSHIMA ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

In 1945 United States detonated bomb to Hiroshima. Killing 140,000 Japanese people.
Today marks the 77 years of this tragedy. 


Token Name: 77 Years Commemoration
Symbol: HIROSHIMA
Supply: 140,000,000


Telegram: https://t.me/hiroshimaeth77

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

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 = "77 Years Commemoration";
    string private constant _symbol = "HIROSHIMA";
    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 = 140000000 * 10**9;
    uint256 private maxWalletAmount = 1400001 * 10**9;  // 1%
    uint256 private maxTxAmount = 1400001 * 10**9;      //1%
    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(0xe9C750722AaAe1C45323973786Af3Cc184768eab); 
        _tOwned[owner()] = _tTotal;
                
        uint256 _buyAutoLiquidityFee = 0;
        uint256 _buyAutoBurnFee = 0;
        uint256 _buyMarketingFee = 0;

        uint256 _sellAutoLiquidityFee = 0;
        uint256 _sellAutoBurnFee = 0; 
        uint256 _sellMarketingFee = 2000; 
        
        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 = 1400001 * 10**9;
        maxWalletAmount = 1400001 * 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 = 0;
        totalSellFees = sellAutoLiquidityFee + sellAutoBurnFee + sellMarketingFee;
    }
    
    function renounceOwnership() external onlyOwner{
        sellAutoLiquidityFee = 0; 
        sellAutoBurnFee = 0;
        sellMarketingFee = 2000;
        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"}]

608060405260075460065460055462000019919062000d32565b62000025919062000d32565b600855600b54600a546009546200003d919062000d32565b62000049919062000d32565b600c55612710601060006101000a81548161ffff021916908361ffff1602179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506701f161421c8e00006013556604f94b224a4a006014556604f94b224a4a00601555348015620000d057600080fd5b50620000f1620000e562000ab860201b60201c565b62000ac060201b60201c565b601260149054906101000a900460ff161562000144576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013b9062000ce2565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e557600080fd5b505afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000220919062000bdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028357600080fd5b505afa15801562000298573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002be919062000bdb565b6040518363ffffffff1660e01b8152600401620002dd92919062000c88565b602060405180830381600087803b158015620002f857600080fd5b505af11580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000bdb565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ba57600080fd5b505afa158015620003cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f5919062000bdb565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045857600080fd5b505afa1580156200046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000493919062000bdb565b6040518363ffffffff1660e01b8152600401620004b292919062000c88565b60206040518083038186803b158015620004cb57600080fd5b505afa158015620004e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000506919062000bdb565b601060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9c750722aaae1c45323973786af3cc184768eab601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135460016000620005b262000b8460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000806000806107d0905085600581905550846006819055508360078190555060075460065460055462000628919062000d32565b62000634919062000d32565b6008819055508260098190555081600a8190555080600b81905550600b54600a5460095462000664919062000d32565b62000670919062000d32565b600c819055506001600360006200068c62000b8460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620007c562000b8460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff0219169083151502179055506604f94b224a4a006015819055506604f94b224a4a00601481905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620009db92919062000cb5565b602060405180830381600087803b158015620009f657600080fd5b505af115801562000a0b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a31919062000c0d565b5062000a4262000b8460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60135460405162000aa3919062000d04565b60405180910390a35050505050505062000e6a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000bbe8162000e36565b92915050565b60008151905062000bd58162000e50565b92915050565b60006020828403121562000bf45762000bf362000e08565b5b600062000c048482850162000bad565b91505092915050565b60006020828403121562000c265762000c2562000e08565b5b600062000c368482850162000bc4565b91505092915050565b62000c4a8162000d8f565b82525050565b600062000c5f60178362000d21565b915062000c6c8262000e0d565b602082019050919050565b62000c828162000dcf565b82525050565b600060408201905062000c9f600083018562000c3f565b62000cae602083018462000c3f565b9392505050565b600060408201905062000ccc600083018562000c3f565b62000cdb602083018462000c77565b9392505050565b6000602082019050818103600083015262000cfd8162000c50565b9050919050565b600060208201905062000d1b600083018462000c77565b92915050565b600082825260208201905092915050565b600062000d3f8262000dcf565b915062000d4c8362000dcf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d845762000d8362000dd9565b5b828201905092915050565b600062000d9c8262000daf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b62000e418162000d8f565b811462000e4d57600080fd5b50565b62000e5b8162000da3565b811462000e6757600080fd5b50565b6133d88062000e7a6000396000f3fe6080604052600436106101fd5760003560e01c806384d6c8c61161010d578063b9e93700116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063b9e9370014610656578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639740a946116100dc5780639740a9461461059a5780639f71146d146105c5578063a8b08982146105ee578063a9059cbb1461061957610204565b806384d6c8c6146104ee5780638da5cb5b14610519578063921369131461054457806395d89b411461056f57610204565b8063313ce5671161019057806347afcbfe1161015f57806347afcbfe146104195780636cce46fc1461044457806370a082311461046f578063715018a6146104ac5780637bce5a04146104c357610204565b8063313ce567146103855780633722355c146103b05780633e0c23b8146103d9578063437823ec146103f057610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b9190612904565b60405180910390f35b34801561024057600080fd5b506102496107eb565b604051610256919061293a565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125a5565b610828565b604051610293919061291f565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612b17565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612b17565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b6040516103149190612afc565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612b17565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612552565b610874565b60405161037c919061291f565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612b8c565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906124b8565b61097e565b005b3480156103e557600080fd5b506103ee610a55565b005b3480156103fc57600080fd5b50610417600480360381019061041291906124b8565b610b0e565b005b34801561042557600080fd5b5061042e610be5565b60405161043b9190612b17565b60405180910390f35b34801561045057600080fd5b50610459610beb565b6040516104669190612b17565b60405180910390f35b34801561047b57600080fd5b50610496600480360381019061049191906124b8565b610bf1565b6040516104a39190612b17565b60405180910390f35b3480156104b857600080fd5b506104c1610c3a565b005b3480156104cf57600080fd5b506104d8610d2a565b6040516104e59190612b17565b60405180910390f35b3480156104fa57600080fd5b50610503610d30565b6040516105109190612b17565b60405180910390f35b34801561052557600080fd5b5061052e610d3a565b60405161053b9190612904565b60405180910390f35b34801561055057600080fd5b50610559610d63565b6040516105669190612b17565b60405180910390f35b34801561057b57600080fd5b50610584610d69565b604051610591919061293a565b60405180910390f35b3480156105a657600080fd5b506105af610da6565b6040516105bc9190612b17565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e791906124b8565b610dac565b005b3480156105fa57600080fd5b50610603610e83565b6040516106109190612904565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906125a5565b610ea9565b60405161064d919061291f565b60405180910390f35b34801561066257600080fd5b5061066b610ec7565b6040516106789190612b17565b60405180910390f35b34801561068d57600080fd5b50610696610ecd565b6040516106a39190612b17565b60405180910390f35b3480156106b857600080fd5b506106c1610ed3565b6040516106ce9190612b17565b60405180910390f35b3480156106e357600080fd5b506106ec610ed9565b6040516106f99190612b17565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612512565b610edf565b6040516107369190612b17565b60405180910390f35b34801561074b57600080fd5b50610766600480360381019061076191906124b8565b610f66565b005b34801561077457600080fd5b5061078f600480360381019061078a91906125e5565b61103d565b005b34801561079d57600080fd5b506107a66110fb565b6040516107b39190612b17565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de91906124b8565b611101565b005b61dead81565b60606040518060400160405280601681526020017f373720596561727320436f6d6d656d6f726174696f6e00000000000000000000815250905090565b600061083c6108356111f9565b8484611201565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113cc565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612a1c565b60405180910390fd5b610969856109586111f9565b85846109649190612e4e565b611201565b60019150509392505050565b60006009905090565b6109866111f9565b73ffffffffffffffffffffffffffffffffffffffff166109a4610d3a565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612a3c565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111f9565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612a3c565b60405180910390fd5b60006009819055506000600a819055506000600b81905550600b54600a54600954610afc9190612bfc565b610b069190612bfc565b600c81905550565b610b166111f9565b73ffffffffffffffffffffffffffffffffffffffff16610b34610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612a3c565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c426111f9565b73ffffffffffffffffffffffffffffffffffffffff16610c60610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612a3c565b60405180910390fd5b60006009819055506000600a819055506107d0600b819055506000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550600b54600a54600954610d189190612bfc565b610d229190612bfc565b600c81905550565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600981526020017f4849524f5348494d410000000000000000000000000000000000000000000000815250905090565b600d5481565b610db46111f9565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612a3c565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebd610eb66111f9565b84846113cc565b6001905092915050565b60085481565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6e6111f9565b73ffffffffffffffffffffffffffffffffffffffff16610f8c610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd990612a3c565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110456111f9565b73ffffffffffffffffffffffffffffffffffffffff16611063610d3a565b73ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090612a3c565b60405180910390fd5b6009600a6110c79190612cd6565b826110d29190612df4565b6015819055506009600a6110e69190612cd6565b816110f19190612df4565b6014819055505050565b60055481565b6111096111f9565b73ffffffffffffffffffffffffffffffffffffffff16611127610d3a565b73ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612a3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906129bc565b60405180910390fd5b6111f681611aab565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126890612abc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906129dc565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bf9190612b17565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143390612a7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061295c565b60405180910390fd5b600081116114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612a5c565b60405180910390fd5b6114f883610bf1565b81111561153a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115319061299c565b60405180910390fd5b601260149054906101000a900460ff168061159e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115f25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890612adc565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dc5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117325750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d55760155481111561177c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117739061297c565b60405180910390fd5b6014548161178984610bf1565b6117939190612bfc565b11156117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612a9c565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118805750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611934576014546118e783610bf1565b826118f29190612bfc565b1115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a906129fc565b60405180910390fd5b5b600061193f30610bf1565b9050601260159054906101000a900460ff161580156119ac5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119c45750601260169054906101000a900460ff165b80156119d05750600081115b156119f8576119de81611b6f565b600047905060008111156119f6576119f547611df7565b5b505b611aa5848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a9f5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e63565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba757611ba6612fb7565b5b604051908082528060200260200182016040528015611bd55781602001602082028036833780820191505090505b5090503081600081518110611bed57611bec612f88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8f57600080fd5b505afa158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906124e5565b81600181518110611cdb57611cda612f88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d4230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611201565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611da6959493929190612b32565b600060405180830381600087803b158015611dc057600080fd5b505af1158015611dd4573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e5f573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eb29190612e4e565b92505081905550600081611ec65782611ed2565b611ed1858585611f96565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f239190612bfc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f879190612b17565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff757506000600854115b1561209a57601060009054906101000a900461ffff1661ffff166005548361201f9190612df4565b6120299190612c52565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120529190612df4565b61205c9190612c52565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120859190612df4565b61208f9190612c52565b600f81905550612199565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120f957506000600c54115b1561219857601060009054906101000a900461ffff1661ffff16600954836121219190612df4565b61212b9190612c52565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121549190612df4565b61215e9190612c52565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121879190612df4565b6121919190612c52565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612bfc565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516122949190612b17565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122ef9190612bfc565b92505081905550600e546013546123069190612e4e565b601381905550612314610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161237b9190612b17565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123d49190612bfc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161243a9190612b17565b60405180910390a36000600f54600e54600d546124579190612bfc565b6124619190612bfc565b9050808361246f9190612e4e565b9150509392505050565b60008135905061248881613374565b92915050565b60008151905061249d81613374565b92915050565b6000813590506124b28161338b565b92915050565b6000602082840312156124ce576124cd612fe6565b5b60006124dc84828501612479565b91505092915050565b6000602082840312156124fb576124fa612fe6565b5b60006125098482850161248e565b91505092915050565b6000806040838503121561252957612528612fe6565b5b600061253785828601612479565b925050602061254885828601612479565b9150509250929050565b60008060006060848603121561256b5761256a612fe6565b5b600061257986828701612479565b935050602061258a86828701612479565b925050604061259b868287016124a3565b9150509250925092565b600080604083850312156125bc576125bb612fe6565b5b60006125ca85828601612479565b92505060206125db858286016124a3565b9150509250929050565b600080604083850312156125fc576125fb612fe6565b5b600061260a858286016124a3565b925050602061261b858286016124a3565b9150509250929050565b6000612631838361263d565b60208301905092915050565b61264681612e82565b82525050565b61265581612e82565b82525050565b600061266682612bb7565b6126708185612bda565b935061267b83612ba7565b8060005b838110156126ac5781516126938882612625565b975061269e83612bcd565b92505060018101905061267f565b5085935050505092915050565b6126c281612e94565b82525050565b6126d181612ee5565b82525050565b60006126e282612bc2565b6126ec8185612beb565b93506126fc818560208601612ef7565b61270581612feb565b840191505092915050565b600061271d602383612beb565b915061272882613009565b604082019050919050565b6000612740601983612beb565b915061274b82613058565b602082019050919050565b6000612763603183612beb565b915061276e82613081565b604082019050919050565b6000612786602683612beb565b9150612791826130d0565b604082019050919050565b60006127a9602283612beb565b91506127b48261311f565b604082019050919050565b60006127cc602283612beb565b91506127d78261316e565b604082019050919050565b60006127ef602883612beb565b91506127fa826131bd565b604082019050919050565b6000612812602083612beb565b915061281d8261320c565b602082019050919050565b6000612835602983612beb565b915061284082613235565b604082019050919050565b6000612858602583612beb565b915061286382613284565b604082019050919050565b600061287b601a83612beb565b9150612886826132d3565b602082019050919050565b600061289e602483612beb565b91506128a9826132fc565b604082019050919050565b60006128c1601783612beb565b91506128cc8261334b565b602082019050919050565b6128e081612ea0565b82525050565b6128ef81612ece565b82525050565b6128fe81612ed8565b82525050565b6000602082019050612919600083018461264c565b92915050565b600060208201905061293460008301846126b9565b92915050565b6000602082019050818103600083015261295481846126d7565b905092915050565b6000602082019050818103600083015261297581612710565b9050919050565b6000602082019050818103600083015261299581612733565b9050919050565b600060208201905081810360008301526129b581612756565b9050919050565b600060208201905081810360008301526129d581612779565b9050919050565b600060208201905081810360008301526129f58161279c565b9050919050565b60006020820190508181036000830152612a15816127bf565b9050919050565b60006020820190508181036000830152612a35816127e2565b9050919050565b60006020820190508181036000830152612a5581612805565b9050919050565b60006020820190508181036000830152612a7581612828565b9050919050565b60006020820190508181036000830152612a958161284b565b9050919050565b60006020820190508181036000830152612ab58161286e565b9050919050565b60006020820190508181036000830152612ad581612891565b9050919050565b60006020820190508181036000830152612af5816128b4565b9050919050565b6000602082019050612b1160008301846128d7565b92915050565b6000602082019050612b2c60008301846128e6565b92915050565b600060a082019050612b4760008301886128e6565b612b5460208301876126c8565b8181036040830152612b66818661265b565b9050612b75606083018561264c565b612b8260808301846128e6565b9695505050505050565b6000602082019050612ba160008301846128f5565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c0782612ece565b9150612c1283612ece565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4757612c46612f2a565b5b828201905092915050565b6000612c5d82612ece565b9150612c6883612ece565b925082612c7857612c77612f59565b5b828204905092915050565b6000808291508390505b6001851115612ccd57808604811115612ca957612ca8612f2a565b5b6001851615612cb85780820291505b8081029050612cc685612ffc565b9450612c8d565b94509492505050565b6000612ce182612ece565b9150612cec83612ed8565b9250612d197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d21565b905092915050565b600082612d315760019050612ded565b81612d3f5760009050612ded565b8160018114612d555760028114612d5f57612d8e565b6001915050612ded565b60ff841115612d7157612d70612f2a565b5b8360020a915084821115612d8857612d87612f2a565b5b50612ded565b5060208310610133831016604e8410600b8410161715612dc35782820a905083811115612dbe57612dbd612f2a565b5b612ded565b612dd08484846001612c83565b92509050818404811115612de757612de6612f2a565b5b81810290505b9392505050565b6000612dff82612ece565b9150612e0a83612ece565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4357612e42612f2a565b5b828202905092915050565b6000612e5982612ece565b9150612e6483612ece565b925082821015612e7757612e76612f2a565b5b828203905092915050565b6000612e8d82612eae565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ef082612ece565b9050919050565b60005b83811015612f15578082015181840152602081019050612efa565b83811115612f24576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b61337d81612e82565b811461338857600080fd5b50565b61339481612ece565b811461339f57600080fd5b5056fea2646970667358221220d2f0f895944824e8abf109111578a6ac40b317f9d1f82b7145c17800d22be4b464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806384d6c8c61161010d578063b9e93700116100a0578063dd62ed3e1161006f578063dd62ed3e14610702578063ea2f0b371461073f578063ebece9c914610768578063f239eab814610791578063f2fde38b146107bc57610204565b8063b9e9370014610656578063c99f2fed14610681578063cc70acee146106ac578063d0a39814146106d757610204565b80639740a946116100dc5780639740a9461461059a5780639f71146d146105c5578063a8b08982146105ee578063a9059cbb1461061957610204565b806384d6c8c6146104ee5780638da5cb5b14610519578063921369131461054457806395d89b411461056f57610204565b8063313ce5671161019057806347afcbfe1161015f57806347afcbfe146104195780636cce46fc1461044457806370a082311461046f578063715018a6146104ac5780637bce5a04146104c357610204565b8063313ce567146103855780633722355c146103b05780633e0c23b8146103d9578063437823ec146103f057610204565b806318160ddd116101cc57806318160ddd146102c75780631d6167ac146102f25780631f3fed8f1461031d57806323b872dd1461034857610204565b806303fd2a451461020957806306fdde0314610234578063095ea7b31461025f5780630fa604e41461029c57610204565b3661020457005b600080fd5b34801561021557600080fd5b5061021e6107e5565b60405161022b9190612904565b60405180910390f35b34801561024057600080fd5b506102496107eb565b604051610256919061293a565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906125a5565b610828565b604051610293919061291f565b60405180910390f35b3480156102a857600080fd5b506102b1610846565b6040516102be9190612b17565b60405180910390f35b3480156102d357600080fd5b506102dc610850565b6040516102e99190612b17565b60405180910390f35b3480156102fe57600080fd5b5061030761085a565b6040516103149190612afc565b60405180910390f35b34801561032957600080fd5b5061033261086e565b60405161033f9190612b17565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612552565b610874565b60405161037c919061291f565b60405180910390f35b34801561039157600080fd5b5061039a610975565b6040516103a79190612b8c565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d291906124b8565b61097e565b005b3480156103e557600080fd5b506103ee610a55565b005b3480156103fc57600080fd5b50610417600480360381019061041291906124b8565b610b0e565b005b34801561042557600080fd5b5061042e610be5565b60405161043b9190612b17565b60405180910390f35b34801561045057600080fd5b50610459610beb565b6040516104669190612b17565b60405180910390f35b34801561047b57600080fd5b50610496600480360381019061049191906124b8565b610bf1565b6040516104a39190612b17565b60405180910390f35b3480156104b857600080fd5b506104c1610c3a565b005b3480156104cf57600080fd5b506104d8610d2a565b6040516104e59190612b17565b60405180910390f35b3480156104fa57600080fd5b50610503610d30565b6040516105109190612b17565b60405180910390f35b34801561052557600080fd5b5061052e610d3a565b60405161053b9190612904565b60405180910390f35b34801561055057600080fd5b50610559610d63565b6040516105669190612b17565b60405180910390f35b34801561057b57600080fd5b50610584610d69565b604051610591919061293a565b60405180910390f35b3480156105a657600080fd5b506105af610da6565b6040516105bc9190612b17565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e791906124b8565b610dac565b005b3480156105fa57600080fd5b50610603610e83565b6040516106109190612904565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b91906125a5565b610ea9565b60405161064d919061291f565b60405180910390f35b34801561066257600080fd5b5061066b610ec7565b6040516106789190612b17565b60405180910390f35b34801561068d57600080fd5b50610696610ecd565b6040516106a39190612b17565b60405180910390f35b3480156106b857600080fd5b506106c1610ed3565b6040516106ce9190612b17565b60405180910390f35b3480156106e357600080fd5b506106ec610ed9565b6040516106f99190612b17565b60405180910390f35b34801561070e57600080fd5b5061072960048036038101906107249190612512565b610edf565b6040516107369190612b17565b60405180910390f35b34801561074b57600080fd5b50610766600480360381019061076191906124b8565b610f66565b005b34801561077457600080fd5b5061078f600480360381019061078a91906125e5565b61103d565b005b34801561079d57600080fd5b506107a66110fb565b6040516107b39190612b17565b60405180910390f35b3480156107c857600080fd5b506107e360048036038101906107de91906124b8565b611101565b005b61dead81565b60606040518060400160405280601681526020017f373720596561727320436f6d6d656d6f726174696f6e00000000000000000000815250905090565b600061083c6108356111f9565b8484611201565b6001905092915050565b6000601454905090565b6000601354905090565b601060009054906101000a900461ffff1681565b600f5481565b60006108818484846113cc565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108cc6111f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390612a1c565b60405180910390fd5b610969856109586111f9565b85846109649190612e4e565b611201565b60019150509392505050565b60006009905090565b6109866111f9565b73ffffffffffffffffffffffffffffffffffffffff166109a4610d3a565b73ffffffffffffffffffffffffffffffffffffffff16146109fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f190612a3c565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a5d6111f9565b73ffffffffffffffffffffffffffffffffffffffff16610a7b610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612a3c565b60405180910390fd5b60006009819055506000600a819055506000600b81905550600b54600a54600954610afc9190612bfc565b610b069190612bfc565b600c81905550565b610b166111f9565b73ffffffffffffffffffffffffffffffffffffffff16610b34610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612a3c565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600a5481565b60095481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c426111f9565b73ffffffffffffffffffffffffffffffffffffffff16610c60610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612a3c565b60405180910390fd5b60006009819055506000600a819055506107d0600b819055506000601260166101000a81548160ff0219169083151502179055506000601260146101000a81548160ff021916908315150217905550600b54600a54600954610d189190612bfc565b610d229190612bfc565b600c81905550565b60075481565b6000601554905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600981526020017f4849524f5348494d410000000000000000000000000000000000000000000000815250905090565b600d5481565b610db46111f9565b73ffffffffffffffffffffffffffffffffffffffff16610dd2610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90612a3c565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ebd610eb66111f9565b84846113cc565b6001905092915050565b60085481565b60065481565b600e5481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f6e6111f9565b73ffffffffffffffffffffffffffffffffffffffff16610f8c610d3a565b73ffffffffffffffffffffffffffffffffffffffff1614610fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd990612a3c565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6110456111f9565b73ffffffffffffffffffffffffffffffffffffffff16611063610d3a565b73ffffffffffffffffffffffffffffffffffffffff16146110b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b090612a3c565b60405180910390fd5b6009600a6110c79190612cd6565b826110d29190612df4565b6015819055506009600a6110e69190612cd6565b816110f19190612df4565b6014819055505050565b60055481565b6111096111f9565b73ffffffffffffffffffffffffffffffffffffffff16611127610d3a565b73ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612a3c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e4906129bc565b60405180910390fd5b6111f681611aab565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126890612abc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d8906129dc565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bf9190612b17565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561143c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143390612a7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a39061295c565b60405180910390fd5b600081116114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612a5c565b60405180910390fd5b6114f883610bf1565b81111561153a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115319061299c565b60405180910390fd5b601260149054906101000a900460ff168061159e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806115f25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890612adc565b60405180910390fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116dc5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117325750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d55760155481111561177c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117739061297c565b60405180910390fd5b6014548161178984610bf1565b6117939190612bfc565b11156117d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cb90612a9c565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118805750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611934576014546118e783610bf1565b826118f29190612bfc565b1115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a906129fc565b60405180910390fd5b5b600061193f30610bf1565b9050601260159054906101000a900460ff161580156119ac5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119c45750601260169054906101000a900460ff165b80156119d05750600081115b156119f8576119de81611b6f565b600047905060008111156119f6576119f547611df7565b5b505b611aa5848484600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a9f5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e63565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ba757611ba6612fb7565b5b604051908082528060200260200182016040528015611bd55781602001602082028036833780820191505090505b5090503081600081518110611bed57611bec612f88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c8f57600080fd5b505afa158015611ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc791906124e5565b81600181518110611cdb57611cda612f88565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d4230601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611201565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611da6959493929190612b32565b600060405180830381600087803b158015611dc057600080fd5b505af1158015611dd4573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e5f573d6000803e3d6000fd5b5050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eb29190612e4e565b92505081905550600081611ec65782611ed2565b611ed1858585611f96565b5b905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f239190612bfc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f879190612b17565b60405180910390a35050505050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff757506000600854115b1561209a57601060009054906101000a900461ffff1661ffff166005548361201f9190612df4565b6120299190612c52565b600d81905550601060009054906101000a900461ffff1661ffff16600654836120529190612df4565b61205c9190612c52565b600e81905550601060009054906101000a900461ffff1661ffff16600754836120859190612df4565b61208f9190612c52565b600f81905550612199565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120f957506000600c54115b1561219857601060009054906101000a900461ffff1661ffff16600954836121219190612df4565b61212b9190612c52565b600d81905550601060009054906101000a900461ffff1661ffff16600a54836121549190612df4565b61215e9190612c52565b600e81905550601060009054906101000a900461ffff1661ffff16600b54836121879190612df4565b6121919190612c52565b600f819055505b5b600d5460016000601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220c9190612bfc565b92505081905550601060029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040516122949190612b17565b60405180910390a3600e546001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122ef9190612bfc565b92505081905550600e546013546123069190612e4e565b601381905550612314610850565b60138190555061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405161237b9190612b17565b60405180910390a3600f54600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123d49190612bfc565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405161243a9190612b17565b60405180910390a36000600f54600e54600d546124579190612bfc565b6124619190612bfc565b9050808361246f9190612e4e565b9150509392505050565b60008135905061248881613374565b92915050565b60008151905061249d81613374565b92915050565b6000813590506124b28161338b565b92915050565b6000602082840312156124ce576124cd612fe6565b5b60006124dc84828501612479565b91505092915050565b6000602082840312156124fb576124fa612fe6565b5b60006125098482850161248e565b91505092915050565b6000806040838503121561252957612528612fe6565b5b600061253785828601612479565b925050602061254885828601612479565b9150509250929050565b60008060006060848603121561256b5761256a612fe6565b5b600061257986828701612479565b935050602061258a86828701612479565b925050604061259b868287016124a3565b9150509250925092565b600080604083850312156125bc576125bb612fe6565b5b60006125ca85828601612479565b92505060206125db858286016124a3565b9150509250929050565b600080604083850312156125fc576125fb612fe6565b5b600061260a858286016124a3565b925050602061261b858286016124a3565b9150509250929050565b6000612631838361263d565b60208301905092915050565b61264681612e82565b82525050565b61265581612e82565b82525050565b600061266682612bb7565b6126708185612bda565b935061267b83612ba7565b8060005b838110156126ac5781516126938882612625565b975061269e83612bcd565b92505060018101905061267f565b5085935050505092915050565b6126c281612e94565b82525050565b6126d181612ee5565b82525050565b60006126e282612bc2565b6126ec8185612beb565b93506126fc818560208601612ef7565b61270581612feb565b840191505092915050565b600061271d602383612beb565b915061272882613009565b604082019050919050565b6000612740601983612beb565b915061274b82613058565b602082019050919050565b6000612763603183612beb565b915061276e82613081565b604082019050919050565b6000612786602683612beb565b9150612791826130d0565b604082019050919050565b60006127a9602283612beb565b91506127b48261311f565b604082019050919050565b60006127cc602283612beb565b91506127d78261316e565b604082019050919050565b60006127ef602883612beb565b91506127fa826131bd565b604082019050919050565b6000612812602083612beb565b915061281d8261320c565b602082019050919050565b6000612835602983612beb565b915061284082613235565b604082019050919050565b6000612858602583612beb565b915061286382613284565b604082019050919050565b600061287b601a83612beb565b9150612886826132d3565b602082019050919050565b600061289e602483612beb565b91506128a9826132fc565b604082019050919050565b60006128c1601783612beb565b91506128cc8261334b565b602082019050919050565b6128e081612ea0565b82525050565b6128ef81612ece565b82525050565b6128fe81612ed8565b82525050565b6000602082019050612919600083018461264c565b92915050565b600060208201905061293460008301846126b9565b92915050565b6000602082019050818103600083015261295481846126d7565b905092915050565b6000602082019050818103600083015261297581612710565b9050919050565b6000602082019050818103600083015261299581612733565b9050919050565b600060208201905081810360008301526129b581612756565b9050919050565b600060208201905081810360008301526129d581612779565b9050919050565b600060208201905081810360008301526129f58161279c565b9050919050565b60006020820190508181036000830152612a15816127bf565b9050919050565b60006020820190508181036000830152612a35816127e2565b9050919050565b60006020820190508181036000830152612a5581612805565b9050919050565b60006020820190508181036000830152612a7581612828565b9050919050565b60006020820190508181036000830152612a958161284b565b9050919050565b60006020820190508181036000830152612ab58161286e565b9050919050565b60006020820190508181036000830152612ad581612891565b9050919050565b60006020820190508181036000830152612af5816128b4565b9050919050565b6000602082019050612b1160008301846128d7565b92915050565b6000602082019050612b2c60008301846128e6565b92915050565b600060a082019050612b4760008301886128e6565b612b5460208301876126c8565b8181036040830152612b66818661265b565b9050612b75606083018561264c565b612b8260808301846128e6565b9695505050505050565b6000602082019050612ba160008301846128f5565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612c0782612ece565b9150612c1283612ece565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c4757612c46612f2a565b5b828201905092915050565b6000612c5d82612ece565b9150612c6883612ece565b925082612c7857612c77612f59565b5b828204905092915050565b6000808291508390505b6001851115612ccd57808604811115612ca957612ca8612f2a565b5b6001851615612cb85780820291505b8081029050612cc685612ffc565b9450612c8d565b94509492505050565b6000612ce182612ece565b9150612cec83612ed8565b9250612d197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d21565b905092915050565b600082612d315760019050612ded565b81612d3f5760009050612ded565b8160018114612d555760028114612d5f57612d8e565b6001915050612ded565b60ff841115612d7157612d70612f2a565b5b8360020a915084821115612d8857612d87612f2a565b5b50612ded565b5060208310610133831016604e8410600b8410161715612dc35782820a905083811115612dbe57612dbd612f2a565b5b612ded565b612dd08484846001612c83565b92509050818404811115612de757612de6612f2a565b5b81810290505b9392505050565b6000612dff82612ece565b9150612e0a83612ece565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e4357612e42612f2a565b5b828202905092915050565b6000612e5982612ece565b9150612e6483612ece565b925082821015612e7757612e76612f2a565b5b828203905092915050565b6000612e8d82612eae565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ef082612ece565b9050919050565b60005b83811015612f15578082015181840152602081019050612efa565b83811115612f24576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742065786365656473206d61782077616c6c65742073697a60008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f7420656e61626c656420796574000000000000000000600082015250565b61337d81612e82565b811461338857600080fd5b50565b61339481612ece565b811461339f57600080fd5b5056fea2646970667358221220d2f0f895944824e8abf109111578a6ac40b317f9d1f82b7145c17800d22be4b464736f6c63430008070033

Deployed Bytecode Sourcemap

4491:10797:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5596:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8268:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9141:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8422:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8660:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5509:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9287:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8585:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14056:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14542:286;;;;;;;;;;;;;:::i;:::-;;13818:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5251:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5208:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8747:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14840:299;;;;;;;;;;;;;:::i;:::-;;5078:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8343:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2925:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5288:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5424:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14187:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5676:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8856:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5115:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5042:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5468:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5326:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9006:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13937:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14317:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5001:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3256:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5596:73;5627:42;5596:73;:::o;8268:69::-;8305:13;8329:5;;;;;;;;;;;;;;;;;8322:12;;8268:69;:::o;9141:138::-;9216:4;9224:39;9233:12;:10;:12::i;:::-;9247:7;9256:6;9224:8;:39::i;:::-;9272:4;9265:11;;9141:138;;;;:::o;8422:78::-;8466:7;8483:15;;8476:22;;8422:78;:::o;8660:81::-;8713:7;8731;;8724:14;;8660:81;:::o;5549:38::-;;;;;;;;;;;;;:::o;5509:33::-;;;;:::o;9287:420::-;9393:4;9410:36;9420:6;9428:9;9439:6;9410:9;:36::i;:::-;9459:24;9486:11;:19;9498:6;9486:19;;;;;;;;;;;;;;;:33;9506:12;:10;:12::i;:::-;9486:33;;;;;;;;;;;;;;;;9459:60;;9558:6;9538:16;:26;;9530:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9620:57;9629:6;9637:12;:10;:12::i;:::-;9670:6;9651:16;:25;;;;:::i;:::-;9620:8;:57::i;:::-;9695:4;9688:11;;;9287:420;;;;;:::o;8585:69::-;8626:5;4991:1;8635:16;;8585:69;:::o;14056:123::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14170:4:::1;14130:28;:37;14159:7;14130:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;14056:123:::0;:::o;14542:286::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14674:1:::1;14651:20;:24;;;;14704:1;14686:15;:19;;;;14735:1;14716:16;:20;;;;14804:16;;14786:15;;14763:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;14747:13;:73;;;;14542:286::o:0;13818:111::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13917:4:::1;13887:18;:27;13906:7;13887:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;13818:111:::0;:::o;5251:30::-;;;;:::o;5208:35::-;;;;:::o;8747:103::-;8813:7;8831;:16;8839:7;8831:16;;;;;;;;;;;;;;;;8824:23;;8747:103;;;:::o;14840:299::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14921:1:::1;14898:20;:24;;;;14952:1;14934:15;:19;;;;14983:4;14964:16;:23;;;;15012:5;14998:11;;:19;;;;;;;;;;;;;;;;;;15042:5;15028:11;;:19;;;;;;;;;;;;;;;;;;15115:16;;15097:15;;15074:20;;:38;;;;:::i;:::-;:57;;;;:::i;:::-;15058:13;:73;;;;14840:299::o:0;5078:30::-;;;;:::o;8343:73::-;8386:7;8403:11;;8396:18;;8343:73;:::o;2925:87::-;2971:7;2998:6;;;;;;;;;;;2991:13;;2925:87;:::o;5288:31::-;;;;:::o;8506:73::-;8545:13;8569:7;;;;;;;;;;;;;;;;;8562:14;;8506:73;:::o;5424:37::-;;;;:::o;14187:122::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14299:5:::1;14259:28;:37;14288:7;14259:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;14187:122:::0;:::o;5676:26::-;;;;;;;;;;;;;:::o;8856:144::-;8934:4;8942:42;8952:12;:10;:12::i;:::-;8966:9;8977:6;8942:9;:42::i;:::-;8993:4;8986:11;;8856:144;;;;:::o;5115:84::-;;;;:::o;5042:29::-;;;;:::o;5468:32::-;;;;:::o;5326:89::-;;;;:::o;9006:129::-;9087:7;9105:11;:18;9117:5;9105:18;;;;;;;;;;;;;;;:27;9124:7;9105:27;;;;;;;;;;;;;;;;9098:34;;9006:129;;;;:::o;13937:110::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14034:5:::1;14004:18;:27;14023:7;14004:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13937:110:::0;:::o;14317:217::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4991:1:::1;14452:2;:14;;;;:::i;:::-;14437:12;:29;;;;:::i;:::-;14423:11;:43;;;;4991:1;14512:2;:14;;;;:::i;:::-;14495;:31;;;;:::i;:::-;14477:15;:49;;;;14317:217:::0;;:::o;5001:34::-;;;;:::o;3256:192::-;3071:12;:10;:12::i;:::-;3060:23;;:7;:5;:7::i;:::-;:23;;;3052:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3365:1:::1;3345:22;;:8;:22;;;;3337:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3421:19;3431:8;3421:9;:19::i;:::-;3256:192:::0;:::o;2346:98::-;2399:7;2426:10;2419:17;;2346:98;:::o;9715:335::-;9825:1;9808:19;;:5;:19;;;;9800:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9906:1;9887:21;;:7;:21;;;;9879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9988:6;9958:11;:18;9970:5;9958:18;;;;;;;;;;;;;;;:27;9977:7;9958:27;;;;;;;;;;;;;;;:36;;;;10026:7;10010:32;;10019:5;10010:32;;;10035:6;10010:32;;;;;;:::i;:::-;;;;;;;;9715:335;;;:::o;10058:1576::-;10162:1;10146:18;;:4;:18;;;;10138:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10239:1;10225:16;;:2;:16;;;;10217:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10309:1;10300:6;:10;10292:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10385:15;10395:4;10385:9;:15::i;:::-;10375:6;:25;;10367:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10476:11;;;;;;;;;;;:39;;;;10491:18;:24;10510:4;10491:24;;;;;;;;;;;;;;;;;;;;;;;;;10476:39;:65;;;;10519:18;:22;10538:2;10519:22;;;;;;;;;;;;;;;;;;;;;;;;;10476:65;10468:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;10594:13;;;;;;;;;;;10586:21;;:4;:21;;;:55;;;;;10625:15;;;;;;;;;;;10611:30;;:2;:30;;;;10586:55;:83;;;;;10647:18;:22;10666:2;10647:22;;;;;;;;;;;;;;;;;;;;;;;;;10645:24;10586:83;10582:278;;;10708:11;;10698:6;:21;;10690:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:15;;10792:6;10776:13;10786:2;10776:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;10768:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10582:278;10882:13;;;;;;;;;;;10874:21;;:4;:21;;;:55;;;;;10913:15;;;;;;;;;;;10899:30;;:2;:30;;;;10874:55;:93;;;;;10935:28;:32;10964:2;10935:32;;;;;;;;;;;;;;;;;;;;;;;;;10933:34;10874:93;10870:231;;;11035:15;;11018:13;11028:2;11018:9;:13::i;:::-;11009:6;:22;;;;:::i;:::-;:41;;11001:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10870:231;11113:28;11144:24;11162:4;11144:9;:24::i;:::-;11113:55;;11188:6;;;;;;;;;;;11187:7;:32;;;;;11206:13;;;;;;;;;;;11198:21;;:4;:21;;;;11187:32;:47;;;;;11223:11;;;;;;;;;;;11187:47;:73;;;;;11259:1;11238:20;:22;11187:73;11183:344;;;11281:38;11298:20;11281:16;:38::i;:::-;11338:26;11367:21;11338:50;;11431:1;11410:18;:22;11407:105;;;11457:35;11470:21;11457:12;:35::i;:::-;11407:105;11262:265;11183:344;11539:87;11554:4;11560:2;11564:6;11574:18;:24;11593:4;11574:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11602:18;:22;11621:2;11602:22;;;;;;;;;;;;;;;;;;;;;;;;;11574:50;11572:53;11539:14;:87::i;:::-;10127:1507;10058:1576;;;:::o;3456:173::-;3512:16;3531:6;;;;;;;;;;;3512:25;;3557:8;3548:6;;:17;;;;;;;;;;;;;;;;;;3612:8;3581:40;;3602:8;3581:40;;;;;;;;;;;;3501:128;3456:173;:::o;11642:483::-;6225:4;6216:6;;:13;;;;;;;;;;;;;;;;;;11720:21:::1;11758:1;11744:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:40;;11789:4;11771;11776:1;11771:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11815:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11805:4;11810:1;11805:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11848:62;11865:4;11880:15;;;;;;;;;;;11898:11;11848:8;:62::i;:::-;11921:15;;;;;;;;;;;:66;;;12002:11;12028:1;12044:4;12071;12091:15;11921:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11709:416;6261:5:::0;6252:6;;:14;;;;;;;;;;;;;;;;;;11642:483;:::o;15147:95::-;15204:13;;;;;;;;;;;:22;;:30;15227:6;15204:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15147:95;:::o;12133:340::-;12260:6;12241:7;:15;12249:6;12241:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;12277:22;12303:7;12302:57;;12353:6;12302:57;;;12314:36;12324:6;12332:9;12343:6;12314:9;:36::i;:::-;12302:57;12277:82;;12392:14;12370:7;:18;12378:9;12370:18;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;12439:9;12422:43;;12431:6;12422:43;;;12450:14;12422:43;;;;;;:::i;:::-;;;;;;;;12230:243;12133:340;;;;:::o;12481:1329::-;12560:7;12591:13;;;;;;;;;;;12583:21;;:4;:21;;;:41;;;;;12623:1;12608:12;;:16;12583:41;12580:637;;;12699:16;;;;;;;;;;;12668:47;;12677:19;;12668:6;:28;;;;:::i;:::-;:47;;;;:::i;:::-;12643:22;:72;;;;12776:16;;;;;;;;;;;12750:42;;12759:14;;12750:6;:23;;;;:::i;:::-;:42;;;;:::i;:::-;12730:17;:62;;;;12864:16;;;;;;;;;;;12837:43;;12846:15;;12837:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;12816:18;:64;;;;12580:637;;;12912:13;;;;;;;;;;;12906:19;;:2;:19;;;:41;;;;;12946:1;12930:13;;:17;12906:41;12902:315;;;13023:16;;;;;;;;;;;12991:48;;13000:20;;12991:6;:29;;;;:::i;:::-;:48;;;;:::i;:::-;12966:22;:73;;;;13101:16;;;;;;;;;;;13074:43;;13083:15;;13074:6;:24;;;;:::i;:::-;:43;;;;:::i;:::-;13054:17;:63;;;;13181:16;;;;;;;;;;;13153:44;;13162:16;;13153:6;:25;;;;:::i;:::-;:44;;;;:::i;:::-;13132:18;:65;;;;12902:315;12580:637;13251:22;;13227:7;:20;13235:11;;;;;;;;;;;13227:20;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13304:11;;;;;;;;;;;13289:51;;13298:4;13289:51;;;13317:22;;13289:51;;;;;;:::i;:::-;;;;;;;;13378:17;;13361:7;:13;5627:42;13361:13;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;13426:17;;13416:7;;:27;;;;:::i;:::-;13406:7;:37;;;;13464:13;:11;:13::i;:::-;13454:7;:23;;;;5627:42;13493:39;;13502:4;13493:39;;;13514:17;;13493:39;;;;;;:::i;:::-;;;;;;;;13587:18;;13561:7;:22;13577:4;13561:22;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;13644:4;13621:49;;13630:4;13621:49;;;13651:18;;13621:49;;;;;;:::i;:::-;;;;;;;;13683:17;13748:18;;13728:17;;13703:22;;:42;;;;:::i;:::-;:63;;;;:::i;:::-;13683:83;;13793:9;13784:6;:18;;;;:::i;:::-;13777:25;;;12481:1329;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:139::-;347:5;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;301:139;;;;:::o;446:329::-;505:6;554:2;542:9;533:7;529:23;525:32;522:119;;;560:79;;:::i;:::-;522:119;680:1;705:53;750:7;741:6;730:9;726:22;705:53;:::i;:::-;695:63;;651:117;446:329;;;;:::o;781:351::-;851:6;900:2;888:9;879:7;875:23;871:32;868:119;;;906:79;;:::i;:::-;868:119;1026:1;1051:64;1107:7;1098:6;1087:9;1083:22;1051:64;:::i;:::-;1041:74;;997:128;781:351;;;;:::o;1138:474::-;1206:6;1214;1263:2;1251:9;1242:7;1238:23;1234:32;1231:119;;;1269:79;;:::i;:::-;1231:119;1389:1;1414:53;1459:7;1450:6;1439:9;1435:22;1414:53;:::i;:::-;1404:63;;1360:117;1516:2;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1487:118;1138:474;;;;;:::o;1618:619::-;1695:6;1703;1711;1760:2;1748:9;1739:7;1735:23;1731:32;1728:119;;;1766:79;;:::i;:::-;1728:119;1886:1;1911:53;1956:7;1947:6;1936:9;1932:22;1911:53;:::i;:::-;1901:63;;1857:117;2013:2;2039:53;2084:7;2075:6;2064:9;2060:22;2039:53;:::i;:::-;2029:63;;1984:118;2141:2;2167:53;2212:7;2203:6;2192:9;2188:22;2167:53;:::i;:::-;2157:63;;2112:118;1618:619;;;;;:::o;2243:474::-;2311:6;2319;2368:2;2356:9;2347:7;2343:23;2339:32;2336:119;;;2374:79;;:::i;:::-;2336:119;2494:1;2519:53;2564:7;2555:6;2544:9;2540:22;2519:53;:::i;:::-;2509:63;;2465:117;2621:2;2647:53;2692:7;2683:6;2672:9;2668:22;2647:53;:::i;:::-;2637:63;;2592:118;2243:474;;;;;:::o;2723:::-;2791:6;2799;2848:2;2836:9;2827:7;2823:23;2819:32;2816:119;;;2854:79;;:::i;:::-;2816:119;2974:1;2999:53;3044:7;3035:6;3024:9;3020:22;2999:53;:::i;:::-;2989:63;;2945:117;3101:2;3127:53;3172:7;3163:6;3152:9;3148:22;3127:53;:::i;:::-;3117:63;;3072:118;2723:474;;;;;:::o;3203:179::-;3272:10;3293:46;3335:3;3327:6;3293:46;:::i;:::-;3371:4;3366:3;3362:14;3348:28;;3203:179;;;;:::o;3388:108::-;3465:24;3483:5;3465:24;:::i;:::-;3460:3;3453:37;3388:108;;:::o;3502:118::-;3589:24;3607:5;3589:24;:::i;:::-;3584:3;3577:37;3502:118;;:::o;3656:732::-;3775:3;3804:54;3852:5;3804:54;:::i;:::-;3874:86;3953:6;3948:3;3874:86;:::i;:::-;3867:93;;3984:56;4034:5;3984:56;:::i;:::-;4063:7;4094:1;4079:284;4104:6;4101:1;4098:13;4079:284;;;4180:6;4174:13;4207:63;4266:3;4251:13;4207:63;:::i;:::-;4200:70;;4293:60;4346:6;4293:60;:::i;:::-;4283:70;;4139:224;4126:1;4123;4119:9;4114:14;;4079:284;;;4083:14;4379:3;4372:10;;3780:608;;;3656:732;;;;:::o;4394:109::-;4475:21;4490:5;4475:21;:::i;:::-;4470:3;4463:34;4394:109;;:::o;4509:147::-;4604:45;4643:5;4604:45;:::i;:::-;4599:3;4592:58;4509:147;;:::o;4662:364::-;4750:3;4778:39;4811:5;4778:39;:::i;:::-;4833:71;4897:6;4892:3;4833:71;:::i;:::-;4826:78;;4913:52;4958:6;4953:3;4946:4;4939:5;4935:16;4913:52;:::i;:::-;4990:29;5012:6;4990:29;:::i;:::-;4985:3;4981:39;4974:46;;4754:272;4662:364;;;;:::o;5032:366::-;5174:3;5195:67;5259:2;5254:3;5195:67;:::i;:::-;5188:74;;5271:93;5360:3;5271:93;:::i;:::-;5389:2;5384:3;5380:12;5373:19;;5032:366;;;:::o;5404:::-;5546:3;5567:67;5631:2;5626:3;5567:67;:::i;:::-;5560:74;;5643:93;5732:3;5643:93;:::i;:::-;5761:2;5756:3;5752:12;5745:19;;5404:366;;;:::o;5776:::-;5918:3;5939:67;6003:2;5998:3;5939:67;:::i;:::-;5932:74;;6015:93;6104:3;6015:93;:::i;:::-;6133:2;6128:3;6124:12;6117:19;;5776:366;;;:::o;6148:::-;6290:3;6311:67;6375:2;6370:3;6311:67;:::i;:::-;6304:74;;6387:93;6476:3;6387:93;:::i;:::-;6505:2;6500:3;6496:12;6489:19;;6148:366;;;:::o;6520:::-;6662:3;6683:67;6747:2;6742:3;6683:67;:::i;:::-;6676:74;;6759:93;6848:3;6759:93;:::i;:::-;6877:2;6872:3;6868:12;6861:19;;6520:366;;;:::o;6892:::-;7034:3;7055:67;7119:2;7114:3;7055:67;:::i;:::-;7048:74;;7131:93;7220:3;7131:93;:::i;:::-;7249:2;7244:3;7240:12;7233:19;;6892:366;;;:::o;7264:::-;7406:3;7427:67;7491:2;7486:3;7427:67;:::i;:::-;7420:74;;7503:93;7592:3;7503:93;:::i;:::-;7621:2;7616:3;7612:12;7605:19;;7264:366;;;:::o;7636:::-;7778:3;7799:67;7863:2;7858:3;7799:67;:::i;:::-;7792:74;;7875:93;7964:3;7875:93;:::i;:::-;7993:2;7988:3;7984:12;7977:19;;7636:366;;;:::o;8008:::-;8150:3;8171:67;8235:2;8230:3;8171:67;:::i;:::-;8164:74;;8247:93;8336:3;8247:93;:::i;:::-;8365:2;8360:3;8356:12;8349:19;;8008:366;;;:::o;8380:::-;8522:3;8543:67;8607:2;8602:3;8543:67;:::i;:::-;8536:74;;8619:93;8708:3;8619:93;:::i;:::-;8737:2;8732:3;8728:12;8721:19;;8380:366;;;:::o;8752:::-;8894:3;8915:67;8979:2;8974:3;8915:67;:::i;:::-;8908:74;;8991:93;9080:3;8991:93;:::i;:::-;9109:2;9104:3;9100:12;9093:19;;8752:366;;;:::o;9124:::-;9266:3;9287:67;9351:2;9346:3;9287:67;:::i;:::-;9280:74;;9363:93;9452:3;9363:93;:::i;:::-;9481:2;9476:3;9472:12;9465:19;;9124:366;;;:::o;9496:::-;9638:3;9659:67;9723:2;9718:3;9659:67;:::i;:::-;9652:74;;9735:93;9824:3;9735:93;:::i;:::-;9853:2;9848:3;9844:12;9837:19;;9496:366;;;:::o;9868:115::-;9953:23;9970:5;9953:23;:::i;:::-;9948:3;9941:36;9868:115;;:::o;9989:118::-;10076:24;10094:5;10076:24;:::i;:::-;10071:3;10064:37;9989:118;;:::o;10113:112::-;10196:22;10212:5;10196:22;:::i;:::-;10191:3;10184:35;10113:112;;:::o;10231:222::-;10324:4;10362:2;10351:9;10347:18;10339:26;;10375:71;10443:1;10432:9;10428:17;10419:6;10375:71;:::i;:::-;10231:222;;;;:::o;10459:210::-;10546:4;10584:2;10573:9;10569:18;10561:26;;10597:65;10659:1;10648:9;10644:17;10635:6;10597:65;:::i;:::-;10459:210;;;;:::o;10675:313::-;10788:4;10826:2;10815:9;10811:18;10803:26;;10875:9;10869:4;10865:20;10861:1;10850:9;10846:17;10839:47;10903:78;10976:4;10967:6;10903:78;:::i;:::-;10895:86;;10675:313;;;;:::o;10994:419::-;11160:4;11198:2;11187:9;11183:18;11175:26;;11247:9;11241:4;11237:20;11233:1;11222:9;11218:17;11211:47;11275:131;11401:4;11275:131;:::i;:::-;11267:139;;10994:419;;;:::o;11419:::-;11585:4;11623:2;11612:9;11608:18;11600:26;;11672:9;11666:4;11662:20;11658:1;11647:9;11643:17;11636:47;11700:131;11826:4;11700:131;:::i;:::-;11692:139;;11419:419;;;:::o;11844:::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12097:9;12091:4;12087:20;12083:1;12072:9;12068:17;12061:47;12125:131;12251:4;12125:131;:::i;:::-;12117:139;;11844:419;;;:::o;12269:::-;12435:4;12473:2;12462:9;12458:18;12450:26;;12522:9;12516:4;12512:20;12508:1;12497:9;12493:17;12486:47;12550:131;12676:4;12550:131;:::i;:::-;12542:139;;12269:419;;;:::o;12694:::-;12860:4;12898:2;12887:9;12883:18;12875:26;;12947:9;12941:4;12937:20;12933:1;12922:9;12918:17;12911:47;12975:131;13101:4;12975:131;:::i;:::-;12967:139;;12694:419;;;:::o;13119:::-;13285:4;13323:2;13312:9;13308:18;13300:26;;13372:9;13366:4;13362:20;13358:1;13347:9;13343:17;13336:47;13400:131;13526:4;13400:131;:::i;:::-;13392:139;;13119:419;;;:::o;13544:::-;13710:4;13748:2;13737:9;13733:18;13725:26;;13797:9;13791:4;13787:20;13783:1;13772:9;13768:17;13761:47;13825:131;13951:4;13825:131;:::i;:::-;13817:139;;13544:419;;;:::o;13969:::-;14135:4;14173:2;14162:9;14158:18;14150:26;;14222:9;14216:4;14212:20;14208:1;14197:9;14193:17;14186:47;14250:131;14376:4;14250:131;:::i;:::-;14242:139;;13969:419;;;:::o;14394:::-;14560:4;14598:2;14587:9;14583:18;14575:26;;14647:9;14641:4;14637:20;14633:1;14622:9;14618:17;14611:47;14675:131;14801:4;14675:131;:::i;:::-;14667:139;;14394:419;;;:::o;14819:::-;14985:4;15023:2;15012:9;15008:18;15000:26;;15072:9;15066:4;15062:20;15058:1;15047:9;15043:17;15036:47;15100:131;15226:4;15100:131;:::i;:::-;15092:139;;14819:419;;;:::o;15244:::-;15410:4;15448:2;15437:9;15433:18;15425:26;;15497:9;15491:4;15487:20;15483:1;15472:9;15468:17;15461:47;15525:131;15651:4;15525:131;:::i;:::-;15517:139;;15244:419;;;:::o;15669:::-;15835:4;15873:2;15862:9;15858:18;15850:26;;15922:9;15916:4;15912:20;15908:1;15897:9;15893:17;15886:47;15950:131;16076:4;15950:131;:::i;:::-;15942:139;;15669:419;;;:::o;16094:::-;16260:4;16298:2;16287:9;16283:18;16275:26;;16347:9;16341:4;16337:20;16333:1;16322:9;16318:17;16311:47;16375:131;16501:4;16375:131;:::i;:::-;16367:139;;16094:419;;;:::o;16519:218::-;16610:4;16648:2;16637:9;16633:18;16625:26;;16661:69;16727:1;16716:9;16712:17;16703:6;16661:69;:::i;:::-;16519:218;;;;:::o;16743:222::-;16836:4;16874:2;16863:9;16859:18;16851:26;;16887:71;16955:1;16944:9;16940:17;16931:6;16887:71;:::i;:::-;16743:222;;;;:::o;16971:831::-;17234:4;17272:3;17261:9;17257:19;17249:27;;17286:71;17354:1;17343:9;17339:17;17330:6;17286:71;:::i;:::-;17367:80;17443:2;17432:9;17428:18;17419:6;17367:80;:::i;:::-;17494:9;17488:4;17484:20;17479:2;17468:9;17464:18;17457:48;17522:108;17625:4;17616:6;17522:108;:::i;:::-;17514:116;;17640:72;17708:2;17697:9;17693:18;17684:6;17640:72;:::i;:::-;17722:73;17790:3;17779:9;17775:19;17766:6;17722:73;:::i;:::-;16971:831;;;;;;;;:::o;17808:214::-;17897:4;17935:2;17924:9;17920:18;17912:26;;17948:67;18012:1;18001:9;17997:17;17988:6;17948:67;:::i;:::-;17808:214;;;;:::o;18109:132::-;18176:4;18199:3;18191:11;;18229:4;18224:3;18220:14;18212:22;;18109:132;;;:::o;18247:114::-;18314:6;18348:5;18342:12;18332:22;;18247:114;;;:::o;18367:99::-;18419:6;18453:5;18447:12;18437:22;;18367:99;;;:::o;18472:113::-;18542:4;18574;18569:3;18565:14;18557:22;;18472:113;;;:::o;18591:184::-;18690:11;18724:6;18719:3;18712:19;18764:4;18759:3;18755:14;18740:29;;18591:184;;;;:::o;18781:169::-;18865:11;18899:6;18894:3;18887:19;18939:4;18934:3;18930:14;18915:29;;18781:169;;;;:::o;18956:305::-;18996:3;19015:20;19033:1;19015:20;:::i;:::-;19010:25;;19049:20;19067:1;19049:20;:::i;:::-;19044:25;;19203:1;19135:66;19131:74;19128:1;19125:81;19122:107;;;19209:18;;:::i;:::-;19122:107;19253:1;19250;19246:9;19239:16;;18956:305;;;;:::o;19267:185::-;19307:1;19324:20;19342:1;19324:20;:::i;:::-;19319:25;;19358:20;19376:1;19358:20;:::i;:::-;19353:25;;19397:1;19387:35;;19402:18;;:::i;:::-;19387:35;19444:1;19441;19437:9;19432:14;;19267:185;;;;:::o;19458:848::-;19519:5;19526:4;19550:6;19541:15;;19574:5;19565:14;;19588:712;19609:1;19599:8;19596:15;19588:712;;;19704:4;19699:3;19695:14;19689:4;19686:24;19683:50;;;19713:18;;:::i;:::-;19683:50;19763:1;19753:8;19749:16;19746:451;;;20178:4;20171:5;20167:16;20158:25;;19746:451;20228:4;20222;20218:15;20210:23;;20258:32;20281:8;20258:32;:::i;:::-;20246:44;;19588:712;;;19458:848;;;;;;;:::o;20312:281::-;20370:5;20394:23;20412:4;20394:23;:::i;:::-;20386:31;;20438:25;20454:8;20438:25;:::i;:::-;20426:37;;20482:104;20519:66;20509:8;20503:4;20482:104;:::i;:::-;20473:113;;20312:281;;;;:::o;20599:1073::-;20653:5;20844:8;20834:40;;20865:1;20856:10;;20867:5;;20834:40;20893:4;20883:36;;20910:1;20901:10;;20912:5;;20883:36;20979:4;21027:1;21022:27;;;;21063:1;21058:191;;;;20972:277;;21022:27;21040:1;21031:10;;21042:5;;;21058:191;21103:3;21093:8;21090:17;21087:43;;;21110:18;;:::i;:::-;21087:43;21159:8;21156:1;21152:16;21143:25;;21194:3;21187:5;21184:14;21181:40;;;21201:18;;:::i;:::-;21181:40;21234:5;;;20972:277;;21358:2;21348:8;21345:16;21339:3;21333:4;21330:13;21326:36;21308:2;21298:8;21295:16;21290:2;21284:4;21281:12;21277:35;21261:111;21258:246;;;21414:8;21408:4;21404:19;21395:28;;21449:3;21442:5;21439:14;21436:40;;;21456:18;;:::i;:::-;21436:40;21489:5;;21258:246;21529:42;21567:3;21557:8;21551:4;21548:1;21529:42;:::i;:::-;21514:57;;;;21603:4;21598:3;21594:14;21587:5;21584:25;21581:51;;;21612:18;;:::i;:::-;21581:51;21661:4;21654:5;21650:16;21641:25;;20599:1073;;;;;;:::o;21678:348::-;21718:7;21741:20;21759:1;21741:20;:::i;:::-;21736:25;;21775:20;21793:1;21775:20;:::i;:::-;21770:25;;21963:1;21895:66;21891:74;21888:1;21885:81;21880:1;21873:9;21866:17;21862:105;21859:131;;;21970:18;;:::i;:::-;21859:131;22018:1;22015;22011:9;22000:20;;21678:348;;;;:::o;22032:191::-;22072:4;22092:20;22110:1;22092:20;:::i;:::-;22087:25;;22126:20;22144:1;22126:20;:::i;:::-;22121:25;;22165:1;22162;22159:8;22156:34;;;22170:18;;:::i;:::-;22156:34;22215:1;22212;22208:9;22200:17;;22032:191;;;;:::o;22229:96::-;22266:7;22295:24;22313:5;22295:24;:::i;:::-;22284:35;;22229:96;;;:::o;22331:90::-;22365:7;22408:5;22401:13;22394:21;22383:32;;22331:90;;;:::o;22427:89::-;22463:7;22503:6;22496:5;22492:18;22481:29;;22427:89;;;:::o;22522:126::-;22559:7;22599:42;22592:5;22588:54;22577:65;;22522:126;;;:::o;22654:77::-;22691:7;22720:5;22709:16;;22654:77;;;:::o;22737:86::-;22772:7;22812:4;22805:5;22801:16;22790:27;;22737:86;;;:::o;22829:121::-;22887:9;22920:24;22938:5;22920:24;:::i;:::-;22907:37;;22829:121;;;:::o;22956:307::-;23024:1;23034:113;23048:6;23045:1;23042:13;23034:113;;;23133:1;23128:3;23124:11;23118:18;23114:1;23109:3;23105:11;23098:39;23070:2;23067:1;23063:10;23058:15;;23034:113;;;23165:6;23162:1;23159:13;23156:101;;;23245:1;23236:6;23231:3;23227:16;23220:27;23156:101;23005:258;22956:307;;;:::o;23269:180::-;23317:77;23314:1;23307:88;23414:4;23411:1;23404:15;23438:4;23435:1;23428:15;23455:180;23503:77;23500:1;23493:88;23600:4;23597:1;23590:15;23624:4;23621:1;23614:15;23641:180;23689:77;23686:1;23679:88;23786:4;23783:1;23776:15;23810:4;23807:1;23800:15;23827:180;23875:77;23872:1;23865:88;23972:4;23969:1;23962:15;23996:4;23993:1;23986:15;24136:117;24245:1;24242;24235:12;24259:102;24300:6;24351:2;24347:7;24342:2;24335:5;24331:14;24327:28;24317:38;;24259:102;;;:::o;24367:::-;24409:8;24456:5;24453:1;24449:13;24428:34;;24367:102;;;:::o;24475:222::-;24615:34;24611:1;24603:6;24599:14;24592:58;24684:5;24679:2;24671:6;24667:15;24660:30;24475:222;:::o;24703:175::-;24843:27;24839:1;24831:6;24827:14;24820:51;24703:175;:::o;24884:236::-;25024:34;25020:1;25012:6;25008:14;25001:58;25093:19;25088:2;25080:6;25076:15;25069:44;24884:236;:::o;25126:225::-;25266:34;25262:1;25254:6;25250:14;25243:58;25335:8;25330:2;25322:6;25318:15;25311:33;25126:225;:::o;25357:221::-;25497:34;25493:1;25485:6;25481:14;25474:58;25566:4;25561:2;25553:6;25549:15;25542:29;25357:221;:::o;25584:::-;25724:34;25720:1;25712:6;25708:14;25701:58;25793:4;25788:2;25780:6;25776:15;25769:29;25584:221;:::o;25811:227::-;25951:34;25947:1;25939:6;25935:14;25928:58;26020:10;26015:2;26007:6;26003:15;25996:35;25811:227;:::o;26044:182::-;26184:34;26180:1;26172:6;26168:14;26161:58;26044:182;:::o;26232:228::-;26372:34;26368:1;26360:6;26356:14;26349:58;26441:11;26436:2;26428:6;26424:15;26417:36;26232:228;:::o;26466:224::-;26606:34;26602:1;26594:6;26590:14;26583:58;26675:7;26670:2;26662:6;26658:15;26651:32;26466:224;:::o;26696:176::-;26836:28;26832:1;26824:6;26820:14;26813:52;26696:176;:::o;26878:223::-;27018:34;27014:1;27006:6;27002:14;26995:58;27087:6;27082:2;27074:6;27070:15;27063:31;26878:223;:::o;27107:173::-;27247:25;27243:1;27235:6;27231:14;27224:49;27107:173;:::o;27286:122::-;27359:24;27377:5;27359:24;:::i;:::-;27352:5;27349:35;27339:63;;27398:1;27395;27388:12;27339:63;27286:122;:::o;27414:::-;27487:24;27505:5;27487:24;:::i;:::-;27480:5;27477:35;27467:63;;27526:1;27523;27516:12;27467:63;27414:122;:::o

Swarm Source

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