ETH Price: $2,515.57 (+0.33%)

Token

Banshee (banSHē)
 

Overview

Max Total Supply

21,000,000 banSHē

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.243903392721959781 banSHē

Value
$0.00
0x06f65cf6543728b111f2a8541f51aa99a60181bd
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:
Banshee

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 2022-08-25
*/

//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 Banshee is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 21_000 * 10e18;
    uint256 public maxTxAmount = 210_000 * 10**18;
    uint256 public maxWalletAmount = 420_000 * 10**18;
    
    address public bansheeWallet = 0x4DbC7DaD1aEE9864f3564bd2e4960b163d04Ba72;
    address public buybackWallet = 0x4DbC7DaD1aEE9864f3564bd2e4960b163d04Ba72;
    
    struct Taxes {
        uint256 banshee;
        uint256 liquidity; 
        uint256 buyback;
    }
    
    Taxes public taxes = Taxes(0,0,0);
    Taxes public sellTaxes = Taxes(0,0,0);
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Banshee", "banSH\xC4\x93") {
        _mint(msg.sender, 21e6 * 10**decimals());
        excludedFromFees[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[bansheeWallet] = true;
        excludedFromFees[buybackWallet] = 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(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > 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 * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        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 = totSellTax * 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 bansheeAmt = unitBalance * 2 * sellTaxes.banshee;
            if(bansheeAmt > 0){
                payable(bansheeWallet).sendValue(bansheeAmt);
            }
            
            uint256 buybackAmt = unitBalance * 2 * sellTaxes.buyback;
            if(buybackAmt > 0){
                payable(buybackWallet).sendValue(buybackAmt);
            }
        }
    }


    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 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

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

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

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

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

    function setTaxes(uint256 _banshee, uint256 _liquidity, uint256 _buyback) external onlyOwner{
        taxes = Taxes(_banshee, _liquidity, _buyback);
        totTax = _banshee + _liquidity + _buyback;
    }

    function setSellTaxes(uint256 _banshee, uint256 _liquidity, uint256 _buyback) external onlyOwner{
        sellTaxes = Taxes(_banshee, _liquidity, _buyback);
        totSellTax = _banshee + _liquidity + _buyback;
    }
    
    function updateBansheeWallet(address newWallet) external onlyOwner{
        bansheeWallet = newWallet;
    }
    
    function updateBuybackWallet(address newWallet) external onlyOwner{
        buybackWallet = newWallet;
    }

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

    function setIsBot(address account, bool state) external onlyOwner{
        isBot[account] = state;
    }
    
    function setIsNotBot(address account) external {
        require (msg.sender == bansheeWallet);
        isBot[account] = 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 onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 buybackPercentage, uint256 bansheePercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(bansheePercentage > 0) payable(bansheeWallet).sendValue(newBalance * bansheePercentage / (buybackPercentage + bansheePercentage));
        if(buybackPercentage > 0) payable(buybackWallet).sendValue(newBalance * buybackPercentage / (buybackPercentage + bansheePercentage));
    }

    function removeLimits() external onlyOwner returns (bool) {
        maxTxAmount = 21e6 * 10**18;
        maxWalletAmount = 21e6 * 10**18;
        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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bansheeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","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":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"buybackPercentage","type":"uint256"},{"internalType":"uint256","name":"bansheePercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[],"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":"banshee","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setIsNotBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_banshee","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_buyback","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":[{"internalType":"uint256","name":"_banshee","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_buyback","type":"uint256"}],"name":"setTaxes","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":"taxes","outputs":[{"internalType":"uint256","name":"banshee","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"buyback","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","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":"updateBansheeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateBuybackWallet","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":"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"}]

60006009819055692c781f708c509f400000600a819055600b556958f03ee118a13e800000600c55600d8054734dbc7dad1aee9864f3564bd2e4960b163d04ba726001600160a01b03199182168117909255600e80549091169091179055608081905260a081905260c0819052600f8190556010819055601181905561014060405260e08190526101008190526101208190526012819055601381905560148190556015819055601655348015620000b657600080fd5b506040518060400160405280600781526020016642616e7368656560c81b8152506040518060400160405280600781526020016662616e5348c49360c81b81525081600390805190602001906200010f9291906200049c565b508051620001259060049060208401906200049c565b505050620001426200013c6200035e60201b60201c565b62000362565b6200016b33620001556012600a62000657565b62000165906301406f406200066f565b620003b4565b336000908152601760209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062000691565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000270919062000691565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e4919062000691565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260176020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e5490941683529120805490921617905562000714565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200040f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620004239190620006bc565b90915550506001600160a01b0382166000908152602081905260408120805483929062000452908490620006bc565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620004aa90620006d7565b90600052602060002090601f016020900481019282620004ce576000855562000519565b82601f10620004e957805160ff191683800117855562000519565b8280016001018555821562000519579182015b8281111562000519578251825591602001919060010190620004fc565b50620005279291506200052b565b5090565b5b808211156200052757600081556001016200052c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005995781600019048211156200057d576200057d62000542565b808516156200058b57918102915b93841c93908002906200055d565b509250929050565b600082620005b25750600162000651565b81620005c15750600062000651565b8160018114620005da5760028114620005e55762000605565b600191505062000651565b60ff841115620005f957620005f962000542565b50506001821b62000651565b5060208310610133831016604e8410600b84101617156200062a575081810a62000651565b62000636838362000558565b80600019048211156200064d576200064d62000542565b0290505b92915050565b60006200066860ff841683620005a1565b9392505050565b60008160001904831182151516156200068c576200068c62000542565b500290565b600060208284031215620006a457600080fd5b81516001600160a01b03811681146200066857600080fd5b60008219821115620006d257620006d262000542565b500190565b600181811c90821680620006ec57607f821691505b602082108114156200070e57634e487b7160e01b600052602260045260246000fd5b50919050565b61226380620007246000396000f3fe6080604052600436106102975760003560e01c8063728f8eea1161015a578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c14610822578063e545fd6d14610842578063e9dae5ed14610862578063f2fde38b14610882578063f66895a3146108a2578063f887ea40146108c157600080fd5b8063a9059cbb14610736578063aa4bde2814610756578063c18bc1951461076c578063dbe66ca01461078c578063dd62ed3e146107bc578063deab8aea1461080257600080fd5b806391fa01821161011357806391fa01821461068157806395d89b41146106a15780639d0014b1146106b65780639e252f00146106d6578063a457c2d7146106f6578063a8aa1b311461071657600080fd5b8063728f8eea146105be578063751039fc146105f857806382aa7c681461060d5780638c0b5e221461062d5780638cd4426d146106435780638da5cb5b1461066357600080fd5b8063274a533c116101fe5780634ada218b116101b75780634ada218b146104fb57806350c9a88f1461051c5780636256d181146105325780636ddd17131461055257806370a0823114610573578063715018a6146105a957600080fd5b8063274a533c14610443578063293b7ef414610459578063313ce5671461046f578063395093511461048b5780633bbac579146104ab57806340b28c2f146104db57600080fd5b8063152cc89411610250578063152cc894146103805780631771813f146103b857806318160ddd146103d85780632253163d146103ed57806323b872dd1461040357806326b5d32f1461042357600080fd5b806303c0f5d4146102a35780630445b667146102c557806304dacd50146102ee57806306fdde031461030e5780630873321414610330578063095ea7b31461035057600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be366004611e99565b6108e1565b005b3480156102d157600080fd5b506102db600a5481565b6040519081526020015b60405180910390f35b3480156102fa57600080fd5b506102c3610309366004611ed2565b61093f565b34801561031a57600080fd5b5061032361098b565b6040516102e59190611ef6565b34801561033c57600080fd5b506102c361034b366004611f4b565b610a1d565b34801561035c57600080fd5b5061037061036b366004611f77565b610a8b565b60405190151581526020016102e5565b34801561038c57600080fd5b50600d546103a0906001600160a01b031681565b6040516001600160a01b0390911681526020016102e5565b3480156103c457600080fd5b506102c36103d3366004611ed2565b610aa1565b3480156103e457600080fd5b506002546102db565b3480156103f957600080fd5b506102db60165481565b34801561040f57600080fd5b5061037061041e366004611fa3565b610aed565b34801561042f57600080fd5b506102c361043e366004611f4b565b610b9e565b34801561044f57600080fd5b506102db60085481565b34801561046557600080fd5b506102db60155481565b34801561047b57600080fd5b50604051601281526020016102e5565b34801561049757600080fd5b506103706104a6366004611f77565b610c59565b3480156104b757600080fd5b506103706104c6366004611ed2565b60186020526000908152604090205460ff1681565b3480156104e757600080fd5b506102c36104f6366004611fe4565b610c90565b34801561050757600080fd5b5060075461037090600160b01b900460ff1681565b34801561052857600080fd5b506102db60095481565b34801561053e57600080fd5b506102c361054d366004612012565b610ce8565b34801561055e57600080fd5b5060075461037090600160a81b900460ff1681565b34801561057f57600080fd5b506102db61058e366004611ed2565b6001600160a01b031660009081526020819052604090205490565b3480156105b557600080fd5b506102c3610d2a565b3480156105ca57600080fd5b50600f546010546011546105dd92919083565b604080519384526020840192909252908201526060016102e5565b34801561060457600080fd5b50610370610d60565b34801561061957600080fd5b506102c3610628366004612012565b610da7565b34801561063957600080fd5b506102db600b5481565b34801561064f57600080fd5b506102c361065e366004611f77565b610e42565b34801561066f57600080fd5b506005546001600160a01b03166103a0565b34801561068d57600080fd5b506102c361069c366004611ed2565b610f03565b3480156106ad57600080fd5b50610323610f3b565b3480156106c257600080fd5b506102c36106d1366004612012565b610f4a565b3480156106e257600080fd5b506102c36106f1366004612012565b610f79565b34801561070257600080fd5b50610370610711366004611f77565b610fcb565b34801561072257600080fd5b506007546103a0906001600160a01b031681565b34801561074257600080fd5b50610370610751366004611f77565b611066565b34801561076257600080fd5b506102db600c5481565b34801561077857600080fd5b506102c3610787366004612012565b611073565b34801561079857600080fd5b506103706107a7366004611ed2565b60176020526000908152604090205460ff1681565b3480156107c857600080fd5b506102db6107d7366004611fe4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080e57600080fd5b50600e546103a0906001600160a01b031681565b34801561082e57600080fd5b506102c361083d36600461202b565b6110b5565b34801561084e57600080fd5b506102c361085d366004611e99565b6110fd565b34801561086e57600080fd5b506102c361087d366004611f4b565b611152565b34801561088e57600080fd5b506102c361089d366004611ed2565b6111c0565b3480156108ae57600080fd5b506012546013546014546105dd92919083565b3480156108cd57600080fd5b506006546103a0906001600160a01b031681565b6005546001600160a01b031633146109145760405162461bcd60e51b815260040161090b90612048565b60405180910390fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b815260040161090b90612048565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60606003805461099a9061207d565b80601f01602080910402602001604051908101604052809291908181526020018280546109c69061207d565b8015610a135780601f106109e857610100808354040283529160200191610a13565b820191906000526020600020905b8154815290600101906020018083116109f657829003601f168201915b5050505050905090565b6005546001600160a01b03163314610a475760405162461bcd60e51b815260040161090b90612048565b60408051606081018252848152602081018490520181905260128390556013829055601481905580610a7983856120ce565b610a8391906120ce565b601655505050565b6000610a98338484611258565b50600192915050565b6005546001600160a01b03163314610acb5760405162461bcd60e51b815260040161090b90612048565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610afa84848461137c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b7f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161090b565b610b938533610b8e86856120e6565b611258565b506001949350505050565b6005546001600160a01b03163314610bc85760405162461bcd60e51b815260040161090b90612048565b47610bd2846117c8565b6000610bde82476120e6565b90508215610c1957610c19610bf384866120ce565b610bfd85846120fd565b610c07919061211c565b600d546001600160a01b031690611922565b8315610c5257610c52610c2c84866120ce565b610c3686846120fd565b610c40919061211c565b600e546001600160a01b031690611922565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a98918590610b8e9086906120ce565b6005546001600160a01b03163314610cba5760405162461bcd60e51b815260040161090b90612048565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610d125760405162461bcd60e51b815260040161090b90612048565b610d2481670de0b6b3a76400006120fd565b600b5550565b6005546001600160a01b03163314610d545760405162461bcd60e51b815260040161090b90612048565b610d5e6000611a3b565b565b6005546000906001600160a01b03163314610d8d5760405162461bcd60e51b815260040161090b90612048565b506a115eec47f6cf7e35000000600b819055600c55600190565b6005546001600160a01b03163314610dd15760405162461bcd60e51b815260040161090b90612048565b600754600160b01b900460ff1615610e245760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015260640161090b565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610e6c5760405162461bcd60e51b815260040161090b90612048565b816001600160a01b031663a9059cbb610e8d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe919061213e565b505050565b600d546001600160a01b03163314610f1a57600080fd5b6001600160a01b03166000908152601860205260409020805460ff19169055565b60606004805461099a9061207d565b6005546001600160a01b03163314610f745760405162461bcd60e51b815260040161090b90612048565b600a55565b6005546001600160a01b03163314610fa35760405162461bcd60e51b815260040161090b90612048565b610fc881610fb96005546001600160a01b031690565b6001600160a01b031690611922565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561104d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161090b565b61105c3385610b8e86856120e6565b5060019392505050565b6000610a9833848461137c565b6005546001600160a01b0316331461109d5760405162461bcd60e51b815260040161090b90612048565b6110af81670de0b6b3a76400006120fd565b600c5550565b6005546001600160a01b031633146110df5760405162461bcd60e51b815260040161090b90612048565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146111275760405162461bcd60e51b815260040161090b90612048565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461117c5760405162461bcd60e51b815260040161090b90612048565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806111ae83856120ce565b6111b891906120ce565b601555505050565b6005546001600160a01b031633146111ea5760405162461bcd60e51b815260040161090b90612048565b6001600160a01b03811661124f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090b565b610fc881611a3b565b6001600160a01b0383166112ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161090b565b6001600160a01b03821661131b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161090b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161090b565b6001600160a01b03831660009081526018602052604090205460ff1615801561142057506001600160a01b03821660009081526018602052604090205460ff16155b61146c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161090b565b6001600160a01b03831660009081526017602052604090205460ff161580156114ae57506001600160a01b03821660009081526017602052604090205460ff16155b80156114c45750600754600160a01b900460ff16155b1561169057600754600160b01b900460ff1661151b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015260640161090b565b4360095460085461152c91906120ce565b11156115a4576007546001600160a01b0383811691161461156b576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146115a4576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b548111156115f65760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161090b565b6007546001600160a01b0383811691161461169057600c548161162e846001600160a01b031660009081526020819052604090205490565b61163891906120ce565b11156116905760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b606482015260840161090b565b600754600090600160a01b900460ff16806116c357506001600160a01b03841660009081526017602052604090205460ff165b806116e657506001600160a01b03831660009081526017602052604090205460ff165b156116f357506000611747565b6007546001600160a01b038481169116141561172a5760646016548361171991906120fd565b611723919061211c565b9050611747565b60646015548361173a91906120fd565b611744919061211c565b90505b600754600160a81b900460ff16801561176a5750600754600160a01b900460ff16155b801561178457506007546001600160a01b03858116911614155b80156117905750600081115b1561179d5761179d611a8d565b6117b184846117ac84866120e6565b611bf1565b80156117c2576117c2843083611bf1565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fd576117fd61215b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a9190612171565b8160018151811061188d5761188d61215b565b6001600160a01b0392831660209182029290920101526006546118b39130911684611258565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118ec90859060009086903090429060040161218e565b600060405180830381600087803b15801561190657600080fd5b505af115801561191a573d6000803e3d6000fd5b505050505050565b804710156119725760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161090b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146119bf576040519150601f19603f3d011682016040523d82523d6000602084013e6119c4565b606091505b5050905080610efe5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161090b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d5e576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611be15760006016546002611add91906120fd565b905060008160126001015484611af391906120fd565b611afd919061211c565b90506000611b0b82856120e6565b905047611b17826117c8565b6000611b2382476120e6565b601354909150600090611b3690876120e6565b611b40908361211c565b601354909150600090611b5390836120fd565b90508015611b6557611b658682611dc9565b601254600090611b768460026120fd565b611b8091906120fd565b90508015611b9e57600d54611b9e906001600160a01b031682611922565b601454600090611baf8560026120fd565b611bb991906120fd565b90508015611bd757600e54611bd7906001600160a01b031682611922565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611c555760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161090b565b6001600160a01b038216611cb75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161090b565b6001600160a01b03831660009081526020819052604090205481811015611d2f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161090b565b611d3982826120e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611d6f9084906120ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dbb91815260200190565b60405180910390a350505050565b600654611de19030906001600160a01b031684611258565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e51573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c5291906121ff565b6001600160a01b0381168114610fc857600080fd5b8015158114610fc857600080fd5b60008060408385031215611eac57600080fd5b8235611eb781611e76565b91506020830135611ec781611e8b565b809150509250929050565b600060208284031215611ee457600080fd5b8135611eef81611e76565b9392505050565b600060208083528351808285015260005b81811015611f2357858101830151858201604001528201611f07565b81811115611f35576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611f6057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f8a57600080fd5b8235611f9581611e76565b946020939093013593505050565b600080600060608486031215611fb857600080fd5b8335611fc381611e76565b92506020840135611fd381611e76565b929592945050506040919091013590565b60008060408385031215611ff757600080fd5b823561200281611e76565b91506020830135611ec781611e76565b60006020828403121561202457600080fd5b5035919050565b60006020828403121561203d57600080fd5b8135611eef81611e8b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061209157607f821691505b602082108114156120b257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156120e1576120e16120b8565b500190565b6000828210156120f8576120f86120b8565b500390565b6000816000190483118215151615612117576121176120b8565b500290565b60008261213957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561215057600080fd5b8151611eef81611e8b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561218357600080fd5b8151611eef81611e76565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121de5784516001600160a01b0316835293830193918301916001016121b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561221457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212205523950c7922476e1debedbfaab3cef18c4bce49b383a985c3d48dce802a5bb364736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102975760003560e01c8063728f8eea1161015a578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c14610822578063e545fd6d14610842578063e9dae5ed14610862578063f2fde38b14610882578063f66895a3146108a2578063f887ea40146108c157600080fd5b8063a9059cbb14610736578063aa4bde2814610756578063c18bc1951461076c578063dbe66ca01461078c578063dd62ed3e146107bc578063deab8aea1461080257600080fd5b806391fa01821161011357806391fa01821461068157806395d89b41146106a15780639d0014b1146106b65780639e252f00146106d6578063a457c2d7146106f6578063a8aa1b311461071657600080fd5b8063728f8eea146105be578063751039fc146105f857806382aa7c681461060d5780638c0b5e221461062d5780638cd4426d146106435780638da5cb5b1461066357600080fd5b8063274a533c116101fe5780634ada218b116101b75780634ada218b146104fb57806350c9a88f1461051c5780636256d181146105325780636ddd17131461055257806370a0823114610573578063715018a6146105a957600080fd5b8063274a533c14610443578063293b7ef414610459578063313ce5671461046f578063395093511461048b5780633bbac579146104ab57806340b28c2f146104db57600080fd5b8063152cc89411610250578063152cc894146103805780631771813f146103b857806318160ddd146103d85780632253163d146103ed57806323b872dd1461040357806326b5d32f1461042357600080fd5b806303c0f5d4146102a35780630445b667146102c557806304dacd50146102ee57806306fdde031461030e5780630873321414610330578063095ea7b31461035057600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102c36102be366004611e99565b6108e1565b005b3480156102d157600080fd5b506102db600a5481565b6040519081526020015b60405180910390f35b3480156102fa57600080fd5b506102c3610309366004611ed2565b61093f565b34801561031a57600080fd5b5061032361098b565b6040516102e59190611ef6565b34801561033c57600080fd5b506102c361034b366004611f4b565b610a1d565b34801561035c57600080fd5b5061037061036b366004611f77565b610a8b565b60405190151581526020016102e5565b34801561038c57600080fd5b50600d546103a0906001600160a01b031681565b6040516001600160a01b0390911681526020016102e5565b3480156103c457600080fd5b506102c36103d3366004611ed2565b610aa1565b3480156103e457600080fd5b506002546102db565b3480156103f957600080fd5b506102db60165481565b34801561040f57600080fd5b5061037061041e366004611fa3565b610aed565b34801561042f57600080fd5b506102c361043e366004611f4b565b610b9e565b34801561044f57600080fd5b506102db60085481565b34801561046557600080fd5b506102db60155481565b34801561047b57600080fd5b50604051601281526020016102e5565b34801561049757600080fd5b506103706104a6366004611f77565b610c59565b3480156104b757600080fd5b506103706104c6366004611ed2565b60186020526000908152604090205460ff1681565b3480156104e757600080fd5b506102c36104f6366004611fe4565b610c90565b34801561050757600080fd5b5060075461037090600160b01b900460ff1681565b34801561052857600080fd5b506102db60095481565b34801561053e57600080fd5b506102c361054d366004612012565b610ce8565b34801561055e57600080fd5b5060075461037090600160a81b900460ff1681565b34801561057f57600080fd5b506102db61058e366004611ed2565b6001600160a01b031660009081526020819052604090205490565b3480156105b557600080fd5b506102c3610d2a565b3480156105ca57600080fd5b50600f546010546011546105dd92919083565b604080519384526020840192909252908201526060016102e5565b34801561060457600080fd5b50610370610d60565b34801561061957600080fd5b506102c3610628366004612012565b610da7565b34801561063957600080fd5b506102db600b5481565b34801561064f57600080fd5b506102c361065e366004611f77565b610e42565b34801561066f57600080fd5b506005546001600160a01b03166103a0565b34801561068d57600080fd5b506102c361069c366004611ed2565b610f03565b3480156106ad57600080fd5b50610323610f3b565b3480156106c257600080fd5b506102c36106d1366004612012565b610f4a565b3480156106e257600080fd5b506102c36106f1366004612012565b610f79565b34801561070257600080fd5b50610370610711366004611f77565b610fcb565b34801561072257600080fd5b506007546103a0906001600160a01b031681565b34801561074257600080fd5b50610370610751366004611f77565b611066565b34801561076257600080fd5b506102db600c5481565b34801561077857600080fd5b506102c3610787366004612012565b611073565b34801561079857600080fd5b506103706107a7366004611ed2565b60176020526000908152604090205460ff1681565b3480156107c857600080fd5b506102db6107d7366004611fe4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080e57600080fd5b50600e546103a0906001600160a01b031681565b34801561082e57600080fd5b506102c361083d36600461202b565b6110b5565b34801561084e57600080fd5b506102c361085d366004611e99565b6110fd565b34801561086e57600080fd5b506102c361087d366004611f4b565b611152565b34801561088e57600080fd5b506102c361089d366004611ed2565b6111c0565b3480156108ae57600080fd5b506012546013546014546105dd92919083565b3480156108cd57600080fd5b506006546103a0906001600160a01b031681565b6005546001600160a01b031633146109145760405162461bcd60e51b815260040161090b90612048565b60405180910390fd5b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146109695760405162461bcd60e51b815260040161090b90612048565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60606003805461099a9061207d565b80601f01602080910402602001604051908101604052809291908181526020018280546109c69061207d565b8015610a135780601f106109e857610100808354040283529160200191610a13565b820191906000526020600020905b8154815290600101906020018083116109f657829003601f168201915b5050505050905090565b6005546001600160a01b03163314610a475760405162461bcd60e51b815260040161090b90612048565b60408051606081018252848152602081018490520181905260128390556013829055601481905580610a7983856120ce565b610a8391906120ce565b601655505050565b6000610a98338484611258565b50600192915050565b6005546001600160a01b03163314610acb5760405162461bcd60e51b815260040161090b90612048565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610afa84848461137c565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610b7f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161090b565b610b938533610b8e86856120e6565b611258565b506001949350505050565b6005546001600160a01b03163314610bc85760405162461bcd60e51b815260040161090b90612048565b47610bd2846117c8565b6000610bde82476120e6565b90508215610c1957610c19610bf384866120ce565b610bfd85846120fd565b610c07919061211c565b600d546001600160a01b031690611922565b8315610c5257610c52610c2c84866120ce565b610c3686846120fd565b610c40919061211c565b600e546001600160a01b031690611922565b5050505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a98918590610b8e9086906120ce565b6005546001600160a01b03163314610cba5760405162461bcd60e51b815260040161090b90612048565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610d125760405162461bcd60e51b815260040161090b90612048565b610d2481670de0b6b3a76400006120fd565b600b5550565b6005546001600160a01b03163314610d545760405162461bcd60e51b815260040161090b90612048565b610d5e6000611a3b565b565b6005546000906001600160a01b03163314610d8d5760405162461bcd60e51b815260040161090b90612048565b506a115eec47f6cf7e35000000600b819055600c55600190565b6005546001600160a01b03163314610dd15760405162461bcd60e51b815260040161090b90612048565b600754600160b01b900460ff1615610e245760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b604482015260640161090b565b6007805461ffff60a81b191661010160a81b17905543600855600955565b6005546001600160a01b03163314610e6c5760405162461bcd60e51b815260040161090b90612048565b816001600160a01b031663a9059cbb610e8d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efe919061213e565b505050565b600d546001600160a01b03163314610f1a57600080fd5b6001600160a01b03166000908152601860205260409020805460ff19169055565b60606004805461099a9061207d565b6005546001600160a01b03163314610f745760405162461bcd60e51b815260040161090b90612048565b600a55565b6005546001600160a01b03163314610fa35760405162461bcd60e51b815260040161090b90612048565b610fc881610fb96005546001600160a01b031690565b6001600160a01b031690611922565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561104d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161090b565b61105c3385610b8e86856120e6565b5060019392505050565b6000610a9833848461137c565b6005546001600160a01b0316331461109d5760405162461bcd60e51b815260040161090b90612048565b6110af81670de0b6b3a76400006120fd565b600c5550565b6005546001600160a01b031633146110df5760405162461bcd60e51b815260040161090b90612048565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146111275760405162461bcd60e51b815260040161090b90612048565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461117c5760405162461bcd60e51b815260040161090b90612048565b604080516060810182528481526020810184905201819052600f83905560108290556011819055806111ae83856120ce565b6111b891906120ce565b601555505050565b6005546001600160a01b031633146111ea5760405162461bcd60e51b815260040161090b90612048565b6001600160a01b03811661124f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161090b565b610fc881611a3b565b6001600160a01b0383166112ba5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161090b565b6001600160a01b03821661131b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161090b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116113de5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161090b565b6001600160a01b03831660009081526018602052604090205460ff1615801561142057506001600160a01b03821660009081526018602052604090205460ff16155b61146c5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e7300000000000000604482015260640161090b565b6001600160a01b03831660009081526017602052604090205460ff161580156114ae57506001600160a01b03821660009081526017602052604090205460ff16155b80156114c45750600754600160a01b900460ff16155b1561169057600754600160b01b900460ff1661151b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b604482015260640161090b565b4360095460085461152c91906120ce565b11156115a4576007546001600160a01b0383811691161461156b576001600160a01b0382166000908152601860205260409020805460ff191660011790555b6007546001600160a01b038481169116146115a4576001600160a01b0383166000908152601860205260409020805460ff191660011790555b600b548111156115f65760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e74000000604482015260640161090b565b6007546001600160a01b0383811691161461169057600c548161162e846001600160a01b031660009081526020819052604090205490565b61163891906120ce565b11156116905760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b606482015260840161090b565b600754600090600160a01b900460ff16806116c357506001600160a01b03841660009081526017602052604090205460ff165b806116e657506001600160a01b03831660009081526017602052604090205460ff165b156116f357506000611747565b6007546001600160a01b038481169116141561172a5760646016548361171991906120fd565b611723919061211c565b9050611747565b60646015548361173a91906120fd565b611744919061211c565b90505b600754600160a81b900460ff16801561176a5750600754600160a01b900460ff16155b801561178457506007546001600160a01b03858116911614155b80156117905750600081115b1561179d5761179d611a8d565b6117b184846117ac84866120e6565b611bf1565b80156117c2576117c2843083611bf1565b50505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117fd576117fd61215b565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187a9190612171565b8160018151811061188d5761188d61215b565b6001600160a01b0392831660209182029290920101526006546118b39130911684611258565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118ec90859060009086903090429060040161218e565b600060405180830381600087803b15801561190657600080fd5b505af115801561191a573d6000803e3d6000fd5b505050505050565b804710156119725760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161090b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146119bf576040519150601f19603f3d011682016040523d82523d6000602084013e6119c4565b606091505b5050905080610efe5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161090b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610d5e576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611be15760006016546002611add91906120fd565b905060008160126001015484611af391906120fd565b611afd919061211c565b90506000611b0b82856120e6565b905047611b17826117c8565b6000611b2382476120e6565b601354909150600090611b3690876120e6565b611b40908361211c565b601354909150600090611b5390836120fd565b90508015611b6557611b658682611dc9565b601254600090611b768460026120fd565b611b8091906120fd565b90508015611b9e57600d54611b9e906001600160a01b031682611922565b601454600090611baf8560026120fd565b611bb991906120fd565b90508015611bd757600e54611bd7906001600160a01b031682611922565b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611c555760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161090b565b6001600160a01b038216611cb75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161090b565b6001600160a01b03831660009081526020819052604090205481811015611d2f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161090b565b611d3982826120e6565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611d6f9084906120ce565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dbb91815260200190565b60405180910390a350505050565b600654611de19030906001600160a01b031684611258565b600654600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e51573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c5291906121ff565b6001600160a01b0381168114610fc857600080fd5b8015158114610fc857600080fd5b60008060408385031215611eac57600080fd5b8235611eb781611e76565b91506020830135611ec781611e8b565b809150509250929050565b600060208284031215611ee457600080fd5b8135611eef81611e76565b9392505050565b600060208083528351808285015260005b81811015611f2357858101830151858201604001528201611f07565b81811115611f35576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215611f6057600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611f8a57600080fd5b8235611f9581611e76565b946020939093013593505050565b600080600060608486031215611fb857600080fd5b8335611fc381611e76565b92506020840135611fd381611e76565b929592945050506040919091013590565b60008060408385031215611ff757600080fd5b823561200281611e76565b91506020830135611ec781611e76565b60006020828403121561202457600080fd5b5035919050565b60006020828403121561203d57600080fd5b8135611eef81611e8b565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061209157607f821691505b602082108114156120b257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156120e1576120e16120b8565b500190565b6000828210156120f8576120f86120b8565b500390565b6000816000190483118215151615612117576121176120b8565b500290565b60008261213957634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561215057600080fd5b8151611eef81611e8b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561218357600080fd5b8151611eef81611e76565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121de5784516001600160a01b0316835293830193918301916001016121b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561221457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212205523950c7922476e1debedbfaab3cef18c4bce49b383a985c3d48dce802a5bb364736f6c634300080c0033

Deployed Bytecode Sourcemap

13172:8688:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20138:106;;;;;;;;;;-1:-1:-1;20138:106:0;;;;;:::i;:::-;;:::i;:::-;;13489:45;;;;;;;;;;;;;;;;;;;806:25:1;;;794:2;779:18;13489:45:0;;;;;;;;19875:110;;;;;;;;;;-1:-1:-1;19875:110:0;;;;;:::i;:::-;;:::i;2378:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19521:220::-;;;;;;;;;;-1:-1:-1;19521:220:0;;;;;:::i;:::-;;:::i;4545:169::-;;;;;;;;;;-1:-1:-1;4545:169:0;;;;;:::i;:::-;;:::i;:::-;;;2502:14:1;;2495:22;2477:41;;2465:2;2450:18;4545:169:0;2337:187:1;13655:73:0;;;;;;;;;;-1:-1:-1;13655:73:0;;;;-1:-1:-1;;;;;13655:73:0;;;;;;-1:-1:-1;;;;;2693:32:1;;;2675:51;;2663:2;2648:18;13655:73:0;2529:203:1;19753:110:0;;;;;;;;;;-1:-1:-1;19753:110:0;;;;;:::i;:::-;;:::i;3498:108::-;;;;;;;;;;-1:-1:-1;3586:12:0;;3498:108;;14051:29;;;;;;;;;;;;;;;;5196:422;;;;;;;;;;-1:-1:-1;5196:422:0;;;;;:::i;:::-;;:::i;21062:558::-;;;;;;;;;;-1:-1:-1;21062:558:0;;;;;:::i;:::-;;:::i;13412:28::-;;;;;;;;;;;;;;;;14019:25;;;;;;;;;;;;;;;;3340:93;;;;;;;;;;-1:-1:-1;3340:93:0;;3423:2;3340:36:1;;3328:2;3313:18;3340:93:0;3198:184:1;6027:215:0;;;;;;;;;;-1:-1:-1;6027:215:0;;;;;:::i;:::-;;:::i;14149:38::-;;;;;;;;;;-1:-1:-1;14149:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19993:137;;;;;;;;;;-1:-1:-1;19993:137:0;;;;;:::i;:::-;;:::i;13377:26::-;;;;;;;;;;-1:-1:-1;13377:26:0;;;;-1:-1:-1;;;13377:26:0;;;;;;13447:29;;;;;;;;;;;;;;;;20546:109;;;;;;;;;;-1:-1:-1;20546:109:0;;;;;:::i;:::-;;:::i;13347:23::-;;;;;;;;;;-1:-1:-1;13347:23:0;;;;-1:-1:-1;;;13347:23:0;;;;;;3669:127;;;;;;;;;;-1:-1:-1;3669:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3770:18:0;3743:7;3770:18;;;;;;;;;;;;3669:127;11949:94;;;;;;;;;;;;;:::i;13935:33::-;;;;;;;;;;-1:-1:-1;13935:33:0;;;;;;;;;;;;;;;;4182:25:1;;;4238:2;4223:18;;4216:34;;;;4266:18;;;4259:34;4170:2;4155:18;13935:33:0;3980:319:1;21628:168:0;;;;;;;;;;;;;:::i;19023:274::-;;;;;;;;;;-1:-1:-1;19023:274:0;;;;;:::i;:::-;;:::i;13541:45::-;;;;;;;;;;;;;;;;20792:142;;;;;;;;;;-1:-1:-1;20792:142:0;;;;;:::i;:::-;;:::i;11726:87::-;;;;;;;;;;-1:-1:-1;11799:6:0;;-1:-1:-1;;;;;11799:6:0;11726:87;;20256:136;;;;;;;;;;-1:-1:-1;20256:136:0;;;;;:::i;:::-;;:::i;2597:104::-;;;;;;;;;;;;;:::i;18905:110::-;;;;;;;;;;-1:-1:-1;18905:110:0;;;;;:::i;:::-;;:::i;20942:112::-;;;;;;;;;;-1:-1:-1;20942:112:0;;;;;:::i;:::-;;:::i;6745:377::-;;;;;;;;;;-1:-1:-1;6745:377:0;;;;;:::i;:::-;;:::i;13287:19::-;;;;;;;;;;-1:-1:-1;13287:19:0;;;;-1:-1:-1;;;;;13287:19:0;;;4009:175;;;;;;;;;;-1:-1:-1;4009:175:0;;;;;:::i;:::-;;:::i;13593:49::-;;;;;;;;;;;;;;;;20667:117;;;;;;;;;;-1:-1:-1;20667:117:0;;;;;:::i;:::-;;:::i;14093:49::-;;;;;;;;;;-1:-1:-1;14093:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4247:151;;;;;;;;;;-1:-1:-1;4247:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4363:18:0;;;4336:7;4363:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4247:151;13735:73;;;;;;;;;;-1:-1:-1;13735:73:0;;;;-1:-1:-1;;;;;13735:73:0;;;18804:93;;;;;;;;;;-1:-1:-1;18804:93:0;;;;;:::i;:::-;;:::i;20400:134::-;;;;;;;;;;-1:-1:-1;20400:134:0;;;;;:::i;:::-;;:::i;19305:208::-;;;;;;;;;;-1:-1:-1;19305:208:0;;;;;:::i;:::-;;:::i;12051:192::-;;;;;;;;;;-1:-1:-1;12051:192:0;;;;;:::i;:::-;;:::i;13975:37::-;;;;;;;;;;-1:-1:-1;13975:37:0;;;;;;;;;;;;13259:21;;;;;;;;;;-1:-1:-1;13259:21:0;;;;-1:-1:-1;;;;;13259:21:0;;;20138:106;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20214:14:0;;;::::1;;::::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;20214:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20138:106::o;19875:110::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;19952:13:::1;:25:::0;;-1:-1:-1;;;;;;19952:25:0::1;-1:-1:-1::0;;;;;19952:25:0;;;::::1;::::0;;;::::1;::::0;;19875:110::o;2378:100::-;2432:13;2465:5;2458:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2378:100;:::o;19521:220::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;19640:37:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19628:9:::1;:49:::0;;;;;;;;;;;19668:8;19701:21:::1;19656:10:::0;19646:8;19701:21:::1;:::i;:::-;:32;;;;:::i;:::-;19688:10;:45:::0;-1:-1:-1;;;19521:220:0:o;4545:169::-;4628:4;4645:39;174:10;4668:7;4677:6;4645:8;:39::i;:::-;-1:-1:-1;4702:4:0;4545:169;;;;:::o;19753:110::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;19830:13:::1;:25:::0;;-1:-1:-1;;;;;;19830:25:0::1;-1:-1:-1::0;;;;;19830:25:0;;;::::1;::::0;;;::::1;::::0;;19753:110::o;5196:422::-;5302:4;5319:36;5329:6;5337:9;5348:6;5319:9;:36::i;:::-;-1:-1:-1;;;;;5395:19:0;;5368:24;5395:19;;;:11;:19;;;;;;;;174:10;5395:33;;;;;;;;5447:26;;;;5439:79;;;;-1:-1:-1;;;5439:79:0;;6379:2:1;5439:79:0;;;6361:21:1;6418:2;6398:18;;;6391:30;6457:34;6437:18;;;6430:62;-1:-1:-1;;;6508:18:1;;;6501:38;6556:19;;5439:79:0;6177:404:1;5439:79:0;5529:57;5538:6;174:10;5560:25;5579:6;5560:16;:25;:::i;:::-;5529:8;:57::i;:::-;-1:-1:-1;5606:4:0;;5196:422;-1:-1:-1;;;;5196:422:0:o;21062:558::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;21203:21:::1;21235:24;21252:6:::0;21235:16:::1;:24::i;:::-;21270:18;21291:35;21315:11:::0;21291:21:::1;:35;:::i;:::-;21270:56:::0;-1:-1:-1;21340:21:0;;21337:132:::1;;21363:106;21430:37;21450:17:::0;21430;:37:::1;:::i;:::-;21396:30;21409:17:::0;21396:10;:30:::1;:::i;:::-;:72;;;;:::i;:::-;21371:13;::::0;-1:-1:-1;;;;;21371:13:0::1;::::0;21363:32:::1;:106::i;:::-;21483:21:::0;;21480:132:::1;;21506:106;21573:37;21593:17:::0;21573;:37:::1;:::i;:::-;21539:30;21552:17:::0;21539:10;:30:::1;:::i;:::-;:72;;;;:::i;:::-;21514:13;::::0;-1:-1:-1;;;;;21514:13:0::1;::::0;21506:32:::1;:106::i;:::-;21170:450;;21062:558:::0;;;:::o;6027:215::-;174:10;6115:4;6164:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6164:34:0;;;;;;;;;;6115:4;;6132:80;;6155:7;;6164:47;;6201:10;;6164:47;:::i;19993:137::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;20083:6:::1;:16:::0;;-1:-1:-1;;;;;20083:16:0;;::::1;-1:-1:-1::0;;;;;;20083:16:0;;::::1;;::::0;;;20110:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;19993:137::o;20546:109::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;20632:15:::1;:6:::0;20641::::1;20632:15;:::i;:::-;20618:11;:29:::0;-1:-1:-1;20546:109:0:o;11949:94::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;12014:21:::1;12032:1;12014:9;:21::i;:::-;11949:94::o:0;21628:168::-;11799:6;;21680:4;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;-1:-1:-1;21711:13:0::1;21697:11;:27:::0;;;21735:15:::1;:31:::0;21784:4:::1;21628:168:::0;:::o;19023:274::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;19109:14:::1;::::0;-1:-1:-1;;;19109:14:0;::::1;;;19108:15;19100:50;;;::::0;-1:-1:-1;;;19100:50:0;;7313:2:1;19100:50:0::1;::::0;::::1;7295:21:1::0;7352:2;7332:18;;;7325:30;-1:-1:-1;;;7371:18:1;;;7364:52;7433:18;;19100:50:0::1;7111:346:1::0;19100:50:0::1;19161:14;:21:::0;;-1:-1:-1;;;;19193:18:0;-1:-1:-1;;;19193:18:0;;;19238:12:::1;19222:13;:28:::0;19261:10:::1;:28:::0;19023:274::o;20792:142::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;20887:12:::1;-1:-1:-1::0;;;;;20880:29:0::1;;20910:7;11799:6:::0;;-1:-1:-1;;;;;11799:6:0;;11726:87;20910:7:::1;20880:46;::::0;-1:-1:-1;;;;;;20880:46:0::1;::::0;;;;;;-1:-1:-1;;;;;7654:32:1;;;20880:46:0::1;::::0;::::1;7636:51:1::0;7703:18;;;7696:34;;;7609:18;;20880:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20792:142:::0;;:::o;20256:136::-;20337:13;;-1:-1:-1;;;;;20337:13:0;20323:10;:27;20314:37;;;;;;-1:-1:-1;;;;;20362:14:0;20379:5;20362:14;;;:5;:14;;;;;:22;;-1:-1:-1;;20362:22:0;;;20256:136::o;2597:104::-;2653:13;2686:7;2679:14;;;;;:::i;18905:110::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;18981:13:::1;:26:::0;18905:110::o;20942:112::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;21009:37:::1;21036:9;21017:7;11799:6:::0;;-1:-1:-1;;;;;11799:6:0;;11726:87;21017:7:::1;-1:-1:-1::0;;;;;21009:26:0::1;::::0;::::1;:37::i;:::-;20942:112:::0;:::o;6745:377::-;174:10;6838:4;6882:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6882:34:0;;;;;;;;;;6935:35;;;;6927:85;;;;-1:-1:-1;;;6927:85:0;;8193:2:1;6927:85:0;;;8175:21:1;8232:2;8212:18;;;8205:30;8271:34;8251:18;;;8244:62;-1:-1:-1;;;8322:18:1;;;8315:35;8367:19;;6927:85:0;7991:401:1;6927:85:0;7023:67;174:10;7046:7;7055:34;7074:15;7055:16;:34;:::i;7023:67::-;-1:-1:-1;7110:4:0;;6745:377;-1:-1:-1;;;6745:377:0:o;4009:175::-;4095:4;4112:42;174:10;4136:9;4147:6;4112:9;:42::i;20667:117::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;20761:15:::1;:6:::0;20770::::1;20761:15;:::i;:::-;20743;:33:::0;-1:-1:-1;20667:117:0:o;18804:93::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;18870:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;18870:19:0::1;-1:-1:-1::0;;;;18870:19:0;;::::1;::::0;;;::::1;::::0;;18804:93::o;20400:134::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20492:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;20492:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20400:134::o;19305:208::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;19416:37:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;19408:5:::1;:45:::0;;;;;;;;;;;19444:8;19473:21:::1;19432:10:::0;19422:8;19473:21:::1;:::i;:::-;:32;;;;:::i;:::-;19464:6;:41:::0;-1:-1:-1;;;19305:208:0:o;12051:192::-;11799:6;;-1:-1:-1;;;;;11799:6:0;174:10;11861:23;11853:68;;;;-1:-1:-1;;;11853:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12140:22:0;::::1;12132:73;;;::::0;-1:-1:-1;;;12132:73:0;;8599:2:1;12132:73:0::1;::::0;::::1;8581:21:1::0;8638:2;8618:18;;;8611:30;8677:34;8657:18;;;8650:62;-1:-1:-1;;;8728:18:1;;;8721:36;8774:19;;12132:73:0::1;8397:402:1::0;12132:73:0::1;12216:19;12226:8;12216:9;:19::i;10101:346::-:0;-1:-1:-1;;;;;10203:19:0;;10195:68;;;;-1:-1:-1;;;10195:68:0;;9006:2:1;10195:68:0;;;8988:21:1;9045:2;9025:18;;;9018:30;9084:34;9064:18;;;9057:62;-1:-1:-1;;;9135:18:1;;;9128:34;9179:19;;10195:68:0;8804:400:1;10195:68:0;-1:-1:-1;;;;;10282:21:0;;10274:68;;;;-1:-1:-1;;;10274:68:0;;9411:2:1;10274:68:0;;;9393:21:1;9450:2;9430:18;;;9423:30;9489:34;9469:18;;;9462:62;-1:-1:-1;;;9540:18:1;;;9533:32;9582:19;;10274:68:0;9209:398:1;10274:68:0;-1:-1:-1;;;;;10355:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10407:32;;806:25:1;;;10407:32:0;;779:18:1;10407:32:0;;;;;;;10101:346;;;:::o;14912:1573::-;15028:1;15019:6;:10;15011:64;;;;-1:-1:-1;;;15011:64:0;;9814:2:1;15011:64:0;;;9796:21:1;9853:2;9833:18;;;9826:30;9892:34;9872:18;;;9865:62;-1:-1:-1;;;9943:18:1;;;9936:39;9992:19;;15011:64:0;9612:405:1;15011:64:0;-1:-1:-1;;;;;15095:13:0;;;;;;:5;:13;;;;;;;;15094:14;:35;;;;-1:-1:-1;;;;;;15113:16:0;;;;;;:5;:16;;;;;;;;15112:17;15094:35;15086:73;;;;-1:-1:-1;;;15086:73:0;;10224:2:1;15086:73:0;;;10206:21:1;10263:2;10243:18;;;10236:30;10302:27;10282:18;;;10275:55;10347:18;;15086:73:0;10022:349:1;15086:73:0;-1:-1:-1;;;;;15202:24:0;;;;;;:16;:24;;;;;;;;15201:25;:57;;;;-1:-1:-1;;;;;;15231:27:0;;;;;;:16;:27;;;;;;;;15230:28;15201:57;:70;;;;-1:-1:-1;15263:8:0;;-1:-1:-1;;;15263:8:0;;;;15262:9;15201:70;15198:589;;;15295:14;;-1:-1:-1;;;15295:14:0;;;;15287:49;;;;-1:-1:-1;;;15287:49:0;;10578:2:1;15287:49:0;;;10560:21:1;10617:2;10597:18;;;10590:30;-1:-1:-1;;;10636:18:1;;;10629:52;10698:18;;15287:49:0;10376:346:1;15287:49:0;15383:12;15370:10;;15354:13;;:26;;;;:::i;:::-;:41;15351:183;;;15431:4;;-1:-1:-1;;;;;15418:17:0;;;15431:4;;15418:17;15415:45;;-1:-1:-1;;;;;15437:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;15437:23:0;15456:4;15437:23;;;15415:45;15492:4;;-1:-1:-1;;;;;15482:14:0;;;15492:4;;15482:14;15479:39;;-1:-1:-1;;;;;15498:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;15498:20:0;15514:4;15498:20;;;15479:39;15566:11;;15556:6;:21;;15548:63;;;;-1:-1:-1;;;15548:63:0;;10929:2:1;15548:63:0;;;10911:21:1;10968:2;10948:18;;;10941:30;11007:31;10987:18;;;10980:59;11056:18;;15548:63:0;10727:353:1;15548:63:0;15642:4;;-1:-1:-1;;;;;15629:17:0;;;15642:4;;15629:17;15626:150;;15707:15;;15697:6;15674:20;15684:9;-1:-1:-1;;;;;3770:18:0;3743:7;3770:18;;;;;;;;;;;;3669:127;15674:20;:29;;;;:::i;:::-;:48;;15666:94;;;;-1:-1:-1;;;15666:94:0;;11287:2:1;15666:94:0;;;11269:21:1;11326:2;11306:18;;;11299:30;11365:34;11345:18;;;11338:62;-1:-1:-1;;;11416:18:1;;;11409:31;11457:19;;15666:94:0;11085:397:1;15666:94:0;15906:8;;15799:11;;-1:-1:-1;;;15906:8:0;;;;;:36;;-1:-1:-1;;;;;;15918:24:0;;;;;;:16;:24;;;;;;;;15906:36;:67;;;-1:-1:-1;;;;;;15946:27:0;;;;;;:16;:27;;;;;;;;15906:67;15902:257;;;-1:-1:-1;15981:1:0;15902:257;;;16063:4;;-1:-1:-1;;;;;16050:17:0;;;16063:4;;16050:17;16047:100;;;16097:3;16084:10;;16075:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16069:31;;16047:100;;;16144:3;16135:6;;16126;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16120:27;;16047:100;16280:11;;-1:-1:-1;;;16280:11:0;;;;:24;;;;-1:-1:-1;16296:8:0;;-1:-1:-1;;;16296:8:0;;;;16295:9;16280:24;:42;;;;-1:-1:-1;16318:4:0;;-1:-1:-1;;;;;16308:14:0;;;16318:4;;16308:14;;16280:42;:53;;;;;16332:1;16326:3;:7;16280:53;16276:72;;;16335:13;:11;:13::i;:::-;16361:48;16377:6;16385:9;16396:12;16405:3;16396:6;:12;:::i;:::-;16361:15;:48::i;:::-;16423:7;;16420:55;;16432:43;16448:6;16464:4;16471:3;16432:15;:43::i;:::-;15000:1485;14912:1573;;;:::o;17887:400::-;17977:16;;;17991:1;17977:16;;;;;;;;17953:21;;17977:16;;;;;;;;;;-1:-1:-1;17977:16:0;17953:40;;18022:4;18004;18009:1;18004:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18004:23:0;;;:7;;;;;;;;;;:23;;;;18048:6;;:13;;;-1:-1:-1;;;18048:13:0;;;;:6;;;;;:11;;:13;;;;;18004:7;;18048:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18038:4;18043:1;18038:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18038:23:0;;;:7;;;;;;;;;:23;18106:6;;18074:53;;18091:4;;18106:6;18115:11;18074:8;:53::i;:::-;18166:6;;:111;;-1:-1:-1;;;18166:111:0;;-1:-1:-1;;;;;18166:6:0;;;;:57;;:111;;18224:11;;18166:6;;18240:4;;18254;;18261:15;;18166:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17942:345;17887:400;:::o;11171:317::-;11286:6;11261:21;:31;;11253:73;;;;-1:-1:-1;;;11253:73:0;;13194:2:1;11253:73:0;;;13176:21:1;13233:2;13213:18;;;13206:30;13272:31;13252:18;;;13245:59;13321:18;;11253:73:0;12992:353:1;11253:73:0;11340:12;11358:9;-1:-1:-1;;;;;11358:14:0;11380:6;11358:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11339:52;;;11410:7;11402:78;;;;-1:-1:-1;;;11402:78:0;;13762:2:1;11402:78:0;;;13744:21:1;13801:2;13781:18;;;13774:30;13840:34;13820:18;;;13813:62;13911:28;13891:18;;;13884:56;13957:19;;11402:78:0;13560:422:1;12251:173:0;12326:6;;;-1:-1:-1;;;;;12343:17:0;;;-1:-1:-1;;;;;;12343:17:0;;;;;;;12376:40;;12326:6;;;12343:17;12326:6;;12376:40;;12307:16;;12376:40;12296:128;12251:173;:::o;16493:1384::-;14234:8;;-1:-1:-1;;;14234:8:0;;;;14229:104;;14259:8;:15;;-1:-1:-1;;;;14259:15:0;-1:-1:-1;;;14259:15:0;;;16586:4:::1;-1:-1:-1::0;3770:18:0;;;;;;;;;;;16542:50:::1;;16626:13;;16607:15;:32;16603:1267;;16713:19;16735:10;;16748:1;16735:14;;;;:::i;:::-;16713:36;;16764:32;16839:11;16817:9;:19;;;16799:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16764:86:::0;-1:-1:-1;16865:14:0::1;16882:42;16764:86:::0;16882:15;:42:::1;:::i;:::-;16865:59:::0;-1:-1:-1;16970:21:0::1;17012:24;16865:59:::0;17012:16:::1;:24::i;:::-;17057:20;17080:38;17104:14:::0;17080:21:::1;:38;:::i;:::-;17184:19:::0;;17057:61;;-1:-1:-1;17133:19:0::1;::::0;17170:33:::1;::::0;:11;:33:::1;:::i;:::-;17154:50;::::0;:12;:50:::1;:::i;:::-;17265:19:::0;;17133:71;;-1:-1:-1;17219:29:0::1;::::0;17251:33:::1;::::0;17133:71;17251:33:::1;:::i;:::-;17219:65:::0;-1:-1:-1;17308:25:0;;17305:170:::1;;17398:61;17411:24;17437:21;17398:12;:61::i;:::-;17534:9;:17:::0;17495:18:::1;::::0;17516:15:::1;:11:::0;17530:1:::1;17516:15;:::i;:::-;:35;;;;:::i;:::-;17495:56:::0;-1:-1:-1;17569:14:0;;17566:97:::1;;17611:13;::::0;17603:44:::1;::::0;-1:-1:-1;;;;;17611:13:0::1;17636:10:::0;17603:32:::1;:44::i;:::-;17730:17:::0;;17691:18:::1;::::0;17712:15:::1;:11:::0;17730:17:::1;17712:15;:::i;:::-;:35;;;;:::i;:::-;17691:56:::0;-1:-1:-1;17765:14:0;;17762:97:::1;;17807:13;::::0;17799:44:::1;::::0;-1:-1:-1;;;;;17807:13:0::1;17832:10:::0;17799:32:::1;:44::i;:::-;16641:1229;;;;;;;;;16603:1267;-1:-1:-1::0;14305:8:0;:16;;-1:-1:-1;;;;14305:16:0;;;16493:1384::o;7612:604::-;-1:-1:-1;;;;;7718:20:0;;7710:70;;;;-1:-1:-1;;;7710:70:0;;14189:2:1;7710:70:0;;;14171:21:1;14228:2;14208:18;;;14201:30;14267:34;14247:18;;;14240:62;-1:-1:-1;;;14318:18:1;;;14311:35;14363:19;;7710:70:0;13987:401:1;7710:70:0;-1:-1:-1;;;;;7799:23:0;;7791:71;;;;-1:-1:-1;;;7791:71:0;;14595:2:1;7791:71:0;;;14577:21:1;14634:2;14614:18;;;14607:30;14673:34;14653:18;;;14646:62;-1:-1:-1;;;14724:18:1;;;14717:33;14767:19;;7791:71:0;14393:399:1;7791:71:0;-1:-1:-1;;;;;7959:17:0;;7935:21;7959:17;;;;;;;;;;;7995:23;;;;7987:74;;;;-1:-1:-1;;;7987:74:0;;14999:2:1;7987:74:0;;;14981:21:1;15038:2;15018:18;;;15011:30;15077:34;15057:18;;;15050:62;-1:-1:-1;;;15128:18:1;;;15121:36;15174:19;;7987:74:0;14797:402:1;7987:74:0;8092:22;8108:6;8092:13;:22;:::i;:::-;-1:-1:-1;;;;;8072:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8125:20;;;;;;;;:30;;8149:6;;8072:9;8125:30;;8149:6;;8125:30;:::i;:::-;;;;;;;;8190:9;-1:-1:-1;;;;;8173:35:0;8182:6;-1:-1:-1;;;;;8173:35:0;;8201:6;8173:35;;;;806:25:1;;794:2;779:18;;660:177;8173:35:0;;;;;;;;7699:517;7612:604;;;:::o;18295:501::-;18475:6;;18443:53;;18460:4;;-1:-1:-1;;;;;18475:6:0;18484:11;18443:8;:53::i;:::-;18539:6;;18734:13;;18539:249;;-1:-1:-1;;;18539:249:0;;18602:4;18539:249;;;15545:34:1;15595:18;;;15588:34;;;18539:6:0;15638:18:1;;;15631:34;;;15681:18;;;15674:34;-1:-1:-1;;;;;18734:13:0;;;15724:19:1;;;15717:44;18762:15:0;15777:19:1;;;15770:35;18539:6:0;;;:22;;18569:9;;15479:19:1;;18539:249:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:118;236:5;229:13;222:21;215:5;212:32;202:60;;258:1;255;248:12;273:382;338:6;346;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;454:9;441:23;473:31;498:5;473:31;:::i;:::-;523:5;-1:-1:-1;580:2:1;565:18;;552:32;593:30;552:32;593:30;:::i;:::-;642:7;632:17;;;273:382;;;;;:::o;842:247::-;901:6;954:2;942:9;933:7;929:23;925:32;922:52;;;970:1;967;960:12;922:52;1009:9;996:23;1028:31;1053:5;1028:31;:::i;:::-;1078:5;842:247;-1:-1:-1;;;842:247:1:o;1094:597::-;1206:4;1235:2;1264;1253:9;1246:21;1296:6;1290:13;1339:6;1334:2;1323:9;1319:18;1312:34;1364:1;1374:140;1388:6;1385:1;1382:13;1374:140;;;1483:14;;;1479:23;;1473:30;1449:17;;;1468:2;1445:26;1438:66;1403:10;;1374:140;;;1532:6;1529:1;1526:13;1523:91;;;1602:1;1597:2;1588:6;1577:9;1573:22;1569:31;1562:42;1523:91;-1:-1:-1;1675:2:1;1654:15;-1:-1:-1;;1650:29:1;1635:45;;;;1682:2;1631:54;;1094:597;-1:-1:-1;;;1094:597:1:o;1696:316::-;1773:6;1781;1789;1842:2;1830:9;1821:7;1817:23;1813:32;1810:52;;;1858:1;1855;1848:12;1810:52;-1:-1:-1;;1881:23:1;;;1951:2;1936:18;;1923:32;;-1:-1:-1;2002:2:1;1987:18;;;1974:32;;1696:316;-1:-1:-1;1696:316:1:o;2017:315::-;2085:6;2093;2146:2;2134:9;2125:7;2121:23;2117:32;2114:52;;;2162:1;2159;2152:12;2114:52;2201:9;2188:23;2220:31;2245:5;2220:31;:::i;:::-;2270:5;2322:2;2307:18;;;;2294:32;;-1:-1:-1;;;2017:315:1:o;2737:456::-;2814:6;2822;2830;2883:2;2871:9;2862:7;2858:23;2854:32;2851:52;;;2899:1;2896;2889:12;2851:52;2938:9;2925:23;2957:31;2982:5;2957:31;:::i;:::-;3007:5;-1:-1:-1;3064:2:1;3049:18;;3036:32;3077:33;3036:32;3077:33;:::i;:::-;2737:456;;3129:7;;-1:-1:-1;;;3183:2:1;3168:18;;;;3155:32;;2737:456::o;3387:403::-;3470:6;3478;3531:2;3519:9;3510:7;3506:23;3502:32;3499:52;;;3547:1;3544;3537:12;3499:52;3586:9;3573:23;3605:31;3630:5;3605:31;:::i;:::-;3655:5;-1:-1:-1;3712:2:1;3697:18;;3684:32;3725:33;3684:32;3725:33;:::i;3795:180::-;3854:6;3907:2;3895:9;3886:7;3882:23;3878:32;3875:52;;;3923:1;3920;3913:12;3875:52;-1:-1:-1;3946:23:1;;3795:180;-1:-1:-1;3795:180:1:o;4697:241::-;4753:6;4806:2;4794:9;4785:7;4781:23;4777:32;4774:52;;;4822:1;4819;4812:12;4774:52;4861:9;4848:23;4880:28;4902:5;4880:28;:::i;5166:356::-;5368:2;5350:21;;;5387:18;;;5380:30;5446:34;5441:2;5426:18;;5419:62;5513:2;5498:18;;5166:356::o;5527:380::-;5606:1;5602:12;;;;5649;;;5670:61;;5724:4;5716:6;5712:17;5702:27;;5670:61;5777:2;5769:6;5766:14;5746:18;5743:38;5740:161;;;5823:10;5818:3;5814:20;5811:1;5804:31;5858:4;5855:1;5848:15;5886:4;5883:1;5876:15;5740:161;;5527:380;;;:::o;5912:127::-;5973:10;5968:3;5964:20;5961:1;5954:31;6004:4;6001:1;5994:15;6028:4;6025:1;6018:15;6044:128;6084:3;6115:1;6111:6;6108:1;6105:13;6102:39;;;6121:18;;:::i;:::-;-1:-1:-1;6157:9:1;;6044:128::o;6586:125::-;6626:4;6654:1;6651;6648:8;6645:34;;;6659:18;;:::i;:::-;-1:-1:-1;6696:9:1;;6586:125::o;6716:168::-;6756:7;6822:1;6818;6814:6;6810:14;6807:1;6804:21;6799:1;6792:9;6785:17;6781:45;6778:71;;;6829:18;;:::i;:::-;-1:-1:-1;6869:9:1;;6716:168::o;6889:217::-;6929:1;6955;6945:132;;6999:10;6994:3;6990:20;6987:1;6980:31;7034:4;7031:1;7024:15;7062:4;7059:1;7052:15;6945:132;-1:-1:-1;7091:9:1;;6889:217::o;7741:245::-;7808:6;7861:2;7849:9;7840:7;7836:23;7832:32;7829:52;;;7877:1;7874;7867:12;7829:52;7909:9;7903:16;7928:28;7950:5;7928:28;:::i;11619:127::-;11680:10;11675:3;11671:20;11668:1;11661:31;11711:4;11708:1;11701:15;11735:4;11732:1;11725:15;11751:251;11821:6;11874:2;11862:9;11853:7;11849:23;11845:32;11842:52;;;11890:1;11887;11880:12;11842:52;11922:9;11916:16;11941:31;11966:5;11941:31;:::i;12007:980::-;12269:4;12317:3;12306:9;12302:19;12348:6;12337:9;12330:25;12374:2;12412:6;12407:2;12396:9;12392:18;12385:34;12455:3;12450:2;12439:9;12435:18;12428:31;12479:6;12514;12508:13;12545:6;12537;12530:22;12583:3;12572:9;12568:19;12561:26;;12622:2;12614:6;12610:15;12596:29;;12643:1;12653:195;12667:6;12664:1;12661:13;12653:195;;;12732:13;;-1:-1:-1;;;;;12728:39:1;12716:52;;12823:15;;;;12788:12;;;;12764:1;12682:9;12653:195;;;-1:-1:-1;;;;;;;12904:32:1;;;;12899:2;12884:18;;12877:60;-1:-1:-1;;;12968:3:1;12953:19;12946:35;12865:3;12007:980;-1:-1:-1;;;12007:980:1:o;15816:306::-;15904:6;15912;15920;15973:2;15961:9;15952:7;15948:23;15944:32;15941:52;;;15989:1;15986;15979:12;15941:52;16018:9;16012:16;16002:26;;16068:2;16057:9;16053:18;16047:25;16037:35;;16112:2;16101:9;16097:18;16091:25;16081:35;;15816:306;;;;;:::o

Swarm Source

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