ETH Price: $2,382.37 (-1.13%)

Token

TITUS (TITUS)
 

Overview

Max Total Supply

300,000,000,000 TITUS

Holders

312

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000003 TITUS

Value
$0.00
0xe53ea0c15fa4f2c05e20590ab309e3f3f7074990
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x91cb7B4E...883F01415
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TITUS

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-05
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function WETH() external pure returns (address);
    function factory() external pure returns (address);

     function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );


    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract TITUS is IERC20, Ownable {
    using SafeMath for uint256;

    using Address for address payable;
    string private constant _name = "TITUS";
    string private constant _symbol = "TITUS";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 300_000_000_000 * 10**_decimals; // 300 billion token supply
    uint256 private _maxWallet = 2_400_000_000 * 10**_decimals;
    uint256 private _maxBuyAmount = 2_400_000_000 * 10**_decimals;
    uint256 private _maxSellAmount = 2_400_000_000 * 10**_decimals;
    uint256 private _swapTH = 300_000_000 * 10**_decimals;

    address public Dev = 0x5eD52896dB7DA4C4AE66a270a0c21A70a6131Faa;

    mapping(address => bool) private _isExcludedFromFee;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private _owner;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    bool public _AutoSwap = true;
    bool public _Launch = false;
    bool public _transfersEnabled = false;
    bool private _TokenSwap = true;
    bool private _autoLP = true;
    bool private _isSelling = false;
    uint256 private _swapPercent = 100;
    uint256 private _devTaxRate = 0;
    uint256 private AmountBuyRate = _devTaxRate;
    uint256 private _devTaxSellRate = 0;
    uint256 private AmountSellRate = _devTaxSellRate;

    constructor() {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        _owner = msg.sender;

        uint256 tsupply = _totalSupply;

        _balances[msg.sender] = tsupply;


        _isExcludedFromFee[_owner] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Dev] = true;
        
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

    function getOwner() public view returns (address) {
        return owner();
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }


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

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function ViewBuyRate() public view returns (
        uint256 devBuyRate,
        uint256 totalBuyRate,
        uint256 maxWallet,
        uint256 maxBuyAmount
    ) {
        devBuyRate = _devTaxRate;
        totalBuyRate = AmountBuyRate;
        maxWallet = _maxWallet;
        maxBuyAmount = _maxBuyAmount;
    }

    function ViewSellRate() public view returns (
        uint256 devSellRate,
        uint256 totalSellRate,
        uint256 maxSellAmount
    ) {
        devSellRate = _devTaxSellRate;
        totalSellRate = AmountSellRate;
        maxSellAmount = _maxSellAmount;
    }


    function transfer(address recipient, uint256 amount) public override returns (bool) {

        if(recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient]){

            require(_balances[recipient] + amount <= _maxWallet, "TITUS: recipient wallet balance exceeds the maximum limit");

        }

        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "TITUS: approve from the zero address");
        require(spender != address(0), "TITUS: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {

        require(sender != address(0), "TITUS: transfer from the zero address");
        require(recipient != address(0), "TITUS: transfer to the zero address");
        require(amount > 0, "TITUS: transfer amount must be greater than zero");
        if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient], "we not launch yet");}
        if(!_Launch && recipient != uniswapV2Pair && sender != uniswapV2Pair) {require(_transfersEnabled, "Transfers are currently disabled");}

        bool _AutoTaxes = true;


        if (recipient == uniswapV2Pair && sender == owner()) {

            _balances[sender] -= amount;
            _balances[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return;
        }

        // At the sell of TITUS
        if(recipient == uniswapV2Pair && !_isExcludedFromFee[sender] && sender != owner()){

                require(amount <= _maxSellAmount, "Sell amount exceeds max limit");

                _isSelling = true;
               
                if(_AutoSwap && balanceOf(address(this)) >= _swapTH){

                    CanSwap();
                }  
        }

        //at the buy of TITUS
        if(sender == uniswapV2Pair && !_isExcludedFromFee[recipient] && recipient != owner()){
                    
            require(amount <= _maxBuyAmount, "Buy amount exceeds max limit");
            
        }

        if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _AutoTaxes = false; }
        if (recipient != uniswapV2Pair && sender != uniswapV2Pair) { _AutoTaxes = false; }

        if (_AutoTaxes) {

                if(!_isSelling){

                    uint256 totalTaxAmount = amount * AmountBuyRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    
                   
                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                }else{

                    uint256 totalTaxAmount = amount * AmountSellRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    

                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                    _isSelling = false;
                }
            
        }else{

                _balances[sender] = _balances[sender].sub(amount);
                _balances[recipient] = _balances[recipient].add(amount);

                emit Transfer(sender, recipient, amount);

        }
    }


    function swapTokensForEth(uint256 tokenAmount) private {

        // Set up the contract and the TITUS token to be swapped
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Approve the transfer of TITUS tokens to the contract
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // Accept any amount of ETH for the swap
            path,
            address(this),
            block.timestamp
        );
    }


    function CanSwap() private {

        uint256 contractTokenBalance = balanceOf(address(this));

        if(contractTokenBalance > 0) {

            if(_TokenSwap){

                if(contractTokenBalance > 0){
                    
                    uint256 caBalance = balanceOf(address(this)) * _swapPercent / 100;

                    uint256 toSwap = caBalance;

                    swapTokensForEth(toSwap);

                    uint256 receivedBalance = address(this).balance;

                    if (receivedBalance > 0) {payable(Dev).transfer(receivedBalance);}

                }else{

                    revert("No TITUS tokens available to swap");
                }

            }

        }else{

           revert("No TITUS Balance available to swap");     
           
        }
            
    }

   receive() external payable {}

    function setDevAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid given address");
        Dev = newAddress;
        _isExcludedFromFee[newAddress] = true;
    }


   function enableLaunch() external {
        _Launch = true;
        _transfersEnabled = true;
    }

    function SwapEnable(bool status) external onlyOwner {
        _AutoSwap = status;
    }

    function SetSwapPercentage(uint256 SwapPercent) external onlyOwner {
        _swapPercent = SwapPercent;
    }

    function setAutoSwap(uint256 newAutoSwap) external onlyOwner {
        require(newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: it exceeds 1% of the total supply");
        _swapTH = newAutoSwap * 10**_decimals;
    }

    function updateLimits(uint256 maxWallet, uint256 maxBuyAmount, uint256 maxSellAmount) external onlyOwner {
        _maxWallet = maxWallet * 10**_decimals;
        _maxBuyAmount = maxBuyAmount * 10**_decimals;
        _maxSellAmount = maxSellAmount * 10**_decimals;
    }

    function setBuyTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxRate = devTaxRate;
        AmountBuyRate = _devTaxRate;
    }


    function setSellTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxSellRate = devTaxRate;
        AmountSellRate = _devTaxSellRate;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":"Dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapPercent","type":"uint256"}],"name":"SetSwapPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"SwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ViewBuyRate","outputs":[{"internalType":"uint256","name":"devBuyRate","type":"uint256"},{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ViewSellRate","outputs":[{"internalType":"uint256","name":"devSellRate","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AutoSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transfersEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setBuyTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000885565b6445d964b800620000269190620009c2565b6001556009600a62000039919062000885565b638f0d18006200004a9190620009c2565b6002556009600a6200005d919062000885565b638f0d18006200006e9190620009c2565b6003556009600a62000081919062000885565b638f0d1800620000929190620009c2565b6004556009600a620000a5919062000885565b6311e1a300620000b69190620009c2565b600555735ed52896db7da4c4ae66a270a0c21a70a6131faa600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506001600d60036101000a81548160ff0219169083151502179055506001600d60046101000a81548160ff0219169083151502179055506000600d60056101000a81548160ff0219169083151502179055506064600e556000600f55600f546010556000601155601154601255348015620001d857600080fd5b50620001f9620001ed620006af60201b60201c565b620006b760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029a57600080fd5b505afa158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d5919062000792565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033857600080fd5b505afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000792565b6040518363ffffffff1660e01b815260040162000392929190620007e0565b602060405180830381600087803b158015620003ad57600080fd5b505af1158015620003c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000792565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600154905080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200069f91906200080d565b60405180910390a3505062000ac4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000815190506200078c8162000aaa565b92915050565b600060208284031215620007a557600080fd5b6000620007b5848285016200077b565b91505092915050565b620007c98162000a23565b82525050565b620007da8162000a57565b82525050565b6000604082019050620007f76000830185620007be565b620008066020830184620007be565b9392505050565b6000602082019050620008246000830184620007cf565b92915050565b6000808291508390505b60018511156200087c5780860481111562000854576200085362000a6e565b5b6001851615620008645780820291505b8081029050620008748562000a9d565b945062000834565b94509492505050565b6000620008928262000a57565b91506200089f8362000a61565b9250620008ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008d6565b905092915050565b600082620008e85760019050620009bb565b81620008f85760009050620009bb565b81600181146200091157600281146200091c5762000952565b6001915050620009bb565b60ff84111562000931576200093062000a6e565b5b8360020a9150848211156200094b576200094a62000a6e565b5b50620009bb565b5060208310610133831016604e8410600b84101617156200098c5782820a90508381111562000986576200098562000a6e565b5b620009bb565b6200099b84848460016200082a565b92509050818404811115620009b557620009b462000a6e565b5b81810290505b9392505050565b6000620009cf8262000a57565b9150620009dc8362000a57565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a185762000a1762000a6e565b5b828202905092915050565b600062000a308262000a37565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b62000ab58162000a23565b811462000ac157600080fd5b50565b613cbb8062000ad46000396000f3fe6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063d8a0663c11610095578063f7de4dfd11610064578063f7de4dfd14610687578063fcd2e049146106b2578063feae65e7146106db578063ff5211bb14610709576101d8565b8063d8a0663c146105cf578063dd62ed3e146105f8578063f2fde38b14610635578063f515a55c1461065e576101d8565b8063a14aee61116100d1578063a14aee6114610513578063a9059cbb1461053c578063c6da305114610579578063d0d41fe1146105a6576101d8565b80638da5cb5b1461049257806392554287146104bd57806395d89b41146104e8576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103e8578063715018a61461042557806385438bc01461043c578063893d20e814610467576101d8565b8063313ce5671461032c57806336a0f8a51461035757806349bd5a5e146103805780635342acb4146103ab576101d8565b80630a80c0cc116101ab5780630a80c0cc146102705780631694505e1461029957806318160ddd146102c457806323b872dd146102ef576101d8565b806301e51ae8146101dd57806306fdde0314610208578063095ea7b314610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610720565b6040516101ff919061348c565b60405180910390f35b34801561021457600080fd5b5061021d610746565b60405161022a91906134dd565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190612cdb565b610783565b60405161026791906134a7565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190612d40565b61079a565b005b3480156102a557600080fd5b506102ae610829565b6040516102bb91906134c2565b60405180910390f35b3480156102d057600080fd5b506102d961084f565b6040516102e6919061371f565b60405180910390f35b3480156102fb57600080fd5b5061031660048036038101906103119190612c8c565b610859565b60405161032391906134a7565b60405180910390f35b34801561033857600080fd5b50610341610903565b60405161034e9190613810565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612d69565b61090c565b005b34801561038c57600080fd5b506103956109ea565b6040516103a2919061348c565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612bfe565b610a10565b6040516103df91906134a7565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612bfe565b610a66565b60405161041c919061371f565b60405180910390f35b34801561043157600080fd5b5061043a610aaf565b005b34801561044857600080fd5b50610451610b37565b60405161045e91906134a7565b60405180910390f35b34801561047357600080fd5b5061047c610b4a565b604051610489919061348c565b60405180910390f35b34801561049e57600080fd5b506104a7610b59565b6040516104b4919061348c565b60405180910390f35b3480156104c957600080fd5b506104d2610b82565b6040516104df91906134a7565b60405180910390f35b3480156104f457600080fd5b506104fd610b95565b60405161050a91906134dd565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612d17565b610bd2565b005b34801561054857600080fd5b50610563600480360381019061055e9190612cdb565b610c6b565b60405161057091906134a7565b60405180910390f35b34801561058557600080fd5b5061058e610dfe565b60405161059d93929190613794565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612bfe565b610e17565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612d40565b610f9f565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612c50565b61109f565b60405161062c919061371f565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190612bfe565b611126565b005b34801561066a57600080fd5b5061068560048036038101906106809190612d40565b61121e565b005b34801561069357600080fd5b5061069c6112a4565b6040516106a991906134a7565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612d40565b6112b7565b005b3480156106e757600080fd5b506106f0611346565b60405161070094939291906137cb565b60405180910390f35b34801561071557600080fd5b5061071e611366565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f5449545553000000000000000000000000000000000000000000000000000000815250905090565b600061079033848461139e565b6001905092915050565b6107a2611569565b73ffffffffffffffffffffffffffffffffffffffff166107c0610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d9061361f565b60405180910390fd5b8060118190555060115460128190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60006108ed843384600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108e89190613ad2565b61139e565b6108f8848484611571565b600190509392505050565b60006009905090565b610914611569565b73ffffffffffffffffffffffffffffffffffffffff16610932610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f9061361f565b60405180910390fd5b6009600a610996919061395a565b836109a19190613a78565b6002819055506009600a6109b5919061395a565b826109c09190613a78565b6003819055506009600a6109d4919061395a565b816109df9190613a78565b600481905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ab7611569565b73ffffffffffffffffffffffffffffffffffffffff16610ad5610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b229061361f565b60405180910390fd5b610b3560006125af565b565b600d60029054906101000a900460ff1681565b6000610b54610b59565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900460ff1681565b60606040518060400160405280600581526020017f5449545553000000000000000000000000000000000000000000000000000000815250905090565b610bda611569565b73ffffffffffffffffffffffffffffffffffffffff16610bf8610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c459061361f565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cfe5750610cce610b59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610d545750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610de95760025482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79190613880565b1115610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf906136bf565b60405180910390fd5b5b610df4338484611571565b6001905092915050565b6000806000601154925060125491506004549050909192565b610e1f611569565b73ffffffffffffffffffffffffffffffffffffffff16610e3d610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a9061361f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa906135ff565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fa7611569565b73ffffffffffffffffffffffffffffffffffffffff16610fc5610b59565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110129061361f565b60405180910390fd5b6064600161102761084f565b6110319190613a78565b61103b91906138d6565b81111561107d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110749061365f565b60405180910390fd5b6009600a61108b919061395a565b816110969190613a78565b60058190555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112e611569565b73ffffffffffffffffffffffffffffffffffffffff1661114c610b59565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061361f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112099061353f565b60405180910390fd5b61121b816125af565b50565b611226611569565b73ffffffffffffffffffffffffffffffffffffffff16611244610b59565b73ffffffffffffffffffffffffffffffffffffffff161461129a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112919061361f565b60405180910390fd5b80600e8190555050565b600d60019054906101000a900460ff1681565b6112bf611569565b73ffffffffffffffffffffffffffffffffffffffff166112dd610b59565b73ffffffffffffffffffffffffffffffffffffffff1614611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a9061361f565b60405180910390fd5b80600f81905550600f5460108190555050565b600080600080600f54935060105492506002549150600354905090919293565b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114059061367f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114759061363f565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155c919061371f565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061355f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116489061351f565b60405180910390fd5b60008111611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b9061359f565b60405180910390fd5b600d60019054906101000a900460ff1661178957600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117495750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906136df565b60405180910390fd5b5b600d60019054906101000a900460ff161580156117f45750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561184e5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118a357600d60029054906101000a900460ff166118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118999061369f565b60405180910390fd5b5b600060019050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119385750611909610b59565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611a545781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461198c9190613ad2565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e29190613880565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a46919061371f565b60405180910390a3506125aa565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afb5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b3a5750611b0a610b59565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd457600454821115611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b906135df565b60405180910390fd5b6001600d60056101000a81548160ff021916908315150217905550600d60009054906101000a900460ff168015611bc55750600554611bc230610a66565b10155b15611bd357611bd2612673565b5b5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c7b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cba5750611c8a610b59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0557600354821115611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906134ff565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611da65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611db057600090505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e5c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6657600090505b801561241857600d60059054906101000a900460ff1661213e576000606460105484611e929190613a78565b611e9c91906138d6565b905060008184611eac9190613ad2565b9050611f0082600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9584600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202a81600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ca919061371f565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212f919061371f565b60405180910390a35050612413565b60006064601254846121509190613a78565b61215a91906138d6565b90506000818461216a9190613ad2565b90506121be82600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061225384600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e881600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612388919061371f565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061371f565b60405180910390a36000600d60056101000a81548160ff02191690831515021790555050505b6125a8565b61246a82600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ff82600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259f919061371f565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061267e30610a66565b9050600081111561279c57600d60039054906101000a900460ff161561279757600081111561275b5760006064600e546126b730610a66565b6126c19190613a78565b6126cb91906138d6565b905060008190506126db81612882565b6000479050600081111561275357600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612751573d6000803e3d6000fd5b505b505050612796565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906135bf565b60405180910390fd5b5b6127d7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce906136ff565b60405180910390fd5b50565b60008082846127e99190613880565b90508381101561282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128259061357f565b60405180910390fd5b8091505092915050565b600061287a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b46565b905092915050565b6000600267ffffffffffffffff8111156128c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128f35781602001602082028036833780820191505090505b5090503081600081518110612931577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129d357600080fd5b505afa1580156129e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0b9190612c27565b81600181518110612a45577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612aac30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b1095949392919061373a565b600060405180830381600087803b158015612b2a57600080fd5b505af1158015612b3e573d6000803e3d6000fd5b505050505050565b6000838311158290612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8591906134dd565b60405180910390fd5b5060008385612b9d9190613ad2565b9050809150509392505050565b600081359050612bb981613c40565b92915050565b600081519050612bce81613c40565b92915050565b600081359050612be381613c57565b92915050565b600081359050612bf881613c6e565b92915050565b600060208284031215612c1057600080fd5b6000612c1e84828501612baa565b91505092915050565b600060208284031215612c3957600080fd5b6000612c4784828501612bbf565b91505092915050565b60008060408385031215612c6357600080fd5b6000612c7185828601612baa565b9250506020612c8285828601612baa565b9150509250929050565b600080600060608486031215612ca157600080fd5b6000612caf86828701612baa565b9350506020612cc086828701612baa565b9250506040612cd186828701612be9565b9150509250925092565b60008060408385031215612cee57600080fd5b6000612cfc85828601612baa565b9250506020612d0d85828601612be9565b9150509250929050565b600060208284031215612d2957600080fd5b6000612d3784828501612bd4565b91505092915050565b600060208284031215612d5257600080fd5b6000612d6084828501612be9565b91505092915050565b600080600060608486031215612d7e57600080fd5b6000612d8c86828701612be9565b9350506020612d9d86828701612be9565b9250506040612dae86828701612be9565b9150509250925092565b6000612dc48383612dd0565b60208301905092915050565b612dd981613b06565b82525050565b612de881613b06565b82525050565b6000612df98261383b565b612e03818561385e565b9350612e0e8361382b565b8060005b83811015612e3f578151612e268882612db8565b9750612e3183613851565b925050600181019050612e12565b5085935050505092915050565b612e5581613b18565b82525050565b612e6481613b5b565b82525050565b612e7381613b7f565b82525050565b6000612e8482613846565b612e8e818561386f565b9350612e9e818560208601613b91565b612ea781613c22565b840191505092915050565b6000612ebf601c8361386f565b91507f42757920616d6f756e742065786365656473206d6178206c696d6974000000006000830152602082019050919050565b6000612eff60238361386f565b91507f54495455533a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f6560268361386f565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612fcb60258361386f565b91507f54495455533a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613031601b8361386f565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061307160308361386f565b91507f54495455533a207472616e7366657220616d6f756e74206d757374206265206760008301527f726561746572207468616e207a65726f000000000000000000000000000000006020830152604082019050919050565b60006130d760218361386f565b91507f4e6f20544954555320746f6b656e7320617661696c61626c6520746f2073776160008301527f70000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061313d601d8361386f565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b600061317d60158361386f565b91507f496e76616c696420676976656e206164647265737300000000000000000000006000830152602082019050919050565b60006131bd60208361386f565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006131fd60228361386f565b91507f54495455533a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061326360308361386f565b91507f496e76616c69642076616c75653a2069742065786365656473203125206f662060008301527f74686520746f74616c20737570706c79000000000000000000000000000000006020830152604082019050919050565b60006132c960248361386f565b91507f54495455533a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061332f60208361386f565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b600061336f60398361386f565b91507f54495455533a20726563697069656e742077616c6c65742062616c616e63652060008301527f6578636565647320746865206d6178696d756d206c696d6974000000000000006020830152604082019050919050565b60006133d560118361386f565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b600061341560228361386f565b91507f4e6f2054495455532042616c616e636520617661696c61626c6520746f20737760008301527f61700000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61347781613b44565b82525050565b61348681613b4e565b82525050565b60006020820190506134a16000830184612ddf565b92915050565b60006020820190506134bc6000830184612e4c565b92915050565b60006020820190506134d76000830184612e5b565b92915050565b600060208201905081810360008301526134f78184612e79565b905092915050565b6000602082019050818103600083015261351881612eb2565b9050919050565b6000602082019050818103600083015261353881612ef2565b9050919050565b6000602082019050818103600083015261355881612f58565b9050919050565b6000602082019050818103600083015261357881612fbe565b9050919050565b6000602082019050818103600083015261359881613024565b9050919050565b600060208201905081810360008301526135b881613064565b9050919050565b600060208201905081810360008301526135d8816130ca565b9050919050565b600060208201905081810360008301526135f881613130565b9050919050565b6000602082019050818103600083015261361881613170565b9050919050565b60006020820190508181036000830152613638816131b0565b9050919050565b60006020820190508181036000830152613658816131f0565b9050919050565b6000602082019050818103600083015261367881613256565b9050919050565b60006020820190508181036000830152613698816132bc565b9050919050565b600060208201905081810360008301526136b881613322565b9050919050565b600060208201905081810360008301526136d881613362565b9050919050565b600060208201905081810360008301526136f8816133c8565b9050919050565b6000602082019050818103600083015261371881613408565b9050919050565b6000602082019050613734600083018461346e565b92915050565b600060a08201905061374f600083018861346e565b61375c6020830187612e6a565b818103604083015261376e8186612dee565b905061377d6060830185612ddf565b61378a608083018461346e565b9695505050505050565b60006060820190506137a9600083018661346e565b6137b6602083018561346e565b6137c3604083018461346e565b949350505050565b60006080820190506137e0600083018761346e565b6137ed602083018661346e565b6137fa604083018561346e565b613807606083018461346e565b95945050505050565b6000602082019050613825600083018461347d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061388b82613b44565b915061389683613b44565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138cb576138ca613bc4565b5b828201905092915050565b60006138e182613b44565b91506138ec83613b44565b9250826138fc576138fb613bf3565b5b828204905092915050565b6000808291508390505b60018511156139515780860481111561392d5761392c613bc4565b5b600185161561393c5780820291505b808102905061394a85613c33565b9450613911565b94509492505050565b600061396582613b44565b915061397083613b4e565b925061399d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139a5565b905092915050565b6000826139b55760019050613a71565b816139c35760009050613a71565b81600181146139d957600281146139e357613a12565b6001915050613a71565b60ff8411156139f5576139f4613bc4565b5b8360020a915084821115613a0c57613a0b613bc4565b5b50613a71565b5060208310610133831016604e8410600b8410161715613a475782820a905083811115613a4257613a41613bc4565b5b613a71565b613a548484846001613907565b92509050818404811115613a6b57613a6a613bc4565b5b81810290505b9392505050565b6000613a8382613b44565b9150613a8e83613b44565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac757613ac6613bc4565b5b828202905092915050565b6000613add82613b44565b9150613ae883613b44565b925082821015613afb57613afa613bc4565b5b828203905092915050565b6000613b1182613b24565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b6682613b6d565b9050919050565b6000613b7882613b24565b9050919050565b6000613b8a82613b44565b9050919050565b60005b83811015613baf578082015181840152602081019050613b94565b83811115613bbe576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613c4981613b06565b8114613c5457600080fd5b50565b613c6081613b18565b8114613c6b57600080fd5b50565b613c7781613b44565b8114613c8257600080fd5b5056fea26469706673582212203df275359c186e09adf4953627228765ece443f606b0cd3d71dd6284780eb9e564736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80638da5cb5b116100f7578063d8a0663c11610095578063f7de4dfd11610064578063f7de4dfd14610687578063fcd2e049146106b2578063feae65e7146106db578063ff5211bb14610709576101d8565b8063d8a0663c146105cf578063dd62ed3e146105f8578063f2fde38b14610635578063f515a55c1461065e576101d8565b8063a14aee61116100d1578063a14aee6114610513578063a9059cbb1461053c578063c6da305114610579578063d0d41fe1146105a6576101d8565b80638da5cb5b1461049257806392554287146104bd57806395d89b41146104e8576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103e8578063715018a61461042557806385438bc01461043c578063893d20e814610467576101d8565b8063313ce5671461032c57806336a0f8a51461035757806349bd5a5e146103805780635342acb4146103ab576101d8565b80630a80c0cc116101ab5780630a80c0cc146102705780631694505e1461029957806318160ddd146102c457806323b872dd146102ef576101d8565b806301e51ae8146101dd57806306fdde0314610208578063095ea7b314610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610720565b6040516101ff919061348c565b60405180910390f35b34801561021457600080fd5b5061021d610746565b60405161022a91906134dd565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190612cdb565b610783565b60405161026791906134a7565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190612d40565b61079a565b005b3480156102a557600080fd5b506102ae610829565b6040516102bb91906134c2565b60405180910390f35b3480156102d057600080fd5b506102d961084f565b6040516102e6919061371f565b60405180910390f35b3480156102fb57600080fd5b5061031660048036038101906103119190612c8c565b610859565b60405161032391906134a7565b60405180910390f35b34801561033857600080fd5b50610341610903565b60405161034e9190613810565b60405180910390f35b34801561036357600080fd5b5061037e60048036038101906103799190612d69565b61090c565b005b34801561038c57600080fd5b506103956109ea565b6040516103a2919061348c565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612bfe565b610a10565b6040516103df91906134a7565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612bfe565b610a66565b60405161041c919061371f565b60405180910390f35b34801561043157600080fd5b5061043a610aaf565b005b34801561044857600080fd5b50610451610b37565b60405161045e91906134a7565b60405180910390f35b34801561047357600080fd5b5061047c610b4a565b604051610489919061348c565b60405180910390f35b34801561049e57600080fd5b506104a7610b59565b6040516104b4919061348c565b60405180910390f35b3480156104c957600080fd5b506104d2610b82565b6040516104df91906134a7565b60405180910390f35b3480156104f457600080fd5b506104fd610b95565b60405161050a91906134dd565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612d17565b610bd2565b005b34801561054857600080fd5b50610563600480360381019061055e9190612cdb565b610c6b565b60405161057091906134a7565b60405180910390f35b34801561058557600080fd5b5061058e610dfe565b60405161059d93929190613794565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612bfe565b610e17565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612d40565b610f9f565b005b34801561060457600080fd5b5061061f600480360381019061061a9190612c50565b61109f565b60405161062c919061371f565b60405180910390f35b34801561064157600080fd5b5061065c60048036038101906106579190612bfe565b611126565b005b34801561066a57600080fd5b5061068560048036038101906106809190612d40565b61121e565b005b34801561069357600080fd5b5061069c6112a4565b6040516106a991906134a7565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612d40565b6112b7565b005b3480156106e757600080fd5b506106f0611346565b60405161070094939291906137cb565b60405180910390f35b34801561071557600080fd5b5061071e611366565b005b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600581526020017f5449545553000000000000000000000000000000000000000000000000000000815250905090565b600061079033848461139e565b6001905092915050565b6107a2611569565b73ffffffffffffffffffffffffffffffffffffffff166107c0610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d9061361f565b60405180910390fd5b8060118190555060115460128190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60006108ed843384600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108e89190613ad2565b61139e565b6108f8848484611571565b600190509392505050565b60006009905090565b610914611569565b73ffffffffffffffffffffffffffffffffffffffff16610932610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f9061361f565b60405180910390fd5b6009600a610996919061395a565b836109a19190613a78565b6002819055506009600a6109b5919061395a565b826109c09190613a78565b6003819055506009600a6109d4919061395a565b816109df9190613a78565b600481905550505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ab7611569565b73ffffffffffffffffffffffffffffffffffffffff16610ad5610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b229061361f565b60405180910390fd5b610b3560006125af565b565b600d60029054906101000a900460ff1681565b6000610b54610b59565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900460ff1681565b60606040518060400160405280600581526020017f5449545553000000000000000000000000000000000000000000000000000000815250905090565b610bda611569565b73ffffffffffffffffffffffffffffffffffffffff16610bf8610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c459061361f565b60405180910390fd5b80600d60006101000a81548160ff02191690831515021790555050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cfe5750610cce610b59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610d545750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610de95760025482600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610da79190613880565b1115610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf906136bf565b60405180910390fd5b5b610df4338484611571565b6001905092915050565b6000806000601154925060125491506004549050909192565b610e1f611569565b73ffffffffffffffffffffffffffffffffffffffff16610e3d610b59565b73ffffffffffffffffffffffffffffffffffffffff1614610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a9061361f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa906135ff565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610fa7611569565b73ffffffffffffffffffffffffffffffffffffffff16610fc5610b59565b73ffffffffffffffffffffffffffffffffffffffff161461101b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110129061361f565b60405180910390fd5b6064600161102761084f565b6110319190613a78565b61103b91906138d6565b81111561107d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110749061365f565b60405180910390fd5b6009600a61108b919061395a565b816110969190613a78565b60058190555050565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61112e611569565b73ffffffffffffffffffffffffffffffffffffffff1661114c610b59565b73ffffffffffffffffffffffffffffffffffffffff16146111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111999061361f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112099061353f565b60405180910390fd5b61121b816125af565b50565b611226611569565b73ffffffffffffffffffffffffffffffffffffffff16611244610b59565b73ffffffffffffffffffffffffffffffffffffffff161461129a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112919061361f565b60405180910390fd5b80600e8190555050565b600d60019054906101000a900460ff1681565b6112bf611569565b73ffffffffffffffffffffffffffffffffffffffff166112dd610b59565b73ffffffffffffffffffffffffffffffffffffffff1614611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a9061361f565b60405180910390fd5b80600f81905550600f5460108190555050565b600080600080600f54935060105492506002549150600354905090919293565b6001600d60016101000a81548160ff0219169083151502179055506001600d60026101000a81548160ff021916908315150217905550565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114059061367f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114759061363f565b60405180910390fd5b80600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155c919061371f565b60405180910390a3505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d89061355f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116489061351f565b60405180910390fd5b60008111611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168b9061359f565b60405180910390fd5b600d60019054906101000a900460ff1661178957600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117495750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906136df565b60405180910390fd5b5b600d60019054906101000a900460ff161580156117f45750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561184e5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118a357600d60029054906101000a900460ff166118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118999061369f565b60405180910390fd5b5b600060019050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119385750611909610b59565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611a545781600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461198c9190613ad2565b9250508190555081600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e29190613880565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a46919061371f565b60405180910390a3506125aa565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afb5750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b3a5750611b0a610b59565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bd457600454821115611b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7b906135df565b60405180910390fd5b6001600d60056101000a81548160ff021916908315150217905550600d60009054906101000a900460ff168015611bc55750600554611bc230610a66565b10155b15611bd357611bd2612673565b5b5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c7b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cba5750611c8a610b59565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0557600354821115611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906134ff565b60405180910390fd5b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611da65750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611db057600090505b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e5c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e6657600090505b801561241857600d60059054906101000a900460ff1661213e576000606460105484611e929190613a78565b611e9c91906138d6565b905060008184611eac9190613ad2565b9050611f0082600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f9584600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202a81600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120ca919061371f565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161212f919061371f565b60405180910390a35050612413565b60006064601254846121509190613a78565b61215a91906138d6565b90506000818461216a9190613ad2565b90506121be82600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061225384600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e881600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612388919061371f565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123ed919061371f565b60405180910390a36000600d60056101000a81548160ff02191690831515021790555050505b6125a8565b61246a82600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461283890919063ffffffff16565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ff82600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127da90919063ffffffff16565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161259f919061371f565b60405180910390a35b505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061267e30610a66565b9050600081111561279c57600d60039054906101000a900460ff161561279757600081111561275b5760006064600e546126b730610a66565b6126c19190613a78565b6126cb91906138d6565b905060008190506126db81612882565b6000479050600081111561275357600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612751573d6000803e3d6000fd5b505b505050612796565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906135bf565b60405180910390fd5b5b6127d7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce906136ff565b60405180910390fd5b50565b60008082846127e99190613880565b90508381101561282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128259061357f565b60405180910390fd5b8091505092915050565b600061287a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612b46565b905092915050565b6000600267ffffffffffffffff8111156128c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128f35781602001602082028036833780820191505090505b5090503081600081518110612931577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129d357600080fd5b505afa1580156129e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0b9190612c27565b81600181518110612a45577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612aac30600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139e565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b1095949392919061373a565b600060405180830381600087803b158015612b2a57600080fd5b505af1158015612b3e573d6000803e3d6000fd5b505050505050565b6000838311158290612b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8591906134dd565b60405180910390fd5b5060008385612b9d9190613ad2565b9050809150509392505050565b600081359050612bb981613c40565b92915050565b600081519050612bce81613c40565b92915050565b600081359050612be381613c57565b92915050565b600081359050612bf881613c6e565b92915050565b600060208284031215612c1057600080fd5b6000612c1e84828501612baa565b91505092915050565b600060208284031215612c3957600080fd5b6000612c4784828501612bbf565b91505092915050565b60008060408385031215612c6357600080fd5b6000612c7185828601612baa565b9250506020612c8285828601612baa565b9150509250929050565b600080600060608486031215612ca157600080fd5b6000612caf86828701612baa565b9350506020612cc086828701612baa565b9250506040612cd186828701612be9565b9150509250925092565b60008060408385031215612cee57600080fd5b6000612cfc85828601612baa565b9250506020612d0d85828601612be9565b9150509250929050565b600060208284031215612d2957600080fd5b6000612d3784828501612bd4565b91505092915050565b600060208284031215612d5257600080fd5b6000612d6084828501612be9565b91505092915050565b600080600060608486031215612d7e57600080fd5b6000612d8c86828701612be9565b9350506020612d9d86828701612be9565b9250506040612dae86828701612be9565b9150509250925092565b6000612dc48383612dd0565b60208301905092915050565b612dd981613b06565b82525050565b612de881613b06565b82525050565b6000612df98261383b565b612e03818561385e565b9350612e0e8361382b565b8060005b83811015612e3f578151612e268882612db8565b9750612e3183613851565b925050600181019050612e12565b5085935050505092915050565b612e5581613b18565b82525050565b612e6481613b5b565b82525050565b612e7381613b7f565b82525050565b6000612e8482613846565b612e8e818561386f565b9350612e9e818560208601613b91565b612ea781613c22565b840191505092915050565b6000612ebf601c8361386f565b91507f42757920616d6f756e742065786365656473206d6178206c696d6974000000006000830152602082019050919050565b6000612eff60238361386f565b91507f54495455533a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f6560268361386f565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612fcb60258361386f565b91507f54495455533a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613031601b8361386f565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061307160308361386f565b91507f54495455533a207472616e7366657220616d6f756e74206d757374206265206760008301527f726561746572207468616e207a65726f000000000000000000000000000000006020830152604082019050919050565b60006130d760218361386f565b91507f4e6f20544954555320746f6b656e7320617661696c61626c6520746f2073776160008301527f70000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061313d601d8361386f565b91507f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006000830152602082019050919050565b600061317d60158361386f565b91507f496e76616c696420676976656e206164647265737300000000000000000000006000830152602082019050919050565b60006131bd60208361386f565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006131fd60228361386f565b91507f54495455533a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061326360308361386f565b91507f496e76616c69642076616c75653a2069742065786365656473203125206f662060008301527f74686520746f74616c20737570706c79000000000000000000000000000000006020830152604082019050919050565b60006132c960248361386f565b91507f54495455533a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061332f60208361386f565b91507f5472616e7366657273206172652063757272656e746c792064697361626c65646000830152602082019050919050565b600061336f60398361386f565b91507f54495455533a20726563697069656e742077616c6c65742062616c616e63652060008301527f6578636565647320746865206d6178696d756d206c696d6974000000000000006020830152604082019050919050565b60006133d560118361386f565b91507f7765206e6f74206c61756e6368207965740000000000000000000000000000006000830152602082019050919050565b600061341560228361386f565b91507f4e6f2054495455532042616c616e636520617661696c61626c6520746f20737760008301527f61700000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61347781613b44565b82525050565b61348681613b4e565b82525050565b60006020820190506134a16000830184612ddf565b92915050565b60006020820190506134bc6000830184612e4c565b92915050565b60006020820190506134d76000830184612e5b565b92915050565b600060208201905081810360008301526134f78184612e79565b905092915050565b6000602082019050818103600083015261351881612eb2565b9050919050565b6000602082019050818103600083015261353881612ef2565b9050919050565b6000602082019050818103600083015261355881612f58565b9050919050565b6000602082019050818103600083015261357881612fbe565b9050919050565b6000602082019050818103600083015261359881613024565b9050919050565b600060208201905081810360008301526135b881613064565b9050919050565b600060208201905081810360008301526135d8816130ca565b9050919050565b600060208201905081810360008301526135f881613130565b9050919050565b6000602082019050818103600083015261361881613170565b9050919050565b60006020820190508181036000830152613638816131b0565b9050919050565b60006020820190508181036000830152613658816131f0565b9050919050565b6000602082019050818103600083015261367881613256565b9050919050565b60006020820190508181036000830152613698816132bc565b9050919050565b600060208201905081810360008301526136b881613322565b9050919050565b600060208201905081810360008301526136d881613362565b9050919050565b600060208201905081810360008301526136f8816133c8565b9050919050565b6000602082019050818103600083015261371881613408565b9050919050565b6000602082019050613734600083018461346e565b92915050565b600060a08201905061374f600083018861346e565b61375c6020830187612e6a565b818103604083015261376e8186612dee565b905061377d6060830185612ddf565b61378a608083018461346e565b9695505050505050565b60006060820190506137a9600083018661346e565b6137b6602083018561346e565b6137c3604083018461346e565b949350505050565b60006080820190506137e0600083018761346e565b6137ed602083018661346e565b6137fa604083018561346e565b613807606083018461346e565b95945050505050565b6000602082019050613825600083018461347d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061388b82613b44565b915061389683613b44565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138cb576138ca613bc4565b5b828201905092915050565b60006138e182613b44565b91506138ec83613b44565b9250826138fc576138fb613bf3565b5b828204905092915050565b6000808291508390505b60018511156139515780860481111561392d5761392c613bc4565b5b600185161561393c5780820291505b808102905061394a85613c33565b9450613911565b94509492505050565b600061396582613b44565b915061397083613b4e565b925061399d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139a5565b905092915050565b6000826139b55760019050613a71565b816139c35760009050613a71565b81600181146139d957600281146139e357613a12565b6001915050613a71565b60ff8411156139f5576139f4613bc4565b5b8360020a915084821115613a0c57613a0b613bc4565b5b50613a71565b5060208310610133831016604e8410600b8410161715613a475782820a905083811115613a4257613a41613bc4565b5b613a71565b613a548484846001613907565b92509050818404811115613a6b57613a6a613bc4565b5b81810290505b9392505050565b6000613a8382613b44565b9150613a8e83613b44565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac757613ac6613bc4565b5b828202905092915050565b6000613add82613b44565b9150613ae883613b44565b925082821015613afb57613afa613bc4565b5b828203905092915050565b6000613b1182613b24565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b6682613b6d565b9050919050565b6000613b7882613b24565b9050919050565b6000613b8a82613b44565b9050919050565b60005b83811015613baf578082015181840152602081019050613b94565b83811115613bbe576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b613c4981613b06565b8114613c5457600080fd5b50565b613c6081613b18565b8114613c6b57600080fd5b50565b613c7781613b44565b8114613c8257600080fd5b5056fea26469706673582212203df275359c186e09adf4953627228765ece443f606b0cd3d71dd6284780eb9e564736f6c63430008000033

Deployed Bytecode Sourcemap

4486:11083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5100:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6681:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8529:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15410:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5230:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6962:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8696:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6871:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14974:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5278:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7199:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7072:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2674:94;;;;;;;;;;;;;:::i;:::-;;5544:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6586:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5475:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6776:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14520:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7949:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7663:276;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14190:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14737:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8378:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14617:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5510:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15256:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7331:324;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14411:101;;;;;;;;;;;;;:::i;:::-;;5100:63;;;;;;;;;;;;;:::o;6681:83::-;6718:13;6751:5;;;;;;;;;;;;;;;;;6744:12;;6681:83;:::o;8529:159::-;8604:4;8621:37;8630:10;8642:7;8651:6;8621:8;:37::i;:::-;8676:4;8669:11;;8529:159;;;;:::o;15410:154::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15503:10:::1;15485:15;:28;;;;15541:15;;15524:14;:32;;;;15410:154:::0;:::o;5230:41::-;;;;;;;;;;;;;:::o;6962:100::-;7015:7;7042:12;;7035:19;;6962:100;:::o;8696:262::-;8794:4;8811:70;8820:6;8828:10;8874:6;8840:11;:19;8852:6;8840:19;;;;;;;;;;;;;;;:31;8860:10;8840:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8811:8;:70::i;:::-;8892:36;8902:6;8910:9;8921:6;8892:9;:36::i;:::-;8946:4;8939:11;;8696:262;;;;;:::o;6871:83::-;6912:5;4731:1;6930:16;;6871:83;:::o;14974:274::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4731:1:::1;15115:2;:13;;;;:::i;:::-;15103:9;:25;;;;:::i;:::-;15090:10;:38;;;;4731:1;15170:2;:13;;;;:::i;:::-;15155:12;:28;;;;:::i;:::-;15139:13;:44;;;;4731:1;15227:2;:13;;;;:::i;:::-;15211;:29;;;;:::i;:::-;15194:14;:46;;;;14974:274:::0;;;:::o;5278:28::-;;;;;;;;;;;;;:::o;7199:124::-;7264:4;7288:18;:27;7307:7;7288:27;;;;;;;;;;;;;;;;;;;;;;;;;7281:34;;7199:124;;;:::o;7072:119::-;7138:7;7165:9;:18;7175:7;7165:18;;;;;;;;;;;;;;;;7158:25;;7072:119;;;:::o;2674:94::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2739:21:::1;2757:1;2739:9;:21::i;:::-;2674:94::o:0;5544:37::-;;;;;;;;;;;;;:::o;6586:83::-;6627:7;6654;:5;:7::i;:::-;6647:14;;6586:83;:::o;2451:87::-;2497:7;2524:6;;;;;;;;;;;2517:13;;2451:87;:::o;5475:28::-;;;;;;;;;;;;;:::o;6776:87::-;6815:13;6848:7;;;;;;;;;;;;;;;;;6841:14;;6776:87;:::o;14520:89::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14595:6:::1;14583:9;;:18;;;;;;;;;;;;;;;;;;14520:89:::0;:::o;7949:421::-;8027:4;8062:13;;;;;;;;;;;8049:26;;:9;:26;;;;:50;;;;;8092:7;:5;:7::i;:::-;8079:20;;:9;:20;;;;8049:50;:84;;;;;8104:18;:29;8123:9;8104:29;;;;;;;;;;;;;;;;;;;;;;;;;8103:30;8049:84;8046:232;;;8192:10;;8182:6;8159:9;:20;8169:9;8159:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:43;;8151:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;8046:232;8290:40;8300:10;8312:9;8323:6;8290:9;:40::i;:::-;8358:4;8351:11;;7949:421;;;;:::o;7663:276::-;7718:19;7748:21;7780;7834:15;;7820:29;;7876:14;;7860:30;;7917:14;;7901:30;;7663:276;;;:::o;14190:212::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14291:1:::1;14269:24;;:10;:24;;;;14261:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14336:10;14330:3;;:16;;;;;;;;;;;;;;;;;;14390:4;14357:18;:30;14376:10;14357:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;14190:212:::0;:::o;14737:229::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14854:3:::1;14849:1;14833:13;:11;:13::i;:::-;:17;;;;:::i;:::-;14832:25;;;;:::i;:::-;14817:11;:40;;14809:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;4731:1;14945:2;:13;;;;:::i;:::-;14931:11;:27;;;;:::i;:::-;14921:7;:37;;;;14737:229:::0;:::o;8378:143::-;8459:7;8486:11;:18;8498:5;8486:18;;;;;;;;;;;;;;;:27;8505:7;8486:27;;;;;;;;;;;;;;;;8479:34;;8378:143;;;;:::o;2776:192::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2885:1:::1;2865:22;;:8;:22;;;;2857:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2941:19;2951:8;2941:9;:19::i;:::-;2776:192:::0;:::o;14617:112::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14710:11:::1;14695:12;:26;;;;14617:112:::0;:::o;5510:27::-;;;;;;;;;;;;;:::o;15256:144::-;2597:12;:10;:12::i;:::-;2586:23;;:7;:5;:7::i;:::-;:23;;;2578:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15344:10:::1;15330:11;:24;;;;15381:11;;15365:13;:27;;;;15256:144:::0;:::o;7331:324::-;7385:18;7414:20;7445:17;7473:20;7525:11;;7512:24;;7562:13;;7547:28;;7598:10;;7586:22;;7634:13;;7619:28;;7331:324;;;;:::o;14411:101::-;14465:4;14455:7;;:14;;;;;;;;;;;;;;;;;;14500:4;14480:17;;:24;;;;;;;;;;;;;;;;;;14411:101::o;8966:337::-;9076:1;9059:19;;:5;:19;;;;9051:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9157:1;9138:21;;:7;:21;;;;9130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9241:6;9211:11;:18;9223:5;9211:18;;;;;;;;;;;;;;;:27;9230:7;9211:27;;;;;;;;;;;;;;;:36;;;;9279:7;9263:32;;9272:5;9263:32;;;9288:6;9263:32;;;;;;:::i;:::-;;;;;;;;8966:337;;;:::o;774:98::-;827:7;854:10;847:17;;774:98;:::o;9311:3292::-;9428:1;9410:20;;:6;:20;;;;9402:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9512:1;9491:23;;:9;:23;;;;9483:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9582:1;9573:6;:10;9565:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9651:7;;;;;;;;;;;9647:104;;9668:18;:26;9687:6;9668:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9698:18;:29;9717:9;9698:29;;;;;;;;;;;;;;;;;;;;;;;;;9668:59;9660:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;9647:104;9765:7;;;;;;;;;;;9764:8;:38;;;;;9789:13;;;;;;;;;;;9776:26;;:9;:26;;;;9764:38;:65;;;;;9816:13;;;;;;;;;;;9806:23;;:6;:23;;;;9764:65;9761:135;;;9840:17;;;;;;;;;;;9832:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9761:135;9908:15;9926:4;9908:22;;9962:13;;;;;;;;;;;9949:26;;:9;:26;;;:47;;;;;9989:7;:5;:7::i;:::-;9979:17;;:6;:17;;;9949:47;9945:230;;;10036:6;10015:9;:17;10025:6;10015:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;10081:6;10057:9;:20;10067:9;10057:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10124:9;10107:35;;10116:6;10107:35;;;10135:6;10107:35;;;;;;:::i;:::-;;;;;;;;10157:7;;;9945:230;10236:13;;;;;;;;;;;10223:26;;:9;:26;;;:57;;;;;10254:18;:26;10273:6;10254:26;;;;;;;;;;;;;;;;;;;;;;;;;10253:27;10223:57;:78;;;;;10294:7;:5;:7::i;:::-;10284:17;;:6;:17;;;;10223:78;10220:362;;;10341:14;;10331:6;:24;;10323:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10423:4;10410:10;;:17;;;;;;;;;;;;;;;;;;10466:9;;;;;;;;;;;:48;;;;;10507:7;;10479:24;10497:4;10479:9;:24::i;:::-;:35;;10466:48;10463:106;;;10540:9;:7;:9::i;:::-;10463:106;10220:362;10638:13;;;;;;;;;;;10628:23;;:6;:23;;;:57;;;;;10656:18;:29;10675:9;10656:29;;;;;;;;;;;;;;;;;;;;;;;;;10655:30;10628:57;:81;;;;;10702:7;:5;:7::i;:::-;10689:20;;:9;:20;;;;10628:81;10625:212;;;10765:13;;10755:6;:23;;10747:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10625:212;10853:18;:26;10872:6;10853:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;10883:18;:29;10902:9;10883:29;;;;;;;;;;;;;;;;;;;;;;;;;10853:59;10849:88;;;10929:5;10916:18;;10849:88;10964:13;;;;;;;;;;;10951:26;;:9;:26;;;;:53;;;;;10991:13;;;;;;;;;;;10981:23;;:6;:23;;;;10951:53;10947:82;;;11021:5;11008:18;;10947:82;11045:10;11041:1555;;;11082:10;;;;;;;;;;;11078:1270;;11118:22;11168:3;11152:13;;11143:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11118:53;;11194:22;11228:14;11219:6;:23;;;;:::i;:::-;11194:48;;11335:44;11364:14;11335:9;:24;11353:4;11335:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11308:9;:24;11326:4;11308:24;;;;;;;;;;;;;;;:71;;;;11422:29;11444:6;11422:9;:17;11432:6;11422:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11402:9;:17;11412:6;11402:17;;;;;;;;;;;;;;;:49;;;;11497:40;11522:14;11497:9;:20;11507:9;11497:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11474:9;:20;11484:9;11474:20;;;;;;;;;;;;;;;:63;;;;11584:9;11567:43;;11576:6;11567:43;;;11595:14;11567:43;;;;;;:::i;:::-;;;;;;;;11663:4;11638:47;;11647:6;11638:47;;;11670:14;11638:47;;;;;;:::i;:::-;;;;;;;;11078:1270;;;;;11736:22;11787:3;11770:14;;11761:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11736:54;;11813:22;11847:14;11838:6;:23;;;;:::i;:::-;11813:48;;11935:44;11964:14;11935:9;:24;11953:4;11935:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11908:9;:24;11926:4;11908:24;;;;;;;;;;;;;;;:71;;;;12022:29;12044:6;12022:9;:17;12032:6;12022:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12002:9;:17;12012:6;12002:17;;;;;;;;;;;;;;;:49;;;;12097:40;12122:14;12097:9;:20;12107:9;12097:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12074:9;:20;12084:9;12074:20;;;;;;;;;;;;;;;:63;;;;12184:9;12167:43;;12176:6;12167:43;;;12195:14;12167:43;;;;;;:::i;:::-;;;;;;;;12263:4;12238:47;;12247:6;12238:47;;;12270:14;12238:47;;;;;;:::i;:::-;;;;;;;;12323:5;12310:10;;:18;;;;;;;;;;;;;;;;;;11078:1270;;;11041:1555;;;12418:29;12440:6;12418:9;:17;12428:6;12418:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12398:9;:17;12408:6;12398:17;;;;;;;;;;;;;;;:49;;;;12489:32;12514:6;12489:9;:20;12499:9;12489:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12466:9;:20;12476:9;12466:20;;;;;;;;;;;;;;;:55;;;;12564:9;12547:35;;12556:6;12547:35;;;12575:6;12547:35;;;;;;:::i;:::-;;;;;;;;11041:1555;9311:3292;;;;;:::o;2976:173::-;3032:16;3051:6;;;;;;;;;;;3032:25;;3077:8;3068:6;;:17;;;;;;;;;;;;;;;;;;3132:8;3101:40;;3122:8;3101:40;;;;;;;;;;;;2976:173;;:::o;13298:848::-;13338:28;13369:24;13387:4;13369:9;:24::i;:::-;13338:55;;13432:1;13409:20;:24;13406:719;;;13455:10;;;;;;;;;;;13452:566;;;13513:1;13490:20;:24;13487:514;;;13560:17;13622:3;13607:12;;13580:24;13598:4;13580:9;:24::i;:::-;:39;;;;:::i;:::-;:45;;;;:::i;:::-;13560:65;;13650:14;13667:9;13650:26;;13701:24;13718:6;13701:16;:24::i;:::-;13750:23;13776:21;13750:47;;13844:1;13826:15;:19;13822:66;;;13856:3;;;;;;;;;;;13848:21;;:38;13870:15;13848:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13822:66;13487:514;;;;;;13938:43;;;;;;;;;;:::i;:::-;;;;;;;;13487:514;13452:566;13406:719;;;14051:44;;;;;;;;;;:::i;:::-;;;;;;;;13406:719;13298:848;:::o;1028:179::-;1086:7;1106:9;1122:1;1118;:5;;;;:::i;:::-;1106:17;;1147:1;1142;:6;;1134:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1198:1;1191:8;;;1028:179;;;;:::o;1216:136::-;1274:7;1301:43;1305:1;1308;1301:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1294:50;;1216:136;;;;:::o;12613:675::-;12747:21;12785:1;12771:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12747:40;;12816:4;12798;12803:1;12798:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12842:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12832:4;12837:1;12832:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;12942:62;12959:4;12974:15;;;;;;;;;;;12992:11;12942:8;:62::i;:::-;13043:15;;;;;;;;;;;:66;;;13124:11;13150:1;13207:4;13234;13254:15;13043:237;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12613:675;;:::o;1361:224::-;1481:7;1514:1;1509;:6;;1517:12;1501:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1541:9;1557:1;1553;:5;;;;:::i;:::-;1541:17;;1576:1;1569:8;;;1361:224;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:139::-;;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;492:87;;;;:::o;585:262::-;;693:2;681:9;672:7;668:23;664:32;661:2;;;709:1;706;699:12;661:2;752:1;777:53;822:7;813:6;802:9;798:22;777:53;:::i;:::-;767:63;;723:117;651:196;;;;:::o;853:284::-;;972:2;960:9;951:7;947:23;943:32;940:2;;;988:1;985;978:12;940:2;1031:1;1056:64;1112:7;1103:6;1092:9;1088:22;1056:64;:::i;:::-;1046:74;;1002:128;930:207;;;;:::o;1143:407::-;;;1268:2;1256:9;1247:7;1243:23;1239:32;1236:2;;;1284:1;1281;1274:12;1236:2;1327:1;1352:53;1397:7;1388:6;1377:9;1373:22;1352:53;:::i;:::-;1342:63;;1298:117;1454:2;1480:53;1525:7;1516:6;1505:9;1501:22;1480:53;:::i;:::-;1470:63;;1425:118;1226:324;;;;;:::o;1556:552::-;;;;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1714:1;1711;1704:12;1666:2;1757:1;1782:53;1827:7;1818:6;1807:9;1803:22;1782:53;:::i;:::-;1772:63;;1728:117;1884:2;1910:53;1955:7;1946:6;1935:9;1931:22;1910:53;:::i;:::-;1900:63;;1855:118;2012:2;2038:53;2083:7;2074:6;2063:9;2059:22;2038:53;:::i;:::-;2028:63;;1983:118;1656:452;;;;;:::o;2114:407::-;;;2239:2;2227:9;2218:7;2214:23;2210:32;2207:2;;;2255:1;2252;2245:12;2207:2;2298:1;2323:53;2368:7;2359:6;2348:9;2344:22;2323:53;:::i;:::-;2313:63;;2269:117;2425:2;2451:53;2496:7;2487:6;2476:9;2472:22;2451:53;:::i;:::-;2441:63;;2396:118;2197:324;;;;;:::o;2527:256::-;;2632:2;2620:9;2611:7;2607:23;2603:32;2600:2;;;2648:1;2645;2638:12;2600:2;2691:1;2716:50;2758:7;2749:6;2738:9;2734:22;2716:50;:::i;:::-;2706:60;;2662:114;2590:193;;;;:::o;2789:262::-;;2897:2;2885:9;2876:7;2872:23;2868:32;2865:2;;;2913:1;2910;2903:12;2865:2;2956:1;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2927:117;2855:196;;;;:::o;3057:552::-;;;;3199:2;3187:9;3178:7;3174:23;3170:32;3167:2;;;3215:1;3212;3205:12;3167:2;3258:1;3283:53;3328:7;3319:6;3308:9;3304:22;3283:53;:::i;:::-;3273:63;;3229:117;3385:2;3411:53;3456:7;3447:6;3436:9;3432:22;3411:53;:::i;:::-;3401:63;;3356:118;3513:2;3539:53;3584:7;3575:6;3564:9;3560:22;3539:53;:::i;:::-;3529:63;;3484:118;3157:452;;;;;:::o;3615:179::-;;3705:46;3747:3;3739:6;3705:46;:::i;:::-;3783:4;3778:3;3774:14;3760:28;;3695:99;;;;:::o;3800:108::-;3877:24;3895:5;3877:24;:::i;:::-;3872:3;3865:37;3855:53;;:::o;3914:118::-;4001:24;4019:5;4001:24;:::i;:::-;3996:3;3989:37;3979:53;;:::o;4068:732::-;;4216:54;4264:5;4216:54;:::i;:::-;4286:86;4365:6;4360:3;4286:86;:::i;:::-;4279:93;;4396:56;4446:5;4396:56;:::i;:::-;4475:7;4506:1;4491:284;4516:6;4513:1;4510:13;4491:284;;;4592:6;4586:13;4619:63;4678:3;4663:13;4619:63;:::i;:::-;4612:70;;4705:60;4758:6;4705:60;:::i;:::-;4695:70;;4551:224;4538:1;4535;4531:9;4526:14;;4491:284;;;4495:14;4791:3;4784:10;;4192:608;;;;;;;:::o;4806:109::-;4887:21;4902:5;4887:21;:::i;:::-;4882:3;4875:34;4865:50;;:::o;4921:183::-;5034:63;5091:5;5034:63;:::i;:::-;5029:3;5022:76;5012:92;;:::o;5110:147::-;5205:45;5244:5;5205:45;:::i;:::-;5200:3;5193:58;5183:74;;:::o;5263:364::-;;5379:39;5412:5;5379:39;:::i;:::-;5434:71;5498:6;5493:3;5434:71;:::i;:::-;5427:78;;5514:52;5559:6;5554:3;5547:4;5540:5;5536:16;5514:52;:::i;:::-;5591:29;5613:6;5591:29;:::i;:::-;5586:3;5582:39;5575:46;;5355:272;;;;;:::o;5633:326::-;;5796:67;5860:2;5855:3;5796:67;:::i;:::-;5789:74;;5893:30;5889:1;5884:3;5880:11;5873:51;5950:2;5945:3;5941:12;5934:19;;5779:180;;;:::o;5965:367::-;;6128:67;6192:2;6187:3;6128:67;:::i;:::-;6121:74;;6225:34;6221:1;6216:3;6212:11;6205:55;6291:5;6286:2;6281:3;6277:12;6270:27;6323:2;6318:3;6314:12;6307:19;;6111:221;;;:::o;6338:370::-;;6501:67;6565:2;6560:3;6501:67;:::i;:::-;6494:74;;6598:34;6594:1;6589:3;6585:11;6578:55;6664:8;6659:2;6654:3;6650:12;6643:30;6699:2;6694:3;6690:12;6683:19;;6484:224;;;:::o;6714:369::-;;6877:67;6941:2;6936:3;6877:67;:::i;:::-;6870:74;;6974:34;6970:1;6965:3;6961:11;6954:55;7040:7;7035:2;7030:3;7026:12;7019:29;7074:2;7069:3;7065:12;7058:19;;6860:223;;;:::o;7089:325::-;;7252:67;7316:2;7311:3;7252:67;:::i;:::-;7245:74;;7349:29;7345:1;7340:3;7336:11;7329:50;7405:2;7400:3;7396:12;7389:19;;7235:179;;;:::o;7420:380::-;;7583:67;7647:2;7642:3;7583:67;:::i;:::-;7576:74;;7680:34;7676:1;7671:3;7667:11;7660:55;7746:18;7741:2;7736:3;7732:12;7725:40;7791:2;7786:3;7782:12;7775:19;;7566:234;;;:::o;7806:365::-;;7969:67;8033:2;8028:3;7969:67;:::i;:::-;7962:74;;8066:34;8062:1;8057:3;8053:11;8046:55;8132:3;8127:2;8122:3;8118:12;8111:25;8162:2;8157:3;8153:12;8146:19;;7952:219;;;:::o;8177:327::-;;8340:67;8404:2;8399:3;8340:67;:::i;:::-;8333:74;;8437:31;8433:1;8428:3;8424:11;8417:52;8495:2;8490:3;8486:12;8479:19;;8323:181;;;:::o;8510:319::-;;8673:67;8737:2;8732:3;8673:67;:::i;:::-;8666:74;;8770:23;8766:1;8761:3;8757:11;8750:44;8820:2;8815:3;8811:12;8804:19;;8656:173;;;:::o;8835:330::-;;8998:67;9062:2;9057:3;8998:67;:::i;:::-;8991:74;;9095:34;9091:1;9086:3;9082:11;9075:55;9156:2;9151:3;9147:12;9140:19;;8981:184;;;:::o;9171:366::-;;9334:67;9398:2;9393:3;9334:67;:::i;:::-;9327:74;;9431:34;9427:1;9422:3;9418:11;9411:55;9497:4;9492:2;9487:3;9483:12;9476:26;9528:2;9523:3;9519:12;9512:19;;9317:220;;;:::o;9543:380::-;;9706:67;9770:2;9765:3;9706:67;:::i;:::-;9699:74;;9803:34;9799:1;9794:3;9790:11;9783:55;9869:18;9864:2;9859:3;9855:12;9848:40;9914:2;9909:3;9905:12;9898:19;;9689:234;;;:::o;9929:368::-;;10092:67;10156:2;10151:3;10092:67;:::i;:::-;10085:74;;10189:34;10185:1;10180:3;10176:11;10169:55;10255:6;10250:2;10245:3;10241:12;10234:28;10288:2;10283:3;10279:12;10272:19;;10075:222;;;:::o;10303:330::-;;10466:67;10530:2;10525:3;10466:67;:::i;:::-;10459:74;;10563:34;10559:1;10554:3;10550:11;10543:55;10624:2;10619:3;10615:12;10608:19;;10449:184;;;:::o;10639:389::-;;10802:67;10866:2;10861:3;10802:67;:::i;:::-;10795:74;;10899:34;10895:1;10890:3;10886:11;10879:55;10965:27;10960:2;10955:3;10951:12;10944:49;11019:2;11014:3;11010:12;11003:19;;10785:243;;;:::o;11034:315::-;;11197:67;11261:2;11256:3;11197:67;:::i;:::-;11190:74;;11294:19;11290:1;11285:3;11281:11;11274:40;11340:2;11335:3;11331:12;11324:19;;11180:169;;;:::o;11355:366::-;;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11615:34;11611:1;11606:3;11602:11;11595:55;11681:4;11676:2;11671:3;11667:12;11660:26;11712:2;11707:3;11703:12;11696:19;;11501:220;;;:::o;11727:118::-;11814:24;11832:5;11814:24;:::i;:::-;11809:3;11802:37;11792:53;;:::o;11851:112::-;11934:22;11950:5;11934:22;:::i;:::-;11929:3;11922:35;11912:51;;:::o;11969:222::-;;12100:2;12089:9;12085:18;12077:26;;12113:71;12181:1;12170:9;12166:17;12157:6;12113:71;:::i;:::-;12067:124;;;;:::o;12197:210::-;;12322:2;12311:9;12307:18;12299:26;;12335:65;12397:1;12386:9;12382:17;12373:6;12335:65;:::i;:::-;12289:118;;;;:::o;12413:274::-;;12570:2;12559:9;12555:18;12547:26;;12583:97;12677:1;12666:9;12662:17;12653:6;12583:97;:::i;:::-;12537:150;;;;:::o;12693:313::-;;12844:2;12833:9;12829:18;12821:26;;12893:9;12887:4;12883:20;12879:1;12868:9;12864:17;12857:47;12921:78;12994:4;12985:6;12921:78;:::i;:::-;12913:86;;12811:195;;;;:::o;13012:419::-;;13216:2;13205:9;13201:18;13193:26;;13265:9;13259:4;13255:20;13251:1;13240:9;13236:17;13229:47;13293:131;13419:4;13293:131;:::i;:::-;13285:139;;13183:248;;;:::o;13437:419::-;;13641:2;13630:9;13626:18;13618:26;;13690:9;13684:4;13680:20;13676:1;13665:9;13661:17;13654:47;13718:131;13844:4;13718:131;:::i;:::-;13710:139;;13608:248;;;:::o;13862:419::-;;14066:2;14055:9;14051:18;14043:26;;14115:9;14109:4;14105:20;14101:1;14090:9;14086:17;14079:47;14143:131;14269:4;14143:131;:::i;:::-;14135:139;;14033:248;;;:::o;14287:419::-;;14491:2;14480:9;14476:18;14468:26;;14540:9;14534:4;14530:20;14526:1;14515:9;14511:17;14504:47;14568:131;14694:4;14568:131;:::i;:::-;14560:139;;14458:248;;;:::o;14712:419::-;;14916:2;14905:9;14901:18;14893:26;;14965:9;14959:4;14955:20;14951:1;14940:9;14936:17;14929:47;14993:131;15119:4;14993:131;:::i;:::-;14985:139;;14883:248;;;:::o;15137:419::-;;15341:2;15330:9;15326:18;15318:26;;15390:9;15384:4;15380:20;15376:1;15365:9;15361:17;15354:47;15418:131;15544:4;15418:131;:::i;:::-;15410:139;;15308:248;;;:::o;15562:419::-;;15766:2;15755:9;15751:18;15743:26;;15815:9;15809:4;15805:20;15801:1;15790:9;15786:17;15779:47;15843:131;15969:4;15843:131;:::i;:::-;15835:139;;15733:248;;;:::o;15987:419::-;;16191:2;16180:9;16176:18;16168:26;;16240:9;16234:4;16230:20;16226:1;16215:9;16211:17;16204:47;16268:131;16394:4;16268:131;:::i;:::-;16260:139;;16158:248;;;:::o;16412:419::-;;16616:2;16605:9;16601:18;16593:26;;16665:9;16659:4;16655:20;16651:1;16640:9;16636:17;16629:47;16693:131;16819:4;16693:131;:::i;:::-;16685:139;;16583:248;;;:::o;16837:419::-;;17041:2;17030:9;17026:18;17018:26;;17090:9;17084:4;17080:20;17076:1;17065:9;17061:17;17054:47;17118:131;17244:4;17118:131;:::i;:::-;17110:139;;17008:248;;;:::o;17262:419::-;;17466:2;17455:9;17451:18;17443:26;;17515:9;17509:4;17505:20;17501:1;17490:9;17486:17;17479:47;17543:131;17669:4;17543:131;:::i;:::-;17535:139;;17433:248;;;:::o;17687:419::-;;17891:2;17880:9;17876:18;17868:26;;17940:9;17934:4;17930:20;17926:1;17915:9;17911:17;17904:47;17968:131;18094:4;17968:131;:::i;:::-;17960:139;;17858:248;;;:::o;18112:419::-;;18316:2;18305:9;18301:18;18293:26;;18365:9;18359:4;18355:20;18351:1;18340:9;18336:17;18329:47;18393:131;18519:4;18393:131;:::i;:::-;18385:139;;18283:248;;;:::o;18537:419::-;;18741:2;18730:9;18726:18;18718:26;;18790:9;18784:4;18780:20;18776:1;18765:9;18761:17;18754:47;18818:131;18944:4;18818:131;:::i;:::-;18810:139;;18708:248;;;:::o;18962:419::-;;19166:2;19155:9;19151:18;19143:26;;19215:9;19209:4;19205:20;19201:1;19190:9;19186:17;19179:47;19243:131;19369:4;19243:131;:::i;:::-;19235:139;;19133:248;;;:::o;19387:419::-;;19591:2;19580:9;19576:18;19568:26;;19640:9;19634:4;19630:20;19626:1;19615:9;19611:17;19604:47;19668:131;19794:4;19668:131;:::i;:::-;19660:139;;19558:248;;;:::o;19812:419::-;;20016:2;20005:9;20001:18;19993:26;;20065:9;20059:4;20055:20;20051:1;20040:9;20036:17;20029:47;20093:131;20219:4;20093:131;:::i;:::-;20085:139;;19983:248;;;:::o;20237:222::-;;20368:2;20357:9;20353:18;20345:26;;20381:71;20449:1;20438:9;20434:17;20425:6;20381:71;:::i;:::-;20335:124;;;;:::o;20465:831::-;;20766:3;20755:9;20751:19;20743:27;;20780:71;20848:1;20837:9;20833:17;20824:6;20780:71;:::i;:::-;20861:80;20937:2;20926:9;20922:18;20913:6;20861:80;:::i;:::-;20988:9;20982:4;20978:20;20973:2;20962:9;20958:18;20951:48;21016:108;21119:4;21110:6;21016:108;:::i;:::-;21008:116;;21134:72;21202:2;21191:9;21187:18;21178:6;21134:72;:::i;:::-;21216:73;21284:3;21273:9;21269:19;21260:6;21216:73;:::i;:::-;20733:563;;;;;;;;:::o;21302:442::-;;21489:2;21478:9;21474:18;21466:26;;21502:71;21570:1;21559:9;21555:17;21546:6;21502:71;:::i;:::-;21583:72;21651:2;21640:9;21636:18;21627:6;21583:72;:::i;:::-;21665;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21456:288;;;;;;:::o;21750:553::-;;21965:3;21954:9;21950:19;21942:27;;21979:71;22047:1;22036:9;22032:17;22023:6;21979:71;:::i;:::-;22060:72;22128:2;22117:9;22113:18;22104:6;22060:72;:::i;:::-;22142;22210:2;22199:9;22195:18;22186:6;22142:72;:::i;:::-;22224;22292:2;22281:9;22277:18;22268:6;22224:72;:::i;:::-;21932:371;;;;;;;:::o;22309:214::-;;22436:2;22425:9;22421:18;22413:26;;22449:67;22513:1;22502:9;22498:17;22489:6;22449:67;:::i;:::-;22403:120;;;;:::o;22529:132::-;;22619:3;22611:11;;22649:4;22644:3;22640:14;22632:22;;22601:60;;;:::o;22667:114::-;;22768:5;22762:12;22752:22;;22741:40;;;:::o;22787:99::-;;22873:5;22867:12;22857:22;;22846:40;;;:::o;22892:113::-;;22994:4;22989:3;22985:14;22977:22;;22967:38;;;:::o;23011:184::-;;23144:6;23139:3;23132:19;23184:4;23179:3;23175:14;23160:29;;23122:73;;;;:::o;23201:169::-;;23319:6;23314:3;23307:19;23359:4;23354:3;23350:14;23335:29;;23297:73;;;;:::o;23376:305::-;;23435:20;23453:1;23435:20;:::i;:::-;23430:25;;23469:20;23487:1;23469:20;:::i;:::-;23464:25;;23623:1;23555:66;23551:74;23548:1;23545:81;23542:2;;;23629:18;;:::i;:::-;23542:2;23673:1;23670;23666:9;23659:16;;23420:261;;;;:::o;23687:185::-;;23744:20;23762:1;23744:20;:::i;:::-;23739:25;;23778:20;23796:1;23778:20;:::i;:::-;23773:25;;23817:1;23807:2;;23822:18;;:::i;:::-;23807:2;23864:1;23861;23857:9;23852:14;;23729:143;;;;:::o;23878:848::-;;;23970:6;23961:15;;23994:5;23985:14;;24008:712;24029:1;24019:8;24016:15;24008:712;;;24124:4;24119:3;24115:14;24109:4;24106:24;24103:2;;;24133:18;;:::i;:::-;24103:2;24183:1;24173:8;24169:16;24166:2;;;24598:4;24591:5;24587:16;24578:25;;24166:2;24648:4;24642;24638:15;24630:23;;24678:32;24701:8;24678:32;:::i;:::-;24666:44;;24008:712;;;23951:775;;;;;;;:::o;24732:281::-;;24814:23;24832:4;24814:23;:::i;:::-;24806:31;;24858:25;24874:8;24858:25;:::i;:::-;24846:37;;24902:104;24939:66;24929:8;24923:4;24902:104;:::i;:::-;24893:113;;24796:217;;;;:::o;25019:1073::-;;25264:8;25254:2;;25285:1;25276:10;;25287:5;;25254:2;25313:4;25303:2;;25330:1;25321:10;;25332:5;;25303:2;25399:4;25447:1;25442:27;;;;25483:1;25478:191;;;;25392:277;;25442:27;25460:1;25451:10;;25462:5;;;25478:191;25523:3;25513:8;25510:17;25507:2;;;25530:18;;:::i;:::-;25507:2;25579:8;25576:1;25572:16;25563:25;;25614:3;25607:5;25604:14;25601:2;;;25621:18;;:::i;:::-;25601:2;25654:5;;;25392:277;;25778:2;25768:8;25765:16;25759:3;25753:4;25750:13;25746:36;25728:2;25718:8;25715:16;25710:2;25704:4;25701:12;25697:35;25681:111;25678:2;;;25834:8;25828:4;25824:19;25815:28;;25869:3;25862:5;25859:14;25856:2;;;25876:18;;:::i;:::-;25856:2;25909:5;;25678:2;25949:42;25987:3;25977:8;25971:4;25968:1;25949:42;:::i;:::-;25934:57;;;;26023:4;26018:3;26014:14;26007:5;26004:25;26001:2;;;26032:18;;:::i;:::-;26001:2;26081:4;26074:5;26070:16;26061:25;;25079:1013;;;;;;:::o;26098:348::-;;26161:20;26179:1;26161:20;:::i;:::-;26156:25;;26195:20;26213:1;26195:20;:::i;:::-;26190:25;;26383:1;26315:66;26311:74;26308:1;26305:81;26300:1;26293:9;26286:17;26282:105;26279:2;;;26390:18;;:::i;:::-;26279:2;26438:1;26435;26431:9;26420:20;;26146:300;;;;:::o;26452:191::-;;26512:20;26530:1;26512:20;:::i;:::-;26507:25;;26546:20;26564:1;26546:20;:::i;:::-;26541:25;;26585:1;26582;26579:8;26576:2;;;26590:18;;:::i;:::-;26576:2;26635:1;26632;26628:9;26620:17;;26497:146;;;;:::o;26649:96::-;;26715:24;26733:5;26715:24;:::i;:::-;26704:35;;26694:51;;;:::o;26751:90::-;;26828:5;26821:13;26814:21;26803:32;;26793:48;;;:::o;26847:126::-;;26924:42;26917:5;26913:54;26902:65;;26892:81;;;:::o;26979:77::-;;27045:5;27034:16;;27024:32;;;:::o;27062:86::-;;27137:4;27130:5;27126:16;27115:27;;27105:43;;;:::o;27154:178::-;;27263:63;27320:5;27263:63;:::i;:::-;27250:76;;27240:92;;;:::o;27338:139::-;;27447:24;27465:5;27447:24;:::i;:::-;27434:37;;27424:53;;;:::o;27483:121::-;;27574:24;27592:5;27574:24;:::i;:::-;27561:37;;27551:53;;;:::o;27610:307::-;27678:1;27688:113;27702:6;27699:1;27696:13;27688:113;;;27787:1;27782:3;27778:11;27772:18;27768:1;27763:3;27759:11;27752:39;27724:2;27721:1;27717:10;27712:15;;27688:113;;;27819:6;27816:1;27813:13;27810:2;;;27899:1;27890:6;27885:3;27881:16;27874:27;27810:2;27659:258;;;;:::o;27923:180::-;27971:77;27968:1;27961:88;28068:4;28065:1;28058:15;28092:4;28089:1;28082:15;28109:180;28157:77;28154:1;28147:88;28254:4;28251:1;28244:15;28278:4;28275:1;28268:15;28295:102;;28387:2;28383:7;28378:2;28371:5;28367:14;28363:28;28353:38;;28343:54;;;:::o;28403:102::-;;28492:5;28489:1;28485:13;28464:34;;28454:51;;;:::o;28511:122::-;28584:24;28602:5;28584:24;:::i;:::-;28577:5;28574:35;28564:2;;28623:1;28620;28613:12;28564:2;28554:79;:::o;28639:116::-;28709:21;28724:5;28709:21;:::i;:::-;28702:5;28699:32;28689:2;;28745:1;28742;28735:12;28689:2;28679:76;:::o;28761:122::-;28834:24;28852:5;28834:24;:::i;:::-;28827:5;28824:35;28814:2;;28873:1;28870;28863:12;28814:2;28804:79;:::o

Swarm Source

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