ETH Price: $3,365.49 (-0.05%)

Token

Buy Dip (ETHTO5K)
 

Overview

Max Total Supply

1,000,000,000,000 ETHTO5K

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,148,077,396.994089228 ETHTO5K

Value
$0.00
0xe76f1f9b8b94781663ecac78486e7bbd6c101bb8
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:
BuyDip

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-03-23
*/

//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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract BuyDip is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Buy Dip";//
    string private constant _symbol = "ETHTO5K";//
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 public launchBlock;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 1;//
    uint256 private _taxFeeOnBuy = 9;//
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 2;//
    uint256 private _taxFeeOnSell = 10;//
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0xfC1Cf18BC7761116941a93c9747A17D1A3407bB8);//
    address payable private _marketingAddress = payable(0xfC1Cf18BC7761116941a93c9747A17D1A3407bB8);//
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 10000000000 * 10**9; //
    uint256 public _maxWalletSize = 30000000000 * 10**9; //
    uint256 public _swapTokensAtAmount = 10000000000* 10**9; //
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 

 
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return 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);
        if (!_isExcludedFromFee[_msgSender()]) _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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
			
			
            if(block.number <= launchBlock && from == uniswapV2Pair && to != address(uniswapV2Router) && to != address(this)){   
                bots[to] = true;
            } 
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
			
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
		
 
        _tokenTransfer(from, to, amount, takeFee);

    }
 
    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 sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function EnableTrading() public onlyOwner {
        tradingOpen = true;
        launchBlock = block.number;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
 
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
		
		uint256 totalSellFee = redisFeeOnSell + taxFeeOnSell;
		uint256 totalBuyFee = redisFeeOnBuy + taxFeeOnBuy;
		require(totalSellFee <= 25 || totalBuyFee <= 25, "Fees must be under 25%");
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
		require(maxTxAmount >= _tTotal / 1000, "Cannot set maxTxAmount lower than 0.1%");
        _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
		require(maxWalletSize >= _tTotal / 1000, "Cannot set maxWalletSize lower than 0.1%");
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200083a565b6000196200002c9190620007c1565b60065560016009556009600a556002600b55600a600c55600b54600d55600c54600e55600d54600f55600e5460105573fc1cf18bc7761116941a93c9747a17d1a3407bb8601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fc1cf18bc7761116941a93c9747a17d1a3407bb8601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550678ac7230489e800006017556801a055690d9db80000601855678ac7230489e800006019553480156200016c57600080fd5b5060006200017f620006db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000234620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031357600080fd5b505afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000723565b6040518363ffffffff1660e01b81526004016200040b92919062000777565b602060405180830381600087803b1580156200042657600080fd5b505af11580156200043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000461919062000723565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b7620006e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000664620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006cc9190620007a4565b60405180910390a350620008ef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071d81620008d5565b92915050565b6000602082840312156200073c576200073b620008d0565b5b60006200074c848285016200070c565b91505092915050565b6200076081620007fc565b82525050565b620007718162000830565b82525050565b60006040820190506200078e600083018562000755565b6200079d602083018462000755565b9392505050565b6000602082019050620007bb600083018462000766565b92915050565b6000620007ce8262000830565b9150620007db8362000830565b925082821015620007f157620007f062000872565b5b828203905092915050565b6000620008098262000810565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008478262000830565b9150620008548362000830565b925082620008675762000866620008a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008e081620007fc565b8114620008ec57600080fd5b50565b61427480620008ff6000396000f3fe6080604052600436106101d05760003560e01c806374010ece116100f7578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f14610636578063dd62ed3e14610661578063ea1644d51461069e578063f2fde38b146106c7576101d7565b8063a9059cbb1461057c578063bfd79284146105b9578063c3c8cd80146105f6578063c492f0461461060d576101d7565b80638f9a55c0116100d15780638f9a55c0146104d457806395d89b41146104ff57806398a5c3151461052a578063a2a957bb14610553576101d7565b806374010ece146104555780637d1db4a51461047e5780638da5cb5b146104a9576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103c15780636fc3eaec146103ea57806370a0823114610401578063715018a61461043e576101d7565b80632fd689e314610317578063313ce5671461034257806349bd5a5e1461036d5780636b99905314610398576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd146102985780631d97b7cd146102c357806323b872dd146102da576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe91906131a7565b6106f0565b005b34801561021157600080fd5b5061021a61081a565b604051610227919061366d565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190613107565b610857565b6040516102649190613637565b60405180910390f35b34801561027957600080fd5b50610282610875565b60405161028f9190613652565b60405180910390f35b3480156102a457600080fd5b506102ad61089b565b6040516102ba91906138af565b60405180910390f35b3480156102cf57600080fd5b506102d86108ac565b005b3480156102e657600080fd5b5061030160048036038101906102fc91906130b4565b610965565b60405161030e9190613637565b60405180910390f35b34801561032357600080fd5b5061032c610a97565b60405161033991906138af565b60405180910390f35b34801561034e57600080fd5b50610357610a9d565b6040516103649190613924565b60405180910390f35b34801561037957600080fd5b50610382610aa6565b60405161038f919061361c565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061301a565b610acc565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906131f0565b610bbc565b005b3480156103f657600080fd5b506103ff610c6d565b005b34801561040d57600080fd5b506104286004803603810190610423919061301a565b610d3e565b60405161043591906138af565b60405180910390f35b34801561044a57600080fd5b50610453610d8f565b005b34801561046157600080fd5b5061047c6004803603810190610477919061321d565b610ee2565b005b34801561048a57600080fd5b50610493610fda565b6040516104a091906138af565b60405180910390f35b3480156104b557600080fd5b506104be610fe0565b6040516104cb919061361c565b60405180910390f35b3480156104e057600080fd5b506104e9611009565b6040516104f691906138af565b60405180910390f35b34801561050b57600080fd5b5061051461100f565b604051610521919061366d565b60405180910390f35b34801561053657600080fd5b50610551600480360381019061054c919061321d565b61104c565b005b34801561055f57600080fd5b5061057a6004803603810190610575919061324a565b6110eb565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613107565b611214565b6040516105b09190613637565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061301a565b611232565b6040516105ed9190613637565b60405180910390f35b34801561060257600080fd5b5061060b611252565b005b34801561061957600080fd5b50610634600480360381019061062f9190613147565b61132b565b005b34801561064257600080fd5b5061064b611465565b60405161065891906138af565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613074565b61146b565b60405161069591906138af565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c0919061321d565b6114f2565b005b3480156106d357600080fd5b506106ee60048036038101906106e9919061301a565b6115ea565b005b6106f86117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906137cf565b60405180910390fd5b60005b8151811015610816576001601160008484815181106107aa576107a9613ca2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90613bfb565b915050610788565b5050565b60606040518060400160405280600781526020017f4275792044697000000000000000000000000000000000000000000000000000815250905090565b600061086b6108646117ac565b84846117b4565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6108b46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610938906137cf565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555043600881905550565b600061097284848461197f565b6005600061097e6117ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a8c57610a8b846109d66117ac565b610a868560405180606001604052806028815260200161421760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a3c6117ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123539092919063ffffffff16565b6117b4565b5b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906137cf565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bc46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906137cf565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cae6117ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d0c6117ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610d2d57600080fd5b6000479050610d3b816123b7565b50565b6000610d88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b2565b9050919050565b610d976117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b906137cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eea6117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e906137cf565b60405180910390fd5b6103e8683635c9adc5dea00000610f8e9190613a3b565b811015610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc79061388f565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600781526020017f455448544f354b00000000000000000000000000000000000000000000000000815250905090565b6110546117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906137cf565b60405180910390fd5b8060198190555050565b6110f36117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611177906137cf565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c81905550600081846111aa91906139e5565b9050600083866111ba91906139e5565b90506019821115806111cd575060198111155b61120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061378f565b60405180910390fd5b505050505050565b60006112286112216117ac565b848461197f565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112936117ac565b73ffffffffffffffffffffffffffffffffffffffff1614806113095750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f16117ac565b73ffffffffffffffffffffffffffffffffffffffff16145b61131257600080fd5b600061131d30610d3e565b905061132881612520565b50565b6113336117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b7906137cf565b60405180910390fd5b60005b8383905081101561145f5781600560008686858181106113e6576113e5613ca2565b5b90506020020160208101906113fb919061301a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145790613bfb565b9150506113c3565b50505050565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fa6117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e906137cf565b60405180910390fd5b6103e8683635c9adc5dea0000061159e9190613a3b565b8110156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d79061386f565b60405180910390fd5b8060188190555050565b6115f26117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906137cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061370f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b9061384f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061372f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197291906138af565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e69061380f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a569061368f565b60405180910390fd5b60008111611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a99906137ef565b60405180910390fd5b611aaa610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b185750611ae8610fe0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561205257601660149054906101000a900460ff16611ba757611b39610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d906136af565b60405180910390fd5b5b601754811115611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be3906136ef565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c905750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc69061374f565b60405180910390fd5b6008544311158015611d2e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611d885750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e1e576001601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ecb5760185481611e8084610d3e565b611e8a91906139e5565b10611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19061382f565b60405180910390fd5b5b6000611ed630610d3e565b9050600060195482101590506017548210611ef15760175491505b808015611f0b5750601660159054906101000a900460ff16155b8015611f655750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7b575060168054906101000a900460ff165b8015611fd15750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120275750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561204f5761203582612520565b6000479050600081111561204d5761204c476123b7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121ac5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121ab5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ba5760009050612341565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122655750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227d57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123285750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561234057600b54600d81905550600c54600e819055505b5b61234d848484846127a8565b50505050565b600083831115829061239b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612392919061366d565b60405180910390fd5b50600083856123aa9190613ac6565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124076002846127d590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612432573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124836002846127d590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124ae573d6000803e3d6000fd5b5050565b60006006548211156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906136cf565b60405180910390fd5b600061250361281f565b905061251881846127d590919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561255857612557613cd1565b5b6040519080825280602002602001820160405280156125865781602001602082028036833780820191505090505b509050308160008151811061259e5761259d613ca2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561264057600080fd5b505afa158015612654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126789190613047565b8160018151811061268c5761268b613ca2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117b4565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127579594939291906138ca565b600060405180830381600087803b15801561277157600080fd5b505af1158015612785573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127b6576127b561284a565b5b6127c184848461288d565b806127cf576127ce612a58565b5b50505050565b600061281783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a6c565b905092915050565b600080600061282c612acf565b9150915061284381836127d590919063ffffffff16565b9250505090565b6000600d5414801561285e57506000600e54145b156128685761288b565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061289f87612b31565b9550955095509550955095506128fd86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129de81612c41565b6129e88483612cfe565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a4591906138af565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aaa919061366d565b60405180910390fd5b5060008385612ac29190613a3b565b9050809150509392505050565b600080600060065490506000683635c9adc5dea000009050612b05683635c9adc5dea000006006546127d590919063ffffffff16565b821015612b2457600654683635c9adc5dea00000935093505050612b2d565b81819350935050505b9091565b6000806000806000806000806000612b4e8a600d54600e54612d38565b9250925092506000612b5e61281f565b90506000806000612b718e878787612dce565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bdb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612353565b905092915050565b6000808284612bf291906139e5565b905083811015612c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2e9061376f565b60405180910390fd5b8091505092915050565b6000612c4b61281f565b90506000612c628284612e5790919063ffffffff16565b9050612cb681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d1382600654612b9990919063ffffffff16565b600681905550612d2e81600754612be390919063ffffffff16565b6007819055505050565b600080600080612d646064612d56888a612e5790919063ffffffff16565b6127d590919063ffffffff16565b90506000612d8e6064612d80888b612e5790919063ffffffff16565b6127d590919063ffffffff16565b90506000612db782612da9858c612b9990919063ffffffff16565b612b9990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612de78589612e5790919063ffffffff16565b90506000612dfe8689612e5790919063ffffffff16565b90506000612e158789612e5790919063ffffffff16565b90506000612e3e82612e308587612b9990919063ffffffff16565b612b9990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e6a5760009050612ecc565b60008284612e789190613a6c565b9050828482612e879190613a3b565b14612ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebe906137af565b60405180910390fd5b809150505b92915050565b6000612ee5612ee084613964565b61393f565b90508083825260208201905082856020860282011115612f0857612f07613d0a565b5b60005b85811015612f385781612f1e8882612f42565b845260208401935060208301925050600181019050612f0b565b5050509392505050565b600081359050612f51816141d1565b92915050565b600081519050612f66816141d1565b92915050565b60008083601f840112612f8257612f81613d05565b5b8235905067ffffffffffffffff811115612f9f57612f9e613d00565b5b602083019150836020820283011115612fbb57612fba613d0a565b5b9250929050565b600082601f830112612fd757612fd6613d05565b5b8135612fe7848260208601612ed2565b91505092915050565b600081359050612fff816141e8565b92915050565b600081359050613014816141ff565b92915050565b6000602082840312156130305761302f613d14565b5b600061303e84828501612f42565b91505092915050565b60006020828403121561305d5761305c613d14565b5b600061306b84828501612f57565b91505092915050565b6000806040838503121561308b5761308a613d14565b5b600061309985828601612f42565b92505060206130aa85828601612f42565b9150509250929050565b6000806000606084860312156130cd576130cc613d14565b5b60006130db86828701612f42565b93505060206130ec86828701612f42565b92505060406130fd86828701613005565b9150509250925092565b6000806040838503121561311e5761311d613d14565b5b600061312c85828601612f42565b925050602061313d85828601613005565b9150509250929050565b6000806000604084860312156131605761315f613d14565b5b600084013567ffffffffffffffff81111561317e5761317d613d0f565b5b61318a86828701612f6c565b9350935050602061319d86828701612ff0565b9150509250925092565b6000602082840312156131bd576131bc613d14565b5b600082013567ffffffffffffffff8111156131db576131da613d0f565b5b6131e784828501612fc2565b91505092915050565b60006020828403121561320657613205613d14565b5b600061321484828501612ff0565b91505092915050565b60006020828403121561323357613232613d14565b5b600061324184828501613005565b91505092915050565b6000806000806080858703121561326457613263613d14565b5b600061327287828801613005565b945050602061328387828801613005565b935050604061329487828801613005565b92505060606132a587828801613005565b91505092959194509250565b60006132bd83836132c9565b60208301905092915050565b6132d281613afa565b82525050565b6132e181613afa565b82525050565b60006132f2826139a0565b6132fc81856139c3565b935061330783613990565b8060005b8381101561333857815161331f88826132b1565b975061332a836139b6565b92505060018101905061330b565b5085935050505092915050565b61334e81613b0c565b82525050565b61335d81613b4f565b82525050565b61336c81613b61565b82525050565b600061337d826139ab565b61338781856139d4565b9350613397818560208601613b97565b6133a081613d19565b840191505092915050565b60006133b86023836139d4565b91506133c382613d2a565b604082019050919050565b60006133db603f836139d4565b91506133e682613d79565b604082019050919050565b60006133fe602a836139d4565b915061340982613dc8565b604082019050919050565b6000613421601c836139d4565b915061342c82613e17565b602082019050919050565b60006134446026836139d4565b915061344f82613e40565b604082019050919050565b60006134676022836139d4565b915061347282613e8f565b604082019050919050565b600061348a6023836139d4565b915061349582613ede565b604082019050919050565b60006134ad601b836139d4565b91506134b882613f2d565b602082019050919050565b60006134d06016836139d4565b91506134db82613f56565b602082019050919050565b60006134f36021836139d4565b91506134fe82613f7f565b604082019050919050565b60006135166020836139d4565b915061352182613fce565b602082019050919050565b60006135396029836139d4565b915061354482613ff7565b604082019050919050565b600061355c6025836139d4565b915061356782614046565b604082019050919050565b600061357f6023836139d4565b915061358a82614095565b604082019050919050565b60006135a26024836139d4565b91506135ad826140e4565b604082019050919050565b60006135c56028836139d4565b91506135d082614133565b604082019050919050565b60006135e86026836139d4565b91506135f382614182565b604082019050919050565b61360781613b38565b82525050565b61361681613b42565b82525050565b600060208201905061363160008301846132d8565b92915050565b600060208201905061364c6000830184613345565b92915050565b60006020820190506136676000830184613354565b92915050565b600060208201905081810360008301526136878184613372565b905092915050565b600060208201905081810360008301526136a8816133ab565b9050919050565b600060208201905081810360008301526136c8816133ce565b9050919050565b600060208201905081810360008301526136e8816133f1565b9050919050565b6000602082019050818103600083015261370881613414565b9050919050565b6000602082019050818103600083015261372881613437565b9050919050565b600060208201905081810360008301526137488161345a565b9050919050565b600060208201905081810360008301526137688161347d565b9050919050565b60006020820190508181036000830152613788816134a0565b9050919050565b600060208201905081810360008301526137a8816134c3565b9050919050565b600060208201905081810360008301526137c8816134e6565b9050919050565b600060208201905081810360008301526137e881613509565b9050919050565b600060208201905081810360008301526138088161352c565b9050919050565b600060208201905081810360008301526138288161354f565b9050919050565b6000602082019050818103600083015261384881613572565b9050919050565b6000602082019050818103600083015261386881613595565b9050919050565b60006020820190508181036000830152613888816135b8565b9050919050565b600060208201905081810360008301526138a8816135db565b9050919050565b60006020820190506138c460008301846135fe565b92915050565b600060a0820190506138df60008301886135fe565b6138ec6020830187613363565b81810360408301526138fe81866132e7565b905061390d60608301856132d8565b61391a60808301846135fe565b9695505050505050565b6000602082019050613939600083018461360d565b92915050565b600061394961395a565b90506139558282613bca565b919050565b6000604051905090565b600067ffffffffffffffff82111561397f5761397e613cd1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139f082613b38565b91506139fb83613b38565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a3057613a2f613c44565b5b828201905092915050565b6000613a4682613b38565b9150613a5183613b38565b925082613a6157613a60613c73565b5b828204905092915050565b6000613a7782613b38565b9150613a8283613b38565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613abb57613aba613c44565b5b828202905092915050565b6000613ad182613b38565b9150613adc83613b38565b925082821015613aef57613aee613c44565b5b828203905092915050565b6000613b0582613b18565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5a82613b73565b9050919050565b6000613b6c82613b38565b9050919050565b6000613b7e82613b85565b9050919050565b6000613b9082613b18565b9050919050565b60005b83811015613bb5578082015181840152602081019050613b9a565b83811115613bc4576000848401525b50505050565b613bd382613d19565b810181811067ffffffffffffffff82111715613bf257613bf1613cd1565b5b80604052505050565b6000613c0682613b38565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c3957613c38613c44565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f46656573206d75737420626520756e6465722032352500000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3125000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420736574206d61785478416d6f756e74206c6f7765722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b6141da81613afa565b81146141e557600080fd5b50565b6141f181613b0c565b81146141fc57600080fd5b50565b61420881613b38565b811461421357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010823df93e8ed9fc3f10c4d2819ce24b77a35a08525aad4e309b178e45f66f9964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806374010ece116100f7578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f14610636578063dd62ed3e14610661578063ea1644d51461069e578063f2fde38b146106c7576101d7565b8063a9059cbb1461057c578063bfd79284146105b9578063c3c8cd80146105f6578063c492f0461461060d576101d7565b80638f9a55c0116100d15780638f9a55c0146104d457806395d89b41146104ff57806398a5c3151461052a578063a2a957bb14610553576101d7565b806374010ece146104555780637d1db4a51461047e5780638da5cb5b146104a9576101d7565b80632fd689e31161016f5780636d8aa8f81161013e5780636d8aa8f8146103c15780636fc3eaec146103ea57806370a0823114610401578063715018a61461043e576101d7565b80632fd689e314610317578063313ce5671461034257806349bd5a5e1461036d5780636b99905314610398576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd146102985780631d97b7cd146102c357806323b872dd146102da576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe91906131a7565b6106f0565b005b34801561021157600080fd5b5061021a61081a565b604051610227919061366d565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190613107565b610857565b6040516102649190613637565b60405180910390f35b34801561027957600080fd5b50610282610875565b60405161028f9190613652565b60405180910390f35b3480156102a457600080fd5b506102ad61089b565b6040516102ba91906138af565b60405180910390f35b3480156102cf57600080fd5b506102d86108ac565b005b3480156102e657600080fd5b5061030160048036038101906102fc91906130b4565b610965565b60405161030e9190613637565b60405180910390f35b34801561032357600080fd5b5061032c610a97565b60405161033991906138af565b60405180910390f35b34801561034e57600080fd5b50610357610a9d565b6040516103649190613924565b60405180910390f35b34801561037957600080fd5b50610382610aa6565b60405161038f919061361c565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061301a565b610acc565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906131f0565b610bbc565b005b3480156103f657600080fd5b506103ff610c6d565b005b34801561040d57600080fd5b506104286004803603810190610423919061301a565b610d3e565b60405161043591906138af565b60405180910390f35b34801561044a57600080fd5b50610453610d8f565b005b34801561046157600080fd5b5061047c6004803603810190610477919061321d565b610ee2565b005b34801561048a57600080fd5b50610493610fda565b6040516104a091906138af565b60405180910390f35b3480156104b557600080fd5b506104be610fe0565b6040516104cb919061361c565b60405180910390f35b3480156104e057600080fd5b506104e9611009565b6040516104f691906138af565b60405180910390f35b34801561050b57600080fd5b5061051461100f565b604051610521919061366d565b60405180910390f35b34801561053657600080fd5b50610551600480360381019061054c919061321d565b61104c565b005b34801561055f57600080fd5b5061057a6004803603810190610575919061324a565b6110eb565b005b34801561058857600080fd5b506105a3600480360381019061059e9190613107565b611214565b6040516105b09190613637565b60405180910390f35b3480156105c557600080fd5b506105e060048036038101906105db919061301a565b611232565b6040516105ed9190613637565b60405180910390f35b34801561060257600080fd5b5061060b611252565b005b34801561061957600080fd5b50610634600480360381019061062f9190613147565b61132b565b005b34801561064257600080fd5b5061064b611465565b60405161065891906138af565b60405180910390f35b34801561066d57600080fd5b5061068860048036038101906106839190613074565b61146b565b60405161069591906138af565b60405180910390f35b3480156106aa57600080fd5b506106c560048036038101906106c0919061321d565b6114f2565b005b3480156106d357600080fd5b506106ee60048036038101906106e9919061301a565b6115ea565b005b6106f86117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077c906137cf565b60405180910390fd5b60005b8151811015610816576001601160008484815181106107aa576107a9613ca2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080e90613bfb565b915050610788565b5050565b60606040518060400160405280600781526020017f4275792044697000000000000000000000000000000000000000000000000000815250905090565b600061086b6108646117ac565b84846117b4565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6108b46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610941576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610938906137cf565b60405180910390fd5b6001601660146101000a81548160ff02191690831515021790555043600881905550565b600061097284848461197f565b6005600061097e6117ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a8c57610a8b846109d66117ac565b610a868560405180606001604052806028815260200161421760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a3c6117ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123539092919063ffffffff16565b6117b4565b5b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906137cf565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bc46117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906137cf565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cae6117ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d0c6117ac565b73ffffffffffffffffffffffffffffffffffffffff16145b610d2d57600080fd5b6000479050610d3b816123b7565b50565b6000610d88600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b2565b9050919050565b610d976117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1b906137cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610eea6117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e906137cf565b60405180910390fd5b6103e8683635c9adc5dea00000610f8e9190613a3b565b811015610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc79061388f565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600781526020017f455448544f354b00000000000000000000000000000000000000000000000000815250905090565b6110546117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906137cf565b60405180910390fd5b8060198190555050565b6110f36117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611177906137cf565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c81905550600081846111aa91906139e5565b9050600083866111ba91906139e5565b90506019821115806111cd575060198111155b61120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061378f565b60405180910390fd5b505050505050565b60006112286112216117ac565b848461197f565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112936117ac565b73ffffffffffffffffffffffffffffffffffffffff1614806113095750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f16117ac565b73ffffffffffffffffffffffffffffffffffffffff16145b61131257600080fd5b600061131d30610d3e565b905061132881612520565b50565b6113336117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b7906137cf565b60405180910390fd5b60005b8383905081101561145f5781600560008686858181106113e6576113e5613ca2565b5b90506020020160208101906113fb919061301a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145790613bfb565b9150506113c3565b50505050565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fa6117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e906137cf565b60405180910390fd5b6103e8683635c9adc5dea0000061159e9190613a3b565b8110156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d79061386f565b60405180910390fd5b8060188190555050565b6115f26117ac565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906137cf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e69061370f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b9061384f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b9061372f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197291906138af565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e69061380f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a569061368f565b60405180910390fd5b60008111611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a99906137ef565b60405180910390fd5b611aaa610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b185750611ae8610fe0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561205257601660149054906101000a900460ff16611ba757611b39610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d906136af565b60405180910390fd5b5b601754811115611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be3906136ef565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611c905750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc69061374f565b60405180910390fd5b6008544311158015611d2e5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611d885750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dc057503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e1e576001601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ecb5760185481611e8084610d3e565b611e8a91906139e5565b10611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19061382f565b60405180910390fd5b5b6000611ed630610d3e565b9050600060195482101590506017548210611ef15760175491505b808015611f0b5750601660159054906101000a900460ff16155b8015611f655750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7b575060168054906101000a900460ff165b8015611fd15750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120275750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561204f5761203582612520565b6000479050600081111561204d5761204c476123b7565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120f95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121ac5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121ab5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121ba5760009050612341565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122655750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227d57600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123285750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561234057600b54600d81905550600c54600e819055505b5b61234d848484846127a8565b50505050565b600083831115829061239b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612392919061366d565b60405180910390fd5b50600083856123aa9190613ac6565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124076002846127d590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612432573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6124836002846127d590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156124ae573d6000803e3d6000fd5b5050565b60006006548211156124f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f0906136cf565b60405180910390fd5b600061250361281f565b905061251881846127d590919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561255857612557613cd1565b5b6040519080825280602002602001820160405280156125865781602001602082028036833780820191505090505b509050308160008151811061259e5761259d613ca2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561264057600080fd5b505afa158015612654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126789190613047565b8160018151811061268c5761268b613ca2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126f330601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117b4565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127579594939291906138ca565b600060405180830381600087803b15801561277157600080fd5b505af1158015612785573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b806127b6576127b561284a565b5b6127c184848461288d565b806127cf576127ce612a58565b5b50505050565b600061281783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a6c565b905092915050565b600080600061282c612acf565b9150915061284381836127d590919063ffffffff16565b9250505090565b6000600d5414801561285e57506000600e54145b156128685761288b565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061289f87612b31565b9550955095509550955095506128fd86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129de81612c41565b6129e88483612cfe565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612a4591906138af565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008083118290612ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aaa919061366d565b60405180910390fd5b5060008385612ac29190613a3b565b9050809150509392505050565b600080600060065490506000683635c9adc5dea000009050612b05683635c9adc5dea000006006546127d590919063ffffffff16565b821015612b2457600654683635c9adc5dea00000935093505050612b2d565b81819350935050505b9091565b6000806000806000806000806000612b4e8a600d54600e54612d38565b9250925092506000612b5e61281f565b90506000806000612b718e878787612dce565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612bdb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612353565b905092915050565b6000808284612bf291906139e5565b905083811015612c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c2e9061376f565b60405180910390fd5b8091505092915050565b6000612c4b61281f565b90506000612c628284612e5790919063ffffffff16565b9050612cb681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612d1382600654612b9990919063ffffffff16565b600681905550612d2e81600754612be390919063ffffffff16565b6007819055505050565b600080600080612d646064612d56888a612e5790919063ffffffff16565b6127d590919063ffffffff16565b90506000612d8e6064612d80888b612e5790919063ffffffff16565b6127d590919063ffffffff16565b90506000612db782612da9858c612b9990919063ffffffff16565b612b9990919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612de78589612e5790919063ffffffff16565b90506000612dfe8689612e5790919063ffffffff16565b90506000612e158789612e5790919063ffffffff16565b90506000612e3e82612e308587612b9990919063ffffffff16565b612b9990919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612e6a5760009050612ecc565b60008284612e789190613a6c565b9050828482612e879190613a3b565b14612ec7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ebe906137af565b60405180910390fd5b809150505b92915050565b6000612ee5612ee084613964565b61393f565b90508083825260208201905082856020860282011115612f0857612f07613d0a565b5b60005b85811015612f385781612f1e8882612f42565b845260208401935060208301925050600181019050612f0b565b5050509392505050565b600081359050612f51816141d1565b92915050565b600081519050612f66816141d1565b92915050565b60008083601f840112612f8257612f81613d05565b5b8235905067ffffffffffffffff811115612f9f57612f9e613d00565b5b602083019150836020820283011115612fbb57612fba613d0a565b5b9250929050565b600082601f830112612fd757612fd6613d05565b5b8135612fe7848260208601612ed2565b91505092915050565b600081359050612fff816141e8565b92915050565b600081359050613014816141ff565b92915050565b6000602082840312156130305761302f613d14565b5b600061303e84828501612f42565b91505092915050565b60006020828403121561305d5761305c613d14565b5b600061306b84828501612f57565b91505092915050565b6000806040838503121561308b5761308a613d14565b5b600061309985828601612f42565b92505060206130aa85828601612f42565b9150509250929050565b6000806000606084860312156130cd576130cc613d14565b5b60006130db86828701612f42565b93505060206130ec86828701612f42565b92505060406130fd86828701613005565b9150509250925092565b6000806040838503121561311e5761311d613d14565b5b600061312c85828601612f42565b925050602061313d85828601613005565b9150509250929050565b6000806000604084860312156131605761315f613d14565b5b600084013567ffffffffffffffff81111561317e5761317d613d0f565b5b61318a86828701612f6c565b9350935050602061319d86828701612ff0565b9150509250925092565b6000602082840312156131bd576131bc613d14565b5b600082013567ffffffffffffffff8111156131db576131da613d0f565b5b6131e784828501612fc2565b91505092915050565b60006020828403121561320657613205613d14565b5b600061321484828501612ff0565b91505092915050565b60006020828403121561323357613232613d14565b5b600061324184828501613005565b91505092915050565b6000806000806080858703121561326457613263613d14565b5b600061327287828801613005565b945050602061328387828801613005565b935050604061329487828801613005565b92505060606132a587828801613005565b91505092959194509250565b60006132bd83836132c9565b60208301905092915050565b6132d281613afa565b82525050565b6132e181613afa565b82525050565b60006132f2826139a0565b6132fc81856139c3565b935061330783613990565b8060005b8381101561333857815161331f88826132b1565b975061332a836139b6565b92505060018101905061330b565b5085935050505092915050565b61334e81613b0c565b82525050565b61335d81613b4f565b82525050565b61336c81613b61565b82525050565b600061337d826139ab565b61338781856139d4565b9350613397818560208601613b97565b6133a081613d19565b840191505092915050565b60006133b86023836139d4565b91506133c382613d2a565b604082019050919050565b60006133db603f836139d4565b91506133e682613d79565b604082019050919050565b60006133fe602a836139d4565b915061340982613dc8565b604082019050919050565b6000613421601c836139d4565b915061342c82613e17565b602082019050919050565b60006134446026836139d4565b915061344f82613e40565b604082019050919050565b60006134676022836139d4565b915061347282613e8f565b604082019050919050565b600061348a6023836139d4565b915061349582613ede565b604082019050919050565b60006134ad601b836139d4565b91506134b882613f2d565b602082019050919050565b60006134d06016836139d4565b91506134db82613f56565b602082019050919050565b60006134f36021836139d4565b91506134fe82613f7f565b604082019050919050565b60006135166020836139d4565b915061352182613fce565b602082019050919050565b60006135396029836139d4565b915061354482613ff7565b604082019050919050565b600061355c6025836139d4565b915061356782614046565b604082019050919050565b600061357f6023836139d4565b915061358a82614095565b604082019050919050565b60006135a26024836139d4565b91506135ad826140e4565b604082019050919050565b60006135c56028836139d4565b91506135d082614133565b604082019050919050565b60006135e86026836139d4565b91506135f382614182565b604082019050919050565b61360781613b38565b82525050565b61361681613b42565b82525050565b600060208201905061363160008301846132d8565b92915050565b600060208201905061364c6000830184613345565b92915050565b60006020820190506136676000830184613354565b92915050565b600060208201905081810360008301526136878184613372565b905092915050565b600060208201905081810360008301526136a8816133ab565b9050919050565b600060208201905081810360008301526136c8816133ce565b9050919050565b600060208201905081810360008301526136e8816133f1565b9050919050565b6000602082019050818103600083015261370881613414565b9050919050565b6000602082019050818103600083015261372881613437565b9050919050565b600060208201905081810360008301526137488161345a565b9050919050565b600060208201905081810360008301526137688161347d565b9050919050565b60006020820190508181036000830152613788816134a0565b9050919050565b600060208201905081810360008301526137a8816134c3565b9050919050565b600060208201905081810360008301526137c8816134e6565b9050919050565b600060208201905081810360008301526137e881613509565b9050919050565b600060208201905081810360008301526138088161352c565b9050919050565b600060208201905081810360008301526138288161354f565b9050919050565b6000602082019050818103600083015261384881613572565b9050919050565b6000602082019050818103600083015261386881613595565b9050919050565b60006020820190508181036000830152613888816135b8565b9050919050565b600060208201905081810360008301526138a8816135db565b9050919050565b60006020820190506138c460008301846135fe565b92915050565b600060a0820190506138df60008301886135fe565b6138ec6020830187613363565b81810360408301526138fe81866132e7565b905061390d60608301856132d8565b61391a60808301846135fe565b9695505050505050565b6000602082019050613939600083018461360d565b92915050565b600061394961395a565b90506139558282613bca565b919050565b6000604051905090565b600067ffffffffffffffff82111561397f5761397e613cd1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139f082613b38565b91506139fb83613b38565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a3057613a2f613c44565b5b828201905092915050565b6000613a4682613b38565b9150613a5183613b38565b925082613a6157613a60613c73565b5b828204905092915050565b6000613a7782613b38565b9150613a8283613b38565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613abb57613aba613c44565b5b828202905092915050565b6000613ad182613b38565b9150613adc83613b38565b925082821015613aef57613aee613c44565b5b828203905092915050565b6000613b0582613b18565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5a82613b73565b9050919050565b6000613b6c82613b38565b9050919050565b6000613b7e82613b85565b9050919050565b6000613b9082613b18565b9050919050565b60005b83811015613bb5578082015181840152602081019050613b9a565b83811115613bc4576000848401525b50505050565b613bd382613d19565b810181811067ffffffffffffffff82111715613bf257613bf1613cd1565b5b80604052505050565b6000613c0682613b38565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c3957613c38613c44565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f46656573206d75737420626520756e6465722032352500000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3125000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420736574206d61785478416d6f756e74206c6f7765722074686160008201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b6141da81613afa565b81146141e557600080fd5b50565b6141f181613b0c565b81146141fc57600080fd5b50565b61420881613b38565b811461421357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010823df93e8ed9fc3f10c4d2819ce24b77a35a08525aad4e309b178e45f66f9964736f6c63430008070033

Deployed Bytecode Sourcemap

4094:14384:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13247:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6728:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7660:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5541:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7008:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12633:116;;;;;;;;;;;;;:::i;:::-;;7862:485;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6916:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13425:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17682:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13003:235;;;;;;;;;;;;;:::i;:::-;;7112:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1567:148;;;;;;;;;;;;;:::i;:::-;;17826:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5733:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1351:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5792:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6820:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17490:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16949:488;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7259:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5231:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12758:236;;;;;;;;;;;;;:::i;:::-;;18241:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4765:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7467:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18028:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1724:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13247:169;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13323:9:::1;13318:91;13342:5;:12;13338:1;:16;13318:91;;;13393:4;13376;:14;13381:5;13387:1;13381:8;;;;;;;;:::i;:::-;;;;;;;;13376:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13356:3;;;;;:::i;:::-;;;;13318:91;;;;13247:169:::0;:::o;6728:83::-;6765:13;6798:5;;;;;;;;;;;;;;;;;6791:12;;6728:83;:::o;7660:193::-;7762:4;7784:39;7793:12;:10;:12::i;:::-;7807:7;7816:6;7784:8;:39::i;:::-;7841:4;7834:11;;7660:193;;;;:::o;5541:41::-;;;;;;;;;;;;;:::o;7008:95::-;7061:7;4648:21;7081:14;;7008:95;:::o;12633:116::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12700:4:::1;12686:11;;:18;;;;;;;;;;;;;;;;;;12729:12;12715:11;:26;;;;12633:116::o:0;7862:485::-;7994:4;8011:36;8021:6;8029:9;8040:6;8011:9;:36::i;:::-;8063:18;:32;8082:12;:10;:12::i;:::-;8063:32;;;;;;;;;;;;;;;;;;;;;;;;;8058:259;;8097:220;8120:6;8141:12;:10;:12::i;:::-;8168:138;8224:6;8168:138;;;;;;;;;;;;;;;;;:11;:19;8180:6;8168:19;;;;;;;;;;;;;;;:33;8188:12;:10;:12::i;:::-;8168:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8097:8;:220::i;:::-;8058:259;8335:4;8328:11;;7862:485;;;;;:::o;5853:55::-;;;;:::o;6916:83::-;6957:5;4321:1;6975:16;;6916:83;:::o;5589:28::-;;;;;;;;;;;;;:::o;13425:92::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13504:5:::1;13489:4;:12;13494:6;13489:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13425:92:::0;:::o;17682:101::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17763:12:::1;17749:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17682:101:::0;:::o;13003:235::-;13069:19;;;;;;;;;;;13053:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13108:17;;;;;;;;;;;13092:33;;:12;:10;:12::i;:::-;:33;;;13053:72;13045:81;;;;;;13137:26;13166:21;13137:50;;13198:32;13211:18;13198:12;:32::i;:::-;13034:204;13003:235::o;7112:138::-;7178:7;7205:37;7225:7;:16;7233:7;7225:16;;;;;;;;;;;;;;;;7205:19;:37::i;:::-;7198:44;;7112:138;;;:::o;1567:148::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1:::1;1637:40;;1658:6;::::0;::::1;;;;;;;;1637:40;;;;;;;;;;;;1705:1;1688:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1567:148::o:0;17826:193::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17927:4:::1;4648:21;17917:14;;;;:::i;:::-;17902:11;:29;;17894:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18000:11;17985:12;:26;;;;17826:193:::0;:::o;5733:49::-;;;;:::o;1351:79::-;1389:7;1416:6;;;;;;;;;;;1409:13;;1351:79;:::o;5792:51::-;;;;:::o;6820:87::-;6859:13;6892:7;;;;;;;;;;;;;;;;;6885:14;;6820:87;:::o;17490:139::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17603:18:::1;17581:19;:40;;;;17490:139:::0;:::o;16949:488::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17100:13:::1;17083:14;:30;;;;17142:14;17124:15;:32;;;;17185:11;17170:12;:26;;;;17223:12;17207:13;:28;;;;17244:20;17284:12;17267:14;:29;;;;:::i;:::-;17244:52;;17301:19;17339:11;17323:13;:27;;;;:::i;:::-;17301:49;;17379:2;17363:12;:18;;:39;;;;17400:2;17385:11;:17;;17363:39;17355:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17072:365;;16949:488:::0;;;;:::o;7259:199::-;7364:4;7386:42;7396:12;:10;:12::i;:::-;7410:9;7421:6;7386:9;:42::i;:::-;7446:4;7439:11;;7259:199;;;;:::o;5231:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12758:236::-;12824:19;;;;;;;;;;;12808:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12863:17;;;;;;;;;;;12847:33;;:12;:10;:12::i;:::-;:33;;;12808:72;12800:81;;;;;;12892:23;12918:24;12936:4;12918:9;:24::i;:::-;12892:50;;12953:33;12970:15;12953:16;:33::i;:::-;12789:205;12758:236::o;18241:234::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18358:9:::1;18354:114;18377:8;;:15;;18373:1;:19;18354:114;;;18448:8;18414:18;:31;18433:8;;18442:1;18433:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18414:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18394:3;;;;;:::i;:::-;;;;18354:114;;;;18241:234:::0;;;:::o;4765:26::-;;;;:::o;7467:184::-;7584:7;7616:11;:18;7628:5;7616:18;;;;;;;;;;;;;;;:27;7635:7;7616:27;;;;;;;;;;;;;;;;7609:34;;7467:184;;;;:::o;18028:204::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18134:4:::1;4648:21;18124:14;;;;:::i;:::-;18107:13;:31;;18099:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;18211:13;18194:14;:30;;;;18028:204:::0;:::o;1724:244::-;1489:12;:10;:12::i;:::-;1479:22;;:6;;;;;;;;;;:22;;;1471:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1833:1:::1;1813:22;;:8;:22;;;;1805:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1923:8;1894:38;;1915:6;::::0;::::1;;;;;;;;1894:38;;;;;;;;;;;;1952:8;1943:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1724:244:::0;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;9044:369::-;9188:1;9171:19;;:5;:19;;;;9163:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9269:1;9250:21;;:7;:21;;;;9242:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9351:6;9321:11;:18;9333:5;9321:18;;;;;;;;;;;;;;;:27;9340:7;9321:27;;;;;;;;;;;;;;;:36;;;;9389:7;9373:32;;9382:5;9373:32;;;9398:6;9373:32;;;;;;:::i;:::-;;;;;;;;9044:369;;;:::o;9422:2541::-;9560:1;9544:18;;:4;:18;;;;9536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9637:1;9623:16;;:2;:16;;;;9615:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9707:1;9698:6;:10;9690:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9779:7;:5;:7::i;:::-;9771:15;;:4;:15;;;;:32;;;;;9796:7;:5;:7::i;:::-;9790:13;;:2;:13;;;;9771:32;9767:1456;;;9861:11;;;;;;;;;;;9856:144;;9909:7;:5;:7::i;:::-;9901:15;;:4;:15;;;9893:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9856:144;10035:12;;10025:6;:22;;10017:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10104:4;:10;10109:4;10104:10;;;;;;;;;;;;;;;;;;;;;;;;;10103:11;:24;;;;;10119:4;:8;10124:2;10119:8;;;;;;;;;;;;;;;;;;;;;;;;;10118:9;10103:24;10095:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10211:11;;10195:12;:27;;:52;;;;;10234:13;;;;;;;;;;;10226:21;;:4;:21;;;10195:52;:86;;;;;10265:15;;;;;;;;;;;10251:30;;:2;:30;;;;10195:86;:109;;;;;10299:4;10285:19;;:2;:19;;;;10195:109;10192:166;;;10338:4;10327;:8;10332:2;10327:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;10192:166;10385:13;;;;;;;;;;;10379:19;;:2;:19;;;10376:146;;10452:14;;10443:6;10427:13;10437:2;10427:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10419:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10376:146;10539:28;10570:24;10588:4;10570:9;:24::i;:::-;10539:55;;10609:12;10648:19;;10624:20;:43;;10609:58;;10712:12;;10688:20;:36;10685:124;;10781:12;;10758:35;;10685:124;10830:7;:18;;;;;10842:6;;;;;;;;;;;10841:7;10830:18;:43;;;;;10860:13;;;;;;;;;;;10852:21;;:4;:21;;;;10830:43;:58;;;;;10877:11;;;;;;;;;;10830:58;:87;;;;;10893:18;:24;10912:4;10893:24;;;;;;;;;;;;;;;;;;;;;;;;;10892:25;10830:87;:114;;;;;10922:18;:22;10941:2;10922:22;;;;;;;;;;;;;;;;;;;;;;;;;10921:23;10830:114;10826:386;;;10965:38;10982:20;10965:16;:38::i;:::-;11022:26;11051:21;11022:50;;11116:1;11095:18;:22;11091:106;;;11142:35;11155:21;11142:12;:35::i;:::-;11091:106;10946:266;10826:386;9805:1418;;9767:1456;11236:12;11251:4;11236:19;;11301:18;:24;11320:4;11301:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11329:18;:22;11348:2;11329:22;;;;;;;;;;;;;;;;;;;;;;;;;11301:50;11300:102;;;;11365:13;;;;;;;;;;;11357:21;;:4;:21;;;;:44;;;;;11388:13;;;;;;;;;;;11382:19;;:2;:19;;;;11357:44;11300:102;11296:599;;;11429:5;11419:15;;11296:599;;;11515:13;;;;;;;;;;;11507:21;;:4;:21;;;:55;;;;;11546:15;;;;;;;;;;;11532:30;;:2;:30;;;;11507:55;11504:162;;;11595:14;;11583:9;:26;;;;11638:12;;11628:7;:22;;;;11504:162;11726:13;;;;;;;;;;;11720:19;;:2;:19;;;:55;;;;;11759:15;;;;;;;;;;;11743:32;;:4;:32;;;;11720:55;11716:165;;;11808:15;;11796:9;:27;;;;11852:13;;11842:7;:23;;;;11716:165;11296:599;11912:41;11927:4;11933:2;11937:6;11945:7;11912:14;:41::i;:::-;9525:2438;9422:2541;;;:::o;2336:224::-;2456:7;2489:1;2484;:6;;2492:12;2476:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2516:9;2532:1;2528;:5;;;;:::i;:::-;2516:17;;2551:1;2544:8;;;2336:224;;;;;:::o;12464:160::-;12521:19;;;;;;;;;;;:28;;:43;12550:13;12561:1;12550:6;:10;;:13;;;;:::i;:::-;12521:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12575:17;;;;;;;;;;;:26;;:41;12602:13;12613:1;12602:6;:10;;:13;;;;:::i;:::-;12575:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12464:160;:::o;8356:323::-;8451:7;8509;;8498;:18;;8476:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8597:19;8619:10;:8;:10::i;:::-;8597:32;;8647:24;8659:11;8647:7;:11;;:24;;;;:::i;:::-;8640:31;;;8356:323;;;:::o;11972:483::-;6015:4;6006:6;;:13;;;;;;;;;;;;;;;;;;12050:21:::1;12088:1;12074:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12050:40;;12119:4;12101;12106:1;12101:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12145:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12135:4;12140:1;12135:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12178:62;12195:4;12210:15;;;;;;;;;;;12228:11;12178:8;:62::i;:::-;12251:15;;;;;;;;;;;:66;;;12332:11;12358:1;12374:4;12401;12421:15;12251:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12039:416;6051:5:::0;6042:6;;:14;;;;;;;;;;;;;;;;;;11972:483;:::o;13526:282::-;13682:7;13677:28;;13691:14;:12;:14::i;:::-;13677:28;13716:44;13734:6;13742:9;13753:6;13716:17;:44::i;:::-;13776:7;13771:29;;13785:15;:13;:15::i;:::-;13771:29;13526:282;;;;:::o;2824:132::-;2882:7;2909:39;2913:1;2916;2909:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2902:46;;2824:132;;;;:::o;16504:167::-;16546:7;16567:15;16584;16603:19;:17;:19::i;:::-;16566:56;;;;16643:20;16655:7;16643;:11;;:20;;;;:::i;:::-;16636:27;;;;16504:167;:::o;8688:221::-;8748:1;8735:9;;:14;:30;;;;;8764:1;8753:7;;:12;8735:30;8731:43;;;8767:7;;8731:43;8807:9;;8787:17;:29;;;;8845:7;;8827:15;:25;;;;8878:1;8866:9;:13;;;;8900:1;8890:7;:11;;;;8688:221;:::o;13817:610::-;13964:15;13994:23;14032:12;14059:23;14097:12;14124:13;14151:19;14162:7;14151:10;:19::i;:::-;13949:221;;;;;;;;;;;;14199:28;14219:7;14199;:15;14207:6;14199:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14181:7;:15;14189:6;14181:15;;;;;;;;;;;;;;;:46;;;;14259:39;14282:15;14259:7;:18;14267:9;14259:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14238:7;:18;14246:9;14238:18;;;;;;;;;;;;;;;:60;;;;14309:16;14319:5;14309:9;:16::i;:::-;14336:23;14348:4;14354;14336:11;:23::i;:::-;14392:9;14375:44;;14384:6;14375:44;;;14403:15;14375:44;;;;;;:::i;:::-;;;;;;;;13938:489;;;;;;13817:610;;;:::o;8918:117::-;8974:17;;8962:9;:29;;;;9012:15;;9002:7;:25;;;;8918:117::o;2965:223::-;3085:7;3117:1;3113;:5;3120:12;3105:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3144:9;3160:1;3156;:5;;;;:::i;:::-;3144:17;;3179:1;3172:8;;;2965:223;;;;;:::o;16680:260::-;16731:7;16740;16760:15;16778:7;;16760:25;;16796:15;4648:21;16796:25;;16846:20;4648:21;16846:7;;:11;;:20;;;;:::i;:::-;16836:7;:30;16832:61;;;16876:7;;4648:21;16868:25;;;;;;;;16832:61;16915:7;16924;16907:25;;;;;;16680:260;;;:::o;14850:618::-;14950:7;14972;14994;15016;15038;15060;15096:23;15121:12;15135:13;15165:40;15177:7;15186:9;;15197:7;;15165:11;:40::i;:::-;15095:110;;;;;;15216:19;15238:10;:8;:10::i;:::-;15216:32;;15260:15;15277:23;15302:12;15331:46;15343:7;15352:4;15358:5;15365:11;15331;:46::i;:::-;15259:118;;;;;;15399:7;15408:15;15425:4;15431:15;15448:4;15454:5;15391:69;;;;;;;;;;;;;;;;;;;14850:618;;;;;;;:::o;2191:136::-;2249:7;2276:43;2280:1;2283;2276:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2269:50;;2191:136;;;;:::o;2003:179::-;2061:7;2081:9;2097:1;2093;:5;;;;:::i;:::-;2081:17;;2122:1;2117;:6;;2109:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2173:1;2166:8;;;2003:179;;;;:::o;14436:211::-;14489:19;14511:10;:8;:10::i;:::-;14489:32;;14532:13;14548:22;14558:11;14548:5;:9;;:22;;;;:::i;:::-;14532:38;;14606:33;14633:5;14606:7;:22;14622:4;14606:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14581:7;:22;14597:4;14581:22;;;;;;;;;;;;;;;:58;;;;14478:169;;14436:211;:::o;14656:147::-;14734:17;14746:4;14734:7;;:11;;:17;;;;:::i;:::-;14724:7;:27;;;;14775:20;14790:4;14775:10;;:14;;:20;;;;:::i;:::-;14762:10;:33;;;;14656:147;;:::o;15477:472::-;15646:7;15668;15690;15725:12;15740:30;15766:3;15740:21;15752:8;15740:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15725:45;;15781:13;15797:28;15821:3;15797:19;15809:6;15797:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15781:44;;15836:23;15862:28;15884:5;15862:17;15874:4;15862:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15836:54;;15912:15;15929:4;15935:5;15904:37;;;;;;;;;15477:472;;;;;;;:::o;15958:537::-;16152:7;16174;16196;16231:15;16249:24;16261:11;16249:7;:11;;:24;;;;:::i;:::-;16231:42;;16284:12;16299:21;16308:11;16299:4;:8;;:21;;;;:::i;:::-;16284:36;;16331:13;16347:22;16357:11;16347:5;:9;;:22;;;;:::i;:::-;16331:38;;16380:23;16406:28;16428:5;16406:17;16418:4;16406:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16380:54;;16456:7;16465:15;16482:4;16448:39;;;;;;;;;;15958:537;;;;;;;;:::o;2569:246::-;2627:7;2656:1;2651;:6;2647:47;;;2681:1;2674:8;;;;2647:47;2704:9;2720:1;2716;:5;;;;:::i;:::-;2704:17;;2749:1;2744;2740;:5;;;;:::i;:::-;:10;2732:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2806:1;2799:8;;;2569: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:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2030:133::-;2073:5;2111:6;2098:20;2089:29;;2127:30;2151:5;2127:30;:::i;:::-;2030:133;;;;:::o;2169:139::-;2215:5;2253:6;2240:20;2231:29;;2269:33;2296:5;2269:33;:::i;:::-;2169:139;;;;:::o;2314:329::-;2373:6;2422:2;2410:9;2401:7;2397:23;2393:32;2390:119;;;2428:79;;:::i;:::-;2390:119;2548:1;2573:53;2618:7;2609:6;2598:9;2594:22;2573:53;:::i;:::-;2563:63;;2519:117;2314:329;;;;:::o;2649:351::-;2719:6;2768:2;2756:9;2747:7;2743:23;2739:32;2736:119;;;2774:79;;:::i;:::-;2736:119;2894:1;2919:64;2975:7;2966:6;2955:9;2951:22;2919:64;:::i;:::-;2909:74;;2865:128;2649:351;;;;:::o;3006:474::-;3074:6;3082;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:53;3327:7;3318:6;3307:9;3303:22;3282:53;:::i;:::-;3272:63;;3228:117;3384:2;3410:53;3455:7;3446:6;3435:9;3431:22;3410:53;:::i;:::-;3400:63;;3355:118;3006:474;;;;;:::o;3486:619::-;3563:6;3571;3579;3628:2;3616:9;3607:7;3603:23;3599:32;3596:119;;;3634:79;;:::i;:::-;3596:119;3754:1;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3725:117;3881:2;3907:53;3952:7;3943:6;3932:9;3928:22;3907:53;:::i;:::-;3897:63;;3852:118;4009:2;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3980:118;3486:619;;;;;:::o;4111:474::-;4179:6;4187;4236:2;4224:9;4215:7;4211:23;4207:32;4204:119;;;4242:79;;:::i;:::-;4204:119;4362:1;4387:53;4432:7;4423:6;4412:9;4408:22;4387:53;:::i;:::-;4377:63;;4333:117;4489:2;4515:53;4560:7;4551:6;4540:9;4536:22;4515:53;:::i;:::-;4505:63;;4460:118;4111:474;;;;;:::o;4591:698::-;4683:6;4691;4699;4748:2;4736:9;4727:7;4723:23;4719:32;4716:119;;;4754:79;;:::i;:::-;4716:119;4902:1;4891:9;4887:17;4874:31;4932:18;4924:6;4921:30;4918:117;;;4954:79;;:::i;:::-;4918:117;5067:80;5139:7;5130:6;5119:9;5115:22;5067:80;:::i;:::-;5049:98;;;;4845:312;5196:2;5222:50;5264:7;5255:6;5244:9;5240:22;5222:50;:::i;:::-;5212:60;;5167:115;4591:698;;;;;:::o;5295:539::-;5379:6;5428:2;5416:9;5407:7;5403:23;5399:32;5396:119;;;5434:79;;:::i;:::-;5396:119;5582:1;5571:9;5567:17;5554:31;5612:18;5604:6;5601:30;5598:117;;;5634:79;;:::i;:::-;5598:117;5739:78;5809:7;5800:6;5789:9;5785:22;5739:78;:::i;:::-;5729:88;;5525:302;5295:539;;;;:::o;5840:323::-;5896:6;5945:2;5933:9;5924:7;5920:23;5916:32;5913:119;;;5951:79;;:::i;:::-;5913:119;6071:1;6096:50;6138:7;6129:6;6118:9;6114:22;6096:50;:::i;:::-;6086:60;;6042:114;5840:323;;;;:::o;6169:329::-;6228:6;6277:2;6265:9;6256:7;6252:23;6248:32;6245:119;;;6283:79;;:::i;:::-;6245:119;6403:1;6428:53;6473:7;6464:6;6453:9;6449:22;6428:53;:::i;:::-;6418:63;;6374:117;6169:329;;;;:::o;6504:765::-;6590:6;6598;6606;6614;6663:3;6651:9;6642:7;6638:23;6634:33;6631:120;;;6670:79;;:::i;:::-;6631:120;6790:1;6815:53;6860:7;6851:6;6840:9;6836:22;6815:53;:::i;:::-;6805:63;;6761:117;6917:2;6943:53;6988:7;6979:6;6968:9;6964:22;6943:53;:::i;:::-;6933:63;;6888:118;7045:2;7071:53;7116:7;7107:6;7096:9;7092:22;7071:53;:::i;:::-;7061:63;;7016:118;7173:2;7199:53;7244:7;7235:6;7224:9;7220:22;7199:53;:::i;:::-;7189:63;;7144:118;6504:765;;;;;;;:::o;7275:179::-;7344:10;7365:46;7407:3;7399:6;7365:46;:::i;:::-;7443:4;7438:3;7434:14;7420:28;;7275:179;;;;:::o;7460:108::-;7537:24;7555:5;7537:24;:::i;:::-;7532:3;7525:37;7460:108;;:::o;7574:118::-;7661:24;7679:5;7661:24;:::i;:::-;7656:3;7649:37;7574:118;;:::o;7728:732::-;7847:3;7876:54;7924:5;7876:54;:::i;:::-;7946:86;8025:6;8020:3;7946:86;:::i;:::-;7939:93;;8056:56;8106:5;8056:56;:::i;:::-;8135:7;8166:1;8151:284;8176:6;8173:1;8170:13;8151:284;;;8252:6;8246:13;8279:63;8338:3;8323:13;8279:63;:::i;:::-;8272:70;;8365:60;8418:6;8365:60;:::i;:::-;8355:70;;8211:224;8198:1;8195;8191:9;8186:14;;8151:284;;;8155:14;8451:3;8444:10;;7852:608;;;7728:732;;;;:::o;8466:109::-;8547:21;8562:5;8547:21;:::i;:::-;8542:3;8535:34;8466:109;;:::o;8581:183::-;8694:63;8751:5;8694:63;:::i;:::-;8689:3;8682:76;8581:183;;:::o;8770:147::-;8865:45;8904:5;8865:45;:::i;:::-;8860:3;8853:58;8770:147;;:::o;8923:364::-;9011:3;9039:39;9072:5;9039:39;:::i;:::-;9094:71;9158:6;9153:3;9094:71;:::i;:::-;9087:78;;9174:52;9219:6;9214:3;9207:4;9200:5;9196:16;9174:52;:::i;:::-;9251:29;9273:6;9251:29;:::i;:::-;9246:3;9242:39;9235:46;;9015:272;8923:364;;;;:::o;9293:366::-;9435:3;9456:67;9520:2;9515:3;9456:67;:::i;:::-;9449:74;;9532:93;9621:3;9532:93;:::i;:::-;9650:2;9645:3;9641:12;9634:19;;9293:366;;;:::o;9665:::-;9807:3;9828:67;9892:2;9887:3;9828:67;:::i;:::-;9821:74;;9904:93;9993:3;9904:93;:::i;:::-;10022:2;10017:3;10013:12;10006:19;;9665:366;;;:::o;10037:::-;10179:3;10200:67;10264:2;10259:3;10200:67;:::i;:::-;10193:74;;10276:93;10365:3;10276:93;:::i;:::-;10394:2;10389:3;10385:12;10378:19;;10037:366;;;:::o;10409:::-;10551:3;10572:67;10636:2;10631:3;10572:67;:::i;:::-;10565:74;;10648:93;10737:3;10648:93;:::i;:::-;10766:2;10761:3;10757:12;10750:19;;10409:366;;;:::o;10781:::-;10923:3;10944:67;11008:2;11003:3;10944:67;:::i;:::-;10937:74;;11020:93;11109:3;11020:93;:::i;:::-;11138:2;11133:3;11129:12;11122:19;;10781:366;;;:::o;11153:::-;11295:3;11316:67;11380:2;11375:3;11316:67;:::i;:::-;11309:74;;11392:93;11481:3;11392:93;:::i;:::-;11510:2;11505:3;11501:12;11494:19;;11153:366;;;:::o;11525:::-;11667:3;11688:67;11752:2;11747:3;11688:67;:::i;:::-;11681:74;;11764:93;11853:3;11764:93;:::i;:::-;11882:2;11877:3;11873:12;11866:19;;11525:366;;;:::o;11897:::-;12039:3;12060:67;12124:2;12119:3;12060:67;:::i;:::-;12053:74;;12136:93;12225:3;12136:93;:::i;:::-;12254:2;12249:3;12245:12;12238:19;;11897:366;;;:::o;12269:::-;12411:3;12432:67;12496:2;12491:3;12432:67;:::i;:::-;12425:74;;12508:93;12597:3;12508:93;:::i;:::-;12626:2;12621:3;12617:12;12610:19;;12269:366;;;:::o;12641:::-;12783:3;12804:67;12868:2;12863:3;12804:67;:::i;:::-;12797:74;;12880:93;12969:3;12880:93;:::i;:::-;12998:2;12993:3;12989:12;12982:19;;12641:366;;;:::o;13013:::-;13155:3;13176:67;13240:2;13235:3;13176:67;:::i;:::-;13169:74;;13252:93;13341:3;13252:93;:::i;:::-;13370:2;13365:3;13361:12;13354:19;;13013:366;;;:::o;13385:::-;13527:3;13548:67;13612:2;13607:3;13548:67;:::i;:::-;13541:74;;13624:93;13713:3;13624:93;:::i;:::-;13742:2;13737:3;13733:12;13726:19;;13385:366;;;:::o;13757:::-;13899:3;13920:67;13984:2;13979:3;13920:67;:::i;:::-;13913:74;;13996:93;14085:3;13996:93;:::i;:::-;14114:2;14109:3;14105:12;14098:19;;13757:366;;;:::o;14129:::-;14271:3;14292:67;14356:2;14351:3;14292:67;:::i;:::-;14285:74;;14368:93;14457:3;14368:93;:::i;:::-;14486:2;14481:3;14477:12;14470:19;;14129:366;;;:::o;14501:::-;14643:3;14664:67;14728:2;14723:3;14664:67;:::i;:::-;14657:74;;14740:93;14829:3;14740:93;:::i;:::-;14858:2;14853:3;14849:12;14842:19;;14501:366;;;:::o;14873:::-;15015:3;15036:67;15100:2;15095:3;15036:67;:::i;:::-;15029:74;;15112:93;15201:3;15112:93;:::i;:::-;15230:2;15225:3;15221:12;15214:19;;14873:366;;;:::o;15245:::-;15387:3;15408:67;15472:2;15467:3;15408:67;:::i;:::-;15401:74;;15484:93;15573:3;15484:93;:::i;:::-;15602:2;15597:3;15593:12;15586:19;;15245:366;;;:::o;15617:118::-;15704:24;15722:5;15704:24;:::i;:::-;15699:3;15692:37;15617:118;;:::o;15741:112::-;15824:22;15840:5;15824:22;:::i;:::-;15819:3;15812:35;15741:112;;:::o;15859:222::-;15952:4;15990:2;15979:9;15975:18;15967:26;;16003:71;16071:1;16060:9;16056:17;16047:6;16003:71;:::i;:::-;15859:222;;;;:::o;16087:210::-;16174:4;16212:2;16201:9;16197:18;16189:26;;16225:65;16287:1;16276:9;16272:17;16263:6;16225:65;:::i;:::-;16087:210;;;;:::o;16303:274::-;16422:4;16460:2;16449:9;16445:18;16437:26;;16473:97;16567:1;16556:9;16552:17;16543:6;16473:97;:::i;:::-;16303:274;;;;:::o;16583:313::-;16696:4;16734:2;16723:9;16719:18;16711:26;;16783:9;16777:4;16773:20;16769:1;16758:9;16754:17;16747:47;16811:78;16884:4;16875:6;16811:78;:::i;:::-;16803:86;;16583:313;;;;:::o;16902:419::-;17068:4;17106:2;17095:9;17091:18;17083:26;;17155:9;17149:4;17145:20;17141:1;17130:9;17126:17;17119:47;17183:131;17309:4;17183:131;:::i;:::-;17175:139;;16902:419;;;:::o;17327:::-;17493:4;17531:2;17520:9;17516:18;17508:26;;17580:9;17574:4;17570:20;17566:1;17555:9;17551:17;17544:47;17608:131;17734:4;17608:131;:::i;:::-;17600:139;;17327:419;;;:::o;17752:::-;17918:4;17956:2;17945:9;17941:18;17933:26;;18005:9;17999:4;17995:20;17991:1;17980:9;17976:17;17969:47;18033:131;18159:4;18033:131;:::i;:::-;18025:139;;17752:419;;;:::o;18177:::-;18343:4;18381:2;18370:9;18366:18;18358:26;;18430:9;18424:4;18420:20;18416:1;18405:9;18401:17;18394:47;18458:131;18584:4;18458:131;:::i;:::-;18450:139;;18177:419;;;:::o;18602:::-;18768:4;18806:2;18795:9;18791:18;18783:26;;18855:9;18849:4;18845:20;18841:1;18830:9;18826:17;18819:47;18883:131;19009:4;18883:131;:::i;:::-;18875:139;;18602:419;;;:::o;19027:::-;19193:4;19231:2;19220:9;19216:18;19208:26;;19280:9;19274:4;19270:20;19266:1;19255:9;19251:17;19244:47;19308:131;19434:4;19308:131;:::i;:::-;19300:139;;19027:419;;;:::o;19452:::-;19618:4;19656:2;19645:9;19641:18;19633:26;;19705:9;19699:4;19695:20;19691:1;19680:9;19676:17;19669:47;19733:131;19859:4;19733:131;:::i;:::-;19725:139;;19452:419;;;:::o;19877:::-;20043:4;20081:2;20070:9;20066:18;20058:26;;20130:9;20124:4;20120:20;20116:1;20105:9;20101:17;20094:47;20158:131;20284:4;20158:131;:::i;:::-;20150:139;;19877:419;;;:::o;20302:::-;20468:4;20506:2;20495:9;20491:18;20483:26;;20555:9;20549:4;20545:20;20541:1;20530:9;20526:17;20519:47;20583:131;20709:4;20583:131;:::i;:::-;20575:139;;20302:419;;;:::o;20727:::-;20893:4;20931:2;20920:9;20916:18;20908:26;;20980:9;20974:4;20970:20;20966:1;20955:9;20951:17;20944:47;21008:131;21134:4;21008:131;:::i;:::-;21000:139;;20727:419;;;:::o;21152:::-;21318:4;21356:2;21345:9;21341:18;21333:26;;21405:9;21399:4;21395:20;21391:1;21380:9;21376:17;21369:47;21433:131;21559:4;21433:131;:::i;:::-;21425:139;;21152:419;;;:::o;21577:::-;21743:4;21781:2;21770:9;21766:18;21758:26;;21830:9;21824:4;21820:20;21816:1;21805:9;21801:17;21794:47;21858:131;21984:4;21858:131;:::i;:::-;21850:139;;21577:419;;;:::o;22002:::-;22168:4;22206:2;22195:9;22191:18;22183:26;;22255:9;22249:4;22245:20;22241:1;22230:9;22226:17;22219:47;22283:131;22409:4;22283:131;:::i;:::-;22275:139;;22002:419;;;:::o;22427:::-;22593:4;22631:2;22620:9;22616:18;22608:26;;22680:9;22674:4;22670:20;22666:1;22655:9;22651:17;22644:47;22708:131;22834:4;22708:131;:::i;:::-;22700:139;;22427:419;;;:::o;22852:::-;23018:4;23056:2;23045:9;23041:18;23033:26;;23105:9;23099:4;23095:20;23091:1;23080:9;23076:17;23069:47;23133:131;23259:4;23133:131;:::i;:::-;23125:139;;22852:419;;;:::o;23277:::-;23443:4;23481:2;23470:9;23466:18;23458:26;;23530:9;23524:4;23520:20;23516:1;23505:9;23501:17;23494:47;23558:131;23684:4;23558:131;:::i;:::-;23550:139;;23277:419;;;:::o;23702:::-;23868:4;23906:2;23895:9;23891:18;23883:26;;23955:9;23949:4;23945:20;23941:1;23930:9;23926:17;23919:47;23983:131;24109:4;23983:131;:::i;:::-;23975:139;;23702:419;;;:::o;24127:222::-;24220:4;24258:2;24247:9;24243:18;24235:26;;24271:71;24339:1;24328:9;24324:17;24315:6;24271:71;:::i;:::-;24127:222;;;;:::o;24355:831::-;24618:4;24656:3;24645:9;24641:19;24633:27;;24670:71;24738:1;24727:9;24723:17;24714:6;24670:71;:::i;:::-;24751:80;24827:2;24816:9;24812:18;24803:6;24751:80;:::i;:::-;24878:9;24872:4;24868:20;24863:2;24852:9;24848:18;24841:48;24906:108;25009:4;25000:6;24906:108;:::i;:::-;24898:116;;25024:72;25092:2;25081:9;25077:18;25068:6;25024:72;:::i;:::-;25106:73;25174:3;25163:9;25159:19;25150:6;25106:73;:::i;:::-;24355:831;;;;;;;;:::o;25192:214::-;25281:4;25319:2;25308:9;25304:18;25296:26;;25332:67;25396:1;25385:9;25381:17;25372:6;25332:67;:::i;:::-;25192:214;;;;:::o;25412:129::-;25446:6;25473:20;;:::i;:::-;25463:30;;25502:33;25530:4;25522:6;25502:33;:::i;:::-;25412:129;;;:::o;25547:75::-;25580:6;25613:2;25607:9;25597:19;;25547:75;:::o;25628:311::-;25705:4;25795:18;25787:6;25784:30;25781:56;;;25817:18;;:::i;:::-;25781:56;25867:4;25859:6;25855:17;25847:25;;25927:4;25921;25917:15;25909:23;;25628:311;;;:::o;25945:132::-;26012:4;26035:3;26027:11;;26065:4;26060:3;26056:14;26048:22;;25945:132;;;:::o;26083:114::-;26150:6;26184:5;26178:12;26168:22;;26083:114;;;:::o;26203:99::-;26255:6;26289:5;26283:12;26273:22;;26203:99;;;:::o;26308:113::-;26378:4;26410;26405:3;26401:14;26393:22;;26308:113;;;:::o;26427:184::-;26526:11;26560:6;26555:3;26548:19;26600:4;26595:3;26591:14;26576:29;;26427:184;;;;:::o;26617:169::-;26701:11;26735:6;26730:3;26723:19;26775:4;26770:3;26766:14;26751:29;;26617:169;;;;:::o;26792:305::-;26832:3;26851:20;26869:1;26851:20;:::i;:::-;26846:25;;26885:20;26903:1;26885:20;:::i;:::-;26880:25;;27039:1;26971:66;26967:74;26964:1;26961:81;26958:107;;;27045:18;;:::i;:::-;26958:107;27089:1;27086;27082:9;27075:16;;26792:305;;;;:::o;27103:185::-;27143:1;27160:20;27178:1;27160:20;:::i;:::-;27155:25;;27194:20;27212:1;27194:20;:::i;:::-;27189:25;;27233:1;27223:35;;27238:18;;:::i;:::-;27223:35;27280:1;27277;27273:9;27268:14;;27103:185;;;;:::o;27294:348::-;27334:7;27357:20;27375:1;27357:20;:::i;:::-;27352:25;;27391:20;27409:1;27391:20;:::i;:::-;27386:25;;27579:1;27511:66;27507:74;27504:1;27501:81;27496:1;27489:9;27482:17;27478:105;27475:131;;;27586:18;;:::i;:::-;27475:131;27634:1;27631;27627:9;27616:20;;27294:348;;;;:::o;27648:191::-;27688:4;27708:20;27726:1;27708:20;:::i;:::-;27703:25;;27742:20;27760:1;27742:20;:::i;:::-;27737:25;;27781:1;27778;27775:8;27772:34;;;27786:18;;:::i;:::-;27772:34;27831:1;27828;27824:9;27816:17;;27648:191;;;;:::o;27845:96::-;27882:7;27911:24;27929:5;27911:24;:::i;:::-;27900:35;;27845:96;;;:::o;27947:90::-;27981:7;28024:5;28017:13;28010:21;27999:32;;27947:90;;;:::o;28043:126::-;28080:7;28120:42;28113:5;28109:54;28098:65;;28043:126;;;:::o;28175:77::-;28212:7;28241:5;28230:16;;28175:77;;;:::o;28258:86::-;28293:7;28333:4;28326:5;28322:16;28311:27;;28258:86;;;:::o;28350:152::-;28426:9;28459:37;28490:5;28459:37;:::i;:::-;28446:50;;28350:152;;;:::o;28508:121::-;28566:9;28599:24;28617:5;28599:24;:::i;:::-;28586:37;;28508:121;;;:::o;28635:126::-;28685:9;28718:37;28749:5;28718:37;:::i;:::-;28705:50;;28635:126;;;:::o;28767:113::-;28817:9;28850:24;28868:5;28850:24;:::i;:::-;28837:37;;28767:113;;;:::o;28886:307::-;28954:1;28964:113;28978:6;28975:1;28972:13;28964:113;;;29063:1;29058:3;29054:11;29048:18;29044:1;29039:3;29035:11;29028:39;29000:2;28997:1;28993:10;28988:15;;28964:113;;;29095:6;29092:1;29089:13;29086:101;;;29175:1;29166:6;29161:3;29157:16;29150:27;29086:101;28935:258;28886:307;;;:::o;29199:281::-;29282:27;29304:4;29282:27;:::i;:::-;29274:6;29270:40;29412:6;29400:10;29397:22;29376:18;29364:10;29361:34;29358:62;29355:88;;;29423:18;;:::i;:::-;29355:88;29463:10;29459:2;29452:22;29242:238;29199:281;;:::o;29486:233::-;29525:3;29548:24;29566:5;29548:24;:::i;:::-;29539:33;;29594:66;29587:5;29584:77;29581:103;;;29664:18;;:::i;:::-;29581:103;29711:1;29704:5;29700:13;29693:20;;29486:233;;;:::o;29725:180::-;29773:77;29770:1;29763:88;29870:4;29867:1;29860:15;29894:4;29891:1;29884:15;29911:180;29959:77;29956:1;29949:88;30056:4;30053:1;30046:15;30080:4;30077:1;30070:15;30097:180;30145:77;30142:1;30135:88;30242:4;30239:1;30232:15;30266:4;30263:1;30256:15;30283:180;30331:77;30328:1;30321:88;30428:4;30425:1;30418:15;30452:4;30449:1;30442:15;30469:117;30578:1;30575;30568:12;30592:117;30701:1;30698;30691:12;30715:117;30824:1;30821;30814:12;30838:117;30947:1;30944;30937:12;30961:117;31070:1;31067;31060:12;31084:102;31125:6;31176:2;31172:7;31167:2;31160:5;31156:14;31152:28;31142:38;;31084:102;;;:::o;31192:222::-;31332:34;31328:1;31320:6;31316:14;31309:58;31401:5;31396:2;31388:6;31384:15;31377:30;31192:222;:::o;31420:250::-;31560:34;31556:1;31548:6;31544:14;31537:58;31629:33;31624:2;31616:6;31612:15;31605:58;31420:250;:::o;31676:229::-;31816:34;31812:1;31804:6;31800:14;31793:58;31885:12;31880:2;31872:6;31868:15;31861:37;31676:229;:::o;31911:178::-;32051:30;32047:1;32039:6;32035:14;32028:54;31911:178;:::o;32095:225::-;32235:34;32231:1;32223:6;32219:14;32212:58;32304:8;32299:2;32291:6;32287:15;32280:33;32095:225;:::o;32326:221::-;32466:34;32462:1;32454:6;32450:14;32443:58;32535:4;32530:2;32522:6;32518:15;32511:29;32326:221;:::o;32553:222::-;32693:34;32689:1;32681:6;32677:14;32670:58;32762:5;32757:2;32749:6;32745:15;32738:30;32553:222;:::o;32781:177::-;32921:29;32917:1;32909:6;32905:14;32898:53;32781:177;:::o;32964:172::-;33104:24;33100:1;33092:6;33088:14;33081:48;32964:172;:::o;33142:220::-;33282:34;33278:1;33270:6;33266:14;33259:58;33351:3;33346:2;33338:6;33334:15;33327:28;33142:220;:::o;33368:182::-;33508:34;33504:1;33496:6;33492:14;33485:58;33368:182;:::o;33556:228::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:11;33760:2;33752:6;33748:15;33741:36;33556:228;:::o;33790:224::-;33930:34;33926:1;33918:6;33914:14;33907:58;33999:7;33994:2;33986:6;33982:15;33975:32;33790:224;:::o;34020:222::-;34160:34;34156:1;34148:6;34144:14;34137:58;34229:5;34224:2;34216:6;34212:15;34205:30;34020:222;:::o;34248:223::-;34388:34;34384:1;34376:6;34372:14;34365:58;34457:6;34452:2;34444:6;34440:15;34433:31;34248:223;:::o;34477:227::-;34617:34;34613:1;34605:6;34601:14;34594:58;34686:10;34681:2;34673:6;34669:15;34662:35;34477:227;:::o;34710:225::-;34850:34;34846:1;34838:6;34834:14;34827:58;34919:8;34914:2;34906:6;34902:15;34895:33;34710:225;:::o;34941:122::-;35014:24;35032:5;35014:24;:::i;:::-;35007:5;35004:35;34994:63;;35053:1;35050;35043:12;34994:63;34941:122;:::o;35069:116::-;35139:21;35154:5;35139:21;:::i;:::-;35132:5;35129:32;35119:60;;35175:1;35172;35165:12;35119:60;35069:116;:::o;35191:122::-;35264:24;35282:5;35264:24;:::i;:::-;35257:5;35254:35;35244:63;;35303:1;35300;35293:12;35244:63;35191:122;:::o

Swarm Source

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