ETH Price: $3,265.06 (+2.26%)
Gas: 1 Gwei

Token

EyeCandy (ICANDY)
 

Overview

Max Total Supply

100,000,000,000 ICANDY

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000,000,000 ICANDY

Value
$0.00
0xD8687952a4b5299E759f4400471417c0B18010CE
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:
EyeCandy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;





interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }
    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                 assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract EyeCandy is Context, IERC20 { 
    using SafeMath for uint256;
    using Address for address;
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier whenNotPaused() {
        require(!paused, "Pausable: paused");
        _;
    }
     modifier whenPaused() {
        require(paused, "Pausable: not paused");
        _;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function pause() public {
        require(msg.sender == owner(), "Pausable: only owner can pause");
        paused = true;
    }
    function renounceOwnership() public virtual {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    mapping (address => bool) private _isBot;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee; 
    address payable public Wallet_Marketing = payable(0x0a2d0Fec9f65Fbb9cc97231e0d6494e537690A5E); 
    address payable public Wallet_Dev = payable(0x319E1e55CA451Ac90Bb566548dfD191Ce3B74311);
    address payable public constant Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); 
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private _tTotal =100000000000 * 10**_decimals;
    string private constant _name = "EyeCandy"; 
    string private constant _symbol = unicode"ICANDY"; 
    uint8 private txCount = 0;
    uint8 private swapTrigger = 3; 
    uint256 public _Tax_On_Buy = 40;
    uint256 public _Tax_On_Sell = 40;
    uint256 public Percent_Marketing = 80;
    uint256 public Percent_Dev = 15;
    uint256 public Percent_Burn = 2;
    uint256 public Percent_AutoLP = 3; 
    uint256 public _maxWalletToken = _tTotal * 5 / 100;
    uint256 private _previousMaxWalletToken = _maxWalletToken;
    uint256 public _maxTxAmount = _tTotal * 5 / 100; 
    uint256 private _previousMaxTxAmount = _maxTxAmount;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public paused = false;

    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    constructor () {
        _owner = 0x0a2d0Fec9f65Fbb9cc97231e0d6494e537690A5E;
        emit OwnershipTransferred(address(0), _owner);
        _tOwned[owner()] = _tTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true; 
        _isExcludedFromFee[Wallet_Burn] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
         }   
     }

     function isBot(address account) public view returns(bool){
        return _isBot[account];
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function setTaxes(uint256 buyTax, uint256 sellTax) public onlyOwner {
        _Tax_On_Buy = buyTax;
        _Tax_On_Sell = sellTax;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address theOwner, address theSpender) public view override returns (uint256) {
        return _allowances[theOwner][theSpender];
    }
    
    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    receive() external payable {}
    function _getCurrentSupply() private view returns(uint256) {
        return (_tTotal);
    }
    function _approve(address theOwner, address theSpender, uint256 amount) private {
        require(theOwner != address(0) && theSpender != address(0), "ERR: zero address");
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }
    


    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()){
            uint256 heldTokens = balanceOf(to);
            require((heldTokens + amount) <= _maxWalletToken,"Over wallet limit.");}
        if (from != owner())
            require(amount <= _maxTxAmount, "Over transaction limit.");
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero."); 
        require(!_isBot[from] && !_isBot[to], "You are a bot"); 
        if(
            txCount >= swapTrigger && 
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
            )
        {  
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;}
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }
        bool takeFee = true;
        bool isBuy;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        } else {
            if(from == uniswapV2Pair){
                isBuy = true;
            }
            txCount++;
        }
        _tokenTransfer(from, to, amount, takeFee, isBuy);
    }
    function sendToWallet(address payable wallet, uint256 amount) private {
            wallet.transfer(amount);
        }
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
            uint256 tokens_to_Burn = contractTokenBalance * Percent_Burn / 100;
            _tTotal = _tTotal - tokens_to_Burn;
            _tOwned[Wallet_Burn] = _tOwned[Wallet_Burn] + tokens_to_Burn;
            _tOwned[address(this)] = _tOwned[address(this)] - tokens_to_Burn; 
            uint256 tokens_to_M = contractTokenBalance * Percent_Marketing / 100;
            uint256 tokens_to_D = contractTokenBalance * Percent_Dev / 100;
            uint256 tokens_to_LP_Half = contractTokenBalance * Percent_AutoLP / 200;
            uint256 balanceBeforeSwap = address(this).balance;
            swapTokensForETH(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
            uint256 ETH_Total = address(this).balance - balanceBeforeSwap;
            uint256 split_M = Percent_Marketing * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_M = ETH_Total * split_M / 100;
            uint256 split_D = Percent_Dev * 100 / (Percent_AutoLP + Percent_Marketing + Percent_Dev);
            uint256 ETH_D = ETH_Total * split_D / 100;
            addLiquidity(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D));
            emit SwapAndLiquify(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D), tokens_to_LP_Half);
            sendToWallet(Wallet_Marketing, ETH_M);
            ETH_Total = address(this).balance;
            sendToWallet(Wallet_Dev, ETH_Total);
            }
    function swapTokensForETH(uint256 tokenAmount) private {
        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 addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0, 
            0,
            Wallet_Burn, 
            block.timestamp
        );
    } 
    function remove_Random_Tokens(address random_Token_Address, uint256 percent_of_Tokens) public returns(bool _sent){
        require(random_Token_Address != address(this), "Can not remove native token");
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(address(this));
        uint256 removeRandom = totalRandom*percent_of_Tokens/100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);
    }
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isBuy) private {
        if(!takeFee){
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tAmount;
            emit Transfer(sender, recipient, tAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tAmount;
            } else if (isBuy){
            uint256 buyFEE = tAmount*_Tax_On_Buy/100;
            uint256 tTransferAmount = tAmount-buyFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+buyFEE;  
            emit Transfer(sender, recipient, tTransferAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            } else {
            uint256 sellFEE = tAmount*_Tax_On_Sell/100;
            uint256 tTransferAmount = tAmount-sellFEE;
            _tOwned[sender] = _tOwned[sender]-tAmount;
            _tOwned[recipient] = _tOwned[recipient]+tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)]+sellFEE;  
            emit Transfer(sender, recipient, tTransferAmount);
            if(recipient == Wallet_Burn)
            _tTotal = _tTotal-tTransferAmount;
            }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"Percent_AutoLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Burn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Dev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Percent_Marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Burn","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Tax_On_Sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

6080604052730a2d0fec9f65fbb9cc97231e0d6494e537690a5e600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073319e1e55ca451ac90bb566548dfd191ce3b74311600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000be9190620008b6565b64174876e800620000d0919062000907565b6007556000600860006101000a81548160ff021916908360ff1602179055506003600860016101000a81548160ff021916908360ff16021790555060286009556028600a556050600b55600f600c556002600d556003600e55606460056007546200013c919062000907565b62000148919062000981565b600f55600f546010556064600560075462000164919062000907565b62000170919062000981565b6011556011546012556001601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff021916908315150217905550348015620001bc57600080fd5b50730a2d0fec9f65fbb9cc97231e0d6494e537690a5e6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360075460026000620002a3620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000346573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036c919062000a23565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000a23565b6040518363ffffffff1660e01b81526004016200041992919062000a66565b6020604051808303816000875af115801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f919062000a23565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004f6620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000683620006f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620006e4919062000aa4565b60405180910390a35062000ac1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007aa578086048111156200078257620007816200071c565b5b6001851615620007925780820291505b8081029050620007a2856200074b565b945062000762565b94509492505050565b600082620007c5576001905062000898565b81620007d5576000905062000898565b8160018114620007ee5760028114620007f9576200082f565b600191505062000898565b60ff8411156200080e576200080d6200071c565b5b8360020a9150848211156200082857620008276200071c565b5b5062000898565b5060208310610133831016604e8410600b8410161715620008695782820a9050838111156200086357620008626200071c565b5b62000898565b62000878848484600162000758565b925090508184048111156200089257620008916200071c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008c3826200089f565b9150620008d083620008a9565b9250620008ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007b3565b905092915050565b600062000914826200089f565b915062000921836200089f565b925082820262000931816200089f565b915082820484148315176200094b576200094a6200071c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200098e826200089f565b91506200099b836200089f565b925082620009ae57620009ad62000952565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009eb82620009be565b9050919050565b620009fd81620009de565b811462000a0957600080fd5b50565b60008151905062000a1d81620009f2565b92915050565b60006020828403121562000a3c5762000a3b620009b9565b5b600062000a4c8482850162000a0c565b91505092915050565b62000a6081620009de565b82525050565b600060408201905062000a7d600083018562000a55565b62000a8c602083018462000a55565b9392505050565b62000a9e816200089f565b82525050565b600060208201905062000abb600083018462000a93565b92915050565b613ad28062000ad16000396000f3fe6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e146107ba578063c6618d60146107e3578063dafd18e91461080e578063dd62ed3e1461084b578063e1165545146108885761021a565b8063b1cb158214610710578063b31470a41461073b578063b43665e214610764578063bbb9f61f1461078f5761021a565b80638456cb59116100e75780638456cb59146106295780638da5cb5b1461064057806395d89b411461066b578063a457c2d714610696578063a9059cbb146106d35761021a565b8063768dc7101461056b57806378109e54146105a85780637d1db4a5146105d3578063805c0e0f146105fe5761021a565b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461049657806360317625146104c157806361c9a0dc146104ec57806370a0823114610517578063715018a6146105545761021a565b80633bbac579146103d85780633f70a4951461041557806349bd5a5e146104405780634a74bb021461046b5761021a565b806321dbd9eb116101e257806321dbd9eb146102dd578063220f66961461030857806323b872dd14610333578063313ce56714610370578063395093511461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108b1565b6040516102419190612b39565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612c03565b6108ee565b60405161027e9190612c5e565b60405180910390f35b34801561029357600080fd5b5061029c61090c565b6040516102a99190612cd8565b60405180910390f35b3480156102be57600080fd5b506102c7610932565b6040516102d49190612d02565b60405180910390f35b3480156102e957600080fd5b506102f261093c565b6040516102ff9190612d02565b60405180910390f35b34801561031457600080fd5b5061031d610942565b60405161032a9190612c5e565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612d1d565b610953565b6040516103679190612c5e565b60405180910390f35b34801561037c57600080fd5b50610385610a2c565b6040516103929190612d8c565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612c03565b610a35565b6040516103cf9190612c5e565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612da7565b610ae8565b60405161040c9190612c5e565b60405180910390f35b34801561042157600080fd5b5061042a610b3e565b6040516104379190612d02565b60405180910390f35b34801561044c57600080fd5b50610455610b44565b6040516104629190612de3565b60405180910390f35b34801561047757600080fd5b50610480610b6a565b60405161048d9190612c5e565b60405180910390f35b3480156104a257600080fd5b506104ab610b7d565b6040516104b89190612c5e565b60405180910390f35b3480156104cd57600080fd5b506104d6610b90565b6040516104e39190612d02565b60405180910390f35b3480156104f857600080fd5b50610501610b96565b60405161050e9190612d02565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612da7565b610b9c565b60405161054b9190612d02565b60405180910390f35b34801561056057600080fd5b50610569610be5565b005b34801561057757600080fd5b50610592600480360381019061058d9190612da7565b610ca3565b60405161059f9190612c5e565b60405180910390f35b3480156105b457600080fd5b506105bd610cc3565b6040516105ca9190612d02565b60405180910390f35b3480156105df57600080fd5b506105e8610cc9565b6040516105f59190612d02565b60405180910390f35b34801561060a57600080fd5b50610613610ccf565b6040516106209190612e1f565b60405180910390f35b34801561063557600080fd5b5061063e610cd5565b005b34801561064c57600080fd5b50610655610d67565b6040516106629190612de3565b60405180910390f35b34801561067757600080fd5b50610680610d90565b60405161068d9190612b39565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612c03565b610dcd565b6040516106ca9190612c5e565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612c03565b610e9a565b6040516107079190612c5e565b60405180910390f35b34801561071c57600080fd5b50610725610eb8565b6040516107329190612d02565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190612fae565b610ebe565b005b34801561077057600080fd5b50610779610fcf565b6040516107869190612e1f565b60405180910390f35b34801561079b57600080fd5b506107a4610ff5565b6040516107b19190612e1f565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061300a565b61101b565b005b3480156107ef57600080fd5b506107f86110a9565b6040516108059190612d02565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190612c03565b6110af565b6040516108429190612c5e565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d919061304a565b611263565b60405161087f9190612d02565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061308a565b6112ea565b005b60606040518060400160405280600881526020017f45796543616e6479000000000000000000000000000000000000000000000000815250905090565b60006109026108fb611453565b848461145b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600d5481565b60148054906101000a900460ff1681565b60006109608484846115ef565b610a218461096c611453565b610a1c85604051806060016040528060288152602001613a5060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d2611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b600190509392505050565b60006012905090565b6000610ade610a42611453565b84610ad98560036000610a53611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9190919063ffffffff16565b61145b565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60095481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610cdd610d67565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190613116565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4943414e44590000000000000000000000000000000000000000000000000000815250905090565b6000610e90610dda611453565b84610e8b85604051806060016040528060258152602001613a786025913960036000610e04611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b6001905092915050565b6000610eae610ea7611453565b84846115ef565b6001905092915050565b600a5481565b610ec6611453565b73ffffffffffffffffffffffffffffffffffffffff16610ee4610d67565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613182565b60405180910390fd5b60005b8251811015610fca578160016000858481518110610f5e57610f5d6131a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc290613200565b915050610f3d565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611023611453565b73ffffffffffffffffffffffffffffffffffffffff16611041610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613182565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613294565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a9190612de3565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906132c9565b90506000606484836111ad91906132f6565b6111b79190613367565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112169291906133b9565b6020604051808303816000875af1158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906133f7565b9250505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f2611453565b73ffffffffffffffffffffffffffffffffffffffff16611310610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613182565b60405180910390fd5b801515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613470565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906134dc565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e29190612d02565b60405180910390a3505050565b6115f7610d67565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611660575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117315750611701610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561179557600061174183610b9c565b9050600f54828261175291906134fc565b1115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a9061357c565b60405180910390fd5b505b61179d610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461181557601154811115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906135e8565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590613654565b60405180910390fd5b60008111611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906136e6565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119a55750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613752565b60405180910390fd5b600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff1610158015611a23575060148054906101000a900460ff16155b8015611a7d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750601460159054906101000a900460ff165b15611ade576000611aa530610b9c565b9050601154811115611ab75760115490505b6000600860006101000a81548160ff021916908360ff160217905550611adc81611ca7565b505b6000600190506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b875750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b955760009150611c28565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611bef57600190505b6008600081819054906101000a900460ff1680929190611c0e90613772565b91906101000a81548160ff021916908360ff160217905550505b611c358585858585612040565b5050505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612b39565b60405180910390fd5b5082840390509392505050565b60008183611c9f91906134fc565b905092915050565b60016014806101000a81548160ff02191690831515021790555060006064600d5483611cd391906132f6565b611cdd9190613367565b905080600754611ced919061379b565b600781905550806002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4091906134fc565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd0919061379b565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600b5484611e2591906132f6565b611e2f9190613367565b905060006064600c5485611e4391906132f6565b611e4d9190613367565b9050600060c8600e5486611e6191906132f6565b611e6b9190613367565b90506000479050611e91838584611e8291906134fc565b611e8c91906134fc565b61273b565b60008147611e9f919061379b565b90506000600c54600b54600e54611eb691906134fc565b611ec091906134fc565b6064600b54611ecf91906132f6565b611ed99190613367565b9050600060648284611eeb91906132f6565b611ef59190613367565b90506000600c54600b54600e54611f0c91906134fc565b611f1691906134fc565b6064600c54611f2591906132f6565b611f2f9190613367565b9050600060648286611f4191906132f6565b611f4b9190613367565b9050611f6d87828588611f5e919061379b565b611f68919061379b565b61297e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f9c919061379b565b611fa6919061379b565b89604051611fb6939291906137cf565b60405180910390a1611fea600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a5e565b479450612019600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612a5e565b5050505050505050505060006014806101000a81548160ff02191690831515021790555050565b816122155782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612090919061379b565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e91906134fc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121be9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122105782600754612209919061379b565b6007819055505b612734565b80156124a957600060646009548561222d91906132f6565b6122379190613367565b905060008185612247919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612294919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232291906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b091906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124509190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124a2578060075461249b919061379b565b6007819055505b5050612733565b60006064600a54856124bb91906132f6565b6124c59190613367565b9050600081856124d5919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612522919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b091906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263e91906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126de9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036127305780600754612729919061379b565b6007819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561275857612757612e3f565b5b6040519080825280602002602001820160405280156127865781602001602082028036833780820191505090505b509050308160008151811061279e5761279d6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612845573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612869919061381b565b8160018151811061287d5761287c6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612948959493929190613941565b600060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050505050565b6129ab30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612a149695949392919061399b565b60606040518083038185885af1158015612a32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a5791906139fc565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae3578082015181840152602081019050612ac8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0b82612aa9565b612b158185612ab4565b9350612b25818560208601612ac5565b612b2e81612aef565b840191505092915050565b60006020820190508181036000830152612b538184612b00565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9a82612b6f565b9050919050565b612baa81612b8f565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b6000819050919050565b612be081612bcd565b8114612beb57600080fd5b50565b600081359050612bfd81612bd7565b92915050565b60008060408385031215612c1a57612c19612b65565b5b6000612c2885828601612bb8565b9250506020612c3985828601612bee565b9150509250929050565b60008115159050919050565b612c5881612c43565b82525050565b6000602082019050612c736000830184612c4f565b92915050565b6000819050919050565b6000612c9e612c99612c9484612b6f565b612c79565b612b6f565b9050919050565b6000612cb082612c83565b9050919050565b6000612cc282612ca5565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612bcd565b82525050565b6000602082019050612d176000830184612cf3565b92915050565b600080600060608486031215612d3657612d35612b65565b5b6000612d4486828701612bb8565b9350506020612d5586828701612bb8565b9250506040612d6686828701612bee565b9150509250925092565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600060208284031215612dbd57612dbc612b65565b5b6000612dcb84828501612bb8565b91505092915050565b612ddd81612b8f565b82525050565b6000602082019050612df86000830184612dd4565b92915050565b6000612e0982612b6f565b9050919050565b612e1981612dfe565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7782612aef565b810181811067ffffffffffffffff82111715612e9657612e95612e3f565b5b80604052505050565b6000612ea9612b5b565b9050612eb58282612e6e565b919050565b600067ffffffffffffffff821115612ed557612ed4612e3f565b5b602082029050602081019050919050565b600080fd5b6000612efe612ef984612eba565b612e9f565b90508083825260208201905060208402830185811115612f2157612f20612ee6565b5b835b81811015612f4a5780612f368882612bb8565b845260208401935050602081019050612f23565b5050509392505050565b600082601f830112612f6957612f68612e3a565b5b8135612f79848260208601612eeb565b91505092915050565b612f8b81612c43565b8114612f9657600080fd5b50565b600081359050612fa881612f82565b92915050565b60008060408385031215612fc557612fc4612b65565b5b600083013567ffffffffffffffff811115612fe357612fe2612b6a565b5b612fef85828601612f54565b925050602061300085828601612f99565b9150509250929050565b6000806040838503121561302157613020612b65565b5b600061302f85828601612bee565b925050602061304085828601612bee565b9150509250929050565b6000806040838503121561306157613060612b65565b5b600061306f85828601612bb8565b925050602061308085828601612bb8565b9150509250929050565b600080604083850312156130a1576130a0612b65565b5b60006130af85828601612bb8565b92505060206130c085828601612f99565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e2070617573650000600082015250565b6000613100601e83612ab4565b915061310b826130ca565b602082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061316c602083612ab4565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320b82612bcd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361323d5761323c6131d1565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b600061327e601b83612ab4565b915061328982613248565b602082019050919050565b600060208201905081810360008301526132ad81613271565b9050919050565b6000815190506132c381612bd7565b92915050565b6000602082840312156132df576132de612b65565b5b60006132ed848285016132b4565b91505092915050565b600061330182612bcd565b915061330c83612bcd565b925082820261331a81612bcd565b91508282048414831517613331576133306131d1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337282612bcd565b915061337d83612bcd565b92508261338d5761338c613338565b5b828204905092915050565b60006133a382612ca5565b9050919050565b6133b381613398565b82525050565b60006040820190506133ce60008301856133aa565b6133db6020830184612cf3565b9392505050565b6000815190506133f181612f82565b92915050565b60006020828403121561340d5761340c612b65565b5b600061341b848285016133e2565b91505092915050565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b600061345a601183612ab4565b915061346582613424565b602082019050919050565b600060208201905081810360008301526134898161344d565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006134c6601183612ab4565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782612bcd565b915061351283612bcd565b925082820190508082111561352a576135296131d1565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613566601283612ab4565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b60006135d2601783612ab4565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061363e601583612ab4565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006136d0602583612ab4565b91506136db82613674565b604082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061373c600d83612ab4565b915061374782613706565b602082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b600061377d82612d70565b915060ff82036137905761378f6131d1565b5b600182019050919050565b60006137a682612bcd565b91506137b183612bcd565b92508282039050818111156137c9576137c86131d1565b5b92915050565b60006060820190506137e46000830186612cf3565b6137f16020830185612cf3565b6137fe6040830184612cf3565b949350505050565b60008151905061381581612ba1565b92915050565b60006020828403121561383157613830612b65565b5b600061383f84828501613806565b91505092915050565b6000819050919050565b600061386d61386861386384613848565b612c79565b612bcd565b9050919050565b61387d81613852565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b881612b8f565b82525050565b60006138ca83836138af565b60208301905092915050565b6000602082019050919050565b60006138ee82613883565b6138f8818561388e565b93506139038361389f565b8060005b8381101561393457815161391b88826138be565b9750613926836138d6565b925050600181019050613907565b5085935050505092915050565b600060a0820190506139566000830188612cf3565b6139636020830187613874565b818103604083015261397581866138e3565b90506139846060830185612dd4565b6139916080830184612cf3565b9695505050505050565b600060c0820190506139b06000830189612dd4565b6139bd6020830188612cf3565b6139ca6040830187613874565b6139d76060830186613874565b6139e460808301856133aa565b6139f160a0830184612cf3565b979650505050505050565b600080600060608486031215613a1557613a14612b65565b5b6000613a23868287016132b4565b9350506020613a34868287016132b4565b9250506040613a45868287016132b4565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005dcab02ecdffb453c07104f58398ec2c3043474cf8a3072bbc8d6a00c294ee164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c8063768dc71011610118578063b1cb1582116100a0578063c647b20e1161006f578063c647b20e146107ba578063c6618d60146107e3578063dafd18e91461080e578063dd62ed3e1461084b578063e1165545146108885761021a565b8063b1cb158214610710578063b31470a41461073b578063b43665e214610764578063bbb9f61f1461078f5761021a565b80638456cb59116100e75780638456cb59146106295780638da5cb5b1461064057806395d89b411461066b578063a457c2d714610696578063a9059cbb146106d35761021a565b8063768dc7101461056b57806378109e54146105a85780637d1db4a5146105d3578063805c0e0f146105fe5761021a565b80633bbac5791161019b5780635c975abb1161016a5780635c975abb1461049657806360317625146104c157806361c9a0dc146104ec57806370a0823114610517578063715018a6146105545761021a565b80633bbac579146103d85780633f70a4951461041557806349bd5a5e146104405780634a74bb021461046b5761021a565b806321dbd9eb116101e257806321dbd9eb146102dd578063220f66961461030857806323b872dd14610333578063313ce56714610370578063395093511461039b5761021a565b806306fdde031461021f578063095ea7b31461024a5780631694505e1461028757806318160ddd146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108b1565b6040516102419190612b39565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190612c03565b6108ee565b60405161027e9190612c5e565b60405180910390f35b34801561029357600080fd5b5061029c61090c565b6040516102a99190612cd8565b60405180910390f35b3480156102be57600080fd5b506102c7610932565b6040516102d49190612d02565b60405180910390f35b3480156102e957600080fd5b506102f261093c565b6040516102ff9190612d02565b60405180910390f35b34801561031457600080fd5b5061031d610942565b60405161032a9190612c5e565b60405180910390f35b34801561033f57600080fd5b5061035a60048036038101906103559190612d1d565b610953565b6040516103679190612c5e565b60405180910390f35b34801561037c57600080fd5b50610385610a2c565b6040516103929190612d8c565b60405180910390f35b3480156103a757600080fd5b506103c260048036038101906103bd9190612c03565b610a35565b6040516103cf9190612c5e565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190612da7565b610ae8565b60405161040c9190612c5e565b60405180910390f35b34801561042157600080fd5b5061042a610b3e565b6040516104379190612d02565b60405180910390f35b34801561044c57600080fd5b50610455610b44565b6040516104629190612de3565b60405180910390f35b34801561047757600080fd5b50610480610b6a565b60405161048d9190612c5e565b60405180910390f35b3480156104a257600080fd5b506104ab610b7d565b6040516104b89190612c5e565b60405180910390f35b3480156104cd57600080fd5b506104d6610b90565b6040516104e39190612d02565b60405180910390f35b3480156104f857600080fd5b50610501610b96565b60405161050e9190612d02565b60405180910390f35b34801561052357600080fd5b5061053e60048036038101906105399190612da7565b610b9c565b60405161054b9190612d02565b60405180910390f35b34801561056057600080fd5b50610569610be5565b005b34801561057757600080fd5b50610592600480360381019061058d9190612da7565b610ca3565b60405161059f9190612c5e565b60405180910390f35b3480156105b457600080fd5b506105bd610cc3565b6040516105ca9190612d02565b60405180910390f35b3480156105df57600080fd5b506105e8610cc9565b6040516105f59190612d02565b60405180910390f35b34801561060a57600080fd5b50610613610ccf565b6040516106209190612e1f565b60405180910390f35b34801561063557600080fd5b5061063e610cd5565b005b34801561064c57600080fd5b50610655610d67565b6040516106629190612de3565b60405180910390f35b34801561067757600080fd5b50610680610d90565b60405161068d9190612b39565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612c03565b610dcd565b6040516106ca9190612c5e565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612c03565b610e9a565b6040516107079190612c5e565b60405180910390f35b34801561071c57600080fd5b50610725610eb8565b6040516107329190612d02565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190612fae565b610ebe565b005b34801561077057600080fd5b50610779610fcf565b6040516107869190612e1f565b60405180910390f35b34801561079b57600080fd5b506107a4610ff5565b6040516107b19190612e1f565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc919061300a565b61101b565b005b3480156107ef57600080fd5b506107f86110a9565b6040516108059190612d02565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190612c03565b6110af565b6040516108429190612c5e565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d919061304a565b611263565b60405161087f9190612d02565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061308a565b6112ea565b005b60606040518060400160405280600881526020017f45796543616e6479000000000000000000000000000000000000000000000000815250905090565b60006109026108fb611453565b848461145b565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600754905090565b600d5481565b60148054906101000a900460ff1681565b60006109608484846115ef565b610a218461096c611453565b610a1c85604051806060016040528060288152602001613a5060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d2611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b600190509392505050565b60006012905090565b6000610ade610a42611453565b84610ad98560036000610a53611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9190919063ffffffff16565b61145b565b6001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60095481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b601460169054906101000a900460ff1681565b600b5481565b600e5481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915054906101000a900460ff1681565b600f5481565b60115481565b61dead81565b610cdd610d67565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4190613116565b60405180910390fd5b6001601460166101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4943414e44590000000000000000000000000000000000000000000000000000815250905090565b6000610e90610dda611453565b84610e8b85604051806060016040528060258152602001613a786025913960036000610e04611453565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3c9092919063ffffffff16565b61145b565b6001905092915050565b6000610eae610ea7611453565b84846115ef565b6001905092915050565b600a5481565b610ec6611453565b73ffffffffffffffffffffffffffffffffffffffff16610ee4610d67565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3190613182565b60405180910390fd5b60005b8251811015610fca578160016000858481518110610f5e57610f5d6131a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fc290613200565b915050610f3d565b505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611023611453565b73ffffffffffffffffffffffffffffffffffffffff16611041610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90613182565b60405180910390fd5b8160098190555080600a819055505050565b600c5481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361111f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111690613294565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161115a9190612de3565b602060405180830381865afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b91906132c9565b90506000606484836111ad91906132f6565b6111b79190613367565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016112169291906133b9565b6020604051808303816000875af1158015611235573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125991906133f7565b9250505092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112f2611453565b73ffffffffffffffffffffffffffffffffffffffff16611310610d67565b73ffffffffffffffffffffffffffffffffffffffff1614611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613182565b60405180910390fd5b801515600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613470565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb906134dc565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e29190612d02565b60405180910390a3505050565b6115f7610d67565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611660575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561169857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117315750611701610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561179557600061174183610b9c565b9050600f54828261175291906134fc565b1115611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178a9061357c565b60405180910390fd5b505b61179d610d67565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461181557601154811115611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b906135e8565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561187f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b590613654565b60405180910390fd5b60008111611901576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f8906136e6565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119a55750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613752565b60405180910390fd5b600860019054906101000a900460ff1660ff16600860009054906101000a900460ff1660ff1610158015611a23575060148054906101000a900460ff16155b8015611a7d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750601460159054906101000a900460ff165b15611ade576000611aa530610b9c565b9050601154811115611ab75760115490505b6000600860006101000a81548160ff021916908360ff160217905550611adc81611ca7565b505b6000600190506000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b875750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b955760009150611c28565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611bef57600190505b6008600081819054906101000a900460ff1680929190611c0e90613772565b91906101000a81548160ff021916908360ff160217905550505b611c358585858585612040565b5050505050565b6000838311158290611c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7b9190612b39565b60405180910390fd5b5082840390509392505050565b60008183611c9f91906134fc565b905092915050565b60016014806101000a81548160ff02191690831515021790555060006064600d5483611cd391906132f6565b611cdd9190613367565b905080600754611ced919061379b565b600781905550806002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4091906134fc565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dd0919061379b565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006064600b5484611e2591906132f6565b611e2f9190613367565b905060006064600c5485611e4391906132f6565b611e4d9190613367565b9050600060c8600e5486611e6191906132f6565b611e6b9190613367565b90506000479050611e91838584611e8291906134fc565b611e8c91906134fc565b61273b565b60008147611e9f919061379b565b90506000600c54600b54600e54611eb691906134fc565b611ec091906134fc565b6064600b54611ecf91906132f6565b611ed99190613367565b9050600060648284611eeb91906132f6565b611ef59190613367565b90506000600c54600b54600e54611f0c91906134fc565b611f1691906134fc565b6064600c54611f2591906132f6565b611f2f9190613367565b9050600060648286611f4191906132f6565b611f4b9190613367565b9050611f6d87828588611f5e919061379b565b611f68919061379b565b61297e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56187828588611f9c919061379b565b611fa6919061379b565b89604051611fb6939291906137cf565b60405180910390a1611fea600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612a5e565b479450612019600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686612a5e565b5050505050505050505060006014806101000a81548160ff02191690831515021790555050565b816122155782600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612090919061379b565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e91906134fc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121be9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036122105782600754612209919061379b565b6007819055505b612734565b80156124a957600060646009548561222d91906132f6565b6122379190613367565b905060008185612247919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612294919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232291906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123b091906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124509190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036124a2578060075461249b919061379b565b6007819055505b5050612733565b60006064600a54856124bb91906132f6565b6124c59190613367565b9050600081856124d5919061379b565b905084600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612522919061379b565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b091906134fc565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263e91906134fc565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126de9190612d02565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036127305780600754612729919061379b565b6007819055505b50505b5b5050505050565b6000600267ffffffffffffffff81111561275857612757612e3f565b5b6040519080825280602002602001820160405280156127865781602001602082028036833780820191505090505b509050308160008151811061279e5761279d6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612845573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612869919061381b565b8160018151811061287d5761287c6131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128e430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612948959493929190613941565b600060405180830381600087803b15801561296257600080fd5b505af1158015612976573d6000803e3d6000fd5b505050505050565b6129ab30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461145b565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead426040518863ffffffff1660e01b8152600401612a149695949392919061399b565b60606040518083038185885af1158015612a32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a5791906139fc565b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aa4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ae3578082015181840152602081019050612ac8565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0b82612aa9565b612b158185612ab4565b9350612b25818560208601612ac5565b612b2e81612aef565b840191505092915050565b60006020820190508181036000830152612b538184612b00565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b9a82612b6f565b9050919050565b612baa81612b8f565b8114612bb557600080fd5b50565b600081359050612bc781612ba1565b92915050565b6000819050919050565b612be081612bcd565b8114612beb57600080fd5b50565b600081359050612bfd81612bd7565b92915050565b60008060408385031215612c1a57612c19612b65565b5b6000612c2885828601612bb8565b9250506020612c3985828601612bee565b9150509250929050565b60008115159050919050565b612c5881612c43565b82525050565b6000602082019050612c736000830184612c4f565b92915050565b6000819050919050565b6000612c9e612c99612c9484612b6f565b612c79565b612b6f565b9050919050565b6000612cb082612c83565b9050919050565b6000612cc282612ca5565b9050919050565b612cd281612cb7565b82525050565b6000602082019050612ced6000830184612cc9565b92915050565b612cfc81612bcd565b82525050565b6000602082019050612d176000830184612cf3565b92915050565b600080600060608486031215612d3657612d35612b65565b5b6000612d4486828701612bb8565b9350506020612d5586828701612bb8565b9250506040612d6686828701612bee565b9150509250925092565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600060208284031215612dbd57612dbc612b65565b5b6000612dcb84828501612bb8565b91505092915050565b612ddd81612b8f565b82525050565b6000602082019050612df86000830184612dd4565b92915050565b6000612e0982612b6f565b9050919050565b612e1981612dfe565b82525050565b6000602082019050612e346000830184612e10565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e7782612aef565b810181811067ffffffffffffffff82111715612e9657612e95612e3f565b5b80604052505050565b6000612ea9612b5b565b9050612eb58282612e6e565b919050565b600067ffffffffffffffff821115612ed557612ed4612e3f565b5b602082029050602081019050919050565b600080fd5b6000612efe612ef984612eba565b612e9f565b90508083825260208201905060208402830185811115612f2157612f20612ee6565b5b835b81811015612f4a5780612f368882612bb8565b845260208401935050602081019050612f23565b5050509392505050565b600082601f830112612f6957612f68612e3a565b5b8135612f79848260208601612eeb565b91505092915050565b612f8b81612c43565b8114612f9657600080fd5b50565b600081359050612fa881612f82565b92915050565b60008060408385031215612fc557612fc4612b65565b5b600083013567ffffffffffffffff811115612fe357612fe2612b6a565b5b612fef85828601612f54565b925050602061300085828601612f99565b9150509250929050565b6000806040838503121561302157613020612b65565b5b600061302f85828601612bee565b925050602061304085828601612bee565b9150509250929050565b6000806040838503121561306157613060612b65565b5b600061306f85828601612bb8565b925050602061308085828601612bb8565b9150509250929050565b600080604083850312156130a1576130a0612b65565b5b60006130af85828601612bb8565b92505060206130c085828601612f99565b9150509250929050565b7f5061757361626c653a206f6e6c79206f776e65722063616e2070617573650000600082015250565b6000613100601e83612ab4565b915061310b826130ca565b602082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061316c602083612ab4565b915061317782613136565b602082019050919050565b6000602082019050818103600083015261319b8161315f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061320b82612bcd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361323d5761323c6131d1565b5b600182019050919050565b7f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000600082015250565b600061327e601b83612ab4565b915061328982613248565b602082019050919050565b600060208201905081810360008301526132ad81613271565b9050919050565b6000815190506132c381612bd7565b92915050565b6000602082840312156132df576132de612b65565b5b60006132ed848285016132b4565b91505092915050565b600061330182612bcd565b915061330c83612bcd565b925082820261331a81612bcd565b91508282048414831517613331576133306131d1565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337282612bcd565b915061337d83612bcd565b92508261338d5761338c613338565b5b828204905092915050565b60006133a382612ca5565b9050919050565b6133b381613398565b82525050565b60006040820190506133ce60008301856133aa565b6133db6020830184612cf3565b9392505050565b6000815190506133f181612f82565b92915050565b60006020828403121561340d5761340c612b65565b5b600061341b848285016133e2565b91505092915050565b7f56616c756520616c726561647920736574000000000000000000000000000000600082015250565b600061345a601183612ab4565b915061346582613424565b602082019050919050565b600060208201905081810360008301526134898161344d565b9050919050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006134c6601183612ab4565b91506134d182613490565b602082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b600061350782612bcd565b915061351283612bcd565b925082820190508082111561352a576135296131d1565b5b92915050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000613566601283612ab4565b915061357182613530565b602082019050919050565b6000602082019050818103600083015261359581613559565b9050919050565b7f4f766572207472616e73616374696f6e206c696d69742e000000000000000000600082015250565b60006135d2601783612ab4565b91506135dd8261359c565b602082019050919050565b60006020820190508181036000830152613601816135c5565b9050919050565b7f4552523a205573696e6720302061646472657373210000000000000000000000600082015250565b600061363e601583612ab4565b915061364982613608565b602082019050919050565b6000602082019050818103600083015261366d81613631565b9050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b60006136d0602583612ab4565b91506136db82613674565b604082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b600061373c600d83612ab4565b915061374782613706565b602082019050919050565b6000602082019050818103600083015261376b8161372f565b9050919050565b600061377d82612d70565b915060ff82036137905761378f6131d1565b5b600182019050919050565b60006137a682612bcd565b91506137b183612bcd565b92508282039050818111156137c9576137c86131d1565b5b92915050565b60006060820190506137e46000830186612cf3565b6137f16020830185612cf3565b6137fe6040830184612cf3565b949350505050565b60008151905061381581612ba1565b92915050565b60006020828403121561383157613830612b65565b5b600061383f84828501613806565b91505092915050565b6000819050919050565b600061386d61386861386384613848565b612c79565b612bcd565b9050919050565b61387d81613852565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b881612b8f565b82525050565b60006138ca83836138af565b60208301905092915050565b6000602082019050919050565b60006138ee82613883565b6138f8818561388e565b93506139038361389f565b8060005b8381101561393457815161391b88826138be565b9750613926836138d6565b925050600181019050613907565b5085935050505092915050565b600060a0820190506139566000830188612cf3565b6139636020830187613874565b818103604083015261397581866138e3565b90506139846060830185612dd4565b6139916080830184612cf3565b9695505050505050565b600060c0820190506139b06000830189612dd4565b6139bd6020830188612cf3565b6139ca6040830187613874565b6139d76060830186613874565b6139e460808301856133aa565b6139f160a0830184612cf3565b979650505050505050565b600080600060608486031215613a1557613a14612b65565b5b6000613a23868287016132b4565b9350506020613a34868287016132b4565b9250506040613a45868287016132b4565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122005dcab02ecdffb453c07104f58398ec2c3043474cf8a3072bbc8d6a00c294ee164736f6c63430008120033

Deployed Bytecode Sourcemap

12934:12253:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16936:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17917:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15194:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17353:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14881:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15277:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18084:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17264:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18403:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16832:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14722:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15242:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15312:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15359:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14799:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14919:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17454:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13716:138;;;;;;;;;;;;;:::i;:::-;;14034:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14960:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15081:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14288:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13579:131;;;;;;;;;;;;;:::i;:::-;;13163:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17025;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18633:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17577:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14760:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16624:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14093:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14194:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17118:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14843:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23342:444;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17750:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16438:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16936:83;16973:13;17006:5;;;;;;;;;;;;;;;;;16999:12;;16936:83;:::o;17917:161::-;17992:4;18009:39;18018:12;:10;:12::i;:::-;18032:7;18041:6;18009:8;:39::i;:::-;18066:4;18059:11;;17917:161;;;;:::o;15194:41::-;;;;;;;;;;;;;:::o;17353:95::-;17406:7;17433;;17426:14;;17353:95;:::o;14881:31::-;;;;:::o;15277:28::-;;;;;;;;;;;;:::o;18084:313::-;18182:4;18199:36;18209:6;18217:9;18228:6;18199:9;:36::i;:::-;18246:121;18255:6;18263:12;:10;:12::i;:::-;18277:89;18315:6;18277:89;;;;;;;;;;;;;;;;;:11;:19;18289:6;18277:19;;;;;;;;;;;;;;;:33;18297:12;:10;:12::i;:::-;18277:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18246:8;:121::i;:::-;18385:4;18378:11;;18084:313;;;;;:::o;17264:83::-;17305:5;14477:2;17323:16;;17264:83;:::o;18403:218::-;18491:4;18508:83;18517:12;:10;:12::i;:::-;18531:7;18540:50;18579:10;18540:11;:25;18552:12;:10;:12::i;:::-;18540:25;;;;;;;;;;;;;;;:34;18566:7;18540:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18508:8;:83::i;:::-;18609:4;18602:11;;18403:218;;;;:::o;16832:98::-;16884:4;16907:6;:15;16914:7;16907:15;;;;;;;;;;;;;;;;;;;;;;;;;16900:22;;16832:98;;;:::o;14722:31::-;;;;:::o;15242:28::-;;;;;;;;;;;;;:::o;15312:40::-;;;;;;;;;;;;;:::o;15359:26::-;;;;;;;;;;;;;:::o;14799:37::-;;;;:::o;14919:33::-;;;;:::o;17454:117::-;17520:7;17547;:16;17555:7;17547:16;;;;;;;;;;;;;;;;17540:23;;17454:117;;;:::o;13716:138::-;13813:1;13776:40;;13797:6;;;;;;;;;;13776:40;;;;;;;;;;;;13844:1;13827:6;;:19;;;;;;;;;;;;;;;;;;13716:138::o;14034:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;14960:50::-;;;;:::o;15081:47::-;;;;:::o;14288:97::-;14342:42;14288:97;:::o;13579:131::-;13636:7;:5;:7::i;:::-;13622:21;;:10;:21;;;13614:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13698:4;13689:6;;:13;;;;;;;;;;;;;;;;;;13579:131::o;13163:87::-;13209:7;13236:6;;;;;;;;;;;13229:13;;13163:87;:::o;17025:::-;17064:13;17097:7;;;;;;;;;;;;;;;;;17090:14;;17025:87;:::o;18633:269::-;18726:4;18743:129;18752:12;:10;:12::i;:::-;18766:7;18775:96;18814:15;18775:96;;;;;;;;;;;;;;;;;:11;:25;18787:12;:10;:12::i;:::-;18775:25;;;;;;;;;;;;;;;:34;18801:7;18775:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18743:8;:129::i;:::-;18890:4;18883:11;;18633:269;;;;:::o;17577:167::-;17655:4;17672:42;17682:12;:10;:12::i;:::-;17696:9;17707:6;17672:9;:42::i;:::-;17732:4;17725:11;;17577:167;;;;:::o;14760:32::-;;;;:::o;16624:199::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16717:9:::1;16713:99;16736:8;:15;16732:1;:19;16713:99;;;16794:5;16772:6;:19;16779:8;16788:1;16779:11;;;;;;;;:::i;:::-;;;;;;;;16772:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16753:3;;;;;:::i;:::-;;;;16713:99;;;;16624:199:::0;;:::o;14093:93::-;;;;;;;;;;;;;:::o;14194:87::-;;;;;;;;;;;;;:::o;17118:140::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17211:6:::1;17197:11;:20;;;;17243:7;17228:12;:22;;;;17118:140:::0;;:::o;14843:31::-;;;;:::o;23342:444::-;23444:10;23506:4;23474:37;;:20;:37;;;23466:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23554:19;23583:20;23576:38;;;23623:4;23576:53;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23554:75;;23640:20;23693:3;23675:17;23663:11;:29;;;;:::i;:::-;:33;;;;:::i;:::-;23640:56;;23722:20;23715:37;;;23753:10;;;;;;;;;;;23765:12;23715:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23707:71;;23455:331;;23342:444;;;;:::o;17750:155::-;17837:7;17864:11;:21;17876:8;17864:21;;;;;;;;;;;;;;;:33;17886:10;17864:33;;;;;;;;;;;;;;;;17857:40;;17750:155;;;;:::o;16438:174::-;13504:12;:10;:12::i;:::-;13493:23;;:7;:5;:7::i;:::-;:23;;;13485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16543:5:::1;16524:24;;:6;:15;16531:7;16524:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;::::0;16516:54:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16599:5;16581:6;:15;16588:7;16581:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;16438:174:::0;;:::o;1641:98::-;1694:7;1721:10;1714:17;;1641:98;:::o;19043:286::-;19162:1;19142:22;;:8;:22;;;;:50;;;;;19190:1;19168:24;;:10;:24;;;;19142:50;19134:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;19261:6;19225:11;:21;19237:8;19225:21;;;;;;;;;;;;;;;:33;19247:10;19225:33;;;;;;;;;;;;;;;:42;;;;19302:10;19283:38;;19292:8;19283:38;;;19314:6;19283:38;;;;;;:::i;:::-;;;;;;;;19043:286;;;:::o;19345:1519::-;19469:7;:5;:7::i;:::-;19463:13;;:2;:13;;;;:47;;;;;14342:42;19493:17;;:2;:17;;;;19463:47;:83;;;;;19541:4;19527:19;;:2;:19;;;;19463:83;:119;;;;;19569:13;;;;;;;;;;;19563:19;;:2;:19;;;;19463:119;:151;;;;;19607:7;:5;:7::i;:::-;19599:15;;:4;:15;;;;19463:151;19459:292;;;19630:18;19651:13;19661:2;19651:9;:13::i;:::-;19630:34;;19712:15;;19701:6;19688:10;:19;;;;:::i;:::-;19687:40;;19679:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19615:136;19459:292;19773:7;:5;:7::i;:::-;19765:15;;:4;:15;;;19761:92;;19813:12;;19803:6;:22;;19795:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;19761:92;19888:1;19872:18;;:4;:18;;;;:38;;;;;19908:1;19894:16;;:2;:16;;;;19872:38;19864:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19964:1;19955:6;:10;19947:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20028:6;:12;20035:4;20028:12;;;;;;;;;;;;;;;;;;;;;;;;;20027:13;:28;;;;;20045:6;:10;20052:2;20045:10;;;;;;;;;;;;;;;;;;;;;;;;;20044:11;20027:28;20019:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;20113:11;;;;;;;;;;;20102:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;20143:16;;;;;;;;;;20142:17;20102:57;:95;;;;;20184:13;;;;;;;;;;;20176:21;;:4;:21;;;;20102:95;:133;;;;;20214:21;;;;;;;;;;;20102:133;20085:428;;;20277:28;20308:24;20326:4;20308:9;:24::i;:::-;20277:55;;20373:12;;20350:20;:35;20347:78;;;20411:12;;20388:35;;20347:78;20449:1;20439:7;;:11;;;;;;;;;;;;;;;;;;20465:36;20480:20;20465:14;:36::i;:::-;20260:253;20085:428;20523:12;20538:4;20523:19;;20553:10;20577:18;:24;20596:4;20577:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;20605:18;:22;20624:2;20605:22;;;;;;;;;;;;;;;;;;;;;;;;;20577:50;20574:224;;;20653:5;20643:15;;20574:224;;;20702:13;;;;;;;;;;;20694:21;;:4;:21;;;20691:72;;20743:4;20735:12;;20691:72;20777:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;20574:224;20808:48;20823:4;20829:2;20833:6;20841:7;20850:5;20808:14;:48::i;:::-;19448:1416;;19345:1519;;;:::o;1186:206::-;1272:7;1330:1;1325;:6;;1333:12;1317:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1372:1;1368;:5;1361:12;;1186:206;;;;;:::o;770:98::-;828:7;859:1;855;:5;;;;:::i;:::-;848:12;;770:98;;;;:::o;20996:1489::-;15639:4;15620:16;;:23;;;;;;;;;;;;;;;;;;21085:22:::1;21148:3;21133:12;;21110:20;:35;;;;:::i;:::-;:41;;;;:::i;:::-;21085:66;;21186:14;21176:7;;:24;;;;:::i;:::-;21166:7;:34;;;;21261:14;21238:7;:20;14342:42;21238:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;21215:7;:20;14342:42;21215:20;;;;;;;;;;;;;;;:60;;;;21340:14;21315:7;:22;21331:4;21315:22;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;21290:7;:22;21306:4;21290:22;;;;;;;;;;;;;;;:64;;;;21370:19;21435:3;21415:17;;21392:20;:40;;;;:::i;:::-;:46;;;;:::i;:::-;21370:68;;21453:19;21512:3;21498:11;;21475:20;:34;;;;:::i;:::-;:40;;;;:::i;:::-;21453:62;;21530:25;21598:3;21581:14;;21558:20;:37;;;;:::i;:::-;:43;;;;:::i;:::-;21530:71;;21616:25;21644:21;21616:49;;21680:63;21731:11;21717;21697:17;:31;;;;:::i;:::-;:45;;;;:::i;:::-;21680:16;:63::i;:::-;21758:17;21802;21778:21;:41;;;;:::i;:::-;21758:61;;21834:15;21916:11;;21896:17;;21879:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;21872:3;21852:17;;:23;;;;:::i;:::-;:76;;;;:::i;:::-;21834:94;;21943:13;21981:3;21971:7;21959:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;21943:41;;21999:15;22075:11;;22055:17;;22038:14;;:34;;;;:::i;:::-;:48;;;;:::i;:::-;22031:3;22017:11;;:17;;;;:::i;:::-;:70;;;;:::i;:::-;21999:88;;22102:13;22140:3;22130:7;22118:9;:19;;;;:::i;:::-;:25;;;;:::i;:::-;22102:41;;22158:60;22171:17;22211:5;22203;22191:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22158:12;:60::i;:::-;22238:81;22253:17;22293:5;22285;22273:9;:17;;;;:::i;:::-;:25;;;;:::i;:::-;22301:17;22238:81;;;;;;;;:::i;:::-;;;;;;;;22334:37;22347:16;;;;;;;;;;;22365:5;22334:12;:37::i;:::-;22398:21;22386:33;;22434:35;22447:10;;;;;;;;;;;22459:9;22434:12;:35::i;:::-;21070:1415;;;;;;;;;;15685:5:::0;15666:16;;:24;;;;;;;;;;;;;;;;;;20996:1489;:::o;23792:1392::-;23917:7;23913:1264;;23974:7;23958;:15;23966:6;23958:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23940:7;:15;23948:6;23940:15;;;;;;;;;;;;;;;:41;;;;24036:7;24017;:18;24025:9;24017:18;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;23996:7;:18;24004:9;23996:18;;;;;;;;;;;;;;;:47;;;;24080:9;24063:36;;24072:6;24063:36;;;24091:7;24063:36;;;;;;:::i;:::-;;;;;;;;14342:42;24117:24;;:9;:24;;;24114:67;;24174:7;24166;;:15;;;;:::i;:::-;24156:7;:25;;;;24114:67;23913:1264;;;24207:5;24203:974;;;24228:14;24265:3;24253:11;;24245:7;:19;;;;:::i;:::-;:23;;;;:::i;:::-;24228:40;;24283:23;24317:6;24309:7;:14;;;;:::i;:::-;24283:40;;24372:7;24356;:15;24364:6;24356:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24338:7;:15;24346:6;24338:15;;;;;;;;;;;;;;;:41;;;;24434:15;24415:7;:18;24423:9;24415:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24394:7;:18;24402:9;24394:18;;;;;;;;;;;;;;;:55;;;;24512:6;24489:7;:22;24505:4;24489:22;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;24464:7;:22;24480:4;24464:22;;;;;;;;;;;;;;;:54;;;;24557:9;24540:44;;24549:6;24540:44;;;24568:15;24540:44;;;;;;:::i;:::-;;;;;;;;14342:42;24602:24;;:9;:24;;;24599:75;;24659:15;24651:7;;:23;;;;:::i;:::-;24641:7;:33;;;;24599:75;24213:477;;24203:974;;;24711:15;24750:3;24737:12;;24729:7;:20;;;;:::i;:::-;:24;;;;:::i;:::-;24711:42;;24768:23;24802:7;24794;:15;;;;:::i;:::-;24768:41;;24858:7;24842;:15;24850:6;24842:15;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;24824:7;:15;24832:6;24824:15;;;;;;;;;;;;;;;:41;;;;24920:15;24901:7;:18;24909:9;24901:18;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;24880:7;:18;24888:9;24880:18;;;;;;;;;;;;;;;:55;;;;24998:7;24975;:22;24991:4;24975:22;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;24950:7;:22;24966:4;24950:22;;;;;;;;;;;;;;;:55;;;;25044:9;25027:44;;25036:6;25027:44;;;25055:15;25027:44;;;;;;:::i;:::-;;;;;;;;14342:42;25089:24;;:9;:24;;;25086:75;;25146:15;25138:7;;:23;;;;:::i;:::-;25128:7;:33;;;;25086:75;24696:481;;24203:974;23913:1264;23792:1392;;;;;:::o;22491:472::-;22557:21;22595:1;22581:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22557:40;;22626:4;22608;22613:1;22608:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22652:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22642:4;22647:1;22642:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22685:62;22702:4;22717:15;;;;;;;;;;;22735:11;22685:8;:62::i;:::-;22758:15;;;;;;;;;;;:66;;;22839:11;22865:1;22882:4;22909;22929:15;22758:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22546:417;22491:472;:::o;22969:366::-;23050:62;23067:4;23082:15;;;;;;;;;;;23100:11;23050:8;:62::i;:::-;23123:15;;;;;;;;;;;:31;;;23162:9;23195:4;23215:11;23241:1;23258;14342:42;23301:15;23123:204;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22969:366;;:::o;20870:120::-;20955:6;:15;;:23;20971:6;20955:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20870:120;;:::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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:86::-;5436:7;5476:4;5469:5;5465:16;5454:27;;5401:86;;;:::o;5493:112::-;5576:22;5592:5;5576:22;:::i;:::-;5571:3;5564:35;5493:112;;:::o;5611:214::-;5700:4;5738:2;5727:9;5723:18;5715:26;;5751:67;5815:1;5804:9;5800:17;5791:6;5751:67;:::i;:::-;5611:214;;;;:::o;5831:329::-;5890:6;5939:2;5927:9;5918:7;5914:23;5910:32;5907:119;;;5945:79;;:::i;:::-;5907:119;6065:1;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6036:117;5831:329;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:104::-;6563:7;6592:24;6610:5;6592:24;:::i;:::-;6581:35;;6518:104;;;:::o;6628:142::-;6731:32;6757:5;6731:32;:::i;:::-;6726:3;6719:45;6628:142;;:::o;6776:254::-;6885:4;6923:2;6912:9;6908:18;6900:26;;6936:87;7020:1;7009:9;7005:17;6996:6;6936:87;:::i;:::-;6776:254;;;;:::o;7036:117::-;7145:1;7142;7135:12;7159:180;7207:77;7204:1;7197:88;7304:4;7301:1;7294:15;7328:4;7325:1;7318:15;7345:281;7428:27;7450:4;7428:27;:::i;:::-;7420:6;7416:40;7558:6;7546:10;7543:22;7522:18;7510:10;7507:34;7504:62;7501:88;;;7569:18;;:::i;:::-;7501:88;7609:10;7605:2;7598:22;7388:238;7345:281;;:::o;7632:129::-;7666:6;7693:20;;:::i;:::-;7683:30;;7722:33;7750:4;7742:6;7722:33;:::i;:::-;7632:129;;;:::o;7767:311::-;7844:4;7934:18;7926:6;7923:30;7920:56;;;7956:18;;:::i;:::-;7920:56;8006:4;7998:6;7994:17;7986:25;;8066:4;8060;8056:15;8048:23;;7767:311;;;:::o;8084:117::-;8193:1;8190;8183:12;8224:710;8320:5;8345:81;8361:64;8418:6;8361:64;:::i;:::-;8345:81;:::i;:::-;8336:90;;8446:5;8475:6;8468:5;8461:21;8509:4;8502:5;8498:16;8491:23;;8562:4;8554:6;8550:17;8542:6;8538:30;8591:3;8583:6;8580:15;8577:122;;;8610:79;;:::i;:::-;8577:122;8725:6;8708:220;8742:6;8737:3;8734:15;8708:220;;;8817:3;8846:37;8879:3;8867:10;8846:37;:::i;:::-;8841:3;8834:50;8913:4;8908:3;8904:14;8897:21;;8784:144;8768:4;8763:3;8759:14;8752:21;;8708:220;;;8712:21;8326:608;;8224:710;;;;;:::o;8957:370::-;9028:5;9077:3;9070:4;9062:6;9058:17;9054:27;9044:122;;9085:79;;:::i;:::-;9044:122;9202:6;9189:20;9227:94;9317:3;9309:6;9302:4;9294:6;9290:17;9227:94;:::i;:::-;9218:103;;9034:293;8957:370;;;;:::o;9333:116::-;9403:21;9418:5;9403:21;:::i;:::-;9396:5;9393:32;9383:60;;9439:1;9436;9429:12;9383:60;9333:116;:::o;9455:133::-;9498:5;9536:6;9523:20;9514:29;;9552:30;9576:5;9552:30;:::i;:::-;9455:133;;;;:::o;9594:678::-;9684:6;9692;9741:2;9729:9;9720:7;9716:23;9712:32;9709:119;;;9747:79;;:::i;:::-;9709:119;9895:1;9884:9;9880:17;9867:31;9925:18;9917:6;9914:30;9911:117;;;9947:79;;:::i;:::-;9911:117;10052:78;10122:7;10113:6;10102:9;10098:22;10052:78;:::i;:::-;10042:88;;9838:302;10179:2;10205:50;10247:7;10238:6;10227:9;10223:22;10205:50;:::i;:::-;10195:60;;10150:115;9594:678;;;;;:::o;10278:474::-;10346:6;10354;10403:2;10391:9;10382:7;10378:23;10374:32;10371:119;;;10409:79;;:::i;:::-;10371:119;10529:1;10554:53;10599:7;10590:6;10579:9;10575:22;10554:53;:::i;:::-;10544:63;;10500:117;10656:2;10682:53;10727:7;10718:6;10707:9;10703:22;10682:53;:::i;:::-;10672:63;;10627:118;10278:474;;;;;:::o;10758:::-;10826:6;10834;10883:2;10871:9;10862:7;10858:23;10854:32;10851:119;;;10889:79;;:::i;:::-;10851:119;11009:1;11034:53;11079:7;11070:6;11059:9;11055:22;11034:53;:::i;:::-;11024:63;;10980:117;11136:2;11162:53;11207:7;11198:6;11187:9;11183:22;11162:53;:::i;:::-;11152:63;;11107:118;10758:474;;;;;:::o;11238:468::-;11303:6;11311;11360:2;11348:9;11339:7;11335:23;11331:32;11328:119;;;11366:79;;:::i;:::-;11328:119;11486:1;11511:53;11556:7;11547:6;11536:9;11532:22;11511:53;:::i;:::-;11501:63;;11457:117;11613:2;11639:50;11681:7;11672:6;11661:9;11657:22;11639:50;:::i;:::-;11629:60;;11584:115;11238:468;;;;;:::o;11712:180::-;11852:32;11848:1;11840:6;11836:14;11829:56;11712:180;:::o;11898:366::-;12040:3;12061:67;12125:2;12120:3;12061:67;:::i;:::-;12054:74;;12137:93;12226:3;12137:93;:::i;:::-;12255:2;12250:3;12246:12;12239:19;;11898:366;;;:::o;12270:419::-;12436:4;12474:2;12463:9;12459:18;12451:26;;12523:9;12517:4;12513:20;12509:1;12498:9;12494:17;12487:47;12551:131;12677:4;12551:131;:::i;:::-;12543:139;;12270:419;;;:::o;12695:182::-;12835:34;12831:1;12823:6;12819:14;12812:58;12695:182;:::o;12883:366::-;13025:3;13046:67;13110:2;13105:3;13046:67;:::i;:::-;13039:74;;13122:93;13211:3;13122:93;:::i;:::-;13240:2;13235:3;13231:12;13224:19;;12883:366;;;:::o;13255:419::-;13421:4;13459:2;13448:9;13444:18;13436:26;;13508:9;13502:4;13498:20;13494:1;13483:9;13479:17;13472:47;13536:131;13662:4;13536:131;:::i;:::-;13528:139;;13255:419;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:233;14091:3;14114:24;14132:5;14114:24;:::i;:::-;14105:33;;14160:66;14153:5;14150:77;14147:103;;14230:18;;:::i;:::-;14147:103;14277:1;14270:5;14266:13;14259:20;;14052:233;;;:::o;14291:177::-;14431:29;14427:1;14419:6;14415:14;14408:53;14291:177;:::o;14474:366::-;14616:3;14637:67;14701:2;14696:3;14637:67;:::i;:::-;14630:74;;14713:93;14802:3;14713:93;:::i;:::-;14831:2;14826:3;14822:12;14815:19;;14474:366;;;:::o;14846:419::-;15012:4;15050:2;15039:9;15035:18;15027:26;;15099:9;15093:4;15089:20;15085:1;15074:9;15070:17;15063:47;15127:131;15253:4;15127:131;:::i;:::-;15119:139;;14846:419;;;:::o;15271:143::-;15328:5;15359:6;15353:13;15344:22;;15375:33;15402:5;15375:33;:::i;:::-;15271:143;;;;:::o;15420:351::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:64;15746:7;15737:6;15726:9;15722:22;15690:64;:::i;:::-;15680:74;;15636:128;15420:351;;;;:::o;15777:410::-;15817:7;15840:20;15858:1;15840:20;:::i;:::-;15835:25;;15874:20;15892:1;15874:20;:::i;:::-;15869:25;;15929:1;15926;15922:9;15951:30;15969:11;15951:30;:::i;:::-;15940:41;;16130:1;16121:7;16117:15;16114:1;16111:22;16091:1;16084:9;16064:83;16041:139;;16160:18;;:::i;:::-;16041:139;15825:362;15777:410;;;;:::o;16193:180::-;16241:77;16238:1;16231:88;16338:4;16335:1;16328:15;16362:4;16359:1;16352:15;16379:185;16419:1;16436:20;16454:1;16436:20;:::i;:::-;16431:25;;16470:20;16488:1;16470:20;:::i;:::-;16465:25;;16509:1;16499:35;;16514:18;;:::i;:::-;16499:35;16556:1;16553;16549:9;16544:14;;16379:185;;;;:::o;16570:134::-;16628:9;16661:37;16692:5;16661:37;:::i;:::-;16648:50;;16570:134;;;:::o;16710:147::-;16805:45;16844:5;16805:45;:::i;:::-;16800:3;16793:58;16710:147;;:::o;16863:348::-;16992:4;17030:2;17019:9;17015:18;17007:26;;17043:79;17119:1;17108:9;17104:17;17095:6;17043:79;:::i;:::-;17132:72;17200:2;17189:9;17185:18;17176:6;17132:72;:::i;:::-;16863:348;;;;;:::o;17217:137::-;17271:5;17302:6;17296:13;17287:22;;17318:30;17342:5;17318:30;:::i;:::-;17217:137;;;;:::o;17360:345::-;17427:6;17476:2;17464:9;17455:7;17451:23;17447:32;17444:119;;;17482:79;;:::i;:::-;17444:119;17602:1;17627:61;17680:7;17671:6;17660:9;17656:22;17627:61;:::i;:::-;17617:71;;17573:125;17360:345;;;;:::o;17711:167::-;17851:19;17847:1;17839:6;17835:14;17828:43;17711:167;:::o;17884:366::-;18026:3;18047:67;18111:2;18106:3;18047:67;:::i;:::-;18040:74;;18123:93;18212:3;18123:93;:::i;:::-;18241:2;18236:3;18232:12;18225:19;;17884:366;;;:::o;18256:419::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18509:9;18503:4;18499:20;18495:1;18484:9;18480:17;18473:47;18537:131;18663:4;18537:131;:::i;:::-;18529:139;;18256:419;;;:::o;18681:167::-;18821:19;18817:1;18809:6;18805:14;18798:43;18681:167;:::o;18854:366::-;18996:3;19017:67;19081:2;19076:3;19017:67;:::i;:::-;19010:74;;19093:93;19182:3;19093:93;:::i;:::-;19211:2;19206:3;19202:12;19195:19;;18854:366;;;:::o;19226:419::-;19392:4;19430:2;19419:9;19415:18;19407:26;;19479:9;19473:4;19469:20;19465:1;19454:9;19450:17;19443:47;19507:131;19633:4;19507:131;:::i;:::-;19499:139;;19226:419;;;:::o;19651:191::-;19691:3;19710:20;19728:1;19710:20;:::i;:::-;19705:25;;19744:20;19762:1;19744:20;:::i;:::-;19739:25;;19787:1;19784;19780:9;19773:16;;19808:3;19805:1;19802:10;19799:36;;;19815:18;;:::i;:::-;19799:36;19651:191;;;;:::o;19848:168::-;19988:20;19984:1;19976:6;19972:14;19965:44;19848:168;:::o;20022:366::-;20164:3;20185:67;20249:2;20244:3;20185:67;:::i;:::-;20178:74;;20261:93;20350:3;20261:93;:::i;:::-;20379:2;20374:3;20370:12;20363:19;;20022:366;;;:::o;20394:419::-;20560:4;20598:2;20587:9;20583:18;20575:26;;20647:9;20641:4;20637:20;20633:1;20622:9;20618:17;20611:47;20675:131;20801:4;20675:131;:::i;:::-;20667:139;;20394:419;;;:::o;20819:173::-;20959:25;20955:1;20947:6;20943:14;20936:49;20819:173;:::o;20998:366::-;21140:3;21161:67;21225:2;21220:3;21161:67;:::i;:::-;21154:74;;21237:93;21326:3;21237:93;:::i;:::-;21355:2;21350:3;21346:12;21339:19;;20998:366;;;:::o;21370:419::-;21536:4;21574:2;21563:9;21559:18;21551:26;;21623:9;21617:4;21613:20;21609:1;21598:9;21594:17;21587:47;21651:131;21777:4;21651:131;:::i;:::-;21643:139;;21370:419;;;:::o;21795:171::-;21935:23;21931:1;21923:6;21919:14;21912:47;21795:171;:::o;21972:366::-;22114:3;22135:67;22199:2;22194:3;22135:67;:::i;:::-;22128:74;;22211:93;22300:3;22211:93;:::i;:::-;22329:2;22324:3;22320:12;22313:19;;21972:366;;;:::o;22344:419::-;22510:4;22548:2;22537:9;22533:18;22525:26;;22597:9;22591:4;22587:20;22583:1;22572:9;22568:17;22561:47;22625:131;22751:4;22625:131;:::i;:::-;22617:139;;22344:419;;;:::o;22769:224::-;22909:34;22905:1;22897:6;22893:14;22886:58;22978:7;22973:2;22965:6;22961:15;22954:32;22769:224;:::o;22999:366::-;23141:3;23162:67;23226:2;23221:3;23162:67;:::i;:::-;23155:74;;23238:93;23327:3;23238:93;:::i;:::-;23356:2;23351:3;23347:12;23340:19;;22999:366;;;:::o;23371:419::-;23537:4;23575:2;23564:9;23560:18;23552:26;;23624:9;23618:4;23614:20;23610:1;23599:9;23595:17;23588:47;23652:131;23778:4;23652:131;:::i;:::-;23644:139;;23371:419;;;:::o;23796:163::-;23936:15;23932:1;23924:6;23920:14;23913:39;23796:163;:::o;23965:366::-;24107:3;24128:67;24192:2;24187:3;24128:67;:::i;:::-;24121:74;;24204:93;24293:3;24204:93;:::i;:::-;24322:2;24317:3;24313:12;24306:19;;23965:366;;;:::o;24337:419::-;24503:4;24541:2;24530:9;24526:18;24518:26;;24590:9;24584:4;24580:20;24576:1;24565:9;24561:17;24554:47;24618:131;24744:4;24618:131;:::i;:::-;24610:139;;24337:419;;;:::o;24762:167::-;24799:3;24822:22;24838:5;24822:22;:::i;:::-;24813:31;;24866:4;24859:5;24856:15;24853:41;;24874:18;;:::i;:::-;24853:41;24921:1;24914:5;24910:13;24903:20;;24762:167;;;:::o;24935:194::-;24975:4;24995:20;25013:1;24995:20;:::i;:::-;24990:25;;25029:20;25047:1;25029:20;:::i;:::-;25024:25;;25073:1;25070;25066:9;25058:17;;25097:1;25091:4;25088:11;25085:37;;;25102:18;;:::i;:::-;25085:37;24935:194;;;;:::o;25135:442::-;25284:4;25322:2;25311:9;25307:18;25299:26;;25335:71;25403:1;25392:9;25388:17;25379:6;25335:71;:::i;:::-;25416:72;25484:2;25473:9;25469:18;25460:6;25416:72;:::i;:::-;25498;25566:2;25555:9;25551:18;25542:6;25498:72;:::i;:::-;25135:442;;;;;;:::o;25583:143::-;25640:5;25671:6;25665:13;25656:22;;25687:33;25714:5;25687:33;:::i;:::-;25583:143;;;;:::o;25732:351::-;25802:6;25851:2;25839:9;25830:7;25826:23;25822:32;25819:119;;;25857:79;;:::i;:::-;25819:119;25977:1;26002:64;26058:7;26049:6;26038:9;26034:22;26002:64;:::i;:::-;25992:74;;25948:128;25732:351;;;;:::o;26089:85::-;26134:7;26163:5;26152:16;;26089:85;;;:::o;26180:158::-;26238:9;26271:61;26289:42;26298:32;26324:5;26298:32;:::i;:::-;26289:42;:::i;:::-;26271:61;:::i;:::-;26258:74;;26180:158;;;:::o;26344:147::-;26439:45;26478:5;26439:45;:::i;:::-;26434:3;26427:58;26344:147;;:::o;26497:114::-;26564:6;26598:5;26592:12;26582:22;;26497:114;;;:::o;26617:184::-;26716:11;26750:6;26745:3;26738:19;26790:4;26785:3;26781:14;26766:29;;26617:184;;;;:::o;26807:132::-;26874:4;26897:3;26889:11;;26927:4;26922:3;26918:14;26910:22;;26807:132;;;:::o;26945:108::-;27022:24;27040:5;27022:24;:::i;:::-;27017:3;27010:37;26945:108;;:::o;27059:179::-;27128:10;27149:46;27191:3;27183:6;27149:46;:::i;:::-;27227:4;27222:3;27218:14;27204:28;;27059:179;;;;:::o;27244:113::-;27314:4;27346;27341:3;27337:14;27329:22;;27244:113;;;:::o;27393:732::-;27512:3;27541:54;27589:5;27541:54;:::i;:::-;27611:86;27690:6;27685:3;27611:86;:::i;:::-;27604:93;;27721:56;27771:5;27721:56;:::i;:::-;27800:7;27831:1;27816:284;27841:6;27838:1;27835:13;27816:284;;;27917:6;27911:13;27944:63;28003:3;27988:13;27944:63;:::i;:::-;27937:70;;28030:60;28083:6;28030:60;:::i;:::-;28020:70;;27876:224;27863:1;27860;27856:9;27851:14;;27816:284;;;27820:14;28116:3;28109:10;;27517:608;;;27393:732;;;;:::o;28131:831::-;28394:4;28432:3;28421:9;28417:19;28409:27;;28446:71;28514:1;28503:9;28499:17;28490:6;28446:71;:::i;:::-;28527:80;28603:2;28592:9;28588:18;28579:6;28527:80;:::i;:::-;28654:9;28648:4;28644:20;28639:2;28628:9;28624:18;28617:48;28682:108;28785:4;28776:6;28682:108;:::i;:::-;28674:116;;28800:72;28868:2;28857:9;28853:18;28844:6;28800:72;:::i;:::-;28882:73;28950:3;28939:9;28935:19;28926:6;28882:73;:::i;:::-;28131:831;;;;;;;;:::o;28968:823::-;29225:4;29263:3;29252:9;29248:19;29240:27;;29277:71;29345:1;29334:9;29330:17;29321:6;29277:71;:::i;:::-;29358:72;29426:2;29415:9;29411:18;29402:6;29358:72;:::i;:::-;29440:80;29516:2;29505:9;29501:18;29492:6;29440:80;:::i;:::-;29530;29606:2;29595:9;29591:18;29582:6;29530:80;:::i;:::-;29620:81;29696:3;29685:9;29681:19;29672:6;29620:81;:::i;:::-;29711:73;29779:3;29768:9;29764:19;29755:6;29711:73;:::i;:::-;28968:823;;;;;;;;;:::o;29797:663::-;29885:6;29893;29901;29950:2;29938:9;29929:7;29925:23;29921:32;29918:119;;;29956:79;;:::i;:::-;29918:119;30076:1;30101:64;30157:7;30148:6;30137:9;30133:22;30101:64;:::i;:::-;30091:74;;30047:128;30214:2;30240:64;30296:7;30287:6;30276:9;30272:22;30240:64;:::i;:::-;30230:74;;30185:129;30353:2;30379:64;30435:7;30426:6;30415:9;30411:22;30379:64;:::i;:::-;30369:74;;30324:129;29797:663;;;;;:::o

Swarm Source

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