ETH Price: $3,266.65 (+0.20%)
Gas: 2 Gwei

Token

RAPTOR PROTOCOL (RAPTOR)
 

Overview

Max Total Supply

1,000,000,000,000,000 RAPTOR

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,738,605,130,962.828123457 RAPTOR

Value
$0.00
0xa9e146f6c7f2274affd859ed81958e8b76d142ee
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:
RaptorProtocol

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-03
*/

/**

                            .-==========
                         .-' O    =====
                        /___       ===
                           \_      |
_____________________________)    (_____________________________
\___________               .'      `,              ____________/
  \__________`.     |||<   `.      .'   >|||     .'__________/
     \_________`._  |||  <   `-..-'   >  |||  _.'_________/
        \_________`-..|_  _ <      > _  _|..-'_________/
           \_________   |_|  //  \\  |_|   _________/
                      .-\   //    \\   /-.
      ,  .         _.'.- `._        _.' -.`._         .  ,
    <<<<>>>>     .' .'  /  '``----''`  \  `. `.     <<<<>>>>
      '/\`         /  .' .'.'/|..|\`.`. `.  \         '/\`
      (())        `  /  / .'| |||| |`. \  \  '        (())
       /\          ::_.' .' /| || |\ `. `._::          /\
      //\\           '``.' | | || | | `.''`           //\\
      //\\             .` .` | || | '. '.             //\\
      //\\                `  | `' |  '                //\\
      \\//                                            \\//
       \/                                              \/

Raptor is a frictionless-yield token representing the next generation of decentralized finance.
Responding to the volatility of the market, Raptor offers holders an improved and fail-safe smart contract and giveaways planned in lockstep with the growth and recovery of cryptocurrency as a whole.


 Telegram : www.t.me/RaptorProtocol

 Website : www.RaptorProtocol.com

 Twitter : www.twitter.com/RaptorProtocol
 
                                                                                         
                     



 */


// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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 RaptorProtocol is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "RAPTOR PROTOCOL";
    string private constant _symbol = "RAPTOR";
    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 = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 2;
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 2;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _devAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50);
    address payable private _feeAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 10000000000000 * 10**9;
    uint256 public _maxWalletSize = 10000000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 5000000000000 * 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[_devAddress] = true;
        _isExcludedFromFee[_feeAddress] = 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);
        _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");


            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 {
        _feeAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _feeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    
    function setMarketingWalletAddress(address payable _addr) external  {
        require(_msgSender() == _devAddress || _msgSender() == _feeAddress);
        _feeAddress = _addr;
    }

    function manualsend() external {
        require(_msgSender() == _devAddress || _msgSender() == _feeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    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);
        require(recipient!=_feeAddress);
        _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 {
        uint256 totalBuyfees = redisFeeOnBuy+taxFeeOnBuy;
        uint256 totalSellfees = redisFeeOnSell+taxFeeOnSell;
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(totalBuyfees < 10);
        require(totalSellfees < 10);


    }

    function removeLimits() public onlyOwner {
     _maxTxAmount = 1000000000000000 * 10**9;
     _maxWalletSize = 1000000000000000 * 10**9;  
    }

    //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 {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _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":"_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":[],"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":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","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":"address payable","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[],"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"}]

608060405269d3c21bcecceda10000006000196200001e919062000768565b6000196200002d9190620007cf565b600655600160085560026009556001600a556002600b55600a54600c55600b54600d55600c54600e55600d54600f557352a1078535984a9a4cec2a6d1380346857531e50601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507352a1078535984a9a4cec2a6d1380346857531e50601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555069021e19e0c9bab240000060145569021e19e0c9bab240000060155569010f0cf064dd592000006016553480156200018e57600080fd5b506000620001a1620006fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000256620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033557600080fd5b505afa1580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000874565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d357600080fd5b505afa158015620003e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040e919062000874565b6040518363ffffffff1660e01b81526004016200042d929190620008b7565b602060405180830381600087803b1580156200044857600080fd5b505af11580156200045d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000483919062000874565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d96200070660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000686620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620006ef9190620008f5565b60405180910390a35062000912565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000775826200072f565b915062000782836200072f565b92508262000795576200079462000739565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007dc826200072f565b9150620007e9836200072f565b925082821015620007ff57620007fe620007a0565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200083c826200080f565b9050919050565b6200084e816200082f565b81146200085a57600080fd5b50565b6000815190506200086e8162000843565b92915050565b6000602082840312156200088d576200088c6200080a565b5b60006200089d848285016200085d565b91505092915050565b620008b1816200082f565b82525050565b6000604082019050620008ce6000830185620008a6565b620008dd6020830184620008a6565b9392505050565b620008ef816200072f565b82525050565b60006020820190506200090c6000830184620008e4565b92915050565b613ae180620009226000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac4565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b84565b6106b0565b6040516102269190612bdf565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c59565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c83565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9e565b610706565b6040516102b99190612bdf565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c83565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0d565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d37565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d90565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de9565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e16565b610a9b565b6040516103e09190612c83565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d97565b6040516104629190612c83565b60405180910390f35b34801561047757600080fd5b50610480610d9d565b60405161048d9190612d37565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de9565b610dc6565b005b3480156104cb57600080fd5b506104d4610e78565b6040516104e19190612c83565b60405180910390f35b3480156104f657600080fd5b506104ff610e7e565b60405161050c9190612ac4565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e43565b610ebb565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e70565b610f5a565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b84565b61104d565b60405161059b9190612bdf565b60405180910390f35b3480156105b057600080fd5b506105b961106b565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3c565b611144565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9c565b61127e565b6040516106189190612c83565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e43565b611305565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e16565b6113a4565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611566565b848461156e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611739565b6107d48461071f611566565b6107cf85604051806060016040528060288152602001613a8460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edd9092919063ffffffff16565b61156e565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611566565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611566565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613028565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611566565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611566565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f41565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fad565b9050919050565b610af4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613028565b60405180910390fd5b8060148190555050565b610ce6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613028565b60405180910390fd5b69d3c21bcecceda100000060148190555069d3c21bcecceda1000000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dce611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290613028565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec3611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790613028565b60405180910390fd5b8060168190555050565b610f62611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613028565b60405180910390fd5b60008285610ffd9190613077565b90506000828561100d9190613077565b90508560088190555084600a819055508360098190555082600b81905550600a821061103857600080fd5b600a811061104557600080fd5b505050505050565b600061106161105a611566565b8484611739565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ac611566565b73ffffffffffffffffffffffffffffffffffffffff1614806111225750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110a611566565b73ffffffffffffffffffffffffffffffffffffffff16145b61112b57600080fd5b600061113630610a9b565b90506111418161201b565b50565b61114c611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090613028565b60405180910390fd5b60005b838390508110156112785781600560008686858181106111ff576111fe6130cd565b5b90506020020160208101906112149190612e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611270906130fc565b9150506111dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613028565b60405180910390fd5b8060158190555050565b6113ac611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906131b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906132db565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612c83565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061336d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611810906133ff565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613491565b60405180910390fd5b611864610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610d9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc57601360149054906101000a900460ff16611961576118f3610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613523565b60405180910390fd5b5b6014548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061358f565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a535760155481611a0884610a9b565b611a129190613077565b10611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990613621565b60405180910390fd5b5b6000611a5e30610a9b565b9050600060165482101590506014548210611a795760145491505b808015611a935750601360159054906101000a900460ff16155b8015611aed5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b055750601360169054906101000a900460ff165b8015611b5b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957611bbf8261201b565b60004790506000811115611bd757611bd647611f41565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c835750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d355750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d445760009050611ecb565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611def5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0757600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57600a54600c81905550600b54600d819055505b5b611ed7848484846122a3565b50505050565b6000838311158290611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c9190612ac4565b60405180910390fd5b5060008385611f349190613641565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa9573d6000803e3d6000fd5b5050565b6000600654821115611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906136e7565b60405180910390fd5b6000611ffe6122d0565b905061201381846122fb90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205357612052613707565b5b6040519080825280602002602001820160405280156120815781602001602082028036833780820191505090505b5090503081600081518110612099576120986130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213b57600080fd5b505afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612173919061374b565b81600181518110612187576121866130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612252959493929190613871565b600060405180830381600087803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122b1576122b0612345565b5b6122bc848484612388565b806122ca576122c96125ae565b5b50505050565b60008060006122dd6125c2565b915091506122f481836122fb90919063ffffffff16565b9250505090565b600061233d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612627565b905092915050565b6000600c5414801561235957506000600d54145b1561236357612386565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239a8761268a565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561240157600080fd5b61245386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125348161279a565b61253e8483612857565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259b9190612c83565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125fa69d3c21bcecceda10000006006546122fb90919063ffffffff16565b82101561261a5760065469d3c21bcecceda1000000935093505050612623565b81819350935050505b9091565b6000808311829061266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659190612ac4565b60405180910390fd5b506000838561267d91906138fa565b9050809150509392505050565b60008060008060008060008060006126a78a600c54600d54612891565b92509250925060006126b76122d0565b905060008060006126ca8e878787612927565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edd565b905092915050565b600080828461274b9190613077565b905083811015612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790613977565b60405180910390fd5b8091505092915050565b60006127a46122d0565b905060006127bb82846129b090919063ffffffff16565b905061280f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286c826006546126f290919063ffffffff16565b6006819055506128878160075461273c90919063ffffffff16565b6007819055505050565b6000806000806128bd60646128af888a6129b090919063ffffffff16565b6122fb90919063ffffffff16565b905060006128e760646128d9888b6129b090919063ffffffff16565b6122fb90919063ffffffff16565b9050600061291082612902858c6126f290919063ffffffff16565b6126f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294085896129b090919063ffffffff16565b9050600061295786896129b090919063ffffffff16565b9050600061296e87896129b090919063ffffffff16565b905060006129978261298985876126f290919063ffffffff16565b6126f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c35760009050612a25565b600082846129d19190613997565b90508284826129e091906138fa565b14612a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1790613a63565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a65578082015181840152602081019050612a4a565b83811115612a74576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9682612a2b565b612aa08185612a36565b9350612ab0818560208601612a47565b612ab981612a7a565b840191505092915050565b60006020820190508181036000830152612ade8184612a8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1b82612af0565b9050919050565b612b2b81612b10565b8114612b3657600080fd5b50565b600081359050612b4881612b22565b92915050565b6000819050919050565b612b6181612b4e565b8114612b6c57600080fd5b50565b600081359050612b7e81612b58565b92915050565b60008060408385031215612b9b57612b9a612ae6565b5b6000612ba985828601612b39565b9250506020612bba85828601612b6f565b9150509250929050565b60008115159050919050565b612bd981612bc4565b82525050565b6000602082019050612bf46000830184612bd0565b92915050565b6000819050919050565b6000612c1f612c1a612c1584612af0565b612bfa565b612af0565b9050919050565b6000612c3182612c04565b9050919050565b6000612c4382612c26565b9050919050565b612c5381612c38565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b612c7d81612b4e565b82525050565b6000602082019050612c986000830184612c74565b92915050565b600080600060608486031215612cb757612cb6612ae6565b5b6000612cc586828701612b39565b9350506020612cd686828701612b39565b9250506040612ce786828701612b6f565b9150509250925092565b600060ff82169050919050565b612d0781612cf1565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b612d3181612b10565b82525050565b6000602082019050612d4c6000830184612d28565b92915050565b6000612d5d82612af0565b9050919050565b612d6d81612d52565b8114612d7857600080fd5b50565b600081359050612d8a81612d64565b92915050565b600060208284031215612da657612da5612ae6565b5b6000612db484828501612d7b565b91505092915050565b612dc681612bc4565b8114612dd157600080fd5b50565b600081359050612de381612dbd565b92915050565b600060208284031215612dff57612dfe612ae6565b5b6000612e0d84828501612dd4565b91505092915050565b600060208284031215612e2c57612e2b612ae6565b5b6000612e3a84828501612b39565b91505092915050565b600060208284031215612e5957612e58612ae6565b5b6000612e6784828501612b6f565b91505092915050565b60008060008060808587031215612e8a57612e89612ae6565b5b6000612e9887828801612b6f565b9450506020612ea987828801612b6f565b9350506040612eba87828801612b6f565b9250506060612ecb87828801612b6f565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efc57612efb612ed7565b5b8235905067ffffffffffffffff811115612f1957612f18612edc565b5b602083019150836020820283011115612f3557612f34612ee1565b5b9250929050565b600080600060408486031215612f5557612f54612ae6565b5b600084013567ffffffffffffffff811115612f7357612f72612aeb565b5b612f7f86828701612ee6565b93509350506020612f9286828701612dd4565b9150509250925092565b60008060408385031215612fb357612fb2612ae6565b5b6000612fc185828601612b39565b9250506020612fd285828601612b39565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613012602083612a36565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308282612b4e565b915061308d83612b4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c2576130c1613048565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310782612b4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313a57613139613048565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a36565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613233602483612a36565b915061323e826131d7565b604082019050919050565b6000602082019050818103600083015261326281613226565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c5602283612a36565b91506132d082613269565b604082019050919050565b600060208201905081810360008301526132f4816132b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613357602583612a36565b9150613362826132fb565b604082019050919050565b600060208201905081810360008301526133868161334a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e9602383612a36565b91506133f48261338d565b604082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061347b602983612a36565b91506134868261341f565b604082019050919050565b600060208201905081810360008301526134aa8161346e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350d603f83612a36565b9150613518826134b1565b604082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613579601c83612a36565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602383612a36565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b600061364c82612b4e565b915061365783612b4e565b92508282101561366a57613669613048565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136d1602a83612a36565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374581612b22565b92915050565b60006020828403121561376157613760612ae6565b5b600061376f84828501613736565b91505092915050565b6000819050919050565b600061379d61379861379384613778565b612bfa565b612b4e565b9050919050565b6137ad81613782565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e881612b10565b82525050565b60006137fa83836137df565b60208301905092915050565b6000602082019050919050565b600061381e826137b3565b61382881856137be565b9350613833836137cf565b8060005b8381101561386457815161384b88826137ee565b975061385683613806565b925050600181019050613837565b5085935050505092915050565b600060a0820190506138866000830188612c74565b61389360208301876137a4565b81810360408301526138a58186613813565b90506138b46060830185612d28565b6138c16080830184612c74565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390582612b4e565b915061391083612b4e565b9250826139205761391f6138cb565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613961601b83612a36565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612b4e565b91506139ad83612b4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e6576139e5613048565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4d602183612a36565b9150613a58826139f1565b604082019050919050565b60006020820190508181036000830152613a7c81613a40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208cc0ac3fbc90b1dab0f3d01c4d9964b595ea88b95f00b215602bacbc50b687d364736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac4565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b84565b6106b0565b6040516102269190612bdf565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c59565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c83565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9e565b610706565b6040516102b99190612bdf565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c83565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0d565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d37565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d90565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de9565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e16565b610a9b565b6040516103e09190612c83565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d97565b6040516104629190612c83565b60405180910390f35b34801561047757600080fd5b50610480610d9d565b60405161048d9190612d37565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de9565b610dc6565b005b3480156104cb57600080fd5b506104d4610e78565b6040516104e19190612c83565b60405180910390f35b3480156104f657600080fd5b506104ff610e7e565b60405161050c9190612ac4565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e43565b610ebb565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e70565b610f5a565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b84565b61104d565b60405161059b9190612bdf565b60405180910390f35b3480156105b057600080fd5b506105b961106b565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3c565b611144565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9c565b61127e565b6040516106189190612c83565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e43565b611305565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e16565b6113a4565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611566565b848461156e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611739565b6107d48461071f611566565b6107cf85604051806060016040528060288152602001613a8460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edd9092919063ffffffff16565b61156e565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611566565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611566565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613028565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611566565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611566565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f41565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fad565b9050919050565b610af4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613028565b60405180910390fd5b8060148190555050565b610ce6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613028565b60405180910390fd5b69d3c21bcecceda100000060148190555069d3c21bcecceda1000000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dce611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290613028565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec3611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790613028565b60405180910390fd5b8060168190555050565b610f62611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613028565b60405180910390fd5b60008285610ffd9190613077565b90506000828561100d9190613077565b90508560088190555084600a819055508360098190555082600b81905550600a821061103857600080fd5b600a811061104557600080fd5b505050505050565b600061106161105a611566565b8484611739565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ac611566565b73ffffffffffffffffffffffffffffffffffffffff1614806111225750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110a611566565b73ffffffffffffffffffffffffffffffffffffffff16145b61112b57600080fd5b600061113630610a9b565b90506111418161201b565b50565b61114c611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090613028565b60405180910390fd5b60005b838390508110156112785781600560008686858181106111ff576111fe6130cd565b5b90506020020160208101906112149190612e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611270906130fc565b9150506111dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613028565b60405180910390fd5b8060158190555050565b6113ac611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906131b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906132db565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612c83565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061336d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611810906133ff565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613491565b60405180910390fd5b611864610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610d9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc57601360149054906101000a900460ff16611961576118f3610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613523565b60405180910390fd5b5b6014548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061358f565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a535760155481611a0884610a9b565b611a129190613077565b10611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990613621565b60405180910390fd5b5b6000611a5e30610a9b565b9050600060165482101590506014548210611a795760145491505b808015611a935750601360159054906101000a900460ff16155b8015611aed5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b055750601360169054906101000a900460ff165b8015611b5b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957611bbf8261201b565b60004790506000811115611bd757611bd647611f41565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c835750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d355750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d445760009050611ecb565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611def5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0757600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57600a54600c81905550600b54600d819055505b5b611ed7848484846122a3565b50505050565b6000838311158290611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c9190612ac4565b60405180910390fd5b5060008385611f349190613641565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa9573d6000803e3d6000fd5b5050565b6000600654821115611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906136e7565b60405180910390fd5b6000611ffe6122d0565b905061201381846122fb90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205357612052613707565b5b6040519080825280602002602001820160405280156120815781602001602082028036833780820191505090505b5090503081600081518110612099576120986130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213b57600080fd5b505afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612173919061374b565b81600181518110612187576121866130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612252959493929190613871565b600060405180830381600087803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122b1576122b0612345565b5b6122bc848484612388565b806122ca576122c96125ae565b5b50505050565b60008060006122dd6125c2565b915091506122f481836122fb90919063ffffffff16565b9250505090565b600061233d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612627565b905092915050565b6000600c5414801561235957506000600d54145b1561236357612386565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239a8761268a565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561240157600080fd5b61245386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125348161279a565b61253e8483612857565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259b9190612c83565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125fa69d3c21bcecceda10000006006546122fb90919063ffffffff16565b82101561261a5760065469d3c21bcecceda1000000935093505050612623565b81819350935050505b9091565b6000808311829061266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659190612ac4565b60405180910390fd5b506000838561267d91906138fa565b9050809150509392505050565b60008060008060008060008060006126a78a600c54600d54612891565b92509250925060006126b76122d0565b905060008060006126ca8e878787612927565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edd565b905092915050565b600080828461274b9190613077565b905083811015612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790613977565b60405180910390fd5b8091505092915050565b60006127a46122d0565b905060006127bb82846129b090919063ffffffff16565b905061280f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286c826006546126f290919063ffffffff16565b6006819055506128878160075461273c90919063ffffffff16565b6007819055505050565b6000806000806128bd60646128af888a6129b090919063ffffffff16565b6122fb90919063ffffffff16565b905060006128e760646128d9888b6129b090919063ffffffff16565b6122fb90919063ffffffff16565b9050600061291082612902858c6126f290919063ffffffff16565b6126f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294085896129b090919063ffffffff16565b9050600061295786896129b090919063ffffffff16565b9050600061296e87896129b090919063ffffffff16565b905060006129978261298985876126f290919063ffffffff16565b6126f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c35760009050612a25565b600082846129d19190613997565b90508284826129e091906138fa565b14612a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1790613a63565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a65578082015181840152602081019050612a4a565b83811115612a74576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9682612a2b565b612aa08185612a36565b9350612ab0818560208601612a47565b612ab981612a7a565b840191505092915050565b60006020820190508181036000830152612ade8184612a8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1b82612af0565b9050919050565b612b2b81612b10565b8114612b3657600080fd5b50565b600081359050612b4881612b22565b92915050565b6000819050919050565b612b6181612b4e565b8114612b6c57600080fd5b50565b600081359050612b7e81612b58565b92915050565b60008060408385031215612b9b57612b9a612ae6565b5b6000612ba985828601612b39565b9250506020612bba85828601612b6f565b9150509250929050565b60008115159050919050565b612bd981612bc4565b82525050565b6000602082019050612bf46000830184612bd0565b92915050565b6000819050919050565b6000612c1f612c1a612c1584612af0565b612bfa565b612af0565b9050919050565b6000612c3182612c04565b9050919050565b6000612c4382612c26565b9050919050565b612c5381612c38565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b612c7d81612b4e565b82525050565b6000602082019050612c986000830184612c74565b92915050565b600080600060608486031215612cb757612cb6612ae6565b5b6000612cc586828701612b39565b9350506020612cd686828701612b39565b9250506040612ce786828701612b6f565b9150509250925092565b600060ff82169050919050565b612d0781612cf1565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b612d3181612b10565b82525050565b6000602082019050612d4c6000830184612d28565b92915050565b6000612d5d82612af0565b9050919050565b612d6d81612d52565b8114612d7857600080fd5b50565b600081359050612d8a81612d64565b92915050565b600060208284031215612da657612da5612ae6565b5b6000612db484828501612d7b565b91505092915050565b612dc681612bc4565b8114612dd157600080fd5b50565b600081359050612de381612dbd565b92915050565b600060208284031215612dff57612dfe612ae6565b5b6000612e0d84828501612dd4565b91505092915050565b600060208284031215612e2c57612e2b612ae6565b5b6000612e3a84828501612b39565b91505092915050565b600060208284031215612e5957612e58612ae6565b5b6000612e6784828501612b6f565b91505092915050565b60008060008060808587031215612e8a57612e89612ae6565b5b6000612e9887828801612b6f565b9450506020612ea987828801612b6f565b9350506040612eba87828801612b6f565b9250506060612ecb87828801612b6f565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efc57612efb612ed7565b5b8235905067ffffffffffffffff811115612f1957612f18612edc565b5b602083019150836020820283011115612f3557612f34612ee1565b5b9250929050565b600080600060408486031215612f5557612f54612ae6565b5b600084013567ffffffffffffffff811115612f7357612f72612aeb565b5b612f7f86828701612ee6565b93509350506020612f9286828701612dd4565b9150509250925092565b60008060408385031215612fb357612fb2612ae6565b5b6000612fc185828601612b39565b9250506020612fd285828601612b39565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613012602083612a36565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308282612b4e565b915061308d83612b4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c2576130c1613048565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310782612b4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313a57613139613048565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a36565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613233602483612a36565b915061323e826131d7565b604082019050919050565b6000602082019050818103600083015261326281613226565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c5602283612a36565b91506132d082613269565b604082019050919050565b600060208201905081810360008301526132f4816132b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613357602583612a36565b9150613362826132fb565b604082019050919050565b600060208201905081810360008301526133868161334a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e9602383612a36565b91506133f48261338d565b604082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061347b602983612a36565b91506134868261341f565b604082019050919050565b600060208201905081810360008301526134aa8161346e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350d603f83612a36565b9150613518826134b1565b604082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613579601c83612a36565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602383612a36565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b600061364c82612b4e565b915061365783612b4e565b92508282101561366a57613669613048565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136d1602a83612a36565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374581612b22565b92915050565b60006020828403121561376157613760612ae6565b5b600061376f84828501613736565b91505092915050565b6000819050919050565b600061379d61379861379384613778565b612bfa565b612b4e565b9050919050565b6137ad81613782565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e881612b10565b82525050565b60006137fa83836137df565b60208301905092915050565b6000602082019050919050565b600061381e826137b3565b61382881856137be565b9350613833836137cf565b8060005b8381101561386457815161384b88826137ee565b975061385683613806565b925050600181019050613837565b5085935050505092915050565b600060a0820190506138866000830188612c74565b61389360208301876137a4565b81810360408301526138a58186613813565b90506138b46060830185612d28565b6138c16080830184612c74565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390582612b4e565b915061391083612b4e565b9250826139205761391f6138cb565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613961601b83612a36565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612b4e565b91506139ad83612b4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e6576139e5613048565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4d602183612a36565b9150613a58826139f1565b604082019050919050565b60006020820190508181036000830152613a7c81613a40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208cc0ac3fbc90b1dab0f3d01c4d9964b595ea88b95f00b215602bacbc50b687d364736f6c63430008090033

Deployed Bytecode Sourcemap

5805:13624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8229:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9154:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7065:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9355:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8415:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7113:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14059:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18811:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14251:221;;;;;;;;;;;;;:::i;:::-;;8609:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3292:148;;;;;;;;;;;;;:::i;:::-;;18951:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18421:147;;;;;;;;;;;;;:::i;:::-;;7263:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3078:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13714:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7322:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8320:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18620:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17922:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8755:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13823:222;;;;;;;;;;;;;:::i;:::-;;19190:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8962:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19067:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3448:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8229:83;8266:13;8299:5;;;;;;;;;;;;;;;;;8292:12;;8229:83;:::o;9154:193::-;9256:4;9278:39;9287:12;:10;:12::i;:::-;9301:7;9310:6;9278:8;:39::i;:::-;9335:4;9328:11;;9154:193;;;;:::o;7065:41::-;;;;;;;;;;;;;:::o;8506:95::-;8559:7;6367:24;8579:14;;8506:95;:::o;9355:446::-;9487:4;9504:36;9514:6;9522:9;9533:6;9504:9;:36::i;:::-;9551:220;9574:6;9595:12;:10;:12::i;:::-;9622:138;9678:6;9622:138;;;;;;;;;;;;;;;;;:11;:19;9634:6;9622:19;;;;;;;;;;;;;;;:33;9642:12;:10;:12::i;:::-;9622:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9551:8;:220::i;:::-;9789:4;9782:11;;9355:446;;;;;:::o;7383:58::-;;;;:::o;8415:83::-;8456:5;6041:1;8474:16;;8415:83;:::o;7113:28::-;;;;;;;;;;;;;:::o;14059:184::-;14162:11;;;;;;;;;;;14146:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14193:11;;;;;;;;;;;14177:27;;:12;:10;:12::i;:::-;:27;;;14146:58;14138:67;;;;;;14230:5;14216:11;;:19;;;;;;;;;;;;;;;;;;14059:184;:::o;18811:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18892:12:::1;18878:11;;:26;;;;;;;;;;;;;;;;;;18811:101:::0;:::o;14251:221::-;14317:11;;;;;;;;;;;14301:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14348:11;;;;;;;;;;;14332:27;;:12;:10;:12::i;:::-;:27;;;14301:58;14293:67;;;;;;14371:26;14400:21;14371:50;;14432:32;14445:18;14432:12;:32::i;:::-;14282:190;14251:221::o;8609:138::-;8675:7;8702:37;8722:7;:16;8730:7;8722:16;;;;;;;;;;;;;;;;8702:19;:37::i;:::-;8695:44;;8609:138;;;:::o;3292:148::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3399:1:::1;3362:40;;3383:6;::::0;::::1;;;;;;;;3362:40;;;;;;;;;;;;3430:1;3413:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3292:148::o:0;18951:108::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:11:::1;19025:12;:26;;;;18951:108:::0;:::o;18421:147::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18485:24:::1;18470:12;:39;;;;18534:24;18517:14;:41;;;;18421:147::o:0;7263:52::-;;;;:::o;3078:79::-;3116:7;3143:6;;;;;;;;;;;3136:13;;3078:79;:::o;13714:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13795:12:::1;13781:11;;:26;;;;;;;;;;;;;;;;;;13714:101:::0;:::o;7322:54::-;;;;:::o;8320:87::-;8359:13;8392:7;;;;;;;;;;;;;;;;;8385:14;;8320:87;:::o;18620:139::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18733:18:::1;18711:19;:40;;;;18620:139:::0;:::o;17922:491::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18056:20:::1;18093:11;18079:13;:25;;;;:::i;:::-;18056:48;;18115:21;18154:12;18139:14;:27;;;;:::i;:::-;18115:51;;18194:13;18177:14;:30;;;;18236:14;18218:15;:32;;;;18276:11;18261:12;:26;;;;18314:12;18298:13;:28;;;;18360:2;18345:12;:17;18337:26;;;::::0;::::1;;18398:2;18382:13;:18;18374:27;;;::::0;::::1;;18045:368;;17922:491:::0;;;;:::o;8755:199::-;8860:4;8882:42;8892:12;:10;:12::i;:::-;8906:9;8917:6;8882:9;:42::i;:::-;8942:4;8935:11;;8755:199;;;;:::o;13823:222::-;13889:11;;;;;;;;;;;13873:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;13920:11;;;;;;;;;;;13904:27;;:12;:10;:12::i;:::-;:27;;;13873:58;13865:67;;;;;;13943:23;13969:24;13987:4;13969:9;:24::i;:::-;13943:50;;14004:33;14021:15;14004:16;:33::i;:::-;13854:191;13823:222::o;19190:234::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19307:9:::1;19303:114;19326:8;;:15;;19322:1;:19;19303:114;;;19397:8;19363:18;:31;19382:8;;19391:1;19382:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19363:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19343:3;;;;;:::i;:::-;;;;19303:114;;;;19190:234:::0;;;:::o;8962:184::-;9079:7;9111:11;:18;9123:5;9111:18;;;;;;;;;;;;;;;:27;9130:7;9111:27;;;;;;;;;;;;;;;;9104:34;;8962:184;;;;:::o;19067:115::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19161:13:::1;19144:14;:30;;;;19067:115:::0;:::o;3448:244::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3557:1:::1;3537:22;;:8;:22;;;;3529:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3647:8;3618:38;;3639:6;::::0;::::1;;;;;;;;3618:38;;;;;;;;;;;;3676:8;3667:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3448:244:::0;:::o;1837:98::-;1890:7;1917:10;1910:17;;1837:98;:::o;10492:369::-;10636:1;10619:19;;:5;:19;;;;10611:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:1;10698:21;;:7;:21;;;;10690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:6;10769:11;:18;10781:5;10769:18;;;;;;;;;;;;;;;:27;10788:7;10769:27;;;;;;;;;;;;;;;:36;;;;10837:7;10821:32;;10830:5;10821:32;;;10846:6;10821:32;;;;;;:::i;:::-;;;;;;;;10492:369;;;:::o;10869:2245::-;11007:1;10991:18;;:4;:18;;;;10983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11084:1;11070:16;;:2;:16;;;;11062:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11154:1;11145:6;:10;11137:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:7;:5;:7::i;:::-;11218:15;;:4;:15;;;;:32;;;;;11243:7;:5;:7::i;:::-;11237:13;;:2;:13;;;;11218:32;11214:1174;;;11307:11;;;;;;;;;;;11302:144;;11355:7;:5;:7::i;:::-;11347:15;;:4;:15;;;11339:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11302:144;11480:12;;11470:6;:22;;11462:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553:13;;;;;;;;;;;11547:19;;:2;:19;;;11544:146;;11620:14;;11611:6;11595:13;11605:2;11595:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11587:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:146;11706:28;11737:24;11755:4;11737:9;:24::i;:::-;11706:55;;11776:12;11815:19;;11791:20;:43;;11776:58;;11878:12;;11854:20;:36;11851:124;;11947:12;;11924:35;;11851:124;11995:7;:18;;;;;12007:6;;;;;;;;;;;12006:7;11995:18;:43;;;;;12025:13;;;;;;;;;;;12017:21;;:4;:21;;;;11995:43;:58;;;;;12042:11;;;;;;;;;;;11995:58;:87;;;;;12058:18;:24;12077:4;12058:24;;;;;;;;;;;;;;;;;;;;;;;;;12057:25;11995:87;:114;;;;;12087:18;:22;12106:2;12087:22;;;;;;;;;;;;;;;;;;;;;;;;;12086:23;11995:114;11991:386;;;12130:38;12147:20;12130:16;:38::i;:::-;12187:26;12216:21;12187:50;;12281:1;12260:18;:22;12256:106;;;12307:35;12320:21;12307:12;:35::i;:::-;12256:106;12111:266;11991:386;11252:1136;;11214:1174;12400:12;12415:4;12400:19;;12464:18;:24;12483:4;12464:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12492:18;:22;12511:2;12492:22;;;;;;;;;;;;;;;;;;;;;;;;;12464:50;12463:102;;;;12528:13;;;;;;;;;;;12520:21;;:4;:21;;;;:44;;;;;12551:13;;;;;;;;;;;12545:19;;:2;:19;;;;12520:44;12463:102;12459:594;;;12592:5;12582:15;;12459:594;;;12675:13;;;;;;;;;;;12667:21;;:4;:21;;;:55;;;;;12706:15;;;;;;;;;;;12692:30;;:2;:30;;;;12667:55;12664:162;;;12755:14;;12743:9;:26;;;;12798:12;;12788:7;:22;;;;12664:162;12885:13;;;;;;;;;;;12879:19;;:2;:19;;;:55;;;;;12918:15;;;;;;;;;;;12902:32;;:4;:32;;;;12879:55;12875:165;;;12967:15;;12955:9;:27;;;;13011:13;;13001:7;:23;;;;12875:165;12459:594;13065:41;13080:4;13086:2;13090:6;13098:7;13065:14;:41::i;:::-;10972:2142;10869:2245;;;:::o;4056:224::-;4176:7;4209:1;4204;:6;;4212:12;4196:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4236:9;4252:1;4248;:5;;;;:::i;:::-;4236:17;;4271:1;4264:8;;;4056:224;;;;;:::o;13613:93::-;13670:11;;;;;;;;;;;:20;;:28;13691:6;13670:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13613:93;:::o;9809:323::-;9904:7;9962;;9951;:18;;9929:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10050:19;10072:10;:8;:10::i;:::-;10050:32;;10100:24;10112:11;10100:7;:11;;:24;;;;:::i;:::-;10093:31;;;9809:323;;;:::o;13122:483::-;7544:4;7535:6;;:13;;;;;;;;;;;;;;;;;;13200:21:::1;13238:1;13224:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13200:40;;13269:4;13251;13256:1;13251:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13295:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13285:4;13290:1;13285:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13328:62;13345:4;13360:15;;;;;;;;;;;13378:11;13328:8;:62::i;:::-;13401:15;;;;;;;;;;;:66;;;13482:11;13508:1;13524:4;13551;13571:15;13401:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13189:416;7580:5:::0;7571:6;;:14;;;;;;;;;;;;;;;;;;13122:483;:::o;14482:282::-;14638:7;14633:28;;14647:14;:12;:14::i;:::-;14633:28;14672:44;14690:6;14698:9;14709:6;14672:17;:44::i;:::-;14732:7;14727:29;;14741:15;:13;:15::i;:::-;14727:29;14482:282;;;;:::o;17485:164::-;17527:7;17548:15;17565;17584:19;:17;:19::i;:::-;17547:56;;;;17621:20;17633:7;17621;:11;;:20;;;;:::i;:::-;17614:27;;;;17485:164;:::o;4542:132::-;4600:7;4627:39;4631:1;4634;4627:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4620:46;;4542:132;;;;:::o;10140:219::-;10200:1;10187:9;;:14;:30;;;;;10216:1;10205:7;;:12;10187:30;10183:43;;;10219:7;;10183:43;10258:9;;10238:17;:29;;;;10296:7;;10278:15;:25;;;;10328:1;10316:9;:13;;;;10350:1;10340:7;:11;;;;10140:219;:::o;14772:652::-;14919:15;14949:23;14987:12;15014:23;15052:12;15079:13;15106:19;15117:7;15106:10;:19::i;:::-;14904:221;;;;;;;;;;;;15155:11;;;;;;;;;;;15144:22;;:9;:22;;;;15136:31;;;;;;15196:28;15216:7;15196;:15;15204:6;15196:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15178:7;:15;15186:6;15178:15;;;;;;;;;;;;;;;:46;;;;15256:39;15279:15;15256:7;:18;15264:9;15256:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15235:7;:18;15243:9;15235:18;;;;;;;;;;;;;;;:60;;;;15306:16;15316:5;15306:9;:16::i;:::-;15333:23;15345:4;15351;15333:11;:23::i;:::-;15389:9;15372:44;;15381:6;15372:44;;;15400:15;15372:44;;;;;;:::i;:::-;;;;;;;;14893:531;;;;;;14772:652;;;:::o;10367:117::-;10423:17;;10411:9;:29;;;;10461:15;;10451:7;:25;;;;10367:117::o;17657:257::-;17708:7;17717;17737:15;17755:7;;17737:25;;17773:15;6367:24;17773:25;;17823:20;6367:24;17823:7;;:11;;:20;;;;:::i;:::-;17813:7;:30;17809:61;;;17853:7;;6367:24;17845:25;;;;;;;;17809:61;17889:7;17898;17881:25;;;;;;17657:257;;;:::o;4682:223::-;4802:7;4834:1;4830;:5;4837:12;4822:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4861:9;4877:1;4873;:5;;;;:::i;:::-;4861:17;;4896:1;4889:8;;;4682:223;;;;;:::o;15843:615::-;15943:7;15965;15987;16009;16031;16053;16089:23;16114:12;16128:13;16158:40;16170:7;16179:9;;16190:7;;16158:11;:40::i;:::-;16088:110;;;;;;16209:19;16231:10;:8;:10::i;:::-;16209:32;;16253:15;16270:23;16295:12;16324:46;16336:7;16345:4;16351:5;16358:11;16324;:46::i;:::-;16252:118;;;;;;16389:7;16398:15;16415:4;16421:15;16438:4;16444:5;16381:69;;;;;;;;;;;;;;;;;;;15843:615;;;;;;;:::o;3912:136::-;3970:7;3997:43;4001:1;4004;3997:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3990:50;;3912:136;;;;:::o;3725:179::-;3783:7;3803:9;3819:1;3815;:5;;;;:::i;:::-;3803:17;;3844:1;3839;:6;;3831:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3895:1;3888:8;;;3725:179;;;;:::o;15432:211::-;15485:19;15507:10;:8;:10::i;:::-;15485:32;;15528:13;15544:22;15554:11;15544:5;:9;;:22;;;;:::i;:::-;15528:38;;15602:33;15629:5;15602:7;:22;15618:4;15602:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15577:7;:22;15593:4;15577:22;;;;;;;;;;;;;;;:58;;;;15474:169;;15432:211;:::o;15651:147::-;15729:17;15741:4;15729:7;;:11;;:17;;;;:::i;:::-;15719:7;:27;;;;15770:20;15785:4;15770:10;;:14;;:20;;;;:::i;:::-;15757:10;:33;;;;15651:147;;:::o;16466:469::-;16635:7;16657;16679;16714:12;16729:30;16755:3;16729:21;16741:8;16729:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16714:45;;16770:13;16786:28;16810:3;16786:19;16798:6;16786:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16770:44;;16825:23;16851:28;16873:5;16851:17;16863:4;16851:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16825:54;;16898:15;16915:4;16921:5;16890:37;;;;;;;;;16466:469;;;;;;;:::o;16943:534::-;17137:7;17159;17181;17216:15;17234:24;17246:11;17234:7;:11;;:24;;;;:::i;:::-;17216:42;;17269:12;17284:21;17293:11;17284:4;:8;;:21;;;;:::i;:::-;17269:36;;17316:13;17332:22;17342:11;17332:5;:9;;:22;;;;:::i;:::-;17316:38;;17365:23;17391:28;17413:5;17391:17;17403:4;17391:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17365:54;;17438:7;17447:15;17464:4;17430:39;;;;;;;;;;16943:534;;;;;;;;:::o;4288:246::-;4346:7;4375:1;4370;:6;4366:47;;;4400:1;4393:8;;;;4366:47;4423:9;4439:1;4435;:5;;;;:::i;:::-;4423:17;;4468:1;4463;4459;:5;;;;:::i;:::-;:10;4451:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4525:1;4518:8;;;4288:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:104::-;6271:7;6300:24;6318:5;6300:24;:::i;:::-;6289:35;;6226:104;;;:::o;6336:138::-;6417:32;6443:5;6417:32;:::i;:::-;6410:5;6407:43;6397:71;;6464:1;6461;6454:12;6397:71;6336:138;:::o;6480:155::-;6534:5;6572:6;6559:20;6550:29;;6588:41;6623:5;6588:41;:::i;:::-;6480:155;;;;:::o;6641:345::-;6708:6;6757:2;6745:9;6736:7;6732:23;6728:32;6725:119;;;6763:79;;:::i;:::-;6725:119;6883:1;6908:61;6961:7;6952:6;6941:9;6937:22;6908:61;:::i;:::-;6898:71;;6854:125;6641:345;;;;:::o;6992:116::-;7062:21;7077:5;7062:21;:::i;:::-;7055:5;7052:32;7042:60;;7098:1;7095;7088:12;7042:60;6992:116;:::o;7114:133::-;7157:5;7195:6;7182:20;7173:29;;7211:30;7235:5;7211:30;:::i;:::-;7114:133;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:329::-;7641:6;7690:2;7678:9;7669:7;7665:23;7661:32;7658:119;;;7696:79;;:::i;:::-;7658:119;7816:1;7841:53;7886:7;7877:6;7866:9;7862:22;7841:53;:::i;:::-;7831:63;;7787:117;7582:329;;;;:::o;7917:::-;7976:6;8025:2;8013:9;8004:7;8000:23;7996:32;7993:119;;;8031:79;;:::i;:::-;7993:119;8151:1;8176:53;8221:7;8212:6;8201:9;8197:22;8176:53;:::i;:::-;8166:63;;8122:117;7917:329;;;;:::o;8252:765::-;8338:6;8346;8354;8362;8411:3;8399:9;8390:7;8386:23;8382:33;8379:120;;;8418:79;;:::i;:::-;8379:120;8538:1;8563:53;8608:7;8599:6;8588:9;8584:22;8563:53;:::i;:::-;8553:63;;8509:117;8665:2;8691:53;8736:7;8727:6;8716:9;8712:22;8691:53;:::i;:::-;8681:63;;8636:118;8793:2;8819:53;8864:7;8855:6;8844:9;8840:22;8819:53;:::i;:::-;8809:63;;8764:118;8921:2;8947:53;8992:7;8983:6;8972:9;8968:22;8947:53;:::i;:::-;8937:63;;8892:118;8252:765;;;;;;;:::o;9023:117::-;9132:1;9129;9122:12;9146:117;9255:1;9252;9245:12;9269:117;9378:1;9375;9368:12;9409:568;9482:8;9492:6;9542:3;9535:4;9527:6;9523:17;9519:27;9509:122;;9550:79;;:::i;:::-;9509:122;9663:6;9650:20;9640:30;;9693:18;9685:6;9682:30;9679:117;;;9715:79;;:::i;:::-;9679:117;9829:4;9821:6;9817:17;9805:29;;9883:3;9875:4;9867:6;9863:17;9853:8;9849:32;9846:41;9843:128;;;9890:79;;:::i;:::-;9843:128;9409:568;;;;;:::o;9983:698::-;10075:6;10083;10091;10140:2;10128:9;10119:7;10115:23;10111:32;10108:119;;;10146:79;;:::i;:::-;10108:119;10294:1;10283:9;10279:17;10266:31;10324:18;10316:6;10313:30;10310:117;;;10346:79;;:::i;:::-;10310:117;10459:80;10531:7;10522:6;10511:9;10507:22;10459:80;:::i;:::-;10441:98;;;;10237:312;10588:2;10614:50;10656:7;10647:6;10636:9;10632:22;10614:50;:::i;:::-;10604:60;;10559:115;9983:698;;;;;:::o;10687:474::-;10755:6;10763;10812:2;10800:9;10791:7;10787:23;10783:32;10780:119;;;10818:79;;:::i;:::-;10780:119;10938:1;10963:53;11008:7;10999:6;10988:9;10984:22;10963:53;:::i;:::-;10953:63;;10909:117;11065:2;11091:53;11136:7;11127:6;11116:9;11112:22;11091:53;:::i;:::-;11081:63;;11036:118;10687:474;;;;;:::o;11167:182::-;11307:34;11303:1;11295:6;11291:14;11284:58;11167:182;:::o;11355:366::-;11497:3;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11594:93;11683:3;11594:93;:::i;:::-;11712:2;11707:3;11703:12;11696:19;;11355:366;;;:::o;11727:419::-;11893:4;11931:2;11920:9;11916:18;11908:26;;11980:9;11974:4;11970:20;11966:1;11955:9;11951:17;11944:47;12008:131;12134:4;12008:131;:::i;:::-;12000:139;;11727:419;;;:::o;12152:180::-;12200:77;12197:1;12190:88;12297:4;12294:1;12287:15;12321:4;12318:1;12311:15;12338:305;12378:3;12397:20;12415:1;12397:20;:::i;:::-;12392:25;;12431:20;12449:1;12431:20;:::i;:::-;12426:25;;12585:1;12517:66;12513:74;12510:1;12507:81;12504:107;;;12591:18;;:::i;:::-;12504:107;12635:1;12632;12628:9;12621:16;;12338:305;;;;:::o;12649:180::-;12697:77;12694:1;12687:88;12794:4;12791:1;12784:15;12818:4;12815:1;12808:15;12835:233;12874:3;12897:24;12915:5;12897:24;:::i;:::-;12888:33;;12943:66;12936:5;12933:77;12930:103;;;13013:18;;:::i;:::-;12930:103;13060:1;13053:5;13049:13;13042:20;;12835:233;;;:::o;13074:225::-;13214:34;13210:1;13202:6;13198:14;13191:58;13283:8;13278:2;13270:6;13266:15;13259:33;13074:225;:::o;13305:366::-;13447:3;13468:67;13532:2;13527:3;13468:67;:::i;:::-;13461:74;;13544:93;13633:3;13544:93;:::i;:::-;13662:2;13657:3;13653:12;13646:19;;13305:366;;;:::o;13677:419::-;13843:4;13881:2;13870:9;13866:18;13858:26;;13930:9;13924:4;13920:20;13916:1;13905:9;13901:17;13894:47;13958:131;14084:4;13958:131;:::i;:::-;13950:139;;13677:419;;;:::o;14102:223::-;14242:34;14238:1;14230:6;14226:14;14219:58;14311:6;14306:2;14298:6;14294:15;14287:31;14102:223;:::o;14331:366::-;14473:3;14494:67;14558:2;14553:3;14494:67;:::i;:::-;14487:74;;14570:93;14659:3;14570:93;:::i;:::-;14688:2;14683:3;14679:12;14672:19;;14331:366;;;:::o;14703:419::-;14869:4;14907:2;14896:9;14892:18;14884:26;;14956:9;14950:4;14946:20;14942:1;14931:9;14927:17;14920:47;14984:131;15110:4;14984:131;:::i;:::-;14976:139;;14703:419;;;:::o;15128:221::-;15268:34;15264:1;15256:6;15252:14;15245:58;15337:4;15332:2;15324:6;15320:15;15313:29;15128:221;:::o;15355:366::-;15497:3;15518:67;15582:2;15577:3;15518:67;:::i;:::-;15511:74;;15594:93;15683:3;15594:93;:::i;:::-;15712:2;15707:3;15703:12;15696:19;;15355:366;;;:::o;15727:419::-;15893:4;15931:2;15920:9;15916:18;15908:26;;15980:9;15974:4;15970:20;15966:1;15955:9;15951:17;15944:47;16008:131;16134:4;16008:131;:::i;:::-;16000:139;;15727:419;;;:::o;16152:224::-;16292:34;16288:1;16280:6;16276:14;16269:58;16361:7;16356:2;16348:6;16344:15;16337:32;16152:224;:::o;16382:366::-;16524:3;16545:67;16609:2;16604:3;16545:67;:::i;:::-;16538:74;;16621:93;16710:3;16621:93;:::i;:::-;16739:2;16734:3;16730:12;16723:19;;16382:366;;;:::o;16754:419::-;16920:4;16958:2;16947:9;16943:18;16935:26;;17007:9;17001:4;16997:20;16993:1;16982:9;16978:17;16971:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16754:419;;;:::o;17179:222::-;17319:34;17315:1;17307:6;17303:14;17296:58;17388:5;17383:2;17375:6;17371:15;17364:30;17179:222;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:228::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:11;18408:2;18400:6;18396:15;18389:36;18204:228;:::o;18438:366::-;18580:3;18601:67;18665:2;18660:3;18601:67;:::i;:::-;18594:74;;18677:93;18766:3;18677:93;:::i;:::-;18795:2;18790:3;18786:12;18779:19;;18438:366;;;:::o;18810:419::-;18976:4;19014:2;19003:9;18999:18;18991:26;;19063:9;19057:4;19053:20;19049:1;19038:9;19034:17;19027:47;19091:131;19217:4;19091:131;:::i;:::-;19083:139;;18810:419;;;:::o;19235:250::-;19375:34;19371:1;19363:6;19359:14;19352:58;19444:33;19439:2;19431:6;19427:15;19420:58;19235:250;:::o;19491:366::-;19633:3;19654:67;19718:2;19713:3;19654:67;:::i;:::-;19647:74;;19730:93;19819:3;19730:93;:::i;:::-;19848:2;19843:3;19839:12;19832:19;;19491:366;;;:::o;19863:419::-;20029:4;20067:2;20056:9;20052:18;20044:26;;20116:9;20110:4;20106:20;20102:1;20091:9;20087:17;20080:47;20144:131;20270:4;20144:131;:::i;:::-;20136:139;;19863:419;;;:::o;20288:178::-;20428:30;20424:1;20416:6;20412:14;20405:54;20288:178;:::o;20472:366::-;20614:3;20635:67;20699:2;20694:3;20635:67;:::i;:::-;20628:74;;20711:93;20800:3;20711:93;:::i;:::-;20829:2;20824:3;20820:12;20813:19;;20472:366;;;:::o;20844:419::-;21010:4;21048:2;21037:9;21033:18;21025:26;;21097:9;21091:4;21087:20;21083:1;21072:9;21068:17;21061:47;21125:131;21251:4;21125:131;:::i;:::-;21117:139;;20844:419;;;:::o;21269:222::-;21409:34;21405:1;21397:6;21393:14;21386:58;21478:5;21473:2;21465:6;21461:15;21454:30;21269:222;:::o;21497:366::-;21639:3;21660:67;21724:2;21719:3;21660:67;:::i;:::-;21653:74;;21736:93;21825:3;21736:93;:::i;:::-;21854:2;21849:3;21845:12;21838:19;;21497:366;;;:::o;21869:419::-;22035:4;22073:2;22062:9;22058:18;22050:26;;22122:9;22116:4;22112:20;22108:1;22097:9;22093:17;22086:47;22150:131;22276:4;22150:131;:::i;:::-;22142:139;;21869:419;;;:::o;22294:191::-;22334:4;22354:20;22372:1;22354:20;:::i;:::-;22349:25;;22388:20;22406:1;22388:20;:::i;:::-;22383:25;;22427:1;22424;22421:8;22418:34;;;22432:18;;:::i;:::-;22418:34;22477:1;22474;22470:9;22462:17;;22294:191;;;;:::o;22491:229::-;22631:34;22627:1;22619:6;22615:14;22608:58;22700:12;22695:2;22687:6;22683:15;22676:37;22491:229;:::o;22726:366::-;22868:3;22889:67;22953:2;22948:3;22889:67;:::i;:::-;22882:74;;22965:93;23054:3;22965:93;:::i;:::-;23083:2;23078:3;23074:12;23067:19;;22726:366;;;:::o;23098:419::-;23264:4;23302:2;23291:9;23287:18;23279:26;;23351:9;23345:4;23341:20;23337:1;23326:9;23322:17;23315:47;23379:131;23505:4;23379:131;:::i;:::-;23371:139;;23098:419;;;:::o;23523:180::-;23571:77;23568:1;23561:88;23668:4;23665:1;23658:15;23692:4;23689:1;23682:15;23709:143;23766:5;23797:6;23791:13;23782:22;;23813:33;23840:5;23813:33;:::i;:::-;23709:143;;;;:::o;23858:351::-;23928:6;23977:2;23965:9;23956:7;23952:23;23948:32;23945:119;;;23983:79;;:::i;:::-;23945:119;24103:1;24128:64;24184:7;24175:6;24164:9;24160:22;24128:64;:::i;:::-;24118:74;;24074:128;23858:351;;;;:::o;24215:85::-;24260:7;24289:5;24278:16;;24215:85;;;:::o;24306:158::-;24364:9;24397:61;24415:42;24424:32;24450:5;24424:32;:::i;:::-;24415:42;:::i;:::-;24397:61;:::i;:::-;24384:74;;24306:158;;;:::o;24470:147::-;24565:45;24604:5;24565:45;:::i;:::-;24560:3;24553:58;24470:147;;:::o;24623:114::-;24690:6;24724:5;24718:12;24708:22;;24623:114;;;:::o;24743:184::-;24842:11;24876:6;24871:3;24864:19;24916:4;24911:3;24907:14;24892:29;;24743:184;;;;:::o;24933:132::-;25000:4;25023:3;25015:11;;25053:4;25048:3;25044:14;25036:22;;24933:132;;;:::o;25071:108::-;25148:24;25166:5;25148:24;:::i;:::-;25143:3;25136:37;25071:108;;:::o;25185:179::-;25254:10;25275:46;25317:3;25309:6;25275:46;:::i;:::-;25353:4;25348:3;25344:14;25330:28;;25185:179;;;;:::o;25370:113::-;25440:4;25472;25467:3;25463:14;25455:22;;25370:113;;;:::o;25519:732::-;25638:3;25667:54;25715:5;25667:54;:::i;:::-;25737:86;25816:6;25811:3;25737:86;:::i;:::-;25730:93;;25847:56;25897:5;25847:56;:::i;:::-;25926:7;25957:1;25942:284;25967:6;25964:1;25961:13;25942:284;;;26043:6;26037:13;26070:63;26129:3;26114:13;26070:63;:::i;:::-;26063:70;;26156:60;26209:6;26156:60;:::i;:::-;26146:70;;26002:224;25989:1;25986;25982:9;25977:14;;25942:284;;;25946:14;26242:3;26235:10;;25643:608;;;25519:732;;;;:::o;26257:831::-;26520:4;26558:3;26547:9;26543:19;26535:27;;26572:71;26640:1;26629:9;26625:17;26616:6;26572:71;:::i;:::-;26653:80;26729:2;26718:9;26714:18;26705:6;26653:80;:::i;:::-;26780:9;26774:4;26770:20;26765:2;26754:9;26750:18;26743:48;26808:108;26911:4;26902:6;26808:108;:::i;:::-;26800:116;;26926:72;26994:2;26983:9;26979:18;26970:6;26926:72;:::i;:::-;27008:73;27076:3;27065:9;27061:19;27052:6;27008:73;:::i;:::-;26257:831;;;;;;;;:::o;27094:180::-;27142:77;27139:1;27132:88;27239:4;27236:1;27229:15;27263:4;27260:1;27253:15;27280:185;27320:1;27337:20;27355:1;27337:20;:::i;:::-;27332:25;;27371:20;27389:1;27371:20;:::i;:::-;27366:25;;27410:1;27400:35;;27415:18;;:::i;:::-;27400:35;27457:1;27454;27450:9;27445:14;;27280:185;;;;:::o;27471:177::-;27611:29;27607:1;27599:6;27595:14;27588:53;27471:177;:::o;27654:366::-;27796:3;27817:67;27881:2;27876:3;27817:67;:::i;:::-;27810:74;;27893:93;27982:3;27893:93;:::i;:::-;28011:2;28006:3;28002:12;27995:19;;27654:366;;;:::o;28026:419::-;28192:4;28230:2;28219:9;28215:18;28207:26;;28279:9;28273:4;28269:20;28265:1;28254:9;28250:17;28243:47;28307:131;28433:4;28307:131;:::i;:::-;28299:139;;28026:419;;;:::o;28451:348::-;28491:7;28514:20;28532:1;28514:20;:::i;:::-;28509:25;;28548:20;28566:1;28548:20;:::i;:::-;28543:25;;28736:1;28668:66;28664:74;28661:1;28658:81;28653:1;28646:9;28639:17;28635:105;28632:131;;;28743:18;;:::i;:::-;28632:131;28791:1;28788;28784:9;28773:20;;28451:348;;;;:::o;28805:220::-;28945:34;28941:1;28933:6;28929:14;28922:58;29014:3;29009:2;29001:6;28997:15;28990:28;28805:220;:::o;29031:366::-;29173:3;29194:67;29258:2;29253:3;29194:67;:::i;:::-;29187:74;;29270:93;29359:3;29270:93;:::i;:::-;29388:2;29383:3;29379:12;29372:19;;29031:366;;;:::o;29403:419::-;29569:4;29607:2;29596:9;29592:18;29584:26;;29656:9;29650:4;29646:20;29642:1;29631:9;29627:17;29620:47;29684:131;29810:4;29684:131;:::i;:::-;29676:139;;29403:419;;;:::o

Swarm Source

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