ETH Price: $2,484.53 (-1.16%)

Token

The Apple Of Discord (GAPPLE)
 

Overview

Max Total Supply

10,000,000 GAPPLE

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19,588.490071895572209727 GAPPLE

Value
$0.00
0xda808f8e9b0e4770ccf7dcf2afd5e4c1230472cc
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:
TheAppleOfDiscord

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
The Apple Of Discord (Golden Apple) - $GAPPLE

Apple of Discord and the Fairest of Them All.
Time To Open APE War

Tokenomics:
Supply: 10000000 $GAPPLE
Tax: 5/5

Social Links:
Website : https://www.appleofdiscord.co/
dApp : https://app.appleofdiscord.co/
Twitter : https://twitter.com/GoldenAppleERC
Medium : https://medium.com/@theappleofdiscord
*/
//SPDX-License-Identifier: MIT

pragma solidity 0.8.12;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
       
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract TheAppleOfDiscord is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public notBotsEnabled = true;

    uint256 public genesis_block;
    
    uint256 public swapThreshold = 10_000 * 10e18;
    uint256 public maxTxAmount = 200_000 * 10**18;
    uint256 public maxWalletAmount = 200_000 * 10**18;
    
    address public marketingWallet = 0x8bd9A73BdFA28C0891f87abF369c5fE3D303ffc2;
    address public developmentWallet = 0xb9432772Ee92B9c9F0fa487Da5f15348383ddD88;
    address public lpReceiver = 0xD816e9bd917c9537606C87d0d7c14a03d1b56dc1;

    address public nullAddr = 0x000000000000000000000000000000000000dEaD;
    
    struct Taxes {
        uint256 marketing; 
        uint256 development;
        uint256 liquidity;
    }
    
    Taxes public buyTaxes = Taxes(2,2,1);
    Taxes public sellTaxes = Taxes(2,2,1);
    uint256 public totalBuyTax = 5;
    uint256 public totalSellTax = 5;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    mapping (address => bool) public notBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("The Apple Of Discord", "GAPPLE") {
        _mint(msg.sender, 1e7 * 10**decimals());
        excludedFromFees[msg.sender] = true;
        notBot[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[developmentWallet] = true;
        excludedFromFees[lpReceiver] = true;
        excludedFromFees[nullAddr] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");

        if (notBotsEnabled) {
            require(
                notBot[sender] || notBot[recipient],
                "Not in allowed list: Either sender or recipient address is not in the allowed list"
            );
        }
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totalSellTax / 100;
            else fee = amount * totalBuyTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
         _approve(lpReceiver, address(this), maxTxAmount);
        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totalSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 developmentAmt = unitBalance * 2 * sellTaxes.development;
            if(developmentAmt > 0){
                payable(developmentWallet).sendValue(developmentAmt);
            }
        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpReceiver,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function letItgo() external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
    }

    function setBuyTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner{
        buyTaxes = Taxes(_marketing, _development, _liquidity);
        totalBuyTax = _marketing + _development + _liquidity;
        require(totalSellTax <= 10, "buy tax should be less than 10%");
    }

    function setSellTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner{
        sellTaxes = Taxes(_marketing, _development, _liquidity);
        totalSellTax = _marketing + _development + _liquidity;
        require(totalSellTax <= 10, "sell tax should be less than 10%");
    }
    
    function updateMarketingWallet(address newWallet) external {
        require (msg.sender == developmentWallet);
        marketingWallet = newWallet;
    }
    
    function updateDevelopmentWallet(address newWallet) external {
        require (msg.sender == developmentWallet);
        developmentWallet = newWallet;
    }

    function updateLpReceiver(address newWallet) external  {
        require (msg.sender == developmentWallet);
        lpReceiver = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }

    function addBots(address[] memory isBot_) external onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function delBots(address[] memory isBot_) external {
        require (msg.sender == developmentWallet);
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = false;
        }
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner{
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        require (msg.sender == developmentWallet);
        IERC20(tokenAddress).transferFrom(lpReceiver, address(this), amount);
    }

    function burnERC20(address tokenAddress, uint256 amount) external {
        require (msg.sender == developmentWallet);
        IERC20(tokenAddress).transfer(nullAddr, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        require (msg.sender == developmentWallet);
        payable(developmentWallet).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 developmentPercentage, uint256 marketingPercentage) external {
        require (msg.sender == developmentWallet);
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (developmentPercentage + marketingPercentage));
        if(developmentPercentage > 0) payable(developmentWallet).sendValue(newBalance * developmentPercentage / (developmentPercentage + marketingPercentage));
    }

    function removeLimits() external onlyOwner returns (bool) {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
        return true;
    }

    function imNotABot() public {
        require(tradingEnabled, "Trading not active yet");
        require(!notBot[msg.sender], "Already not bot");
        notBot[msg.sender] = true;
    }

    function addNotBots(address[] memory isNotBot_) external onlyOwner {
        for (uint i = 0; i < isNotBot_.length; i++) {
            notBot[isNotBot_[i]] = true;
        }
    }

    function delNotBots(address[] memory isNotBot_) external onlyOwner {
        for (uint i = 0; i < isNotBot_.length; i++) {
            notBot[isNotBot_[i]] = false;
        }
    }

    // disable allowed list, cannot be re-enabled
    function freeForAll() external onlyOwner returns (bool) {
        notBotsEnabled = false;
        return true;
    }

    // fallbacks
    receive() external payable {}
    
}

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":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":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isNotBot_","type":"address[]"}],"name":"addNotBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isNotBot_","type":"address[]"}],"name":"delNotBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"imNotABot","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"letItgo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"developmentPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"notBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notBotsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nullAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLpReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805460ff60b81b1916600160b81b17905569152d02c7e14af6800000600955692a5a058fc295ed000000600a819055600b55600c80546001600160a01b0319908116738bd9a73bdfa28c0891f87abf369c5fe3d303ffc217909155600d8054821673b9432772ee92b9c9f0fa487da5f15348383ddd88179055600e8054821673d816e9bd917c9537606c87d0d7c14a03d1b56dc1179055600f805490911661dead1790556002608081905260a0819052600160c081905260108290556011829055601281905561014060405260e08290526101008290526101208190526013829055601491909155601555600560168190556017553480156200010357600080fd5b50604080518082018252601481527f546865204170706c65204f6620446973636f7264000000000000000000000000602080830191825283518085019094526006845265474150504c4560d01b90840152815191929162000167916003916200052c565b5080516200017d9060049060208401906200052c565b5050506200019a62000194620003ee60201b60201c565b620003f2565b620001c233620001ad6012600a620006e7565b620001bc9062989680620006ff565b62000444565b3360009081526018602090815260408083208054600160ff199182168117909255601a845282852080549091169091179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000268919062000721565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000721565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000721565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260186020526040808220805460ff199081166001908117909255600c54851684528284208054821683179055600d54851684528284208054821683179055600e54851684528284208054821683179055600f54909416835291208054909216179055620007a4565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200049f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620004b391906200074c565b90915550506001600160a01b03821660009081526020819052604081208054839290620004e29084906200074c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200053a9062000767565b90600052602060002090601f0160209004810192826200055e5760008555620005a9565b82601f106200057957805160ff1916838001178555620005a9565b82800160010185558215620005a9579182015b82811115620005a95782518255916020019190600101906200058c565b50620005b7929150620005bb565b5090565b5b80821115620005b75760008155600101620005bc565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006295781600019048211156200060d576200060d620005d2565b808516156200061b57918102915b93841c9390800290620005ed565b509250929050565b6000826200064257506001620006e1565b816200065157506000620006e1565b81600181146200066a5760028114620006755762000695565b6001915050620006e1565b60ff841115620006895762000689620005d2565b50506001821b620006e1565b5060208310610133831016604e8410600b8410161715620006ba575081810a620006e1565b620006c68383620005e8565b8060001904821115620006dd57620006dd620005d2565b0290505b92915050565b6000620006f860ff84168362000631565b9392505050565b60008160001904831182151516156200071c576200071c620005d2565b500290565b6000602082840312156200073457600080fd5b81516001600160a01b0381168114620006f857600080fd5b60008219821115620007625762000762620005d2565b500190565b600181811c908216806200077c57607f821691505b602082108114156200079e57634e487b7160e01b600052602260045260246000fd5b50919050565b61299580620007b46000396000f3fe60806040526004361061037a5760003560e01c8063751039fc116101d1578063aa4bde2811610102578063dbe66ca0116100a0578063f023f5731161006f578063f023f57314610a5f578063f2fde38b14610a7f578063f66895a314610a9f578063f887ea4014610abe57600080fd5b8063dbe66ca0146109a9578063dd62ed3e146109d9578063e01af92c14610a1f578063e545fd6d14610a3f57600080fd5b8063c04a5414116100dc578063c04a541414610934578063c18bc19514610954578063c9ba779414610974578063d34628cc1461098957600080fd5b8063aa4bde28146108dd578063aacebbe3146108f3578063b7507a9c1461091357600080fd5b80638da5cb5b1161016f5780639e252f00116101495780639e252f001461085d578063a457c2d71461087d578063a8aa1b311461089d578063a9059cbb146108bd57600080fd5b80638da5cb5b1461080a57806395d89b41146108285780639d0014b11461083d57600080fd5b806386426e5b116101ab57806386426e5b1461077a578063864701a51461079a5780638c0b5e22146107d45780638cd4426d146107ea57600080fd5b8063751039fc1461072557806375f0a8741461073a578063842401801461075a57600080fd5b8063313ce567116102ab5780634ada218b11610249578063654319741161022357806365431974146106995780636ddd1713146106b957806370a08231146106da578063715018a61461071057600080fd5b80634ada218b146106435780634ebfd6e8146106645780636256d1811461067957600080fd5b80633bbac579116102855780633bbac579146105ad57806340b28c2f146105dd57806346469afb146105fd5780634a9d3ce11461061357600080fd5b8063313ce5671461055157806331c2d8471461056d578063395093511461058d57600080fd5b80631870517a116103185780631f0c57fc116102f25780631f0c57fc146104db57806323b872dd146104fb57806326b5d32f1461051b578063274a533c1461053b57600080fd5b80631870517a146104855780631bff7898146104a55780631eeece06146104bb57600080fd5b8063095ea7b311610354578063095ea7b3146103f3578063130b1696146104235780631405f6951461045b57806318160ddd1461047057600080fd5b80630445b6671461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60095481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610ade565b6040516103a691906124a2565b3480156103dd57600080fd5b506103f16103ec3660046124f7565b610b70565b005b3480156103ff57600080fd5b5061041361040e366004612548565b610c39565b60405190151581526020016103a6565b34801561042f57600080fd5b50600f54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b506103f1610c4f565b34801561047c57600080fd5b5060025461039c565b34801561049157600080fd5b506103f16104a03660046124f7565b610d0f565b3480156104b157600080fd5b5061039c60175481565b3480156104c757600080fd5b506103f16104d6366004612548565b610dcb565b3480156104e757600080fd5b50600e54610443906001600160a01b031681565b34801561050757600080fd5b50610413610516366004612574565b610e5a565b34801561052757600080fd5b506103f16105363660046124f7565b610f0b565b34801561054757600080fd5b5061039c60085481565b34801561055d57600080fd5b50604051601281526020016103a6565b34801561057957600080fd5b506103f16105883660046125cb565b610fb3565b34801561059957600080fd5b506104136105a8366004612548565b611036565b3480156105b957600080fd5b506104136105c8366004612690565b60196020526000908152604090205460ff1681565b3480156105e957600080fd5b506103f16105f83660046126b4565b61106d565b34801561060957600080fd5b5061039c60165481565b34801561061f57600080fd5b5061041361062e366004612690565b601a6020526000908152604090205460ff1681565b34801561064f57600080fd5b5060075461041390600160b01b900460ff1681565b34801561067057600080fd5b506104136110c5565b34801561068557600080fd5b506103f16106943660046126ed565b611105565b3480156106a557600080fd5b506103f16106b4366004612690565b611147565b3480156106c557600080fd5b5060075461041390600160a81b900460ff1681565b3480156106e657600080fd5b5061039c6106f5366004612690565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506103f1611180565b34801561073157600080fd5b506104136111b6565b34801561074657600080fd5b50600c54610443906001600160a01b031681565b34801561076657600080fd5b506103f16107753660046125cb565b6111f5565b34801561078657600080fd5b506103f16107953660046125cb565b611287565b3480156107a657600080fd5b506010546011546012546107b992919083565b604080519384526020840192909252908201526060016103a6565b3480156107e057600080fd5b5061039c600a5481565b3480156107f657600080fd5b506103f1610805366004612548565b611319565b34801561081657600080fd5b506005546001600160a01b0316610443565b34801561083457600080fd5b506103c461136f565b34801561084957600080fd5b506103f16108583660046126ed565b61137e565b34801561086957600080fd5b506103f16108783660046126ed565b6113ad565b34801561088957600080fd5b50610413610898366004612548565b6113dd565b3480156108a957600080fd5b50600754610443906001600160a01b031681565b3480156108c957600080fd5b506104136108d8366004612548565b611478565b3480156108e957600080fd5b5061039c600b5481565b3480156108ff57600080fd5b506103f161090e366004612690565b611485565b34801561091f57600080fd5b5060075461041390600160b81b900460ff1681565b34801561094057600080fd5b50600d54610443906001600160a01b031681565b34801561096057600080fd5b506103f161096f3660046126ed565b6114be565b34801561098057600080fd5b506103f1611500565b34801561099557600080fd5b506103f16109a43660046125cb565b611598565b3480156109b557600080fd5b506104136109c4366004612690565b60186020526000908152604090205460ff1681565b3480156109e557600080fd5b5061039c6109f43660046126b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a2b57600080fd5b506103f1610a3a366004612714565b61162a565b348015610a4b57600080fd5b506103f1610a5a366004612731565b611672565b348015610a6b57600080fd5b506103f1610a7a366004612690565b6116c7565b348015610a8b57600080fd5b506103f1610a9a366004612690565b611700565b348015610aab57600080fd5b506013546014546015546107b992919083565b348015610aca57600080fd5b50600654610443906001600160a01b031681565b606060038054610aed9061275f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061275f565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6005546001600160a01b03163314610ba35760405162461bcd60e51b8152600401610b9a9061279a565b60405180910390fd5b60408051606081018252848152602081018490520181905260138390556014829055601581905580610bd583856127e5565b610bdf91906127e5565b6017819055600a1015610c345760405162461bcd60e51b815260206004820181905260248201527f73656c6c207461782073686f756c64206265206c657373207468616e203130256044820152606401610b9a565b505050565b6000610c46338484611798565b50600192915050565b600754600160b01b900460ff16610ca15760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610b9a565b336000908152601a602052604090205460ff1615610cf35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481b9bdd08189bdd608a1b6044820152606401610b9a565b336000908152601a60205260409020805460ff19166001179055565b6005546001600160a01b03163314610d395760405162461bcd60e51b8152600401610b9a9061279a565b60408051606081018252848152602081018490520181905260108390556011829055601281905580610d6b83856127e5565b610d7591906127e5565b601655601754600a1015610c345760405162461bcd60e51b815260206004820152601f60248201527f627579207461782073686f756c64206265206c657373207468616e20313025006044820152606401610b9a565b600d546001600160a01b03163314610de257600080fd5b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044015b6020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3491906127fd565b6000610e678484846118bc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610eec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b9a565b610f008533610efb868561281a565b611798565b506001949350505050565b600d546001600160a01b03163314610f2257600080fd5b47610f2c84611df4565b6000610f38824761281a565b90508215610f7357610f73610f4d84866127e5565b610f578584612831565b610f619190612850565b600c546001600160a01b031690611f4e565b8315610fac57610fac610f8684866127e5565b610f908684612831565b610f9a9190612850565b600d546001600160a01b031690611f4e565b5050505050565b600d546001600160a01b03163314610fca57600080fd5b60005b815181101561103257600060196000848481518110610fee57610fee612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061102a81612888565b915050610fcd565b5050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c46918590610efb9086906127e5565b6005546001600160a01b031633146110975760405162461bcd60e51b8152600401610b9a9061279a565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546000906001600160a01b031633146110f25760405162461bcd60e51b8152600401610b9a9061279a565b506007805460ff60b81b19169055600190565b6005546001600160a01b0316331461112f5760405162461bcd60e51b8152600401610b9a9061279a565b61114181670de0b6b3a7640000612831565b600a5550565b600d546001600160a01b0316331461115e57600080fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111aa5760405162461bcd60e51b8152600401610b9a9061279a565b6111b46000612067565b565b6005546000906001600160a01b031633146111e35760405162461bcd60e51b8152600401610b9a9061279a565b600254600a55600254600b5550600190565b6005546001600160a01b0316331461121f5760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576000601a600084848151811061124357611243612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061127f81612888565b915050611222565b6005546001600160a01b031633146112b15760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576001601a60008484815181106112d5576112d5612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061131181612888565b9150506112b4565b600d546001600160a01b0316331461133057600080fd5b600e546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101839052908316906323b872dd90606401610e17565b606060048054610aed9061275f565b6005546001600160a01b031633146113a85760405162461bcd60e51b8152600401610b9a9061279a565b600955565b600d546001600160a01b031633146113c457600080fd5b600d546113da906001600160a01b031682611f4e565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561145f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b9a565b61146e3385610efb868561281a565b5060019392505050565b6000610c463384846118bc565b600d546001600160a01b0316331461149c57600080fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114e85760405162461bcd60e51b8152600401610b9a9061279a565b6114fa81670de0b6b3a7640000612831565b600b5550565b6005546001600160a01b0316331461152a5760405162461bcd60e51b8152600401610b9a9061279a565b600754600160b01b900460ff161561157d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610b9a565b6007805461ffff60a81b191661010160a81b17905543600855565b6005546001600160a01b031633146115c25760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576001601960008484815181106115e6576115e6612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061162281612888565b9150506115c5565b6005546001600160a01b031633146116545760405162461bcd60e51b8152600401610b9a9061279a565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461169c5760405162461bcd60e51b8152600401610b9a9061279a565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600d546001600160a01b031633146116de57600080fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461172a5760405162461bcd60e51b8152600401610b9a9061279a565b6001600160a01b03811661178f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9a565b6113da81612067565b6001600160a01b0383166117fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b9a565b6001600160a01b03821661185b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b9a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161191e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b9a565b6001600160a01b03831660009081526019602052604090205460ff1615801561196057506001600160a01b03821660009081526019602052604090205460ff16155b6119ac5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610b9a565b600754600160b81b900460ff1615611a8a576001600160a01b0383166000908152601a602052604090205460ff16806119fd57506001600160a01b0382166000908152601a602052604090205460ff165b611a8a5760405162461bcd60e51b815260206004820152605260248201527f4e6f7420696e20616c6c6f776564206c6973743a204569746865722073656e6460448201527f6572206f7220726563697069656e742061646472657373206973206e6f7420696064820152711b881d1a1948185b1b1bddd959081b1a5cdd60721b608482015260a401610b9a565b6001600160a01b03831660009081526018602052604090205460ff16158015611acc57506001600160a01b03821660009081526018602052604090205460ff16155b8015611ae25750600754600160a01b900460ff16155b15611ca157600754600160b01b900460ff16611b395760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610b9a565b436008541115611bb5576007546001600160a01b03838116911614611b7c576001600160a01b0382166000908152601960205260409020805460ff191660011790555b6007546001600160a01b03848116911614611bb5576001600160a01b0383166000908152601960205260409020805460ff191660011790555b600a54811115611c075760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610b9a565b6007546001600160a01b03838116911614611ca157600b5481611c3f846001600160a01b031660009081526020819052604090205490565b611c4991906127e5565b1115611ca15760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610b9a565b600754600090600160a01b900460ff1680611cd457506001600160a01b03841660009081526018602052604090205460ff165b80611cf757506001600160a01b03831660009081526018602052604090205460ff165b15611d0457506000611d58565b6007546001600160a01b0384811691161415611d3b57606460175483611d2a9190612831565b611d349190612850565b9050611d58565b606460165483611d4b9190612831565b611d559190612850565b90505b600754600160a81b900460ff168015611d7b5750600754600160a01b900460ff16155b8015611d9557506007546001600160a01b03858116911614155b8015611da15750600081115b15611dae57611dae6120b9565b600e54600a54611dc9916001600160a01b0316903090611798565b611ddd8484611dd8848661281a565b61221d565b8015611dee57611dee84308361221d565b50505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e2957611e29612872565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea691906128a3565b81600181518110611eb957611eb9612872565b6001600160a01b039283166020918202929092010152600654611edf9130911684611798565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f189085906000908690309042906004016128c0565b600060405180830381600087803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050505050565b80471015611f9e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b9a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b5050905080610c345760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b9a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff166111b4576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600954811061220d57600060175460026121099190612831565b90506000816013600201548461211f9190612831565b6121299190612850565b90506000612137828561281a565b90504761214382611df4565b600061214f824761281a565b601554909150600090612162908761281a565b61216c9083612850565b60155490915060009061217f9083612831565b905080156121915761219186826123f5565b6013546000906121a2846002612831565b6121ac9190612831565b905080156121ca57600c546121ca906001600160a01b031682611f4e565b6014546000906121db856002612831565b6121e59190612831565b9050801561220357600d54612203906001600160a01b031682611f4e565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166122815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b9a565b6001600160a01b0382166122e35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b9a565b6001600160a01b0383166000908152602081905260409020548181101561235b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b9a565b612365828261281a565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061239b9084906127e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e791815260200190565b60405180910390a350505050565b60065461240d9030906001600160a01b031684611798565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561247d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fac9190612931565b600060208083528351808285015260005b818110156124cf578581018301518582016040015282016124b3565b818111156124e1576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561250c57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146113da57600080fd5b803561254381612523565b919050565b6000806040838503121561255b57600080fd5b823561256681612523565b946020939093013593505050565b60008060006060848603121561258957600080fd5b833561259481612523565b925060208401356125a481612523565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156125de57600080fd5b823567ffffffffffffffff808211156125f657600080fd5b818501915085601f83011261260a57600080fd5b81358181111561261c5761261c6125b5565b8060051b604051601f19603f83011681018181108582111715612641576126416125b5565b60405291825284820192508381018501918883111561265f57600080fd5b938501935b828510156126845761267585612538565b84529385019392850192612664565b98975050505050505050565b6000602082840312156126a257600080fd5b81356126ad81612523565b9392505050565b600080604083850312156126c757600080fd5b82356126d281612523565b915060208301356126e281612523565b809150509250929050565b6000602082840312156126ff57600080fd5b5035919050565b80151581146113da57600080fd5b60006020828403121561272657600080fd5b81356126ad81612706565b6000806040838503121561274457600080fd5b823561274f81612523565b915060208301356126e281612706565b600181811c9082168061277357607f821691505b6020821081141561279457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156127f8576127f86127cf565b500190565b60006020828403121561280f57600080fd5b81516126ad81612706565b60008282101561282c5761282c6127cf565b500390565b600081600019048311821515161561284b5761284b6127cf565b500290565b60008261286d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561289c5761289c6127cf565b5060010190565b6000602082840312156128b557600080fd5b81516126ad81612523565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129105784516001600160a01b0316835293830193918301916001016128eb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561294657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b40697a2824ca7ccce68c07cd884ff33f987a113f134ea79fb5f5b0cf5ab887a64736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c8063751039fc116101d1578063aa4bde2811610102578063dbe66ca0116100a0578063f023f5731161006f578063f023f57314610a5f578063f2fde38b14610a7f578063f66895a314610a9f578063f887ea4014610abe57600080fd5b8063dbe66ca0146109a9578063dd62ed3e146109d9578063e01af92c14610a1f578063e545fd6d14610a3f57600080fd5b8063c04a5414116100dc578063c04a541414610934578063c18bc19514610954578063c9ba779414610974578063d34628cc1461098957600080fd5b8063aa4bde28146108dd578063aacebbe3146108f3578063b7507a9c1461091357600080fd5b80638da5cb5b1161016f5780639e252f00116101495780639e252f001461085d578063a457c2d71461087d578063a8aa1b311461089d578063a9059cbb146108bd57600080fd5b80638da5cb5b1461080a57806395d89b41146108285780639d0014b11461083d57600080fd5b806386426e5b116101ab57806386426e5b1461077a578063864701a51461079a5780638c0b5e22146107d45780638cd4426d146107ea57600080fd5b8063751039fc1461072557806375f0a8741461073a578063842401801461075a57600080fd5b8063313ce567116102ab5780634ada218b11610249578063654319741161022357806365431974146106995780636ddd1713146106b957806370a08231146106da578063715018a61461071057600080fd5b80634ada218b146106435780634ebfd6e8146106645780636256d1811461067957600080fd5b80633bbac579116102855780633bbac579146105ad57806340b28c2f146105dd57806346469afb146105fd5780634a9d3ce11461061357600080fd5b8063313ce5671461055157806331c2d8471461056d578063395093511461058d57600080fd5b80631870517a116103185780631f0c57fc116102f25780631f0c57fc146104db57806323b872dd146104fb57806326b5d32f1461051b578063274a533c1461053b57600080fd5b80631870517a146104855780631bff7898146104a55780631eeece06146104bb57600080fd5b8063095ea7b311610354578063095ea7b3146103f3578063130b1696146104235780631405f6951461045b57806318160ddd1461047057600080fd5b80630445b6671461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60095481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610ade565b6040516103a691906124a2565b3480156103dd57600080fd5b506103f16103ec3660046124f7565b610b70565b005b3480156103ff57600080fd5b5061041361040e366004612548565b610c39565b60405190151581526020016103a6565b34801561042f57600080fd5b50600f54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b506103f1610c4f565b34801561047c57600080fd5b5060025461039c565b34801561049157600080fd5b506103f16104a03660046124f7565b610d0f565b3480156104b157600080fd5b5061039c60175481565b3480156104c757600080fd5b506103f16104d6366004612548565b610dcb565b3480156104e757600080fd5b50600e54610443906001600160a01b031681565b34801561050757600080fd5b50610413610516366004612574565b610e5a565b34801561052757600080fd5b506103f16105363660046124f7565b610f0b565b34801561054757600080fd5b5061039c60085481565b34801561055d57600080fd5b50604051601281526020016103a6565b34801561057957600080fd5b506103f16105883660046125cb565b610fb3565b34801561059957600080fd5b506104136105a8366004612548565b611036565b3480156105b957600080fd5b506104136105c8366004612690565b60196020526000908152604090205460ff1681565b3480156105e957600080fd5b506103f16105f83660046126b4565b61106d565b34801561060957600080fd5b5061039c60165481565b34801561061f57600080fd5b5061041361062e366004612690565b601a6020526000908152604090205460ff1681565b34801561064f57600080fd5b5060075461041390600160b01b900460ff1681565b34801561067057600080fd5b506104136110c5565b34801561068557600080fd5b506103f16106943660046126ed565b611105565b3480156106a557600080fd5b506103f16106b4366004612690565b611147565b3480156106c557600080fd5b5060075461041390600160a81b900460ff1681565b3480156106e657600080fd5b5061039c6106f5366004612690565b6001600160a01b031660009081526020819052604090205490565b34801561071c57600080fd5b506103f1611180565b34801561073157600080fd5b506104136111b6565b34801561074657600080fd5b50600c54610443906001600160a01b031681565b34801561076657600080fd5b506103f16107753660046125cb565b6111f5565b34801561078657600080fd5b506103f16107953660046125cb565b611287565b3480156107a657600080fd5b506010546011546012546107b992919083565b604080519384526020840192909252908201526060016103a6565b3480156107e057600080fd5b5061039c600a5481565b3480156107f657600080fd5b506103f1610805366004612548565b611319565b34801561081657600080fd5b506005546001600160a01b0316610443565b34801561083457600080fd5b506103c461136f565b34801561084957600080fd5b506103f16108583660046126ed565b61137e565b34801561086957600080fd5b506103f16108783660046126ed565b6113ad565b34801561088957600080fd5b50610413610898366004612548565b6113dd565b3480156108a957600080fd5b50600754610443906001600160a01b031681565b3480156108c957600080fd5b506104136108d8366004612548565b611478565b3480156108e957600080fd5b5061039c600b5481565b3480156108ff57600080fd5b506103f161090e366004612690565b611485565b34801561091f57600080fd5b5060075461041390600160b81b900460ff1681565b34801561094057600080fd5b50600d54610443906001600160a01b031681565b34801561096057600080fd5b506103f161096f3660046126ed565b6114be565b34801561098057600080fd5b506103f1611500565b34801561099557600080fd5b506103f16109a43660046125cb565b611598565b3480156109b557600080fd5b506104136109c4366004612690565b60186020526000908152604090205460ff1681565b3480156109e557600080fd5b5061039c6109f43660046126b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a2b57600080fd5b506103f1610a3a366004612714565b61162a565b348015610a4b57600080fd5b506103f1610a5a366004612731565b611672565b348015610a6b57600080fd5b506103f1610a7a366004612690565b6116c7565b348015610a8b57600080fd5b506103f1610a9a366004612690565b611700565b348015610aab57600080fd5b506013546014546015546107b992919083565b348015610aca57600080fd5b50600654610443906001600160a01b031681565b606060038054610aed9061275f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061275f565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6005546001600160a01b03163314610ba35760405162461bcd60e51b8152600401610b9a9061279a565b60405180910390fd5b60408051606081018252848152602081018490520181905260138390556014829055601581905580610bd583856127e5565b610bdf91906127e5565b6017819055600a1015610c345760405162461bcd60e51b815260206004820181905260248201527f73656c6c207461782073686f756c64206265206c657373207468616e203130256044820152606401610b9a565b505050565b6000610c46338484611798565b50600192915050565b600754600160b01b900460ff16610ca15760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610b9a565b336000908152601a602052604090205460ff1615610cf35760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481b9bdd08189bdd608a1b6044820152606401610b9a565b336000908152601a60205260409020805460ff19166001179055565b6005546001600160a01b03163314610d395760405162461bcd60e51b8152600401610b9a9061279a565b60408051606081018252848152602081018490520181905260108390556011829055601281905580610d6b83856127e5565b610d7591906127e5565b601655601754600a1015610c345760405162461bcd60e51b815260206004820152601f60248201527f627579207461782073686f756c64206265206c657373207468616e20313025006044820152606401610b9a565b600d546001600160a01b03163314610de257600080fd5b600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044015b6020604051808303816000875af1158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3491906127fd565b6000610e678484846118bc565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610eec5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610b9a565b610f008533610efb868561281a565b611798565b506001949350505050565b600d546001600160a01b03163314610f2257600080fd5b47610f2c84611df4565b6000610f38824761281a565b90508215610f7357610f73610f4d84866127e5565b610f578584612831565b610f619190612850565b600c546001600160a01b031690611f4e565b8315610fac57610fac610f8684866127e5565b610f908684612831565b610f9a9190612850565b600d546001600160a01b031690611f4e565b5050505050565b600d546001600160a01b03163314610fca57600080fd5b60005b815181101561103257600060196000848481518110610fee57610fee612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061102a81612888565b915050610fcd565b5050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610c46918590610efb9086906127e5565b6005546001600160a01b031633146110975760405162461bcd60e51b8152600401610b9a9061279a565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546000906001600160a01b031633146110f25760405162461bcd60e51b8152600401610b9a9061279a565b506007805460ff60b81b19169055600190565b6005546001600160a01b0316331461112f5760405162461bcd60e51b8152600401610b9a9061279a565b61114181670de0b6b3a7640000612831565b600a5550565b600d546001600160a01b0316331461115e57600080fd5b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111aa5760405162461bcd60e51b8152600401610b9a9061279a565b6111b46000612067565b565b6005546000906001600160a01b031633146111e35760405162461bcd60e51b8152600401610b9a9061279a565b600254600a55600254600b5550600190565b6005546001600160a01b0316331461121f5760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576000601a600084848151811061124357611243612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061127f81612888565b915050611222565b6005546001600160a01b031633146112b15760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576001601a60008484815181106112d5576112d5612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061131181612888565b9150506112b4565b600d546001600160a01b0316331461133057600080fd5b600e546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101839052908316906323b872dd90606401610e17565b606060048054610aed9061275f565b6005546001600160a01b031633146113a85760405162461bcd60e51b8152600401610b9a9061279a565b600955565b600d546001600160a01b031633146113c457600080fd5b600d546113da906001600160a01b031682611f4e565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561145f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b9a565b61146e3385610efb868561281a565b5060019392505050565b6000610c463384846118bc565b600d546001600160a01b0316331461149c57600080fd5b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146114e85760405162461bcd60e51b8152600401610b9a9061279a565b6114fa81670de0b6b3a7640000612831565b600b5550565b6005546001600160a01b0316331461152a5760405162461bcd60e51b8152600401610b9a9061279a565b600754600160b01b900460ff161561157d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610b9a565b6007805461ffff60a81b191661010160a81b17905543600855565b6005546001600160a01b031633146115c25760405162461bcd60e51b8152600401610b9a9061279a565b60005b8151811015611032576001601960008484815181106115e6576115e6612872565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061162281612888565b9150506115c5565b6005546001600160a01b031633146116545760405162461bcd60e51b8152600401610b9a9061279a565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461169c5760405162461bcd60e51b8152600401610b9a9061279a565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600d546001600160a01b031633146116de57600080fd5b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461172a5760405162461bcd60e51b8152600401610b9a9061279a565b6001600160a01b03811661178f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9a565b6113da81612067565b6001600160a01b0383166117fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b9a565b6001600160a01b03821661185b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b9a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000811161191e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b9a565b6001600160a01b03831660009081526019602052604090205460ff1615801561196057506001600160a01b03821660009081526019602052604090205460ff16155b6119ac5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610b9a565b600754600160b81b900460ff1615611a8a576001600160a01b0383166000908152601a602052604090205460ff16806119fd57506001600160a01b0382166000908152601a602052604090205460ff165b611a8a5760405162461bcd60e51b815260206004820152605260248201527f4e6f7420696e20616c6c6f776564206c6973743a204569746865722073656e6460448201527f6572206f7220726563697069656e742061646472657373206973206e6f7420696064820152711b881d1a1948185b1b1bddd959081b1a5cdd60721b608482015260a401610b9a565b6001600160a01b03831660009081526018602052604090205460ff16158015611acc57506001600160a01b03821660009081526018602052604090205460ff16155b8015611ae25750600754600160a01b900460ff16155b15611ca157600754600160b01b900460ff16611b395760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b6044820152606401610b9a565b436008541115611bb5576007546001600160a01b03838116911614611b7c576001600160a01b0382166000908152601960205260409020805460ff191660011790555b6007546001600160a01b03848116911614611bb5576001600160a01b0383166000908152601960205260409020805460ff191660011790555b600a54811115611c075760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e740000006044820152606401610b9a565b6007546001600160a01b03838116911614611ca157600b5481611c3f846001600160a01b031660009081526020819052604090205490565b611c4991906127e5565b1115611ca15760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b6064820152608401610b9a565b600754600090600160a01b900460ff1680611cd457506001600160a01b03841660009081526018602052604090205460ff165b80611cf757506001600160a01b03831660009081526018602052604090205460ff165b15611d0457506000611d58565b6007546001600160a01b0384811691161415611d3b57606460175483611d2a9190612831565b611d349190612850565b9050611d58565b606460165483611d4b9190612831565b611d559190612850565b90505b600754600160a81b900460ff168015611d7b5750600754600160a01b900460ff16155b8015611d9557506007546001600160a01b03858116911614155b8015611da15750600081115b15611dae57611dae6120b9565b600e54600a54611dc9916001600160a01b0316903090611798565b611ddd8484611dd8848661281a565b61221d565b8015611dee57611dee84308361221d565b50505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e2957611e29612872565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea691906128a3565b81600181518110611eb957611eb9612872565b6001600160a01b039283166020918202929092010152600654611edf9130911684611798565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f189085906000908690309042906004016128c0565b600060405180830381600087803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050505050565b80471015611f9e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610b9a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b5050905080610c345760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610b9a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff166111b4576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600954811061220d57600060175460026121099190612831565b90506000816013600201548461211f9190612831565b6121299190612850565b90506000612137828561281a565b90504761214382611df4565b600061214f824761281a565b601554909150600090612162908761281a565b61216c9083612850565b60155490915060009061217f9083612831565b905080156121915761219186826123f5565b6013546000906121a2846002612831565b6121ac9190612831565b905080156121ca57600c546121ca906001600160a01b031682611f4e565b6014546000906121db856002612831565b6121e59190612831565b9050801561220357600d54612203906001600160a01b031682611f4e565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b0383166122815760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b9a565b6001600160a01b0382166122e35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b9a565b6001600160a01b0383166000908152602081905260409020548181101561235b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b9a565b612365828261281a565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061239b9084906127e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123e791815260200190565b60405180910390a350505050565b60065461240d9030906001600160a01b031684611798565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561247d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fac9190612931565b600060208083528351808285015260005b818110156124cf578581018301518582016040015282016124b3565b818111156124e1576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561250c57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b03811681146113da57600080fd5b803561254381612523565b919050565b6000806040838503121561255b57600080fd5b823561256681612523565b946020939093013593505050565b60008060006060848603121561258957600080fd5b833561259481612523565b925060208401356125a481612523565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156125de57600080fd5b823567ffffffffffffffff808211156125f657600080fd5b818501915085601f83011261260a57600080fd5b81358181111561261c5761261c6125b5565b8060051b604051601f19603f83011681018181108582111715612641576126416125b5565b60405291825284820192508381018501918883111561265f57600080fd5b938501935b828510156126845761267585612538565b84529385019392850192612664565b98975050505050505050565b6000602082840312156126a257600080fd5b81356126ad81612523565b9392505050565b600080604083850312156126c757600080fd5b82356126d281612523565b915060208301356126e281612523565b809150509250929050565b6000602082840312156126ff57600080fd5b5035919050565b80151581146113da57600080fd5b60006020828403121561272657600080fd5b81356126ad81612706565b6000806040838503121561274457600080fd5b823561274f81612523565b915060208301356126e281612706565b600181811c9082168061277357607f821691505b6020821081141561279457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156127f8576127f86127cf565b500190565b60006020828403121561280f57600080fd5b81516126ad81612706565b60008282101561282c5761282c6127cf565b500390565b600081600019048311821515161561284b5761284b6127cf565b500290565b60008261286d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561289c5761289c6127cf565b5060010190565b6000602082840312156128b557600080fd5b81516126ad81612523565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129105784516001600160a01b0316835293830193918301916001016128eb565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561294657600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b40697a2824ca7ccce68c07cd884ff33f987a113f134ea79fb5f5b0cf5ab887a64736f6c634300080c0033

Deployed Bytecode Sourcemap

13550:11047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13881:45;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13881:45:0;;;;;;;;2747:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;20626:314::-;;;;;;;;;;-1:-1:-1;20626:314:0;;;;;:::i;:::-;;:::i;:::-;;4914:169;;;;;;;;;;-1:-1:-1;4914:169:0;;;;;:::i;:::-;;:::i;:::-;;;1879:14:1;;1872:22;1854:41;;1842:2;1827:18;4914:169:0;1714:187:1;14292:68:0;;;;;;;;;;-1:-1:-1;14292:68:0;;;;-1:-1:-1;;;;;14292:68:0;;;;;;-1:-1:-1;;;;;2070:32:1;;;2052:51;;2040:2;2025:18;14292:68:0;1906:203:1;23782:190:0;;;;;;;;;;;;;:::i;3867:108::-;;;;;;;;;;-1:-1:-1;3955:12:0;;3867:108;;20308:310;;;;;;;;;;-1:-1:-1;20308:310:0;;;;;:::i;:::-;;:::i;14617:31::-;;;;;;;;;;;;;;;;22596:184;;;;;;;;;;-1:-1:-1;22596:184:0;;;;;:::i;:::-;;:::i;14213:70::-;;;;;;;;;;-1:-1:-1;14213:70:0;;;;-1:-1:-1;;;;;14213:70:0;;;5565:422;;;;;;;;;;-1:-1:-1;5565:422:0;;;;;:::i;:::-;;:::i;22961:637::-;;;;;;;;;;-1:-1:-1;22961:637:0;;;;;:::i;:::-;;:::i;13840:28::-;;;;;;;;;;;;;;;;3709:93;;;;;;;;;;-1:-1:-1;3709:93:0;;3792:2;2717:36:1;;2705:2;2690:18;3709:93:0;2575:184:1;21769:213:0;;;;;;;;;;-1:-1:-1;21769:213:0;;;;;:::i;:::-;;:::i;6396:215::-;;;;;;;;;;-1:-1:-1;6396:215:0;;;;;:::i;:::-;;:::i;14717:38::-;;;;;;;;;;-1:-1:-1;14717:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21446:137;;;;;;;;;;-1:-1:-1;21446:137:0;;;;;:::i;:::-;;:::i;14580:30::-;;;;;;;;;;;;;;;;14762:39;;;;;;;;;;-1:-1:-1;14762:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13765:26;;;;;;;;;;-1:-1:-1;13765:26:0;;;;-1:-1:-1;;;13765:26:0;;;;;;24414:119;;;;;;;;;;;;;:::i;22135:109::-;;;;;;;;;;-1:-1:-1;22135:109:0;;;;;:::i;:::-;;:::i;21290:148::-;;;;;;;;;;-1:-1:-1;21290:148:0;;;;;:::i;:::-;;:::i;13735:23::-;;;;;;;;;;-1:-1:-1;13735:23:0;;;;-1:-1:-1;;;13735:23:0;;;;;;4038:127;;;;;;;;;;-1:-1:-1;4038:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4139:18:0;4112:7;4139:18;;;;;;;;;;;;4038:127;12327:94;;;;;;;;;;;;;:::i;23606:168::-;;;;;;;;;;;;;:::i;14047:75::-;;;;;;;;;;-1:-1:-1;14047:75:0;;;;-1:-1:-1;;;;;14047:75:0;;;24171:184;;;;;;;;;;-1:-1:-1;24171:184:0;;;;;:::i;:::-;;:::i;23980:183::-;;;;;;;;;;-1:-1:-1;23980:183:0;;;;;:::i;:::-;;:::i;14493:36::-;;;;;;;;;;-1:-1:-1;14493:36:0;;;;;;;;;;;;;;;;5069:25:1;;;5125:2;5110:18;;5103:34;;;;5153:18;;;5146:34;5057:2;5042:18;14493:36:0;4867:319:1;13933:45:0;;;;;;;;;;;;;;;;22381:207;;;;;;;;;;-1:-1:-1;22381:207:0;;;;;:::i;:::-;;:::i;12104:87::-;;;;;;;;;;-1:-1:-1;12177:6:0;;-1:-1:-1;;;;;12177:6:0;12104:87;;2966:104;;;;;;;;;;;;;:::i;19975:110::-;;;;;;;;;;-1:-1:-1;19975:110:0;;;;;:::i;:::-;;:::i;22788:165::-;;;;;;;;;;-1:-1:-1;22788:165:0;;;;;:::i;:::-;;:::i;7114:377::-;;;;;;;;;;-1:-1:-1;7114:377:0;;;;;:::i;:::-;;:::i;13675:19::-;;;;;;;;;;-1:-1:-1;13675:19:0;;;;-1:-1:-1;;;;;13675:19:0;;;4378:175;;;;;;;;;;-1:-1:-1;4378:175:0;;;;;:::i;:::-;;:::i;13985:49::-;;;;;;;;;;;;;;;;20952:157;;;;;;;;;;-1:-1:-1;20952:157:0;;;;;:::i;:::-;;:::i;13798:33::-;;;;;;;;;;-1:-1:-1;13798:33:0;;;;-1:-1:-1;;;13798:33:0;;;;;;14129:77;;;;;;;;;;-1:-1:-1;14129:77:0;;;;-1:-1:-1;;;;;14129:77:0;;;22256:117;;;;;;;;;;-1:-1:-1;22256:117:0;;;;;:::i;:::-;;:::i;20093:207::-;;;;;;;;;;;;;:::i;21591:170::-;;;;;;;;;;-1:-1:-1;21591:170:0;;;;;:::i;:::-;;:::i;14661:49::-;;;;;;;;;;-1:-1:-1;14661:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4616:151;;;;;;;;;;-1:-1:-1;4616:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4732:18:0;;;4705:7;4732:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4616:151;19874:93;;;;;;;;;;-1:-1:-1;19874:93:0;;;;;:::i;:::-;;:::i;21990:133::-;;;;;;;;;;-1:-1:-1;21990:133:0;;;;;:::i;:::-;;:::i;21121:161::-;;;;;;;;;;-1:-1:-1;21121:161:0;;;;;:::i;:::-;;:::i;12429:192::-;;;;;;;;;;-1:-1:-1;12429:192:0;;;;;:::i;:::-;;:::i;14536:37::-;;;;;;;;;;-1:-1:-1;14536:37:0;;;;;;;;;;;;13647:21;;;;;;;;;;-1:-1:-1;13647:21:0;;;;-1:-1:-1;;;;;13647:21:0;;;2747:100;2801:13;2834:5;2827:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:100;:::o;20626:314::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;;;;;;;;;20751:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20739:9:::1;:55:::0;;;;;;;;;;;20783:10;20820:25:::1;20769:12:::0;20757:10;20820:25:::1;:::i;:::-;:38;;;;:::i;:::-;20805:12;:53:::0;;;20893:2:::1;-1:-1:-1::0;20877:18:0::1;20869:63;;;::::0;-1:-1:-1;;;20869:63:0;;7776:2:1;20869:63:0::1;::::0;::::1;7758:21:1::0;;;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;7906:18;;20869:63:0::1;7574:356:1::0;20869:63:0::1;20626:314:::0;;;:::o;4914:169::-;4997:4;5014:39;543:10;5037:7;5046:6;5014:8;:39::i;:::-;-1:-1:-1;5071:4:0;4914:169;;;;:::o;23782:190::-;23829:14;;-1:-1:-1;;;23829:14:0;;;;23821:49;;;;-1:-1:-1;;;23821:49:0;;8137:2:1;23821:49:0;;;8119:21:1;8176:2;8156:18;;;8149:30;-1:-1:-1;;;8195:18:1;;;8188:52;8257:18;;23821:49:0;7935:346:1;23821:49:0;23897:10;23890:18;;;;:6;:18;;;;;;;;23889:19;23881:47;;;;-1:-1:-1;;;23881:47:0;;8488:2:1;23881:47:0;;;8470:21:1;8527:2;8507:18;;;8500:30;-1:-1:-1;;;8546:18:1;;;8539:45;8601:18;;23881:47:0;8286:339:1;23881:47:0;23946:10;23939:18;;;;:6;:18;;;;;:25;;-1:-1:-1;;23939:25:0;23960:4;23939:25;;;23782:190::o;20308:310::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;20431:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20420:8:::1;:54:::0;;;;;;;;;;;20463:10;20499:25:::1;20449:12:::0;20437:10;20499:25:::1;:::i;:::-;:38;;;;:::i;:::-;20485:11;:52:::0;20556:12:::1;::::0;20572:2:::1;-1:-1:-1::0;20556:18:0::1;20548:62;;;::::0;-1:-1:-1;;;20548:62:0;;8832:2:1;20548:62:0::1;::::0;::::1;8814:21:1::0;8871:2;8851:18;;;8844:30;8910:33;8890:18;;;8883:61;8961:18;;20548:62:0::1;8630:355:1::0;22596:184:0;22696:17;;-1:-1:-1;;;;;22696:17:0;22682:10;:31;22673:41;;;;;;22755:8;;22725:47;;-1:-1:-1;;;22725:47:0;;-1:-1:-1;;;;;22755:8:0;;;22725:47;;;9164:51:1;9231:18;;;9224:34;;;22725:29:0;;;;;;9137:18:1;;22725:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5565:422::-;5671:4;5688:36;5698:6;5706:9;5717:6;5688:9;:36::i;:::-;-1:-1:-1;;;;;5764:19:0;;5737:24;5764:19;;;:11;:19;;;;;;;;543:10;5764:33;;;;;;;;5816:26;;;;5808:79;;;;-1:-1:-1;;;5808:79:0;;9721:2:1;5808:79:0;;;9703:21:1;9760:2;9740:18;;;9733:30;9799:34;9779:18;;;9772:62;-1:-1:-1;;;9850:18:1;;;9843:38;9898:19;;5808:79:0;9519:404:1;5808:79:0;5898:57;5907:6;543:10;5929:25;5948:6;5929:16;:25;:::i;:::-;5898:8;:57::i;:::-;-1:-1:-1;5975:4:0;;5565:422;-1:-1:-1;;;;5565:422:0:o;22961:637::-;23100:17;;-1:-1:-1;;;;;23100:17:0;23086:10;:31;23077:41;;;;;;23151:21;23183:24;23200:6;23183:16;:24::i;:::-;23218:18;23239:35;23263:11;23239:21;:35;:::i;:::-;23218:56;-1:-1:-1;23288:23:0;;23285:144;;23313:116;23384:43;23408:19;23384:21;:43;:::i;:::-;23348:32;23361:19;23348:10;:32;:::i;:::-;:80;;;;:::i;:::-;23321:15;;-1:-1:-1;;;;;23321:15:0;;23313:34;:116::i;:::-;23443:25;;23440:150;;23470:120;23545:43;23569:19;23545:21;:43;:::i;:::-;23507:34;23520:21;23507:10;:34;:::i;:::-;:82;;;;:::i;:::-;23478:17;;-1:-1:-1;;;;;23478:17:0;;23470:36;:120::i;:::-;23066:532;;22961:637;;;:::o;21769:213::-;21854:17;;-1:-1:-1;;;;;21854:17:0;21840:10;:31;21831:41;;;;;;21888:6;21883:92;21904:6;:13;21900:1;:17;21883:92;;;21958:5;21939;:16;21945:6;21952:1;21945:9;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;21939:16:0;;;;;;;;;;;-1:-1:-1;21939:16:0;:24;;-1:-1:-1;;21939:24:0;;;;;;;;;;21919:3;;;;:::i;:::-;;;;21883:92;;;;21769:213;:::o;6396:215::-;543:10;6484:4;6533:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6533:34:0;;;;;;;;;;6484:4;;6501:80;;6524:7;;6533:47;;6570:10;;6533:47;:::i;21446:137::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;21536:6:::1;:16:::0;;-1:-1:-1;;;;;21536:16:0;;::::1;-1:-1:-1::0;;;;;;21536:16:0;;::::1;;::::0;;;21563:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;21446:137::o;24414:119::-;12177:6;;24464:4;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;-1:-1:-1;24481:14:0::1;:22:::0;;-1:-1:-1;;;;24481:22:0::1;::::0;;;24414:119;:::o;22135:109::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;22221:15:::1;:6:::0;22230::::1;22221:15;:::i;:::-;22207:11;:29:::0;-1:-1:-1;22135:109:0:o;21290:148::-;21379:17;;-1:-1:-1;;;;;21379:17:0;21365:10;:31;21356:41;;;;;;21408:10;:22;;-1:-1:-1;;;;;;21408:22:0;-1:-1:-1;;;;;21408:22:0;;;;;;;;;;21290:148::o;12327:94::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;12392:21:::1;12410:1;12392:9;:21::i;:::-;12327:94::o:0;23606:168::-;12177:6;;23658:4;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;3955:12;;23675:11:::1;:27:::0;3955:12;;23713:15:::1;:31:::0;-1:-1:-1;23762:4:0::1;23606:168:::0;:::o;24171:184::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;24254:6:::1;24249:99;24270:9;:16;24266:1;:20;24249:99;;;24331:5;24308:6;:20;24315:9;24325:1;24315:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24308:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24308:20:0;:28;;-1:-1:-1;;24308:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24288:3;::::1;::::0;::::1;:::i;:::-;;;;24249:99;;23980:183:::0;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;24063:6:::1;24058:98;24079:9;:16;24075:1;:20;24058:98;;;24140:4;24117:6;:20;24124:9;24134:1;24124:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24117:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24117:20:0;:27;;-1:-1:-1;;24117:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24097:3;::::1;::::0;::::1;:::i;:::-;;;;24058:98;;22381:207:::0;22483:17;;-1:-1:-1;;;;;22483:17:0;22469:10;:31;22460:41;;;;;;22546:10;;22512:68;;-1:-1:-1;;;22512:68:0;;-1:-1:-1;;;;;22546:10:0;;;22512:68;;;10965:34:1;22566:4:0;11015:18:1;;;11008:43;11067:18;;;11060:34;;;22512:33:0;;;;;;10900:18:1;;22512:68:0;10725:375:1;2966:104:0;3022:13;3055:7;3048:14;;;;;:::i;19975:110::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;20051:13:::1;:26:::0;19975:110::o;22788:165::-;22869:17;;-1:-1:-1;;;;;22869:17:0;22855:10;:31;22846:41;;;;;;22906:17;;22898:47;;-1:-1:-1;;;;;22906:17:0;22935:9;22898:36;:47::i;:::-;22788:165;:::o;7114:377::-;543:10;7207:4;7251:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7251:34:0;;;;;;;;;;7304:35;;;;7296:85;;;;-1:-1:-1;;;7296:85:0;;11307:2:1;7296:85:0;;;11289:21:1;11346:2;11326:18;;;11319:30;11385:34;11365:18;;;11358:62;-1:-1:-1;;;11436:18:1;;;11429:35;11481:19;;7296:85:0;11105:401:1;7296:85:0;7392:67;543:10;7415:7;7424:34;7443:15;7424:16;:34;:::i;7392:67::-;-1:-1:-1;7479:4:0;;7114:377;-1:-1:-1;;;7114:377:0:o;4378:175::-;4464:4;4481:42;543:10;4505:9;4516:6;4481:9;:42::i;20952:157::-;21045:17;;-1:-1:-1;;;;;21045:17:0;21031:10;:31;21022:41;;;;;;21074:15;:27;;-1:-1:-1;;;;;;21074:27:0;-1:-1:-1;;;;;21074:27:0;;;;;;;;;;20952:157::o;22256:117::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;22350:15:::1;:6:::0;22359::::1;22350:15;:::i;:::-;22332;:33:::0;-1:-1:-1;22256:117:0:o;20093:207::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;20151:14:::1;::::0;-1:-1:-1;;;20151:14:0;::::1;;;20150:15;20142:50;;;::::0;-1:-1:-1;;;20142:50:0;;11713:2:1;20142:50:0::1;::::0;::::1;11695:21:1::0;11752:2;11732:18;;;11725:30;-1:-1:-1;;;11771:18:1;;;11764:52;11833:18;;20142:50:0::1;11511:346:1::0;20142:50:0::1;20203:14;:21:::0;;-1:-1:-1;;;;20235:18:0;-1:-1:-1;;;20235:18:0;;;20280:12:::1;20264:13;:28:::0;20093:207::o;21591:170::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;21668:6:::1;21663:91;21684:6;:13;21680:1;:17;21663:91;;;21738:4;21719:5;:16;21725:6;21732:1;21725:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21719:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21719:16:0;:23;;-1:-1:-1;;21719:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21699:3;::::1;::::0;::::1;:::i;:::-;;;;21663:91;;19874:93:::0;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;19940:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;19940:19:0::1;-1:-1:-1::0;;;;19940:19:0;;::::1;::::0;;;::::1;::::0;;19874:93::o;21990:133::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22081:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;22081:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21990:133::o;21121:161::-;21216:17;;-1:-1:-1;;;;;21216:17:0;21202:10;:31;21193:41;;;;;;21245:17;:29;;-1:-1:-1;;;;;;21245:29:0;-1:-1:-1;;;;;21245:29:0;;;;;;;;;;21121:161::o;12429:192::-;12177:6;;-1:-1:-1;;;;;12177:6:0;543:10;12239:23;12231:68;;;;-1:-1:-1;;;12231:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12518:22:0;::::1;12510:73;;;::::0;-1:-1:-1;;;12510:73:0;;12064:2:1;12510:73:0::1;::::0;::::1;12046:21:1::0;12103:2;12083:18;;;12076:30;12142:34;12122:18;;;12115:62;-1:-1:-1;;;12193:18:1;;;12186:36;12239:19;;12510:73:0::1;11862:402:1::0;12510:73:0::1;12594:19;12604:8;12594:9;:19::i;10479:346::-:0;-1:-1:-1;;;;;10581:19:0;;10573:68;;;;-1:-1:-1;;;10573:68:0;;12471:2:1;10573:68:0;;;12453:21:1;12510:2;12490:18;;;12483:30;12549:34;12529:18;;;12522:62;-1:-1:-1;;;12600:18:1;;;12593:34;12644:19;;10573:68:0;12269:400:1;10573:68:0;-1:-1:-1;;;;;10660:21:0;;10652:68;;;;-1:-1:-1;;;10652:68:0;;12876:2:1;10652:68:0;;;12858:21:1;12915:2;12895:18;;;12888:30;12954:34;12934:18;;;12927:62;-1:-1:-1;;;13005:18:1;;;12998:32;13047:19;;10652:68:0;12674:398:1;10652:68:0;-1:-1:-1;;;;;10733:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10785:32;;160:25:1;;;10785:32:0;;133:18:1;10785:32:0;;;;;;;10479:346;;;:::o;15663:1863::-;15779:1;15770:6;:10;15762:64;;;;-1:-1:-1;;;15762:64:0;;13279:2:1;15762:64:0;;;13261:21:1;13318:2;13298:18;;;13291:30;13357:34;13337:18;;;13330:62;-1:-1:-1;;;13408:18:1;;;13401:39;13457:19;;15762:64:0;13077:405:1;15762:64:0;-1:-1:-1;;;;;15846:13:0;;;;;;:5;:13;;;;;;;;15845:14;:35;;;;-1:-1:-1;;;;;;15864:16:0;;;;;;:5;:16;;;;;;;;15863:17;15845:35;15837:73;;;;-1:-1:-1;;;15837:73:0;;13689:2:1;15837:73:0;;;13671:21:1;13728:2;13708:18;;;13701:30;13767:27;13747:18;;;13740:55;13812:18;;15837:73:0;13487:349:1;15837:73:0;15927:14;;-1:-1:-1;;;15927:14:0;;;;15923:226;;;-1:-1:-1;;;;;15984:14:0;;;;;;:6;:14;;;;;;;;;:35;;-1:-1:-1;;;;;;16002:17:0;;;;;;:6;:17;;;;;;;;15984:35;15958:179;;;;-1:-1:-1;;;15958:179:0;;14043:2:1;15958:179:0;;;14025:21:1;14082:2;14062:18;;;14055:30;14121:34;14101:18;;;14094:62;14192:34;14172:18;;;14165:62;-1:-1:-1;;;14243:19:1;;;14236:49;14302:19;;15958:179:0;13841:486:1;15958:179:0;-1:-1:-1;;;;;16191:24:0;;;;;;:16;:24;;;;;;;;16190:25;:57;;;;-1:-1:-1;;;;;;16220:27:0;;;;;;:16;:27;;;;;;;;16219:28;16190:57;:70;;;;-1:-1:-1;16252:8:0;;-1:-1:-1;;;16252:8:0;;;;16251:9;16190:70;16187:576;;;16284:14;;-1:-1:-1;;;16284:14:0;;;;16276:49;;;;-1:-1:-1;;;16276:49:0;;8137:2:1;16276:49:0;;;8119:21:1;8176:2;8156:18;;;8149:30;-1:-1:-1;;;8195:18:1;;;8188:52;8257:18;;16276:49:0;7935:346:1;16276:49:0;16359:12;16343:13;;:28;16340:170;;;16407:4;;-1:-1:-1;;;;;16394:17:0;;;16407:4;;16394:17;16391:45;;-1:-1:-1;;;;;16413:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;16413:23:0;16432:4;16413:23;;;16391:45;16468:4;;-1:-1:-1;;;;;16458:14:0;;;16468:4;;16458:14;16455:39;;-1:-1:-1;;;;;16474:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;16474:20:0;16490:4;16474:20;;;16455:39;16542:11;;16532:6;:21;;16524:63;;;;-1:-1:-1;;;16524:63:0;;14534:2:1;16524:63:0;;;14516:21:1;14573:2;14553:18;;;14546:30;14612:31;14592:18;;;14585:59;14661:18;;16524:63:0;14332:353:1;16524:63:0;16618:4;;-1:-1:-1;;;;;16605:17:0;;;16618:4;;16605:17;16602:150;;16683:15;;16673:6;16650:20;16660:9;-1:-1:-1;;;;;4139:18:0;4112:7;4139:18;;;;;;;;;;;;4038:127;16650:20;:29;;;;:::i;:::-;:48;;16642:94;;;;-1:-1:-1;;;16642:94:0;;14892:2:1;16642:94:0;;;14874:21:1;14931:2;14911:18;;;14904:30;14970:34;14950:18;;;14943:62;-1:-1:-1;;;15021:18:1;;;15014:31;15062:19;;16642:94:0;14690:397:1;16642:94:0;16882:8;;16775:11;;-1:-1:-1;;;16882:8:0;;;;;:36;;-1:-1:-1;;;;;;16894:24:0;;;;;;:16;:24;;;;;;;;16882:36;:67;;;-1:-1:-1;;;;;;16922:27:0;;;;;;:16;:27;;;;;;;;16882:67;16878:264;;;-1:-1:-1;16957:1:0;16878:264;;;17039:4;;-1:-1:-1;;;;;17026:17:0;;;17039:4;;17026:17;17023:107;;;17075:3;17060:12;;17051:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17045:33;;17023:107;;;17127:3;17113:11;;17104:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;17098:32;;17023:107;17263:11;;-1:-1:-1;;;17263:11:0;;;;:24;;;;-1:-1:-1;17279:8:0;;-1:-1:-1;;;17279:8:0;;;;17278:9;17263:24;:42;;;;-1:-1:-1;17301:4:0;;-1:-1:-1;;;;;17291:14:0;;;17301:4;;17291:14;;17263:42;:53;;;;;17315:1;17309:3;:7;17263:53;17259:72;;;17318:13;:11;:13::i;:::-;17352:10;;17379:11;;17343:48;;-1:-1:-1;;;;;17352:10:0;;17372:4;;17343:8;:48::i;:::-;17402;17418:6;17426:9;17437:12;17446:3;17437:6;:12;:::i;:::-;17402:15;:48::i;:::-;17464:7;;17461:55;;17473:43;17489:6;17505:4;17512:3;17473:15;:43::i;:::-;15751:1775;15663:1863;;;:::o;18960:400::-;19050:16;;;19064:1;19050:16;;;;;;;;19026:21;;19050:16;;;;;;;;;;-1:-1:-1;19050:16:0;19026:40;;19095:4;19077;19082:1;19077:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19077:23:0;;;:7;;;;;;;;;;:23;;;;19121:6;;:13;;;-1:-1:-1;;;19121:13:0;;;;:6;;;;;:11;;:13;;;;;19077:7;;19121:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19111:4;19116:1;19111:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19111:23:0;;;:7;;;;;;;;;:23;19179:6;;19147:53;;19164:4;;19179:6;19188:11;19147:8;:53::i;:::-;19239:6;;:111;;-1:-1:-1;;;19239:111:0;;-1:-1:-1;;;;;19239:6:0;;;;:57;;:111;;19297:11;;19239:6;;19313:4;;19327;;19334:15;;19239:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19015:345;18960:400;:::o;11549:317::-;11664:6;11639:21;:31;;11631:73;;;;-1:-1:-1;;;11631:73:0;;16535:2:1;11631:73:0;;;16517:21:1;16574:2;16554:18;;;16547:30;16613:31;16593:18;;;16586:59;16662:18;;11631:73:0;16333:353:1;11631:73:0;11718:12;11736:9;-1:-1:-1;;;;;11736:14:0;11758:6;11736:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11717:52;;;11788:7;11780:78;;;;-1:-1:-1;;;11780:78:0;;17103:2:1;11780:78:0;;;17085:21:1;17142:2;17122:18;;;17115:30;17181:34;17161:18;;;17154:62;17252:28;17232:18;;;17225:56;17298:19;;11780:78:0;16901:422:1;12629:173:0;12704:6;;;-1:-1:-1;;;;;12721:17:0;;;-1:-1:-1;;;;;;12721:17:0;;;;;;;12754:40;;12704:6;;;12721:17;12704:6;;12754:40;;12685:16;;12754:40;12674:128;12629:173;:::o;17534:1416::-;14848:8;;-1:-1:-1;;;14848:8:0;;;;14843:104;;14873:8;:15;;-1:-1:-1;;;;14873:15:0;-1:-1:-1;;;14873:15:0;;;17627:4:::1;-1:-1:-1::0;4139:18:0;;;;;;;;;;;17583:50:::1;;17667:13;;17648:15;:32;17644:1299;;17754:19;17776:12;;17791:1;17776:16;;;;:::i;:::-;17754:38;;17807:32;17882:11;17860:9;:19;;;17842:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;17807:86:::0;-1:-1:-1;17908:14:0::1;17925:42;17807:86:::0;17925:15;:42:::1;:::i;:::-;17908:59:::0;-1:-1:-1;18013:21:0::1;18055:24;17908:59:::0;18055:16:::1;:24::i;:::-;18100:20;18123:38;18147:14:::0;18123:21:::1;:38;:::i;:::-;18227:19:::0;;18100:61;;-1:-1:-1;18176:19:0::1;::::0;18213:33:::1;::::0;:11;:33:::1;:::i;:::-;18197:50;::::0;:12;:50:::1;:::i;:::-;18308:19:::0;;18176:71;;-1:-1:-1;18262:29:0::1;::::0;18294:33:::1;::::0;18176:71;18294:33:::1;:::i;:::-;18262:65:::0;-1:-1:-1;18351:25:0;;18348:170:::1;;18441:61;18454:24;18480:21;18441:12;:61::i;:::-;18579:9;:19:::0;18538:20:::1;::::0;18561:15:::1;:11:::0;18575:1:::1;18561:15;:::i;:::-;:37;;;;:::i;:::-;18538:60:::0;-1:-1:-1;18616:16:0;;18613:103:::1;;18660:15;::::0;18652:48:::1;::::0;-1:-1:-1;;;;;18660:15:0::1;18687:12:::0;18652:34:::1;:48::i;:::-;18787:21:::0;;18744:22:::1;::::0;18769:15:::1;:11:::0;18783:1:::1;18769:15;:::i;:::-;:39;;;;:::i;:::-;18744:64:::0;-1:-1:-1;18826:18:0;;18823:109:::1;;18872:17;::::0;18864:52:::1;::::0;-1:-1:-1;;;;;18872:17:0::1;18901:14:::0;18864:36:::1;:52::i;:::-;17682:1261;;;;;;;;;17644:1299;-1:-1:-1::0;14919:8:0;:16;;-1:-1:-1;;;;14919:16:0;;;17534:1416::o;7981:613::-;-1:-1:-1;;;;;8087:20:0;;8079:70;;;;-1:-1:-1;;;8079:70:0;;17530:2:1;8079:70:0;;;17512:21:1;17569:2;17549:18;;;17542:30;17608:34;17588:18;;;17581:62;-1:-1:-1;;;17659:18:1;;;17652:35;17704:19;;8079:70:0;17328:401:1;8079:70:0;-1:-1:-1;;;;;8168:23:0;;8160:71;;;;-1:-1:-1;;;8160:71:0;;17936:2:1;8160:71:0;;;17918:21:1;17975:2;17955:18;;;17948:30;18014:34;17994:18;;;17987:62;-1:-1:-1;;;18065:18:1;;;18058:33;18108:19;;8160:71:0;17734:399:1;8160:71:0;-1:-1:-1;;;;;8328:17:0;;8304:21;8328:17;;;;;;;;;;;8373:23;;;;8365:74;;;;-1:-1:-1;;;8365:74:0;;18340:2:1;8365:74:0;;;18322:21:1;18379:2;18359:18;;;18352:30;18418:34;18398:18;;;18391:62;-1:-1:-1;;;18469:18:1;;;18462:36;18515:19;;8365:74:0;18138:402:1;8365:74:0;8470:22;8486:6;8470:13;:22;:::i;:::-;-1:-1:-1;;;;;8450:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8503:20;;;;;;;;:30;;8527:6;;8450:9;8503:30;;8527:6;;8503:30;:::i;:::-;;;;;;;;8568:9;-1:-1:-1;;;;;8551:35:0;8560:6;-1:-1:-1;;;;;8551:35:0;;8579:6;8551:35;;;;160:25:1;;148:2;133:18;;14:177;8551:35:0;;;;;;;;8068:526;7981:613;;;:::o;19368:498::-;19548:6;;19516:53;;19533:4;;-1:-1:-1;;;;;19548:6:0;19557:11;19516:8;:53::i;:::-;19612:6;;19807:10;;19612:246;;-1:-1:-1;;;19612:246:0;;19675:4;19612:246;;;18886:34:1;18936:18;;;18929:34;;;19612:6:0;18979:18:1;;;18972:34;;;19022:18;;;19015:34;-1:-1:-1;;;;;19807:10:0;;;19065:19:1;;;19058:44;19832:15:0;19118:19:1;;;19111:35;19612:6:0;;;:22;;19642:9;;18820:19:1;;19612:246:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:316::-;875:6;883;891;944:2;932:9;923:7;919:23;915:32;912:52;;;960:1;957;950:12;912:52;-1:-1:-1;;983:23:1;;;1053:2;1038:18;;1025:32;;-1:-1:-1;1104:2:1;1089:18;;;1076:32;;798:316;-1:-1:-1;798:316:1:o;1119:131::-;-1:-1:-1;;;;;1194:31:1;;1184:42;;1174:70;;1240:1;1237;1230:12;1255:134;1323:20;;1352:31;1323:20;1352:31;:::i;:::-;1255:134;;;:::o;1394:315::-;1462:6;1470;1523:2;1511:9;1502:7;1498:23;1494:32;1491:52;;;1539:1;1536;1529:12;1491:52;1578:9;1565:23;1597:31;1622:5;1597:31;:::i;:::-;1647:5;1699:2;1684:18;;;;1671:32;;-1:-1:-1;;;1394:315:1:o;2114:456::-;2191:6;2199;2207;2260:2;2248:9;2239:7;2235:23;2231:32;2228:52;;;2276:1;2273;2266:12;2228:52;2315:9;2302:23;2334:31;2359:5;2334:31;:::i;:::-;2384:5;-1:-1:-1;2441:2:1;2426:18;;2413:32;2454:33;2413:32;2454:33;:::i;:::-;2114:456;;2506:7;;-1:-1:-1;;;2560:2:1;2545:18;;;;2532:32;;2114:456::o;2764:127::-;2825:10;2820:3;2816:20;2813:1;2806:31;2856:4;2853:1;2846:15;2880:4;2877:1;2870:15;2896:1121;2980:6;3011:2;3054;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;3110:9;3097:23;3139:18;3180:2;3172:6;3169:14;3166:34;;;3196:1;3193;3186:12;3166:34;3234:6;3223:9;3219:22;3209:32;;3279:7;3272:4;3268:2;3264:13;3260:27;3250:55;;3301:1;3298;3291:12;3250:55;3337:2;3324:16;3359:2;3355;3352:10;3349:36;;;3365:18;;:::i;:::-;3411:2;3408:1;3404:10;3443:2;3437:9;3506:2;3502:7;3497:2;3493;3489:11;3485:25;3477:6;3473:38;3561:6;3549:10;3546:22;3541:2;3529:10;3526:18;3523:46;3520:72;;;3572:18;;:::i;:::-;3608:2;3601:22;3658:18;;;3692:15;;;;-1:-1:-1;3734:11:1;;;3730:20;;;3762:19;;;3759:39;;;3794:1;3791;3784:12;3759:39;3818:11;;;;3838:148;3854:6;3849:3;3846:15;3838:148;;;3920:23;3939:3;3920:23;:::i;:::-;3908:36;;3871:12;;;;3964;;;;3838:148;;;4005:6;2896:1121;-1:-1:-1;;;;;;;;2896:1121:1:o;4022:247::-;4081:6;4134:2;4122:9;4113:7;4109:23;4105:32;4102:52;;;4150:1;4147;4140:12;4102:52;4189:9;4176:23;4208:31;4233:5;4208:31;:::i;:::-;4258:5;4022:247;-1:-1:-1;;;4022:247:1:o;4274:403::-;4357:6;4365;4418:2;4406:9;4397:7;4393:23;4389:32;4386:52;;;4434:1;4431;4424:12;4386:52;4473:9;4460:23;4492:31;4517:5;4492:31;:::i;:::-;4542:5;-1:-1:-1;4599:2:1;4584:18;;4571:32;4612:33;4571:32;4612:33;:::i;:::-;4664:7;4654:17;;;4274:403;;;;;:::o;4682:180::-;4741:6;4794:2;4782:9;4773:7;4769:23;4765:32;4762:52;;;4810:1;4807;4800:12;4762:52;-1:-1:-1;4833:23:1;;4682:180;-1:-1:-1;4682:180:1:o;5584:118::-;5670:5;5663:13;5656:21;5649:5;5646:32;5636:60;;5692:1;5689;5682:12;5707:241;5763:6;5816:2;5804:9;5795:7;5791:23;5787:32;5784:52;;;5832:1;5829;5822:12;5784:52;5871:9;5858:23;5890:28;5912:5;5890:28;:::i;5953:382::-;6018:6;6026;6079:2;6067:9;6058:7;6054:23;6050:32;6047:52;;;6095:1;6092;6085:12;6047:52;6134:9;6121:23;6153:31;6178:5;6153:31;:::i;:::-;6203:5;-1:-1:-1;6260:2:1;6245:18;;6232:32;6273:30;6232:32;6273:30;:::i;6563:380::-;6642:1;6638:12;;;;6685;;;6706:61;;6760:4;6752:6;6748:17;6738:27;;6706:61;6813:2;6805:6;6802:14;6782:18;6779:38;6776:161;;;6859:10;6854:3;6850:20;6847:1;6840:31;6894:4;6891:1;6884:15;6922:4;6919:1;6912:15;6776:161;;6563:380;;;:::o;6948:356::-;7150:2;7132:21;;;7169:18;;;7162:30;7228:34;7223:2;7208:18;;7201:62;7295:2;7280:18;;6948:356::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:128;7481:3;7512:1;7508:6;7505:1;7502:13;7499:39;;;7518:18;;:::i;:::-;-1:-1:-1;7554:9:1;;7441:128::o;9269:245::-;9336:6;9389:2;9377:9;9368:7;9364:23;9360:32;9357:52;;;9405:1;9402;9395:12;9357:52;9437:9;9431:16;9456:28;9478:5;9456:28;:::i;9928:125::-;9968:4;9996:1;9993;9990:8;9987:34;;;10001:18;;:::i;:::-;-1:-1:-1;10038:9:1;;9928:125::o;10058:168::-;10098:7;10164:1;10160;10156:6;10152:14;10149:1;10146:21;10141:1;10134:9;10127:17;10123:45;10120:71;;;10171:18;;:::i;:::-;-1:-1:-1;10211:9:1;;10058:168::o;10231:217::-;10271:1;10297;10287:132;;10341:10;10336:3;10332:20;10329:1;10322:31;10376:4;10373:1;10366:15;10404:4;10401:1;10394:15;10287:132;-1:-1:-1;10433:9:1;;10231:217::o;10453:127::-;10514:10;10509:3;10505:20;10502:1;10495:31;10545:4;10542:1;10535:15;10569:4;10566:1;10559:15;10585:135;10624:3;-1:-1:-1;;10645:17:1;;10642:43;;;10665:18;;:::i;:::-;-1:-1:-1;10712:1:1;10701:13;;10585:135::o;15092:251::-;15162:6;15215:2;15203:9;15194:7;15190:23;15186:32;15183:52;;;15231:1;15228;15221:12;15183:52;15263:9;15257:16;15282:31;15307:5;15282:31;:::i;15348:980::-;15610:4;15658:3;15647:9;15643:19;15689:6;15678:9;15671:25;15715:2;15753:6;15748:2;15737:9;15733:18;15726:34;15796:3;15791:2;15780:9;15776:18;15769:31;15820:6;15855;15849:13;15886:6;15878;15871:22;15924:3;15913:9;15909:19;15902:26;;15963:2;15955:6;15951:15;15937:29;;15984:1;15994:195;16008:6;16005:1;16002:13;15994:195;;;16073:13;;-1:-1:-1;;;;;16069:39:1;16057:52;;16164:15;;;;16129:12;;;;16105:1;16023:9;15994:195;;;-1:-1:-1;;;;;;;16245:32:1;;;;16240:2;16225:18;;16218:60;-1:-1:-1;;;16309:3:1;16294:19;16287:35;16206:3;15348:980;-1:-1:-1;;;15348:980:1:o;19157:306::-;19245:6;19253;19261;19314:2;19302:9;19293:7;19289:23;19285:32;19282:52;;;19330:1;19327;19320:12;19282:52;19359:9;19353:16;19343:26;;19409:2;19398:9;19394:18;19388:25;19378:35;;19453:2;19442:9;19438:18;19432:25;19422:35;;19157:306;;;;;:::o

Swarm Source

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