ETH Price: $3,347.00 (-0.98%)

Token

CryptoLodeon (CLODE)
 

Overview

Max Total Supply

10,000,000 CLODE

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
498,160.440424912 CLODE

Value
$0.00
0x302eadcedb5a878e577d21b9bcc1ca81f05db70e
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:
CryptoLodeon

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-17
*/

/*    https://t.me/cryptolodeon_eth
*/


// SPDX-License-Identifier: Unlicensed

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

}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
} 

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function 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 CryptoLodeon is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e4 * 1e9; //10,000,000
    uint256 public _maxWalletSize;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _sellTax;
    uint256 private _buyTax;
    uint256 public SWAPamount = 7 * 1e4 * 1e9; // .7%
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private dev;

    event maxWalletSizeamountUpdated(uint _maxWalletSize);
    event SWAPamountUpdated(uint SWAPamount);

    string private constant _name = "CryptoLodeon";
    string private constant _symbol = "CLODE";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
   
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        dev = payable(0x8cE83bC1D5cE8777fDEF394a0a12e248Af86923E);

        _rOwned[address(this)] = _rTotal;
        _sellTax =25;
        _buyTax = 5;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[dev] = true;
        _isExcludedFromFee[address(0)] = true;


        emit Transfer(address(0), address(this), _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 tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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(!bots[from] && !bots[to]);
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if (! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) {
            _feeAddr1 = 0;
            _feeAddr2 = _buyTax;
        }

        if (to != uniswapV2Pair && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]) {
            require(amount + balanceOf(to) <= _maxWalletSize, "Over max wallet size.");
        }
        

        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _sellTax;
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            _feeAddr1 = 0;
            _feeAddr2 = 0;
        }

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

    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 updateFees(uint256 sellTax, uint256 reflections, uint256 buyTax) external onlyOwner {
        _feeAddr1 = reflections;
        _sellTax = sellTax;
        _buyTax = buyTax;
        require(reflections <= 5, "Must keep fees at 5% or less");
        require(sellTax <= 10, "Must keep fees at 18% or less");
        require(buyTax <= 10, "Must keep fees at 10% or less");
    }
    
    function liftMax() external {
        require(_msgSender() == dev);
        _maxWalletSize = _tTotal;
        
    }

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

    function updateSWAPamount(uint256 newNum) external {
        require(_msgSender() == dev);
        SWAPamount = newNum;
    }

    function updateMaxWalletamount(uint256 newNum) external onlyOwner {
        _maxWalletSize = newNum;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        _maxWalletSize = 20 * 1e4 * 1e9; //2%

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == dev);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == dev);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"SWAPamount","type":"uint256"}],"name":"SWAPamountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWalletSize","type":"uint256"}],"name":"maxWalletSizeamountUpdated","type":"event"},{"inputs":[],"name":"SWAPamount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liftMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTax","type":"uint256"},{"internalType":"uint256","name":"reflections","type":"uint256"},{"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletamount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateSWAPamount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052662386f26fc100006000196200001b9190620004b4565b6000196200002a91906200046f565b600755653faa25226000600b556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055503480156200007a57600080fd5b506200009b6200008f6200034c60201b60201c565b6200035460201b60201c565b738ce83bc1d5ce8777fdef394a0a12e248af86923e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060196009819055506005600a819055506001600460006200015c6200041860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200033e919062000452565b60405180910390a36200054a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044c81620004aa565b82525050565b600060208201905062000469600083018462000441565b92915050565b60006200047c82620004aa565b91506200048983620004aa565b9250828210156200049f576200049e620004ec565b5b828203905092915050565b6000819050919050565b6000620004c182620004aa565b9150620004ce83620004aa565b925082620004e157620004e06200051b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61383f806200055a6000396000f3fe6080604052600436106101445760003560e01c8063753e3aa9116100b6578063c3c8cd801161006f578063c3c8cd8014610443578063c9567bf91461045a578063dd62ed3e14610471578063e13071d7146104ae578063ea3105d9146104d7578063f2fde38b146104ee5761014b565b8063753e3aa9146103335780638da5cb5b1461035c5780638f9a55c01461038757806395d89b41146103b2578063a9059cbb146103dd578063b515566a1461041a5761014b565b8063273123b711610108578063273123b714610249578063313ce567146102725780635cbde1501461029d5780636fc3eaec146102c857806370a08231146102df578063715018a61461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806322429085146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610517565b6040516101729190612ea1565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061295f565b610554565b6040516101af9190612e86565b60405180910390f35b3480156101c457600080fd5b506101cd610572565b6040516101da9190613063565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612a42565b610581565b005b34801561021857600080fd5b50610233600480360381019061022e919061290c565b6106e3565b6040516102409190612e86565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612872565b6107bc565b005b34801561027e57600080fd5b50610287610893565b60405161029491906130d8565b60405180910390f35b3480156102a957600080fd5b506102b261089c565b6040516102bf9190613063565b60405180910390f35b3480156102d457600080fd5b506102dd6108a2565b005b3480156102eb57600080fd5b5061030660048036038101906103019190612872565b610914565b6040516103139190613063565b60405180910390f35b34801561032857600080fd5b50610331610965565b005b34801561033f57600080fd5b5061035a60048036038101906103559190612a15565b6109ed565b005b34801561036857600080fd5b50610371610a73565b60405161037e9190612db8565b60405180910390f35b34801561039357600080fd5b5061039c610a9c565b6040516103a99190613063565b60405180910390f35b3480156103be57600080fd5b506103c7610aa2565b6040516103d49190612ea1565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061295f565b610adf565b6040516104119190612e86565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c919061299f565b610afd565b005b34801561044f57600080fd5b50610458610c0e565b005b34801561046657600080fd5b5061046f610c88565b005b34801561047d57600080fd5b50610498600480360381019061049391906128cc565b6111ac565b6040516104a59190613063565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190612a15565b611233565b005b3480156104e357600080fd5b506104ec61129e565b005b3480156104fa57600080fd5b5061051560048036038101906105109190612872565b61130f565b005b60606040518060400160405280600c81526020017f43727970746f4c6f64656f6e0000000000000000000000000000000000000000815250905090565b6000610568610561611407565b848461140f565b6001905092915050565b6000662386f26fc10000905090565b610589611407565b73ffffffffffffffffffffffffffffffffffffffff166105a7610a73565b73ffffffffffffffffffffffffffffffffffffffff16146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612f83565b60405180910390fd5b81600c819055508260098190555080600a819055506005821115610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064d90612fc3565b60405180910390fd5b600a83111561069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190613003565b60405180910390fd5b600a8111156106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d590612ec3565b60405180910390fd5b505050565b60006106f08484846115da565b6107b1846106fc611407565b6107ac856040518060600160405280602881526020016137e260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610762611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c319092919063ffffffff16565b61140f565b600190509392505050565b6107c4611407565b73ffffffffffffffffffffffffffffffffffffffff166107e2610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90612f83565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b5481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e3611407565b73ffffffffffffffffffffffffffffffffffffffff161461090357600080fd5b600047905061091181611c95565b50565b600061095e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d01565b9050919050565b61096d611407565b73ffffffffffffffffffffffffffffffffffffffff1661098b610a73565b73ffffffffffffffffffffffffffffffffffffffff16146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890612f83565b60405180910390fd5b6109eb6000611d6f565b565b6109f5611407565b73ffffffffffffffffffffffffffffffffffffffff16610a13610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090612f83565b60405180910390fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f434c4f4445000000000000000000000000000000000000000000000000000000815250905090565b6000610af3610aec611407565b84846115da565b6001905092915050565b610b05611407565b73ffffffffffffffffffffffffffffffffffffffff16610b23610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612f83565b60405180910390fd5b60005b8151811015610c0a57600160056000848481518110610b9e57610b9d613420565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c0290613379565b915050610b7c565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4f611407565b73ffffffffffffffffffffffffffffffffffffffff1614610c6f57600080fd5b6000610c7a30610914565b9050610c8581611e33565b50565b610c90611407565b73ffffffffffffffffffffffffffffffffffffffff16610cae610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612f83565b60405180910390fd5b601060149054906101000a900460ff1615610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90613043565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16662386f26fc1000061140f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2857600080fd5b505afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e60919061289f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec257600080fd5b505afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa919061289f565b6040518363ffffffff1660e01b8152600401610f17929190612dd3565b602060405180830381600087803b158015610f3157600080fd5b505af1158015610f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f69919061289f565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff230610914565b600080610ffd610a73565b426040518863ffffffff1660e01b815260040161101f96959493929190612e25565b6060604051808303818588803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110719190612a95565b5050506001601060166101000a81548160ff02191690831515021790555065b5e620f480006006819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611156929190612dfc565b602060405180830381600087803b15801561117057600080fd5b505af1158015611184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a891906129e8565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611274611407565b73ffffffffffffffffffffffffffffffffffffffff161461129457600080fd5b80600b8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112df611407565b73ffffffffffffffffffffffffffffffffffffffff16146112ff57600080fd5b662386f26fc10000600681905550565b611317611407565b73ffffffffffffffffffffffffffffffffffffffff16611335610a73565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612f83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612f03565b60405180910390fd5b61140481611d6f565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612f23565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115cd9190613063565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561167e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61168757600080fd5b600081116116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612fa3565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561176e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611785576000600c81905550600a54600d819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561182d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118835750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118e15760065461189483610914565b8261189f9190613199565b11156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612fe3565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561198c5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119e25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa657600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a8b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a9457600080fd5b6000600c81905550600954600d819055505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b475750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5d576000600c819055506000600d819055505b6000611b6830610914565b9050601060159054906101000a900460ff16158015611bd55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bed5750601060169054906101000a900460ff165b15611c2057600b54811115611c0657611c0581611e33565b5b60004790506000811115611c1e57611c1d47611c95565b5b505b611c2b8484846120bb565b50505050565b6000838311158290611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c709190612ea1565b60405180910390fd5b5060008385611c88919061327a565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cfd573d6000803e3d6000fd5b5050565b6000600754821115611d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3f90612ee3565b60405180910390fd5b6000611d526120cb565b9050611d6781846120f690919063ffffffff16565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6b57611e6a61344f565b5b604051908082528060200260200182016040528015611e995781602001602082028036833780820191505090505b5090503081600081518110611eb157611eb0613420565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5357600080fd5b505afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b919061289f565b81600181518110611f9f57611f9e613420565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461140f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206a95949392919061307e565b600060405180830381600087803b15801561208457600080fd5b505af1158015612098573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6120c6838383612140565b505050565b60008060006120d861230b565b915091506120ef81836120f690919063ffffffff16565b9250505090565b600061213883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612367565b905092915050565b600080600080600080612152876123ca565b9550955095509550955095506121b086600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243290919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612291816124da565b61229b8483612597565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122f89190613063565b60405180910390a3505050505050505050565b600080600060075490506000662386f26fc10000905061233d662386f26fc100006007546120f690919063ffffffff16565b82101561235a57600754662386f26fc10000935093505050612363565b81819350935050505b9091565b600080831182906123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a59190612ea1565b60405180910390fd5b50600083856123bd91906131ef565b9050809150509392505050565b60008060008060008060008060006123e78a600c54600d546125d1565b92509250925060006123f76120cb565b9050600080600061240a8e878787612667565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061247483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c31565b905092915050565b600080828461248b9190613199565b9050838110156124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c790612f43565b60405180910390fd5b8091505092915050565b60006124e46120cb565b905060006124fb82846126f090919063ffffffff16565b905061254f81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ac8260075461243290919063ffffffff16565b6007819055506125c78160085461247c90919063ffffffff16565b6008819055505050565b6000806000806125fd60646125ef888a6126f090919063ffffffff16565b6120f690919063ffffffff16565b905060006126276064612619888b6126f090919063ffffffff16565b6120f690919063ffffffff16565b9050600061265082612642858c61243290919063ffffffff16565b61243290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061268085896126f090919063ffffffff16565b9050600061269786896126f090919063ffffffff16565b905060006126ae87896126f090919063ffffffff16565b905060006126d7826126c9858761243290919063ffffffff16565b61243290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127035760009050612765565b600082846127119190613220565b905082848261272091906131ef565b14612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790612f63565b60405180910390fd5b809150505b92915050565b600061277e61277984613118565b6130f3565b905080838252602082019050828560208602820111156127a1576127a0613483565b5b60005b858110156127d157816127b788826127db565b8452602084019350602083019250506001810190506127a4565b5050509392505050565b6000813590506127ea8161379c565b92915050565b6000815190506127ff8161379c565b92915050565b600082601f83011261281a5761281961347e565b5b813561282a84826020860161276b565b91505092915050565b600081519050612842816137b3565b92915050565b600081359050612857816137ca565b92915050565b60008151905061286c816137ca565b92915050565b6000602082840312156128885761288761348d565b5b6000612896848285016127db565b91505092915050565b6000602082840312156128b5576128b461348d565b5b60006128c3848285016127f0565b91505092915050565b600080604083850312156128e3576128e261348d565b5b60006128f1858286016127db565b9250506020612902858286016127db565b9150509250929050565b6000806000606084860312156129255761292461348d565b5b6000612933868287016127db565b9350506020612944868287016127db565b925050604061295586828701612848565b9150509250925092565b600080604083850312156129765761297561348d565b5b6000612984858286016127db565b925050602061299585828601612848565b9150509250929050565b6000602082840312156129b5576129b461348d565b5b600082013567ffffffffffffffff8111156129d3576129d2613488565b5b6129df84828501612805565b91505092915050565b6000602082840312156129fe576129fd61348d565b5b6000612a0c84828501612833565b91505092915050565b600060208284031215612a2b57612a2a61348d565b5b6000612a3984828501612848565b91505092915050565b600080600060608486031215612a5b57612a5a61348d565b5b6000612a6986828701612848565b9350506020612a7a86828701612848565b9250506040612a8b86828701612848565b9150509250925092565b600080600060608486031215612aae57612aad61348d565b5b6000612abc8682870161285d565b9350506020612acd8682870161285d565b9250506040612ade8682870161285d565b9150509250925092565b6000612af48383612b00565b60208301905092915050565b612b09816132ae565b82525050565b612b18816132ae565b82525050565b6000612b2982613154565b612b338185613177565b9350612b3e83613144565b8060005b83811015612b6f578151612b568882612ae8565b9750612b618361316a565b925050600181019050612b42565b5085935050505092915050565b612b85816132c0565b82525050565b612b9481613303565b82525050565b6000612ba58261315f565b612baf8185613188565b9350612bbf818560208601613315565b612bc881613492565b840191505092915050565b6000612be0601d83613188565b9150612beb826134a3565b602082019050919050565b6000612c03602a83613188565b9150612c0e826134cc565b604082019050919050565b6000612c26602683613188565b9150612c318261351b565b604082019050919050565b6000612c49602283613188565b9150612c548261356a565b604082019050919050565b6000612c6c601b83613188565b9150612c77826135b9565b602082019050919050565b6000612c8f602183613188565b9150612c9a826135e2565b604082019050919050565b6000612cb2602083613188565b9150612cbd82613631565b602082019050919050565b6000612cd5602983613188565b9150612ce08261365a565b604082019050919050565b6000612cf8601c83613188565b9150612d03826136a9565b602082019050919050565b6000612d1b601583613188565b9150612d26826136d2565b602082019050919050565b6000612d3e601d83613188565b9150612d49826136fb565b602082019050919050565b6000612d61602483613188565b9150612d6c82613724565b604082019050919050565b6000612d84601783613188565b9150612d8f82613773565b602082019050919050565b612da3816132ec565b82525050565b612db2816132f6565b82525050565b6000602082019050612dcd6000830184612b0f565b92915050565b6000604082019050612de86000830185612b0f565b612df56020830184612b0f565b9392505050565b6000604082019050612e116000830185612b0f565b612e1e6020830184612d9a565b9392505050565b600060c082019050612e3a6000830189612b0f565b612e476020830188612d9a565b612e546040830187612b8b565b612e616060830186612b8b565b612e6e6080830185612b0f565b612e7b60a0830184612d9a565b979650505050505050565b6000602082019050612e9b6000830184612b7c565b92915050565b60006020820190508181036000830152612ebb8184612b9a565b905092915050565b60006020820190508181036000830152612edc81612bd3565b9050919050565b60006020820190508181036000830152612efc81612bf6565b9050919050565b60006020820190508181036000830152612f1c81612c19565b9050919050565b60006020820190508181036000830152612f3c81612c3c565b9050919050565b60006020820190508181036000830152612f5c81612c5f565b9050919050565b60006020820190508181036000830152612f7c81612c82565b9050919050565b60006020820190508181036000830152612f9c81612ca5565b9050919050565b60006020820190508181036000830152612fbc81612cc8565b9050919050565b60006020820190508181036000830152612fdc81612ceb565b9050919050565b60006020820190508181036000830152612ffc81612d0e565b9050919050565b6000602082019050818103600083015261301c81612d31565b9050919050565b6000602082019050818103600083015261303c81612d54565b9050919050565b6000602082019050818103600083015261305c81612d77565b9050919050565b60006020820190506130786000830184612d9a565b92915050565b600060a0820190506130936000830188612d9a565b6130a06020830187612b8b565b81810360408301526130b28186612b1e565b90506130c16060830185612b0f565b6130ce6080830184612d9a565b9695505050505050565b60006020820190506130ed6000830184612da9565b92915050565b60006130fd61310e565b90506131098282613348565b919050565b6000604051905090565b600067ffffffffffffffff8211156131335761313261344f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131a4826132ec565b91506131af836132ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131e4576131e36133c2565b5b828201905092915050565b60006131fa826132ec565b9150613205836132ec565b925082613215576132146133f1565b5b828204905092915050565b600061322b826132ec565b9150613236836132ec565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561326f5761326e6133c2565b5b828202905092915050565b6000613285826132ec565b9150613290836132ec565b9250828210156132a3576132a26133c2565b5b828203905092915050565b60006132b9826132cc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061330e826132ec565b9050919050565b60005b83811015613333578082015181840152602081019050613318565b83811115613342576000848401525b50505050565b61335182613492565b810181811067ffffffffffffffff821117156133705761336f61344f565b5b80604052505050565b6000613384826132ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133b7576133b66133c2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b7f4f766572206d61782077616c6c65742073697a652e0000000000000000000000600082015250565b7f4d757374206b656570206665657320617420313825206f72206c657373000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6137a5816132ae565b81146137b057600080fd5b50565b6137bc816132c0565b81146137c757600080fd5b50565b6137d3816132ec565b81146137de57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e56a13ed8808d47dbc986ba6ddb44bbace36d2f333f23b964f678829f5b9b23f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063753e3aa9116100b6578063c3c8cd801161006f578063c3c8cd8014610443578063c9567bf91461045a578063dd62ed3e14610471578063e13071d7146104ae578063ea3105d9146104d7578063f2fde38b146104ee5761014b565b8063753e3aa9146103335780638da5cb5b1461035c5780638f9a55c01461038757806395d89b41146103b2578063a9059cbb146103dd578063b515566a1461041a5761014b565b8063273123b711610108578063273123b714610249578063313ce567146102725780635cbde1501461029d5780636fc3eaec146102c857806370a08231146102df578063715018a61461031c5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b857806322429085146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610517565b6040516101729190612ea1565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d919061295f565b610554565b6040516101af9190612e86565b60405180910390f35b3480156101c457600080fd5b506101cd610572565b6040516101da9190613063565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190612a42565b610581565b005b34801561021857600080fd5b50610233600480360381019061022e919061290c565b6106e3565b6040516102409190612e86565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612872565b6107bc565b005b34801561027e57600080fd5b50610287610893565b60405161029491906130d8565b60405180910390f35b3480156102a957600080fd5b506102b261089c565b6040516102bf9190613063565b60405180910390f35b3480156102d457600080fd5b506102dd6108a2565b005b3480156102eb57600080fd5b5061030660048036038101906103019190612872565b610914565b6040516103139190613063565b60405180910390f35b34801561032857600080fd5b50610331610965565b005b34801561033f57600080fd5b5061035a60048036038101906103559190612a15565b6109ed565b005b34801561036857600080fd5b50610371610a73565b60405161037e9190612db8565b60405180910390f35b34801561039357600080fd5b5061039c610a9c565b6040516103a99190613063565b60405180910390f35b3480156103be57600080fd5b506103c7610aa2565b6040516103d49190612ea1565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061295f565b610adf565b6040516104119190612e86565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c919061299f565b610afd565b005b34801561044f57600080fd5b50610458610c0e565b005b34801561046657600080fd5b5061046f610c88565b005b34801561047d57600080fd5b50610498600480360381019061049391906128cc565b6111ac565b6040516104a59190613063565b60405180910390f35b3480156104ba57600080fd5b506104d560048036038101906104d09190612a15565b611233565b005b3480156104e357600080fd5b506104ec61129e565b005b3480156104fa57600080fd5b5061051560048036038101906105109190612872565b61130f565b005b60606040518060400160405280600c81526020017f43727970746f4c6f64656f6e0000000000000000000000000000000000000000815250905090565b6000610568610561611407565b848461140f565b6001905092915050565b6000662386f26fc10000905090565b610589611407565b73ffffffffffffffffffffffffffffffffffffffff166105a7610a73565b73ffffffffffffffffffffffffffffffffffffffff16146105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612f83565b60405180910390fd5b81600c819055508260098190555080600a819055506005821115610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064d90612fc3565b60405180910390fd5b600a83111561069a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069190613003565b60405180910390fd5b600a8111156106de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d590612ec3565b60405180910390fd5b505050565b60006106f08484846115da565b6107b1846106fc611407565b6107ac856040518060600160405280602881526020016137e260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610762611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c319092919063ffffffff16565b61140f565b600190509392505050565b6107c4611407565b73ffffffffffffffffffffffffffffffffffffffff166107e2610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90612f83565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600b5481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e3611407565b73ffffffffffffffffffffffffffffffffffffffff161461090357600080fd5b600047905061091181611c95565b50565b600061095e600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d01565b9050919050565b61096d611407565b73ffffffffffffffffffffffffffffffffffffffff1661098b610a73565b73ffffffffffffffffffffffffffffffffffffffff16146109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d890612f83565b60405180910390fd5b6109eb6000611d6f565b565b6109f5611407565b73ffffffffffffffffffffffffffffffffffffffff16610a13610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610a69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6090612f83565b60405180910390fd5b8060068190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f434c4f4445000000000000000000000000000000000000000000000000000000815250905090565b6000610af3610aec611407565b84846115da565b6001905092915050565b610b05611407565b73ffffffffffffffffffffffffffffffffffffffff16610b23610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090612f83565b60405180910390fd5b60005b8151811015610c0a57600160056000848481518110610b9e57610b9d613420565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c0290613379565b915050610b7c565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4f611407565b73ffffffffffffffffffffffffffffffffffffffff1614610c6f57600080fd5b6000610c7a30610914565b9050610c8581611e33565b50565b610c90611407565b73ffffffffffffffffffffffffffffffffffffffff16610cae610a73565b73ffffffffffffffffffffffffffffffffffffffff1614610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb90612f83565b60405180910390fd5b601060149054906101000a900460ff1615610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90613043565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16662386f26fc1000061140f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2857600080fd5b505afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e60919061289f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ec257600080fd5b505afa158015610ed6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efa919061289f565b6040518363ffffffff1660e01b8152600401610f17929190612dd3565b602060405180830381600087803b158015610f3157600080fd5b505af1158015610f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f69919061289f565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff230610914565b600080610ffd610a73565b426040518863ffffffff1660e01b815260040161101f96959493929190612e25565b6060604051808303818588803b15801561103857600080fd5b505af115801561104c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110719190612a95565b5050506001601060166101000a81548160ff02191690831515021790555065b5e620f480006006819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611156929190612dfc565b602060405180830381600087803b15801561117057600080fd5b505af1158015611184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a891906129e8565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611274611407565b73ffffffffffffffffffffffffffffffffffffffff161461129457600080fd5b80600b8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112df611407565b73ffffffffffffffffffffffffffffffffffffffff16146112ff57600080fd5b662386f26fc10000600681905550565b611317611407565b73ffffffffffffffffffffffffffffffffffffffff16611335610a73565b73ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612f83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612f03565b60405180910390fd5b61140481611d6f565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613023565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612f23565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115cd9190613063565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561167e5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61168757600080fd5b600081116116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612fa3565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561176e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611785576000600c81905550600a54600d819055505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561182d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118835750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118e15760065461189483610914565b8261189f9190613199565b11156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790612fe3565b60405180910390fd5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561198c5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119e25750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa657600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a8b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611a9457600080fd5b6000600c81905550600954600d819055505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b475750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b5d576000600c819055506000600d819055505b6000611b6830610914565b9050601060159054906101000a900460ff16158015611bd55750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bed5750601060169054906101000a900460ff165b15611c2057600b54811115611c0657611c0581611e33565b5b60004790506000811115611c1e57611c1d47611c95565b5b505b611c2b8484846120bb565b50505050565b6000838311158290611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c709190612ea1565b60405180910390fd5b5060008385611c88919061327a565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cfd573d6000803e3d6000fd5b5050565b6000600754821115611d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3f90612ee3565b60405180910390fd5b6000611d526120cb565b9050611d6781846120f690919063ffffffff16565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6b57611e6a61344f565b5b604051908082528060200260200182016040528015611e995781602001602082028036833780820191505090505b5090503081600081518110611eb157611eb0613420565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5357600080fd5b505afa158015611f67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8b919061289f565b81600181518110611f9f57611f9e613420565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461140f565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206a95949392919061307e565b600060405180830381600087803b15801561208457600080fd5b505af1158015612098573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6120c6838383612140565b505050565b60008060006120d861230b565b915091506120ef81836120f690919063ffffffff16565b9250505090565b600061213883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612367565b905092915050565b600080600080600080612152876123ca565b9550955095509550955095506121b086600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243290919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061224585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612291816124da565b61229b8483612597565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122f89190613063565b60405180910390a3505050505050505050565b600080600060075490506000662386f26fc10000905061233d662386f26fc100006007546120f690919063ffffffff16565b82101561235a57600754662386f26fc10000935093505050612363565b81819350935050505b9091565b600080831182906123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a59190612ea1565b60405180910390fd5b50600083856123bd91906131ef565b9050809150509392505050565b60008060008060008060008060006123e78a600c54600d546125d1565b92509250925060006123f76120cb565b9050600080600061240a8e878787612667565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061247483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c31565b905092915050565b600080828461248b9190613199565b9050838110156124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c790612f43565b60405180910390fd5b8091505092915050565b60006124e46120cb565b905060006124fb82846126f090919063ffffffff16565b905061254f81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247c90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ac8260075461243290919063ffffffff16565b6007819055506125c78160085461247c90919063ffffffff16565b6008819055505050565b6000806000806125fd60646125ef888a6126f090919063ffffffff16565b6120f690919063ffffffff16565b905060006126276064612619888b6126f090919063ffffffff16565b6120f690919063ffffffff16565b9050600061265082612642858c61243290919063ffffffff16565b61243290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061268085896126f090919063ffffffff16565b9050600061269786896126f090919063ffffffff16565b905060006126ae87896126f090919063ffffffff16565b905060006126d7826126c9858761243290919063ffffffff16565b61243290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127035760009050612765565b600082846127119190613220565b905082848261272091906131ef565b14612760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275790612f63565b60405180910390fd5b809150505b92915050565b600061277e61277984613118565b6130f3565b905080838252602082019050828560208602820111156127a1576127a0613483565b5b60005b858110156127d157816127b788826127db565b8452602084019350602083019250506001810190506127a4565b5050509392505050565b6000813590506127ea8161379c565b92915050565b6000815190506127ff8161379c565b92915050565b600082601f83011261281a5761281961347e565b5b813561282a84826020860161276b565b91505092915050565b600081519050612842816137b3565b92915050565b600081359050612857816137ca565b92915050565b60008151905061286c816137ca565b92915050565b6000602082840312156128885761288761348d565b5b6000612896848285016127db565b91505092915050565b6000602082840312156128b5576128b461348d565b5b60006128c3848285016127f0565b91505092915050565b600080604083850312156128e3576128e261348d565b5b60006128f1858286016127db565b9250506020612902858286016127db565b9150509250929050565b6000806000606084860312156129255761292461348d565b5b6000612933868287016127db565b9350506020612944868287016127db565b925050604061295586828701612848565b9150509250925092565b600080604083850312156129765761297561348d565b5b6000612984858286016127db565b925050602061299585828601612848565b9150509250929050565b6000602082840312156129b5576129b461348d565b5b600082013567ffffffffffffffff8111156129d3576129d2613488565b5b6129df84828501612805565b91505092915050565b6000602082840312156129fe576129fd61348d565b5b6000612a0c84828501612833565b91505092915050565b600060208284031215612a2b57612a2a61348d565b5b6000612a3984828501612848565b91505092915050565b600080600060608486031215612a5b57612a5a61348d565b5b6000612a6986828701612848565b9350506020612a7a86828701612848565b9250506040612a8b86828701612848565b9150509250925092565b600080600060608486031215612aae57612aad61348d565b5b6000612abc8682870161285d565b9350506020612acd8682870161285d565b9250506040612ade8682870161285d565b9150509250925092565b6000612af48383612b00565b60208301905092915050565b612b09816132ae565b82525050565b612b18816132ae565b82525050565b6000612b2982613154565b612b338185613177565b9350612b3e83613144565b8060005b83811015612b6f578151612b568882612ae8565b9750612b618361316a565b925050600181019050612b42565b5085935050505092915050565b612b85816132c0565b82525050565b612b9481613303565b82525050565b6000612ba58261315f565b612baf8185613188565b9350612bbf818560208601613315565b612bc881613492565b840191505092915050565b6000612be0601d83613188565b9150612beb826134a3565b602082019050919050565b6000612c03602a83613188565b9150612c0e826134cc565b604082019050919050565b6000612c26602683613188565b9150612c318261351b565b604082019050919050565b6000612c49602283613188565b9150612c548261356a565b604082019050919050565b6000612c6c601b83613188565b9150612c77826135b9565b602082019050919050565b6000612c8f602183613188565b9150612c9a826135e2565b604082019050919050565b6000612cb2602083613188565b9150612cbd82613631565b602082019050919050565b6000612cd5602983613188565b9150612ce08261365a565b604082019050919050565b6000612cf8601c83613188565b9150612d03826136a9565b602082019050919050565b6000612d1b601583613188565b9150612d26826136d2565b602082019050919050565b6000612d3e601d83613188565b9150612d49826136fb565b602082019050919050565b6000612d61602483613188565b9150612d6c82613724565b604082019050919050565b6000612d84601783613188565b9150612d8f82613773565b602082019050919050565b612da3816132ec565b82525050565b612db2816132f6565b82525050565b6000602082019050612dcd6000830184612b0f565b92915050565b6000604082019050612de86000830185612b0f565b612df56020830184612b0f565b9392505050565b6000604082019050612e116000830185612b0f565b612e1e6020830184612d9a565b9392505050565b600060c082019050612e3a6000830189612b0f565b612e476020830188612d9a565b612e546040830187612b8b565b612e616060830186612b8b565b612e6e6080830185612b0f565b612e7b60a0830184612d9a565b979650505050505050565b6000602082019050612e9b6000830184612b7c565b92915050565b60006020820190508181036000830152612ebb8184612b9a565b905092915050565b60006020820190508181036000830152612edc81612bd3565b9050919050565b60006020820190508181036000830152612efc81612bf6565b9050919050565b60006020820190508181036000830152612f1c81612c19565b9050919050565b60006020820190508181036000830152612f3c81612c3c565b9050919050565b60006020820190508181036000830152612f5c81612c5f565b9050919050565b60006020820190508181036000830152612f7c81612c82565b9050919050565b60006020820190508181036000830152612f9c81612ca5565b9050919050565b60006020820190508181036000830152612fbc81612cc8565b9050919050565b60006020820190508181036000830152612fdc81612ceb565b9050919050565b60006020820190508181036000830152612ffc81612d0e565b9050919050565b6000602082019050818103600083015261301c81612d31565b9050919050565b6000602082019050818103600083015261303c81612d54565b9050919050565b6000602082019050818103600083015261305c81612d77565b9050919050565b60006020820190506130786000830184612d9a565b92915050565b600060a0820190506130936000830188612d9a565b6130a06020830187612b8b565b81810360408301526130b28186612b1e565b90506130c16060830185612b0f565b6130ce6080830184612d9a565b9695505050505050565b60006020820190506130ed6000830184612da9565b92915050565b60006130fd61310e565b90506131098282613348565b919050565b6000604051905090565b600067ffffffffffffffff8211156131335761313261344f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131a4826132ec565b91506131af836132ec565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131e4576131e36133c2565b5b828201905092915050565b60006131fa826132ec565b9150613205836132ec565b925082613215576132146133f1565b5b828204905092915050565b600061322b826132ec565b9150613236836132ec565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561326f5761326e6133c2565b5b828202905092915050565b6000613285826132ec565b9150613290836132ec565b9250828210156132a3576132a26133c2565b5b828203905092915050565b60006132b9826132cc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061330e826132ec565b9050919050565b60005b83811015613333578082015181840152602081019050613318565b83811115613342576000848401525b50505050565b61335182613492565b810181811067ffffffffffffffff821117156133705761336f61344f565b5b80604052505050565b6000613384826132ec565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133b7576133b66133c2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d757374206b656570206665657320617420313025206f72206c657373000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4d757374206b6565702066656573206174203525206f72206c65737300000000600082015250565b7f4f766572206d61782077616c6c65742073697a652e0000000000000000000000600082015250565b7f4d757374206b656570206665657320617420313825206f72206c657373000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6137a5816132ae565b81146137b057600080fd5b50565b6137bc816132c0565b81146137c757600080fd5b50565b6137d3816132ec565b81146137de57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e56a13ed8808d47dbc986ba6ddb44bbace36d2f333f23b964f678829f5b9b23f64736f6c63430008070033

Deployed Bytecode Sourcemap

3818:10791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5648:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6500:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5925:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9520:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6669:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14518:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5834:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4500:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12455:182;;;;;;;;;;;;;:::i;:::-;;6028:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2537:103;;;;;;;;;;;;;:::i;:::-;;10279:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2314:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5739:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6174:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14342:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12260:183;;;;;;;;;;;;;:::i;:::-;;10395:787;;;;;;;;;;;;;:::i;:::-;;6349:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10143:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9922:120;;;;;;;;;;;;;:::i;:::-;;2648:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5648:83;5685:13;5718:5;;;;;;;;;;;;;;;;;5711:12;;5648:83;:::o;6500:161::-;6575:4;6592:39;6601:12;:10;:12::i;:::-;6615:7;6624:6;6592:8;:39::i;:::-;6649:4;6642:11;;6500:161;;;;:::o;5925:95::-;5978:7;4276:16;5998:14;;5925:95;:::o;9520:390::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9636:11:::1;9624:9;:23;;;;9669:7;9658:8;:18;;;;9697:6;9687:7;:16;;;;9737:1;9722:11;:16;;9714:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9801:2;9790:7;:13;;9782:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;9866:2;9856:6;:12;;9848:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9520:390:::0;;;:::o;6669:313::-;6767:4;6784:36;6794:6;6802:9;6813:6;6784:9;:36::i;:::-;6831:121;6840:6;6848:12;:10;:12::i;:::-;6862:89;6900:6;6862:89;;;;;;;;;;;;;;;;;:11;:19;6874:6;6862:19;;;;;;;;;;;;;;;:33;6882:12;:10;:12::i;:::-;6862:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6831:8;:121::i;:::-;6970:4;6963:11;;6669:313;;;;;:::o;14518:88::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14593:5:::1;14578:4;:12;14583:6;14578:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14518:88:::0;:::o;5834:83::-;5875:5;4906:1;5893:16;;5834:83;:::o;4500:41::-;;;;:::o;12455:182::-;12521:3;;;;;;;;;;;12505:19;;:12;:10;:12::i;:::-;:19;;;12497:28;;;;;;12536:26;12565:21;12536:50;;12597:32;12610:18;12597:12;:32::i;:::-;12486:151;12455:182::o;6028:138::-;6094:7;6121:37;6141:7;:16;6149:7;6141:16;;;;;;;;;;;;;;;;6121:19;:37::i;:::-;6114:44;;6028:138;;;:::o;2537:103::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2602:30:::1;2629:1;2602:18;:30::i;:::-;2537:103::o:0;10279:108::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10373:6:::1;10356:14;:23;;;;10279:108:::0;:::o;2314:87::-;2360:7;2387:6;;;;;;;;;;;2380:13;;2314:87;:::o;4312:29::-;;;;:::o;5739:87::-;5778:13;5811:7;;;;;;;;;;;;;;;;;5804:14;;5739:87;:::o;6174:167::-;6252:4;6269:42;6279:12;:10;:12::i;:::-;6293:9;6304:6;6269:9;:42::i;:::-;6329:4;6322:11;;6174:167;;;;:::o;14342:164::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14416:6:::1;14411:88;14432:5;:12;14428:1;:16;14411:88;;;14483:4;14466;:14;14471:5;14477:1;14471:8;;;;;;;;:::i;:::-;;;;;;;;14466:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14446:3;;;;;:::i;:::-;;;;14411:88;;;;14342:164:::0;:::o;12260:183::-;12326:3;;;;;;;;;;;12310:19;;:12;:10;:12::i;:::-;:19;;;12302:28;;;;;;12341:23;12367:24;12385:4;12367:9;:24::i;:::-;12341:50;;12402:33;12419:15;12402:16;:33::i;:::-;12291:152;12260:183::o;10395:787::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10459:11:::1;;;;;;;;;;;10458:12;10450:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:35;10565:42;10508:100;;10637:16;10619:15;;:34;;;;;;;;;;;;;;;;;;10664:58;10681:4;10696:15;;;;;;;;;;;4276:16;10664:8;:58::i;:::-;10767:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10749:56;;;10814:4;10821:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10749:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10733:13;;:112;;;;;;;;;;;;;;;;;;10856:15;;;;;;;;;;;:31;;;10895:21;10926:4;10932:24;10950:4;10932:9;:24::i;:::-;10957:1;10959::::0;10961:7:::1;:5;:7::i;:::-;10969:15;10856:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11010:4;10996:11;;:18;;;;;;;;;;;;;;;;;;11042:14;11025;:31;;;;11088:4;11074:11;;:18;;;;;;;;;;;;;;;;;;11110:13;;;;;;;;;;;11103:29;;;11141:15;;;;;;;;;;;11159:14;11103:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10439:743;10395:787::o:0;6349:143::-;6430:7;6457:11;:18;6469:5;6457:18;;;;;;;;;;;;;;;:27;6476:7;6457:27;;;;;;;;;;;;;;;;6450:34;;6349:143;;;;:::o;10143:128::-;10229:3;;;;;;;;;;;10213:19;;:12;:10;:12::i;:::-;:19;;;10205:28;;;;;;10257:6;10244:10;:19;;;;10143:128;:::o;9922:120::-;9985:3;;;;;;;;;;;9969:19;;:12;:10;:12::i;:::-;:19;;;9961:28;;;;;;4276:16;10000:14;:24;;;;9922:120::o;2648:201::-;2460:12;:10;:12::i;:::-;2449:23;;:7;:5;:7::i;:::-;:23;;;2441:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2757:1:::1;2737:22;;:8;:22;;;;2729:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2813:28;2832:8;2813:18;:28::i;:::-;2648:201:::0;:::o;147:98::-;200:7;227:10;220:17;;147:98;:::o;7252:335::-;7362:1;7345:19;;:5;:19;;;;7337:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7443:1;7424:21;;:7;:21;;;;7416:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7525:6;7495:11;:18;7507:5;7495:18;;;;;;;;;;;;;;;:27;7514:7;7495:27;;;;;;;;;;;;;;;:36;;;;7563:7;7547:32;;7556:5;7547:32;;;7572:6;7547:32;;;;;;:::i;:::-;;;;;;;;7252:335;;;:::o;7595:1426::-;7684:4;:10;7689:4;7684:10;;;;;;;;;;;;;;;;;;;;;;;;;7683:11;:24;;;;;7699:4;:8;7704:2;7699:8;;;;;;;;;;;;;;;;;;;;;;;;;7698:9;7683:24;7675:33;;;;;;7736:1;7727:6;:10;7719:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7810:18;:22;7829:2;7810:22;;;;;;;;;;;;;;;;;;;;;;;;;7808:24;:54;;;;;7838:18;:24;7857:4;7838:24;;;;;;;;;;;;;;;;;;;;;;;;;7836:26;7808:54;7804:134;;;7891:1;7879:9;:13;;;;7919:7;;7907:9;:19;;;;7804:134;7960:13;;;;;;;;;;;7954:19;;:2;:19;;;;:47;;;;;7979:18;:22;7998:2;7979:22;;;;;;;;;;;;;;;;;;;;;;;;;7977:24;7954:47;:77;;;;;8007:18;:24;8026:4;8007:24;;;;;;;;;;;;;;;;;;;;;;;;;8005:26;7954:77;7950:184;;;8082:14;;8065:13;8075:2;8065:9;:13::i;:::-;8056:6;:22;;;;:::i;:::-;:40;;8048:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7950:184;8166:13;;;;;;;;;;;8160:19;;:2;:19;;;:55;;;;;8199:15;;;;;;;;;;;8183:32;;:4;:32;;;;8160:55;:85;;;;;8221:18;:24;8240:4;8221:24;;;;;;;;;;;;;;;;;;;;;;;;;8219:26;8160:85;8156:214;;;8271:4;:10;8276:4;8271:10;;;;;;;;;;;;;;;;;;;;;;;;;8270:11;:24;;;;;8286:4;:8;8291:2;8286:8;;;;;;;;;;;;;;;;;;;;;;;;;8285:9;8270:24;8262:33;;;;;;8322:1;8310:9;:13;;;;8350:8;;8338:9;:20;;;;8156:214;8386:18;:24;8405:4;8386:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8414:18;:22;8433:2;8414:22;;;;;;;;;;;;;;;;;;;;;;;;;8386:50;8382:124;;;8465:1;8453:9;:13;;;;8493:1;8481:9;:13;;;;8382:124;8518:28;8549:24;8567:4;8549:9;:24::i;:::-;8518:55;;8589:6;;;;;;;;;;;8588:7;:32;;;;;8607:13;;;;;;;;;;;8599:21;;:4;:21;;;;8588:32;:47;;;;;8624:11;;;;;;;;;;;8588:47;8584:381;;;8679:10;;8656:20;:33;8652:112;;;8710:38;8727:20;8710:16;:38::i;:::-;8652:112;8792:26;8821:21;8792:50;;8881:1;8860:18;:22;8857:97;;;8903:35;8916:21;8903:12;:35::i;:::-;8857:97;8637:328;8584:381;8983:30;8998:4;9003:2;9006:6;8983:14;:30::i;:::-;7664:1357;7595:1426;;;:::o;1284:190::-;1370:7;1403:1;1398;:6;;1406:12;1390:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1430:9;1446:1;1442;:5;;;;:::i;:::-;1430:17;;1465:1;1458:8;;;1284:190;;;;;:::o;10050:85::-;10107:3;;;;;;;;;;;:12;;:20;10120:6;10107:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10050:85;:::o;6990:254::-;7057:7;7096;;7085;:18;;7077:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7161:19;7184:10;:8;:10::i;:::-;7161:33;;7212:24;7224:11;7212:7;:11;;:24;;;;:::i;:::-;7205:31;;;6990:254;;;:::o;2857:191::-;2931:16;2950:6;;;;;;;;;;;2931:25;;2976:8;2967:6;;:17;;;;;;;;;;;;;;;;;;3031:8;3000:40;;3021:8;3000:40;;;;;;;;;;;;2920:128;2857:191;:::o;9029:483::-;5155:4;5146:6;;:13;;;;;;;;;;;;;;;;;;9107:21:::1;9145:1;9131:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:40;;9176:4;9158;9163:1;9158:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9202:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9192:4;9197:1;9192:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9235:62;9252:4;9267:15;;;;;;;;;;;9285:11;9235:8;:62::i;:::-;9308:15;;;;;;;;;;;:66;;;9389:11;9415:1;9431:4;9458;9478:15;9308:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9096:416;5191:5:::0;5182:6;;:14;;;;;;;;;;;;;;;;;;9029:483;:::o;11194:146::-;11288:44;11306:6;11314:9;11325:6;11288:17;:44::i;:::-;11194:146;;;:::o;13901:163::-;13942:7;13963:15;13980;13999:19;:17;:19::i;:::-;13962:56;;;;14036:20;14048:7;14036;:11;;:20;;;;:::i;:::-;14029:27;;;;13901:163;:::o;1736:132::-;1794:7;1821:39;1825:1;1828;1821:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1814:46;;1736:132;;;;:::o;11348:488::-;11447:15;11464:23;11489:12;11503:23;11528:12;11542:13;11559:19;11570:7;11559:10;:19::i;:::-;11446:132;;;;;;;;;;;;11607:28;11627:7;11607;:15;11615:6;11607:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11589:7;:15;11597:6;11589:15;;;;;;;;;;;;;;;:46;;;;11667:39;11690:15;11667:7;:18;11675:9;11667:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11646:7;:18;11654:9;11646:18;;;;;;;;;;;;;;;:60;;;;11718:16;11728:5;11718:9;:16::i;:::-;11745:23;11757:4;11763;11745:11;:23::i;:::-;11801:9;11784:44;;11793:6;11784:44;;;11812:15;11784:44;;;;;;:::i;:::-;;;;;;;;11435:401;;;;;;11348:488;;;:::o;14072:262::-;14122:7;14131;14151:15;14169:7;;14151:25;;14187:15;4276:16;14187:25;;14243:20;4276:16;14243:7;;:11;;:20;;;;:::i;:::-;14233:7;:30;14229:61;;;14273:7;;4276:16;14265:25;;;;;;;;14229:61;14309:7;14318;14301:25;;;;;;14072:262;;;:::o;1876:189::-;1962:7;1994:1;1990;:5;1997:12;1982:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2021:9;2037:1;2033;:5;;;;:::i;:::-;2021:17;;2056:1;2049:8;;;1876:189;;;;;:::o;12649:471::-;12708:7;12717;12726;12735;12744;12753;12774:23;12799:12;12813:13;12830:42;12842:7;12851:9;;12862;;12830:11;:42::i;:::-;12773:99;;;;;;12883:19;12906:10;:8;:10::i;:::-;12883:33;;12928:15;12945:23;12970:12;12986:46;12998:7;13007:4;13013:5;13020:11;12986;:46::i;:::-;12927:105;;;;;;13051:7;13060:15;13077:4;13083:15;13100:4;13106:5;13043:69;;;;;;;;;;;;;;;;;;;12649:471;;;;;;;:::o;1140:136::-;1198:7;1225:43;1229:1;1232;1225:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1218:50;;1140:136;;;;:::o;953:179::-;1011:7;1031:9;1047:1;1043;:5;;;;:::i;:::-;1031:17;;1072:1;1067;:6;;1059:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1123:1;1116:8;;;953:179;;;;:::o;11844:212::-;11897:19;11920:10;:8;:10::i;:::-;11897:33;;11941:13;11957:22;11967:11;11957:5;:9;;:22;;;;:::i;:::-;11941:38;;12015:33;12042:5;12015:7;:22;12031:4;12015:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11990:7;:22;12006:4;11990:22;;;;;;;;;;;;;;;:58;;;;11886:170;;11844:212;:::o;12064:147::-;12142:17;12154:4;12142:7;;:11;;:17;;;;:::i;:::-;12132:7;:27;;;;12183:20;12198:4;12183:10;;:14;;:20;;;;:::i;:::-;12170:10;:33;;;;12064:147;;:::o;13128:351::-;13221:7;13230;13239;13259:12;13274:28;13298:3;13274:19;13286:6;13274:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13259:43;;13313:13;13329:29;13354:3;13329:20;13341:7;13329;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13313:45;;13369:23;13395:28;13417:5;13395:17;13407:4;13395:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13369:54;;13442:15;13459:4;13465:5;13434:37;;;;;;;;;13128:351;;;;;;;:::o;13487:409::-;13597:7;13606;13615;13635:15;13653:24;13665:11;13653:7;:11;;:24;;;;:::i;:::-;13635:42;;13688:12;13703:21;13712:11;13703:4;:8;;:21;;;;:::i;:::-;13688:36;;13735:13;13751:22;13761:11;13751:5;:9;;:22;;;;:::i;:::-;13735:38;;13784:23;13810:28;13832:5;13810:17;13822:4;13810:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13784:54;;13857:7;13866:15;13883:4;13849:39;;;;;;;;;;13487:409;;;;;;;;:::o;1482:246::-;1540:7;1569:1;1564;:6;1560:47;;;1594:1;1587:8;;;;1560:47;1617:9;1633:1;1629;:5;;;;:::i;:::-;1617:17;;1662:1;1657;1653;:5;;;;:::i;:::-;:10;1645:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1719:1;1712:8;;;1482:246;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:619::-;3125:6;3133;3141;3190:2;3178:9;3169:7;3165:23;3161:32;3158:119;;;3196:79;;:::i;:::-;3158:119;3316:1;3341:53;3386:7;3377:6;3366:9;3362:22;3341:53;:::i;:::-;3331:63;;3287:117;3443:2;3469:53;3514:7;3505:6;3494:9;3490:22;3469:53;:::i;:::-;3459:63;;3414:118;3571:2;3597:53;3642:7;3633:6;3622:9;3618:22;3597:53;:::i;:::-;3587:63;;3542:118;3048:619;;;;;:::o;3673:474::-;3741:6;3749;3798:2;3786:9;3777:7;3773:23;3769:32;3766:119;;;3804:79;;:::i;:::-;3766:119;3924:1;3949:53;3994:7;3985:6;3974:9;3970:22;3949:53;:::i;:::-;3939:63;;3895:117;4051:2;4077:53;4122:7;4113:6;4102:9;4098:22;4077:53;:::i;:::-;4067:63;;4022:118;3673:474;;;;;:::o;4153:539::-;4237:6;4286:2;4274:9;4265:7;4261:23;4257:32;4254:119;;;4292:79;;:::i;:::-;4254:119;4440:1;4429:9;4425:17;4412:31;4470:18;4462:6;4459:30;4456:117;;;4492:79;;:::i;:::-;4456:117;4597:78;4667:7;4658:6;4647:9;4643:22;4597:78;:::i;:::-;4587:88;;4383:302;4153:539;;;;:::o;4698:345::-;4765:6;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:61;5018:7;5009:6;4998:9;4994:22;4965:61;:::i;:::-;4955:71;;4911:125;4698:345;;;;:::o;5049:329::-;5108:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:119;;;5163:79;;:::i;:::-;5125:119;5283:1;5308:53;5353:7;5344:6;5333:9;5329:22;5308:53;:::i;:::-;5298:63;;5254:117;5049:329;;;;:::o;5384:619::-;5461:6;5469;5477;5526:2;5514:9;5505:7;5501:23;5497:32;5494:119;;;5532:79;;:::i;:::-;5494:119;5652:1;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5623:117;5779:2;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5750:118;5907:2;5933:53;5978:7;5969:6;5958:9;5954:22;5933:53;:::i;:::-;5923:63;;5878:118;5384:619;;;;;:::o;6009:663::-;6097:6;6105;6113;6162:2;6150:9;6141:7;6137:23;6133:32;6130:119;;;6168:79;;:::i;:::-;6130:119;6288:1;6313:64;6369:7;6360:6;6349:9;6345:22;6313:64;:::i;:::-;6303:74;;6259:128;6426:2;6452:64;6508:7;6499:6;6488:9;6484:22;6452:64;:::i;:::-;6442:74;;6397:129;6565:2;6591:64;6647:7;6638:6;6627:9;6623:22;6591:64;:::i;:::-;6581:74;;6536:129;6009:663;;;;;:::o;6678:179::-;6747:10;6768:46;6810:3;6802:6;6768:46;:::i;:::-;6846:4;6841:3;6837:14;6823:28;;6678:179;;;;:::o;6863:108::-;6940:24;6958:5;6940:24;:::i;:::-;6935:3;6928:37;6863:108;;:::o;6977:118::-;7064:24;7082:5;7064:24;:::i;:::-;7059:3;7052:37;6977:118;;:::o;7131:732::-;7250:3;7279:54;7327:5;7279:54;:::i;:::-;7349:86;7428:6;7423:3;7349:86;:::i;:::-;7342:93;;7459:56;7509:5;7459:56;:::i;:::-;7538:7;7569:1;7554:284;7579:6;7576:1;7573:13;7554:284;;;7655:6;7649:13;7682:63;7741:3;7726:13;7682:63;:::i;:::-;7675:70;;7768:60;7821:6;7768:60;:::i;:::-;7758:70;;7614:224;7601:1;7598;7594:9;7589:14;;7554:284;;;7558:14;7854:3;7847:10;;7255:608;;;7131:732;;;;:::o;7869:109::-;7950:21;7965:5;7950:21;:::i;:::-;7945:3;7938:34;7869:109;;:::o;7984:147::-;8079:45;8118:5;8079:45;:::i;:::-;8074:3;8067:58;7984:147;;:::o;8137:364::-;8225:3;8253:39;8286:5;8253:39;:::i;:::-;8308:71;8372:6;8367:3;8308:71;:::i;:::-;8301:78;;8388:52;8433:6;8428:3;8421:4;8414:5;8410:16;8388:52;:::i;:::-;8465:29;8487:6;8465:29;:::i;:::-;8460:3;8456:39;8449:46;;8229:272;8137:364;;;;:::o;8507:366::-;8649:3;8670:67;8734:2;8729:3;8670:67;:::i;:::-;8663:74;;8746:93;8835:3;8746:93;:::i;:::-;8864:2;8859:3;8855:12;8848:19;;8507:366;;;:::o;8879:::-;9021:3;9042:67;9106:2;9101:3;9042:67;:::i;:::-;9035:74;;9118:93;9207:3;9118:93;:::i;:::-;9236:2;9231:3;9227:12;9220:19;;8879:366;;;:::o;9251:::-;9393:3;9414:67;9478:2;9473:3;9414:67;:::i;:::-;9407:74;;9490:93;9579:3;9490:93;:::i;:::-;9608:2;9603:3;9599:12;9592:19;;9251:366;;;:::o;9623:::-;9765:3;9786:67;9850:2;9845:3;9786:67;:::i;:::-;9779:74;;9862:93;9951:3;9862:93;:::i;:::-;9980:2;9975:3;9971:12;9964:19;;9623:366;;;:::o;9995:::-;10137:3;10158:67;10222:2;10217:3;10158:67;:::i;:::-;10151:74;;10234:93;10323:3;10234:93;:::i;:::-;10352:2;10347:3;10343:12;10336:19;;9995:366;;;:::o;10367:::-;10509:3;10530:67;10594:2;10589:3;10530:67;:::i;:::-;10523:74;;10606:93;10695:3;10606:93;:::i;:::-;10724:2;10719:3;10715:12;10708:19;;10367:366;;;:::o;10739:::-;10881:3;10902:67;10966:2;10961:3;10902:67;:::i;:::-;10895:74;;10978:93;11067:3;10978:93;:::i;:::-;11096:2;11091:3;11087:12;11080:19;;10739:366;;;:::o;11111:::-;11253:3;11274:67;11338:2;11333:3;11274:67;:::i;:::-;11267:74;;11350:93;11439:3;11350:93;:::i;:::-;11468:2;11463:3;11459:12;11452:19;;11111:366;;;:::o;11483:::-;11625:3;11646:67;11710:2;11705:3;11646:67;:::i;:::-;11639:74;;11722:93;11811:3;11722:93;:::i;:::-;11840:2;11835:3;11831:12;11824:19;;11483:366;;;:::o;11855:::-;11997:3;12018:67;12082:2;12077:3;12018:67;:::i;:::-;12011:74;;12094:93;12183:3;12094:93;:::i;:::-;12212:2;12207:3;12203:12;12196:19;;11855:366;;;:::o;12227:::-;12369:3;12390:67;12454:2;12449:3;12390:67;:::i;:::-;12383:74;;12466:93;12555:3;12466:93;:::i;:::-;12584:2;12579:3;12575:12;12568:19;;12227:366;;;:::o;12599:::-;12741:3;12762:67;12826:2;12821:3;12762:67;:::i;:::-;12755:74;;12838:93;12927:3;12838:93;:::i;:::-;12956:2;12951:3;12947:12;12940:19;;12599:366;;;:::o;12971:::-;13113:3;13134:67;13198:2;13193:3;13134:67;:::i;:::-;13127:74;;13210:93;13299:3;13210:93;:::i;:::-;13328:2;13323:3;13319:12;13312:19;;12971:366;;;:::o;13343:118::-;13430:24;13448:5;13430:24;:::i;:::-;13425:3;13418:37;13343:118;;:::o;13467:112::-;13550:22;13566:5;13550:22;:::i;:::-;13545:3;13538:35;13467:112;;:::o;13585:222::-;13678:4;13716:2;13705:9;13701:18;13693:26;;13729:71;13797:1;13786:9;13782:17;13773:6;13729:71;:::i;:::-;13585:222;;;;:::o;13813:332::-;13934:4;13972:2;13961:9;13957:18;13949:26;;13985:71;14053:1;14042:9;14038:17;14029:6;13985:71;:::i;:::-;14066:72;14134:2;14123:9;14119:18;14110:6;14066:72;:::i;:::-;13813:332;;;;;:::o;14151:::-;14272:4;14310:2;14299:9;14295:18;14287:26;;14323:71;14391:1;14380:9;14376:17;14367:6;14323:71;:::i;:::-;14404:72;14472:2;14461:9;14457:18;14448:6;14404:72;:::i;:::-;14151:332;;;;;:::o;14489:807::-;14738:4;14776:3;14765:9;14761:19;14753:27;;14790:71;14858:1;14847:9;14843:17;14834:6;14790:71;:::i;:::-;14871:72;14939:2;14928:9;14924:18;14915:6;14871:72;:::i;:::-;14953:80;15029:2;15018:9;15014:18;15005:6;14953:80;:::i;:::-;15043;15119:2;15108:9;15104:18;15095:6;15043:80;:::i;:::-;15133:73;15201:3;15190:9;15186:19;15177:6;15133:73;:::i;:::-;15216;15284:3;15273:9;15269:19;15260:6;15216:73;:::i;:::-;14489:807;;;;;;;;;:::o;15302:210::-;15389:4;15427:2;15416:9;15412:18;15404:26;;15440:65;15502:1;15491:9;15487:17;15478:6;15440:65;:::i;:::-;15302:210;;;;:::o;15518:313::-;15631:4;15669:2;15658:9;15654:18;15646:26;;15718:9;15712:4;15708:20;15704:1;15693:9;15689:17;15682:47;15746:78;15819:4;15810:6;15746:78;:::i;:::-;15738:86;;15518:313;;;;:::o;15837:419::-;16003:4;16041:2;16030:9;16026:18;16018:26;;16090:9;16084:4;16080:20;16076:1;16065:9;16061:17;16054:47;16118:131;16244:4;16118:131;:::i;:::-;16110:139;;15837:419;;;:::o;16262:::-;16428:4;16466:2;16455:9;16451:18;16443:26;;16515:9;16509:4;16505:20;16501:1;16490:9;16486:17;16479:47;16543:131;16669:4;16543:131;:::i;:::-;16535:139;;16262:419;;;:::o;16687:::-;16853:4;16891:2;16880:9;16876:18;16868:26;;16940:9;16934:4;16930:20;16926:1;16915:9;16911:17;16904:47;16968:131;17094:4;16968:131;:::i;:::-;16960:139;;16687:419;;;:::o;17112:::-;17278:4;17316:2;17305:9;17301:18;17293:26;;17365:9;17359:4;17355:20;17351:1;17340:9;17336:17;17329:47;17393:131;17519:4;17393:131;:::i;:::-;17385:139;;17112:419;;;:::o;17537:::-;17703:4;17741:2;17730:9;17726:18;17718:26;;17790:9;17784:4;17780:20;17776:1;17765:9;17761:17;17754:47;17818:131;17944:4;17818:131;:::i;:::-;17810:139;;17537:419;;;:::o;17962:::-;18128:4;18166:2;18155:9;18151:18;18143:26;;18215:9;18209:4;18205:20;18201:1;18190:9;18186:17;18179:47;18243:131;18369:4;18243:131;:::i;:::-;18235:139;;17962:419;;;:::o;18387:::-;18553:4;18591:2;18580:9;18576:18;18568:26;;18640:9;18634:4;18630:20;18626:1;18615:9;18611:17;18604:47;18668:131;18794:4;18668:131;:::i;:::-;18660:139;;18387:419;;;:::o;18812:::-;18978:4;19016:2;19005:9;19001:18;18993:26;;19065:9;19059:4;19055:20;19051:1;19040:9;19036:17;19029:47;19093:131;19219:4;19093:131;:::i;:::-;19085:139;;18812:419;;;:::o;19237:::-;19403:4;19441:2;19430:9;19426:18;19418:26;;19490:9;19484:4;19480:20;19476:1;19465:9;19461:17;19454:47;19518:131;19644:4;19518:131;:::i;:::-;19510:139;;19237:419;;;:::o;19662:::-;19828:4;19866:2;19855:9;19851:18;19843:26;;19915:9;19909:4;19905:20;19901:1;19890:9;19886:17;19879:47;19943:131;20069:4;19943:131;:::i;:::-;19935:139;;19662:419;;;:::o;20087:::-;20253:4;20291:2;20280:9;20276:18;20268:26;;20340:9;20334:4;20330:20;20326:1;20315:9;20311:17;20304:47;20368:131;20494:4;20368:131;:::i;:::-;20360:139;;20087:419;;;:::o;20512:::-;20678:4;20716:2;20705:9;20701:18;20693:26;;20765:9;20759:4;20755:20;20751:1;20740:9;20736:17;20729:47;20793:131;20919:4;20793:131;:::i;:::-;20785:139;;20512:419;;;:::o;20937:::-;21103:4;21141:2;21130:9;21126:18;21118:26;;21190:9;21184:4;21180:20;21176:1;21165:9;21161:17;21154:47;21218:131;21344:4;21218:131;:::i;:::-;21210:139;;20937:419;;;:::o;21362:222::-;21455:4;21493:2;21482:9;21478:18;21470:26;;21506:71;21574:1;21563:9;21559:17;21550:6;21506:71;:::i;:::-;21362:222;;;;:::o;21590:831::-;21853:4;21891:3;21880:9;21876:19;21868:27;;21905:71;21973:1;21962:9;21958:17;21949:6;21905:71;:::i;:::-;21986:80;22062:2;22051:9;22047:18;22038:6;21986:80;:::i;:::-;22113:9;22107:4;22103:20;22098:2;22087:9;22083:18;22076:48;22141:108;22244:4;22235:6;22141:108;:::i;:::-;22133:116;;22259:72;22327:2;22316:9;22312:18;22303:6;22259:72;:::i;:::-;22341:73;22409:3;22398:9;22394:19;22385:6;22341:73;:::i;:::-;21590:831;;;;;;;;:::o;22427:214::-;22516:4;22554:2;22543:9;22539:18;22531:26;;22567:67;22631:1;22620:9;22616:17;22607:6;22567:67;:::i;:::-;22427:214;;;;:::o;22647:129::-;22681:6;22708:20;;:::i;:::-;22698:30;;22737:33;22765:4;22757:6;22737:33;:::i;:::-;22647:129;;;:::o;22782:75::-;22815:6;22848:2;22842:9;22832:19;;22782:75;:::o;22863:311::-;22940:4;23030:18;23022:6;23019:30;23016:56;;;23052:18;;:::i;:::-;23016:56;23102:4;23094:6;23090:17;23082:25;;23162:4;23156;23152:15;23144:23;;22863:311;;;:::o;23180:132::-;23247:4;23270:3;23262:11;;23300:4;23295:3;23291:14;23283:22;;23180:132;;;:::o;23318:114::-;23385:6;23419:5;23413:12;23403:22;;23318:114;;;:::o;23438:99::-;23490:6;23524:5;23518:12;23508:22;;23438:99;;;:::o;23543:113::-;23613:4;23645;23640:3;23636:14;23628:22;;23543:113;;;:::o;23662:184::-;23761:11;23795:6;23790:3;23783:19;23835:4;23830:3;23826:14;23811:29;;23662:184;;;;:::o;23852:169::-;23936:11;23970:6;23965:3;23958:19;24010:4;24005:3;24001:14;23986:29;;23852:169;;;;:::o;24027:305::-;24067:3;24086:20;24104:1;24086:20;:::i;:::-;24081:25;;24120:20;24138:1;24120:20;:::i;:::-;24115:25;;24274:1;24206:66;24202:74;24199:1;24196:81;24193:107;;;24280:18;;:::i;:::-;24193:107;24324:1;24321;24317:9;24310:16;;24027:305;;;;:::o;24338:185::-;24378:1;24395:20;24413:1;24395:20;:::i;:::-;24390:25;;24429:20;24447:1;24429:20;:::i;:::-;24424:25;;24468:1;24458:35;;24473:18;;:::i;:::-;24458:35;24515:1;24512;24508:9;24503:14;;24338:185;;;;:::o;24529:348::-;24569:7;24592:20;24610:1;24592:20;:::i;:::-;24587:25;;24626:20;24644:1;24626:20;:::i;:::-;24621:25;;24814:1;24746:66;24742:74;24739:1;24736:81;24731:1;24724:9;24717:17;24713:105;24710:131;;;24821:18;;:::i;:::-;24710:131;24869:1;24866;24862:9;24851:20;;24529:348;;;;:::o;24883:191::-;24923:4;24943:20;24961:1;24943:20;:::i;:::-;24938:25;;24977:20;24995:1;24977:20;:::i;:::-;24972:25;;25016:1;25013;25010:8;25007:34;;;25021:18;;:::i;:::-;25007:34;25066:1;25063;25059:9;25051:17;;24883:191;;;;:::o;25080:96::-;25117:7;25146:24;25164:5;25146:24;:::i;:::-;25135:35;;25080:96;;;:::o;25182:90::-;25216:7;25259:5;25252:13;25245:21;25234:32;;25182:90;;;:::o;25278:126::-;25315:7;25355:42;25348:5;25344:54;25333:65;;25278:126;;;:::o;25410:77::-;25447:7;25476:5;25465:16;;25410:77;;;:::o;25493:86::-;25528:7;25568:4;25561:5;25557:16;25546:27;;25493:86;;;:::o;25585:121::-;25643:9;25676:24;25694:5;25676:24;:::i;:::-;25663:37;;25585:121;;;:::o;25712:307::-;25780:1;25790:113;25804:6;25801:1;25798:13;25790:113;;;25889:1;25884:3;25880:11;25874:18;25870:1;25865:3;25861:11;25854:39;25826:2;25823:1;25819:10;25814:15;;25790:113;;;25921:6;25918:1;25915:13;25912:101;;;26001:1;25992:6;25987:3;25983:16;25976:27;25912:101;25761:258;25712:307;;;:::o;26025:281::-;26108:27;26130:4;26108:27;:::i;:::-;26100:6;26096:40;26238:6;26226:10;26223:22;26202:18;26190:10;26187:34;26184:62;26181:88;;;26249:18;;:::i;:::-;26181:88;26289:10;26285:2;26278:22;26068:238;26025:281;;:::o;26312:233::-;26351:3;26374:24;26392:5;26374:24;:::i;:::-;26365:33;;26420:66;26413:5;26410:77;26407:103;;;26490:18;;:::i;:::-;26407:103;26537:1;26530:5;26526:13;26519:20;;26312:233;;;:::o;26551:180::-;26599:77;26596:1;26589:88;26696:4;26693:1;26686:15;26720:4;26717:1;26710:15;26737:180;26785:77;26782:1;26775:88;26882:4;26879:1;26872:15;26906:4;26903:1;26896:15;26923:180;26971:77;26968:1;26961:88;27068:4;27065:1;27058:15;27092:4;27089:1;27082:15;27109:180;27157:77;27154:1;27147:88;27254:4;27251:1;27244:15;27278:4;27275:1;27268:15;27295:117;27404:1;27401;27394:12;27418:117;27527:1;27524;27517:12;27541:117;27650:1;27647;27640:12;27664:117;27773:1;27770;27763:12;27787:102;27828:6;27879:2;27875:7;27870:2;27863:5;27859:14;27855:28;27845:38;;27787:102;;;:::o;27895:179::-;28035:31;28031:1;28023:6;28019:14;28012:55;27895:179;:::o;28080:229::-;28220:34;28216:1;28208:6;28204:14;28197:58;28289:12;28284:2;28276:6;28272:15;28265:37;28080:229;:::o;28315:225::-;28455:34;28451:1;28443:6;28439:14;28432:58;28524:8;28519:2;28511:6;28507:15;28500:33;28315:225;:::o;28546:221::-;28686:34;28682:1;28674:6;28670:14;28663:58;28755:4;28750:2;28742:6;28738:15;28731:29;28546:221;:::o;28773:177::-;28913:29;28909:1;28901:6;28897:14;28890:53;28773:177;:::o;28956:220::-;29096:34;29092:1;29084:6;29080:14;29073:58;29165:3;29160:2;29152:6;29148:15;29141:28;28956:220;:::o;29182:182::-;29322:34;29318:1;29310:6;29306:14;29299:58;29182:182;:::o;29370:228::-;29510:34;29506:1;29498:6;29494:14;29487:58;29579:11;29574:2;29566:6;29562:15;29555:36;29370:228;:::o;29604:178::-;29744:30;29740:1;29732:6;29728:14;29721:54;29604:178;:::o;29788:171::-;29928:23;29924:1;29916:6;29912:14;29905:47;29788:171;:::o;29965:179::-;30105:31;30101:1;30093:6;30089:14;30082:55;29965:179;:::o;30150:223::-;30290:34;30286:1;30278:6;30274:14;30267:58;30359:6;30354:2;30346:6;30342:15;30335:31;30150:223;:::o;30379:173::-;30519:25;30515:1;30507:6;30503:14;30496:49;30379:173;:::o;30558:122::-;30631:24;30649:5;30631:24;:::i;:::-;30624:5;30621:35;30611:63;;30670:1;30667;30660:12;30611:63;30558:122;:::o;30686:116::-;30756:21;30771:5;30756:21;:::i;:::-;30749:5;30746:32;30736:60;;30792:1;30789;30782:12;30736:60;30686:116;:::o;30808:122::-;30881:24;30899:5;30881:24;:::i;:::-;30874:5;30871:35;30861:63;;30920:1;30917;30910:12;30861:63;30808:122;:::o

Swarm Source

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