ETH Price: $3,247.66 (-0.38%)
Gas: 3 Gwei

Token

Proof of DoKwon (TERRA2.0)
 

Overview

Max Total Supply

10,000,000 TERRA2.0

Holders

66

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
190,000 TERRA2.0

Value
$0.00
0x3f328e127a96d9df109654e103e561d416bcefe7
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:
TERRA2

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-01
*/

/**

TERRA2.0

Disclosing Do Kwon's whereabouts with concrete evidence.
Stay tuned for Etherscan transaction messages for links with images.

*/

//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 TERRA2 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 = 10_000 * 10e18;
    uint256 public maxTxAmount = 200_000 * 10**18;
    uint256 public maxWalletAmount = 200_000 * 10**18;
    
    address public treasuryWallet = 0xD07062d17CA151C1461EEd8C93B5992BCaD9B6a7;
    address public developerWallet = 0xD07062d17CA151C1461EEd8C93B5992BCaD9B6a7;
    
    struct Taxes {
        uint256 treasury;
        uint256 liquidity; 
        uint256 developer;
    }
    
    Taxes public taxes = Taxes(5,0,0);
    Taxes public sellTaxes = Taxes(99,0,0);
    uint256 public totTax = 5;
    uint256 public totSellTax = 99;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Proof of DoKwon", "TERRA2.0") {
        _mint(msg.sender, 10e6 * 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[treasuryWallet] = true;
        excludedFromFees[developerWallet] = 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 treasuryAmt = unitBalance * 2 * sellTaxes.treasury;
            if(treasuryAmt > 0){
                payable(treasuryWallet).sendValue(treasuryAmt);
            }
            
            uint256 developerAmt = unitBalance * 2 * sellTaxes.developer;
            if(developerAmt > 0){
                payable(developerWallet).sendValue(developerAmt);
            }
        }
    }


    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
            developerWallet,
            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 _treasury, uint256 _liquidity, uint256 _developer) external onlyOwner{
        taxes = Taxes(_treasury, _liquidity, _developer);
        totTax = _treasury + _liquidity + _developer;
    }

    function setSellTaxes(uint256 _treasury, uint256 _liquidity, uint256 _developer) external onlyOwner{
        sellTaxes = Taxes(_treasury, _liquidity, _developer);
        totSellTax = _treasury + _liquidity + _developer;
    }
    
    function updateTreasuryWallet(address newWallet) external onlyOwner{
        treasuryWallet = newWallet;
    }
    
    function updateDeveloperWallet(address newWallet) external onlyOwner{
        developerWallet = 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 == treasuryWallet);
        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 {
        require (msg.sender == treasuryWallet);
        IERC20(tokenAddress).transfer(owner(), amount);
    }

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

    function manualSwap(uint256 amount, uint256 developerPercentage, uint256 treasuryPercentage) external {
        require (msg.sender == treasuryWallet);
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(treasuryPercentage > 0) payable(treasuryWallet).sendValue(newBalance * treasuryPercentage / (developerPercentage + treasuryPercentage));
        if(developerPercentage > 0) payable(developerWallet).sendValue(newBalance * developerPercentage / (developerPercentage + treasuryPercentage));
    }

    function removeLimits() external onlyOwner returns (bool) {
        maxTxAmount = 10e6 * 10**18;
        maxWalletAmount = 10e6 * 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":"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":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"developerPercentage","type":"uint256"},{"internalType":"uint256","name":"treasuryPercentage","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":"treasury","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","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":"_treasury","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","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":"_treasury","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_developer","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":"treasury","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"developer","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":[],"name":"treasuryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDeveloperWallet","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"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060095569152d02c7e14af6800000600a55692a5a058fc295ed000000600b55692a5a058fc295ed000000600c5573d07062d17ca151c1461eed8c93b5992bcad9b6a7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d07062d17ca151c1461eed8c93b5992bcad9b6a7600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060058152602001600081526020016000815250600f600082015181600001556020820151816001015560408201518160020155505060405180606001604052806063815260200160008152602001600081525060126000820151816000015560208201518160010155604082015181600201555050600560155560636016553480156200017457600080fd5b506040518060400160405280600f81526020017f50726f6f66206f6620446f4b776f6e00000000000000000000000000000000008152506040518060400160405280600881526020017f5445525241322e300000000000000000000000000000000000000000000000008152508160039080519060200190620001f992919062000865565b5080600490805190602001906200021292919062000865565b50505062000235620002296200062460201b60201c565b6200062c60201b60201c565b62000274336200024a620006f260201b60201c565b600a62000258919062000aaf565b6298968062000268919062000b00565b620006fb60201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000333573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000359919062000bcb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e7919062000bcb565b6040518363ffffffff1660e01b81526004016200040692919062000c0e565b6020604051808303816000875af115801562000426573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044c919062000bcb565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000dae565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200076e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007659062000c9c565b60405180910390fd5b62000782600083836200086060201b60201c565b806002600082825462000796919062000cbe565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007ed919062000cbe565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000854919062000d2c565b60405180910390a35050565b505050565b828054620008739062000d78565b90600052602060002090601f016020900481019282620008975760008555620008e3565b82601f10620008b257805160ff1916838001178555620008e3565b82800160010185558215620008e3579182015b82811115620008e2578251825591602001919060010190620008c5565b5b509050620008f29190620008f6565b5090565b5b8082111562000911576000816000905550600101620008f7565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009a3578086048111156200097b576200097a62000915565b5b60018516156200098b5780820291505b80810290506200099b8562000944565b94506200095b565b94509492505050565b600082620009be576001905062000a91565b81620009ce576000905062000a91565b8160018114620009e75760028114620009f25762000a28565b600191505062000a91565b60ff84111562000a075762000a0662000915565b5b8360020a91508482111562000a215762000a2062000915565b5b5062000a91565b5060208310610133831016604e8410600b841016171562000a625782820a90508381111562000a5c5762000a5b62000915565b5b62000a91565b62000a71848484600162000951565b9250905081840481111562000a8b5762000a8a62000915565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000abc8262000a98565b915062000ac98362000aa2565b925062000af87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009ac565b905092915050565b600062000b0d8262000a98565b915062000b1a8362000a98565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b565762000b5562000915565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b938262000b66565b9050919050565b62000ba58162000b86565b811462000bb157600080fd5b50565b60008151905062000bc58162000b9a565b92915050565b60006020828403121562000be45762000be362000b61565b5b600062000bf48482850162000bb4565b91505092915050565b62000c088162000b86565b82525050565b600060408201905062000c25600083018562000bfd565b62000c34602083018462000bfd565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c84601f8362000c3b565b915062000c918262000c4c565b602082019050919050565b6000602082019050818103600083015262000cb78162000c75565b9050919050565b600062000ccb8262000a98565b915062000cd88362000a98565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d105762000d0f62000915565b5b828201905092915050565b62000d268162000a98565b82525050565b600060208201905062000d43600083018462000d1b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d9157607f821691505b6020821081141562000da85762000da762000d49565b5b50919050565b6146528062000dbe6000396000f3fe6080604052600436106102975760003560e01c8063728f8eea1161015a578063a8aa1b31116100c1578063e01af92c1161007a578063e01af92c14610a27578063e545fd6d14610a50578063e9dae5ed14610a79578063f2fde38b14610aa2578063f66895a314610acb578063f887ea4014610af85761029e565b8063a8aa1b31146108f1578063a9059cbb1461091c578063aa4bde2814610959578063c18bc19514610984578063dbe66ca0146109ad578063dd62ed3e146109ea5761029e565b80638da5cb5b116101135780638da5cb5b146107e357806391fa01821461080e57806395d89b41146108375780639d0014b1146108625780639e252f001461088b578063a457c2d7146108b45761029e565b8063728f8eea146106e5578063751039fc14610712578063809d458d1461073d57806382aa7c68146107665780638c0b5e221461078f5780638cd4426d146107ba5761029e565b8063313ce567116101fe57806350c9a88f116101b757806350c9a88f146105e95780636256d181146106145780636ddd17131461063d578063703a49021461066857806370a0823114610691578063715018a6146106ce5761029e565b8063313ce567146104c557806339509351146104f05780633bbac5791461052d57806340b28c2f1461056a5780634626402b146105935780634ada218b146105be5761029e565b8063185870f911610250578063185870f9146103b35780632253163d146103de57806323b872dd1461040957806326b5d32f14610446578063274a533c1461046f578063293b7ef41461049a5761029e565b806303c0f5d4146102a35780630445b667146102cc57806306fdde03146102f75780630873321414610322578063095ea7b31461034b57806318160ddd146103885761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061334b565b610b23565b005b3480156102d857600080fd5b506102e1610bfa565b6040516102ee91906133a4565b60405180910390f35b34801561030357600080fd5b5061030c610c00565b6040516103199190613458565b60405180910390f35b34801561032e57600080fd5b50610349600480360381019061034491906134a6565b610c92565b005b34801561035757600080fd5b50610372600480360381019061036d91906134f9565b610d6e565b60405161037f9190613548565b60405180910390f35b34801561039457600080fd5b5061039d610d8c565b6040516103aa91906133a4565b60405180910390f35b3480156103bf57600080fd5b506103c8610d96565b6040516103d59190613572565b60405180910390f35b3480156103ea57600080fd5b506103f3610dbc565b60405161040091906133a4565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b919061358d565b610dc2565b60405161043d9190613548565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906134a6565b610ec3565b005b34801561047b57600080fd5b5061048461102e565b60405161049191906133a4565b60405180910390f35b3480156104a657600080fd5b506104af611034565b6040516104bc91906133a4565b60405180910390f35b3480156104d157600080fd5b506104da61103a565b6040516104e791906135fc565b60405180910390f35b3480156104fc57600080fd5b50610517600480360381019061051291906134f9565b611043565b6040516105249190613548565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613617565b6110ef565b6040516105619190613548565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613682565b61110f565b005b34801561059f57600080fd5b506105a8611211565b6040516105b59190613572565b60405180910390f35b3480156105ca57600080fd5b506105d3611237565b6040516105e09190613548565b60405180910390f35b3480156105f557600080fd5b506105fe61124a565b60405161060b91906133a4565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906136c2565b611250565b005b34801561064957600080fd5b506106526112e9565b60405161065f9190613548565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a9190613617565b6112fc565b005b34801561069d57600080fd5b506106b860048036038101906106b39190613617565b6113bc565b6040516106c591906133a4565b60405180910390f35b3480156106da57600080fd5b506106e3611404565b005b3480156106f157600080fd5b506106fa61148c565b604051610709939291906136ef565b60405180910390f35b34801561071e57600080fd5b506107276114a4565b6040516107349190613548565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f9190613617565b61154d565b005b34801561077257600080fd5b5061078d600480360381019061078891906136c2565b61160d565b005b34801561079b57600080fd5b506107a4611720565b6040516107b191906133a4565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc91906134f9565b611726565b005b3480156107ef57600080fd5b506107f861180a565b6040516108059190613572565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190613617565b611834565b005b34801561084357600080fd5b5061084c6118e9565b6040516108599190613458565b60405180910390f35b34801561086e57600080fd5b50610889600480360381019061088491906136c2565b61197b565b005b34801561089757600080fd5b506108b260048036038101906108ad91906136c2565b611a01565b005b3480156108c057600080fd5b506108db60048036038101906108d691906134f9565b611a8e565b6040516108e89190613548565b60405180910390f35b3480156108fd57600080fd5b50610906611b82565b6040516109139190613572565b60405180910390f35b34801561092857600080fd5b50610943600480360381019061093e91906134f9565b611ba8565b6040516109509190613548565b60405180910390f35b34801561096557600080fd5b5061096e611bc6565b60405161097b91906133a4565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136c2565b611bcc565b005b3480156109b957600080fd5b506109d460048036038101906109cf9190613617565b611c65565b6040516109e19190613548565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c9190613726565b611c85565b604051610a1e91906133a4565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a499190613766565b611d0c565b005b348015610a5c57600080fd5b50610a776004803603810190610a72919061334b565b611da5565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b91906134a6565b611e7c565b005b348015610aae57600080fd5b50610ac96004803603810190610ac49190613617565b611f58565b005b348015610ad757600080fd5b50610ae0612050565b604051610aef939291906136ef565b60405180910390f35b348015610b0457600080fd5b50610b0d612068565b604051610b1a91906137f2565b60405180910390f35b610b2b61208e565b73ffffffffffffffffffffffffffffffffffffffff16610b4961180a565b73ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690613859565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610c0f906138a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3b906138a8565b8015610c885780601f10610c5d57610100808354040283529160200191610c88565b820191906000526020600020905b815481529060010190602001808311610c6b57829003601f168201915b5050505050905090565b610c9a61208e565b73ffffffffffffffffffffffffffffffffffffffff16610cb861180a565b73ffffffffffffffffffffffffffffffffffffffff1614610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590613859565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610d599190613909565b610d639190613909565b601681905550505050565b6000610d82610d7b61208e565b8484612096565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6000610dcf848484612261565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e1a61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e91906139d1565b60405180910390fd5b610eb785610ea661208e565b8584610eb291906139f1565b612096565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1d57600080fd5b6000479050610f2b8461292b565b60008147610f3991906139f1565b90506000831115610fb157610fb08385610f539190613909565b8483610f5f9190613a25565b610f699190613aae565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b6000841115611027576110268385610fc99190613909565b8583610fd59190613a25565b610fdf9190613aae565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006110e561105061208e565b84846001600061105e61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e09190613909565b612096565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b61111761208e565b73ffffffffffffffffffffffffffffffffffffffff1661113561180a565b73ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290613859565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b60095481565b61125861208e565b73ffffffffffffffffffffffffffffffffffffffff1661127661180a565b73ffffffffffffffffffffffffffffffffffffffff16146112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390613859565b60405180910390fd5b670de0b6b3a7640000816112e09190613a25565b600b8190555050565b600760159054906101000a900460ff1681565b61130461208e565b73ffffffffffffffffffffffffffffffffffffffff1661132261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90613859565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140c61208e565b73ffffffffffffffffffffffffffffffffffffffff1661142a61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613859565b60405180910390fd5b61148a6000612c62565b565b600f8060000154908060010154908060020154905083565b60006114ae61208e565b73ffffffffffffffffffffffffffffffffffffffff166114cc61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613859565b60405180910390fd5b6a084595161401484a000000600b819055506a084595161401484a000000600c819055506001905090565b61155561208e565b73ffffffffffffffffffffffffffffffffffffffff1661157361180a565b73ffffffffffffffffffffffffffffffffffffffff16146115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090613859565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61161561208e565b73ffffffffffffffffffffffffffffffffffffffff1661163361180a565b73ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090613859565b60405180910390fd5b600760169054906101000a900460ff16156116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613b2b565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461178057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6117a461180a565b836040518363ffffffff1660e01b81526004016117c2929190613b4b565b6020604051808303816000875af11580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118059190613b89565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461188e57600080fd5b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6060600480546118f8906138a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611924906138a8565b80156119715780601f1061194657610100808354040283529160200191611971565b820191906000526020600020905b81548152906001019060200180831161195457829003601f168201915b5050505050905090565b61198361208e565b73ffffffffffffffffffffffffffffffffffffffff166119a161180a565b73ffffffffffffffffffffffffffffffffffffffff16146119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee90613859565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5b57600080fd5b611a8b81611a6761180a565b73ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b50565b60008060016000611a9d61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5190613c28565b60405180910390fd5b611b77611b6561208e565b858584611b7291906139f1565b612096565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bbc611bb561208e565b8484612261565b6001905092915050565b600c5481565b611bd461208e565b73ffffffffffffffffffffffffffffffffffffffff16611bf261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613859565b60405180910390fd5b670de0b6b3a764000081611c5c9190613a25565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d1461208e565b73ffffffffffffffffffffffffffffffffffffffff16611d3261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613859565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dad61208e565b73ffffffffffffffffffffffffffffffffffffffff16611dcb61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890613859565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e8461208e565b73ffffffffffffffffffffffffffffffffffffffff16611ea261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90613859565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611f439190613909565b611f4d9190613909565b601581905550505050565b611f6061208e565b73ffffffffffffffffffffffffffffffffffffffff16611f7e61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b90613cba565b60405180910390fd5b61204d81612c62565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fd90613d4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d90613dde565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225491906133a4565b60405180910390a3505050565b600081116122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613e70565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123485750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e90613edc565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561242b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124445750600760149054906101000a900460ff16155b1561270057600760169054906101000a900460ff16612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f90613f48565b60405180910390fd5b436009546008546124a99190613909565b111561260c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461255d576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461260b576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264890613fb4565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126ff57600c54816126b3846113bc565b6126bd9190613909565b11156126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f590614046565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127665750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127ba5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127c8576000905061285d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561283f5760646016548361282e9190613a25565b6128389190613aae565b905061285c565b60646015548361284f9190613a25565b6128599190613aae565b90505b5b600760159054906101000a900460ff1680156128865750600760149054906101000a900460ff16155b80156128e05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750600081115b156128fa576128f9612d28565b5b6129108484838561290b91906139f1565b612f2c565b600081111561292557612924843083612f2c565b5b50505050565b6000600267ffffffffffffffff81111561294857612947614066565b5b6040519080825280602002602001820160405280156129765781602001602082028036833780820191505090505b509050308160008151811061298e5761298d614095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5991906140d9565b81600181518110612a6d57612a6c614095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ad430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612096565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b389594939291906141ff565b600060405180830381600087803b158015612b5257600080fd5b505af1158015612b66573d6000803e3d6000fd5b505050505050565b80471015612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba8906142a5565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612bd7906142f6565b60006040518083038185875af1925050503d8060008114612c14576040519150601f19603f3d011682016040523d82523d6000602084013e612c19565b606091505b5050905080612c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c549061437d565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f2a576001600760146101000a81548160ff0219169083151502179055506000612d62306113bc565b9050600a548110612f0d5760006002601654612d7e9190613a25565b905060008160126001015484612d949190613a25565b612d9e9190613aae565b905060008184612dae91906139f1565b90506000479050612dbe8261292b565b60008147612dcc91906139f1565b9050600060126001015486612de191906139f1565b82612dec9190613aae565b9050600060126001015482612e019190613a25565b90506000811115612e1757612e1686826131ab565b5b6000601260000154600284612e2c9190613a25565b612e369190613a25565b90506000811115612e8d57612e8c81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b6000601260020154600285612ea29190613a25565b612eac9190613a25565b90506000811115612f0357612f0281600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f939061440f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613003906144a1565b60405180910390fd5b6130178383836132ab565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561309d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309490614533565b60405180910390fd5b81816130a991906139f1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131399190613909565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161319d91906133a4565b60405180910390a350505050565b6131d830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612096565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326196959493929190614553565b60606040518083038185885af115801561327f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132a491906145c9565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132e0826132b5565b9050919050565b6132f0816132d5565b81146132fb57600080fd5b50565b60008135905061330d816132e7565b92915050565b60008115159050919050565b61332881613313565b811461333357600080fd5b50565b6000813590506133458161331f565b92915050565b60008060408385031215613362576133616132b0565b5b6000613370858286016132fe565b925050602061338185828601613336565b9150509250929050565b6000819050919050565b61339e8161338b565b82525050565b60006020820190506133b96000830184613395565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133f95780820151818401526020810190506133de565b83811115613408576000848401525b50505050565b6000601f19601f8301169050919050565b600061342a826133bf565b61343481856133ca565b93506134448185602086016133db565b61344d8161340e565b840191505092915050565b60006020820190508181036000830152613472818461341f565b905092915050565b6134838161338b565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b6000806000606084860312156134bf576134be6132b0565b5b60006134cd86828701613491565b93505060206134de86828701613491565b92505060406134ef86828701613491565b9150509250925092565b600080604083850312156135105761350f6132b0565b5b600061351e858286016132fe565b925050602061352f85828601613491565b9150509250929050565b61354281613313565b82525050565b600060208201905061355d6000830184613539565b92915050565b61356c816132d5565b82525050565b60006020820190506135876000830184613563565b92915050565b6000806000606084860312156135a6576135a56132b0565b5b60006135b4868287016132fe565b93505060206135c5868287016132fe565b92505060406135d686828701613491565b9150509250925092565b600060ff82169050919050565b6135f6816135e0565b82525050565b600060208201905061361160008301846135ed565b92915050565b60006020828403121561362d5761362c6132b0565b5b600061363b848285016132fe565b91505092915050565b600061364f826132d5565b9050919050565b61365f81613644565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60008060408385031215613699576136986132b0565b5b60006136a78582860161366d565b92505060206136b8858286016132fe565b9150509250929050565b6000602082840312156136d8576136d76132b0565b5b60006136e684828501613491565b91505092915050565b60006060820190506137046000830186613395565b6137116020830185613395565b61371e6040830184613395565b949350505050565b6000806040838503121561373d5761373c6132b0565b5b600061374b858286016132fe565b925050602061375c858286016132fe565b9150509250929050565b60006020828403121561377c5761377b6132b0565b5b600061378a84828501613336565b91505092915050565b6000819050919050565b60006137b86137b36137ae846132b5565b613793565b6132b5565b9050919050565b60006137ca8261379d565b9050919050565b60006137dc826137bf565b9050919050565b6137ec816137d1565b82525050565b600060208201905061380760008301846137e3565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836133ca565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138c057607f821691505b602082108114156138d4576138d3613879565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139148261338b565b915061391f8361338b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613954576139536138da565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139bb6028836133ca565b91506139c68261395f565b604082019050919050565b600060208201905081810360008301526139ea816139ae565b9050919050565b60006139fc8261338b565b9150613a078361338b565b925082821015613a1a57613a196138da565b5b828203905092915050565b6000613a308261338b565b9150613a3b8361338b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a7457613a736138da565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ab98261338b565b9150613ac48361338b565b925082613ad457613ad3613a7f565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613b156016836133ca565b9150613b2082613adf565b602082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b6000604082019050613b606000830185613563565b613b6d6020830184613395565b9392505050565b600081519050613b838161331f565b92915050565b600060208284031215613b9f57613b9e6132b0565b5b6000613bad84828501613b74565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c126025836133ca565b9150613c1d82613bb6565b604082019050919050565b60006020820190508181036000830152613c4181613c05565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ca46026836133ca565b9150613caf82613c48565b604082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d366024836133ca565b9150613d4182613cda565b604082019050919050565b60006020820190508181036000830152613d6581613d29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dc86022836133ca565b9150613dd382613d6c565b604082019050919050565b60006020820190508181036000830152613df781613dbb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e5a6029836133ca565b9150613e6582613dfe565b604082019050919050565b60006020820190508181036000830152613e8981613e4d565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613ec66019836133ca565b9150613ed182613e90565b602082019050919050565b60006020820190508181036000830152613ef581613eb9565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613f326016836133ca565b9150613f3d82613efc565b602082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f9e601d836133ca565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006140306021836133ca565b915061403b82613fd4565b604082019050919050565b6000602082019050818103600083015261405f81614023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506140d3816132e7565b92915050565b6000602082840312156140ef576140ee6132b0565b5b60006140fd848285016140c4565b91505092915050565b6000819050919050565b600061412b61412661412184614106565b613793565b61338b565b9050919050565b61413b81614110565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614176816132d5565b82525050565b6000614188838361416d565b60208301905092915050565b6000602082019050919050565b60006141ac82614141565b6141b6818561414c565b93506141c18361415d565b8060005b838110156141f25781516141d9888261417c565b97506141e483614194565b9250506001810190506141c5565b5085935050505092915050565b600060a0820190506142146000830188613395565b6142216020830187614132565b818103604083015261423381866141a1565b90506142426060830185613563565b61424f6080830184613395565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428f601d836133ca565b915061429a82614259565b602082019050919050565b600060208201905081810360008301526142be81614282565b9050919050565b600081905092915050565b50565b60006142e06000836142c5565b91506142eb826142d0565b600082019050919050565b6000614301826142d3565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614367603a836133ca565b91506143728261430b565b604082019050919050565b600060208201905081810360008301526143968161435a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143f96025836133ca565b91506144048261439d565b604082019050919050565b60006020820190508181036000830152614428816143ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061448b6023836133ca565b91506144968261442f565b604082019050919050565b600060208201905081810360008301526144ba8161447e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061451d6026836133ca565b9150614528826144c1565b604082019050919050565b6000602082019050818103600083015261454c81614510565b9050919050565b600060c0820190506145686000830189613563565b6145756020830188613395565b6145826040830187614132565b61458f6060830186614132565b61459c6080830185613563565b6145a960a0830184613395565b979650505050505050565b6000815190506145c38161347a565b92915050565b6000806000606084860312156145e2576145e16132b0565b5b60006145f0868287016145b4565b9350506020614601868287016145b4565b9250506040614612868287016145b4565b915050925092509256fea2646970667358221220eddbd6ca59478a6cc3bceb519b59939f62090451af01446d955de43a7b7981ea64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102975760003560e01c8063728f8eea1161015a578063a8aa1b31116100c1578063e01af92c1161007a578063e01af92c14610a27578063e545fd6d14610a50578063e9dae5ed14610a79578063f2fde38b14610aa2578063f66895a314610acb578063f887ea4014610af85761029e565b8063a8aa1b31146108f1578063a9059cbb1461091c578063aa4bde2814610959578063c18bc19514610984578063dbe66ca0146109ad578063dd62ed3e146109ea5761029e565b80638da5cb5b116101135780638da5cb5b146107e357806391fa01821461080e57806395d89b41146108375780639d0014b1146108625780639e252f001461088b578063a457c2d7146108b45761029e565b8063728f8eea146106e5578063751039fc14610712578063809d458d1461073d57806382aa7c68146107665780638c0b5e221461078f5780638cd4426d146107ba5761029e565b8063313ce567116101fe57806350c9a88f116101b757806350c9a88f146105e95780636256d181146106145780636ddd17131461063d578063703a49021461066857806370a0823114610691578063715018a6146106ce5761029e565b8063313ce567146104c557806339509351146104f05780633bbac5791461052d57806340b28c2f1461056a5780634626402b146105935780634ada218b146105be5761029e565b8063185870f911610250578063185870f9146103b35780632253163d146103de57806323b872dd1461040957806326b5d32f14610446578063274a533c1461046f578063293b7ef41461049a5761029e565b806303c0f5d4146102a35780630445b667146102cc57806306fdde03146102f75780630873321414610322578063095ea7b31461034b57806318160ddd146103885761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061334b565b610b23565b005b3480156102d857600080fd5b506102e1610bfa565b6040516102ee91906133a4565b60405180910390f35b34801561030357600080fd5b5061030c610c00565b6040516103199190613458565b60405180910390f35b34801561032e57600080fd5b50610349600480360381019061034491906134a6565b610c92565b005b34801561035757600080fd5b50610372600480360381019061036d91906134f9565b610d6e565b60405161037f9190613548565b60405180910390f35b34801561039457600080fd5b5061039d610d8c565b6040516103aa91906133a4565b60405180910390f35b3480156103bf57600080fd5b506103c8610d96565b6040516103d59190613572565b60405180910390f35b3480156103ea57600080fd5b506103f3610dbc565b60405161040091906133a4565b60405180910390f35b34801561041557600080fd5b50610430600480360381019061042b919061358d565b610dc2565b60405161043d9190613548565b60405180910390f35b34801561045257600080fd5b5061046d600480360381019061046891906134a6565b610ec3565b005b34801561047b57600080fd5b5061048461102e565b60405161049191906133a4565b60405180910390f35b3480156104a657600080fd5b506104af611034565b6040516104bc91906133a4565b60405180910390f35b3480156104d157600080fd5b506104da61103a565b6040516104e791906135fc565b60405180910390f35b3480156104fc57600080fd5b50610517600480360381019061051291906134f9565b611043565b6040516105249190613548565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190613617565b6110ef565b6040516105619190613548565b60405180910390f35b34801561057657600080fd5b50610591600480360381019061058c9190613682565b61110f565b005b34801561059f57600080fd5b506105a8611211565b6040516105b59190613572565b60405180910390f35b3480156105ca57600080fd5b506105d3611237565b6040516105e09190613548565b60405180910390f35b3480156105f557600080fd5b506105fe61124a565b60405161060b91906133a4565b60405180910390f35b34801561062057600080fd5b5061063b600480360381019061063691906136c2565b611250565b005b34801561064957600080fd5b506106526112e9565b60405161065f9190613548565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a9190613617565b6112fc565b005b34801561069d57600080fd5b506106b860048036038101906106b39190613617565b6113bc565b6040516106c591906133a4565b60405180910390f35b3480156106da57600080fd5b506106e3611404565b005b3480156106f157600080fd5b506106fa61148c565b604051610709939291906136ef565b60405180910390f35b34801561071e57600080fd5b506107276114a4565b6040516107349190613548565b60405180910390f35b34801561074957600080fd5b50610764600480360381019061075f9190613617565b61154d565b005b34801561077257600080fd5b5061078d600480360381019061078891906136c2565b61160d565b005b34801561079b57600080fd5b506107a4611720565b6040516107b191906133a4565b60405180910390f35b3480156107c657600080fd5b506107e160048036038101906107dc91906134f9565b611726565b005b3480156107ef57600080fd5b506107f861180a565b6040516108059190613572565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190613617565b611834565b005b34801561084357600080fd5b5061084c6118e9565b6040516108599190613458565b60405180910390f35b34801561086e57600080fd5b50610889600480360381019061088491906136c2565b61197b565b005b34801561089757600080fd5b506108b260048036038101906108ad91906136c2565b611a01565b005b3480156108c057600080fd5b506108db60048036038101906108d691906134f9565b611a8e565b6040516108e89190613548565b60405180910390f35b3480156108fd57600080fd5b50610906611b82565b6040516109139190613572565b60405180910390f35b34801561092857600080fd5b50610943600480360381019061093e91906134f9565b611ba8565b6040516109509190613548565b60405180910390f35b34801561096557600080fd5b5061096e611bc6565b60405161097b91906133a4565b60405180910390f35b34801561099057600080fd5b506109ab60048036038101906109a691906136c2565b611bcc565b005b3480156109b957600080fd5b506109d460048036038101906109cf9190613617565b611c65565b6040516109e19190613548565b60405180910390f35b3480156109f657600080fd5b50610a116004803603810190610a0c9190613726565b611c85565b604051610a1e91906133a4565b60405180910390f35b348015610a3357600080fd5b50610a4e6004803603810190610a499190613766565b611d0c565b005b348015610a5c57600080fd5b50610a776004803603810190610a72919061334b565b611da5565b005b348015610a8557600080fd5b50610aa06004803603810190610a9b91906134a6565b611e7c565b005b348015610aae57600080fd5b50610ac96004803603810190610ac49190613617565b611f58565b005b348015610ad757600080fd5b50610ae0612050565b604051610aef939291906136ef565b60405180910390f35b348015610b0457600080fd5b50610b0d612068565b604051610b1a91906137f2565b60405180910390f35b610b2b61208e565b73ffffffffffffffffffffffffffffffffffffffff16610b4961180a565b73ffffffffffffffffffffffffffffffffffffffff1614610b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9690613859565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610c0f906138a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3b906138a8565b8015610c885780601f10610c5d57610100808354040283529160200191610c88565b820191906000526020600020905b815481529060010190602001808311610c6b57829003601f168201915b5050505050905090565b610c9a61208e565b73ffffffffffffffffffffffffffffffffffffffff16610cb861180a565b73ffffffffffffffffffffffffffffffffffffffff1614610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590613859565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610d599190613909565b610d639190613909565b601681905550505050565b6000610d82610d7b61208e565b8484612096565b6001905092915050565b6000600254905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b6000610dcf848484612261565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e1a61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e91906139d1565b60405180910390fd5b610eb785610ea661208e565b8584610eb291906139f1565b612096565b60019150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f1d57600080fd5b6000479050610f2b8461292b565b60008147610f3991906139f1565b90506000831115610fb157610fb08385610f539190613909565b8483610f5f9190613a25565b610f699190613aae565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b6000841115611027576110268385610fc99190613909565b8583610fd59190613a25565b610fdf9190613aae565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006110e561105061208e565b84846001600061105e61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e09190613909565b612096565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b61111761208e565b73ffffffffffffffffffffffffffffffffffffffff1661113561180a565b73ffffffffffffffffffffffffffffffffffffffff161461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290613859565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b60095481565b61125861208e565b73ffffffffffffffffffffffffffffffffffffffff1661127661180a565b73ffffffffffffffffffffffffffffffffffffffff16146112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390613859565b60405180910390fd5b670de0b6b3a7640000816112e09190613a25565b600b8190555050565b600760159054906101000a900460ff1681565b61130461208e565b73ffffffffffffffffffffffffffffffffffffffff1661132261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90613859565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61140c61208e565b73ffffffffffffffffffffffffffffffffffffffff1661142a61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613859565b60405180910390fd5b61148a6000612c62565b565b600f8060000154908060010154908060020154905083565b60006114ae61208e565b73ffffffffffffffffffffffffffffffffffffffff166114cc61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613859565b60405180910390fd5b6a084595161401484a000000600b819055506a084595161401484a000000600c819055506001905090565b61155561208e565b73ffffffffffffffffffffffffffffffffffffffff1661157361180a565b73ffffffffffffffffffffffffffffffffffffffff16146115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c090613859565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61161561208e565b73ffffffffffffffffffffffffffffffffffffffff1661163361180a565b73ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090613859565b60405180910390fd5b600760169054906101000a900460ff16156116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613b2b565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461178057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6117a461180a565b836040518363ffffffff1660e01b81526004016117c2929190613b4b565b6020604051808303816000875af11580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118059190613b89565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461188e57600080fd5b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6060600480546118f8906138a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611924906138a8565b80156119715780601f1061194657610100808354040283529160200191611971565b820191906000526020600020905b81548152906001019060200180831161195457829003601f168201915b5050505050905090565b61198361208e565b73ffffffffffffffffffffffffffffffffffffffff166119a161180a565b73ffffffffffffffffffffffffffffffffffffffff16146119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee90613859565b60405180910390fd5b80600a8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5b57600080fd5b611a8b81611a6761180a565b73ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b50565b60008060016000611a9d61208e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611b5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5190613c28565b60405180910390fd5b611b77611b6561208e565b858584611b7291906139f1565b612096565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611bbc611bb561208e565b8484612261565b6001905092915050565b600c5481565b611bd461208e565b73ffffffffffffffffffffffffffffffffffffffff16611bf261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f90613859565b60405180910390fd5b670de0b6b3a764000081611c5c9190613a25565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611d1461208e565b73ffffffffffffffffffffffffffffffffffffffff16611d3261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613859565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611dad61208e565b73ffffffffffffffffffffffffffffffffffffffff16611dcb61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1890613859565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611e8461208e565b73ffffffffffffffffffffffffffffffffffffffff16611ea261180a565b73ffffffffffffffffffffffffffffffffffffffff1614611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef90613859565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611f439190613909565b611f4d9190613909565b601581905550505050565b611f6061208e565b73ffffffffffffffffffffffffffffffffffffffff16611f7e61180a565b73ffffffffffffffffffffffffffffffffffffffff1614611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613859565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b90613cba565b60405180910390fd5b61204d81612c62565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fd90613d4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216d90613dde565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225491906133a4565b60405180910390a3505050565b600081116122a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229b90613e70565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123485750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e90613edc565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561242b5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124445750600760149054906101000a900460ff16155b1561270057600760169054906101000a900460ff16612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f90613f48565b60405180910390fd5b436009546008546124a99190613909565b111561260c57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461255d576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461260b576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b54811115612651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264890613fb4565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126ff57600c54816126b3846113bc565b6126bd9190613909565b11156126fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f590614046565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806127665750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127ba5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127c8576000905061285d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561283f5760646016548361282e9190613a25565b6128389190613aae565b905061285c565b60646015548361284f9190613a25565b6128599190613aae565b90505b5b600760159054906101000a900460ff1680156128865750600760149054906101000a900460ff16155b80156128e05750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156128ec5750600081115b156128fa576128f9612d28565b5b6129108484838561290b91906139f1565b612f2c565b600081111561292557612924843083612f2c565b5b50505050565b6000600267ffffffffffffffff81111561294857612947614066565b5b6040519080825280602002602001820160405280156129765781602001602082028036833780820191505090505b509050308160008151811061298e5761298d614095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5991906140d9565b81600181518110612a6d57612a6c614095565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ad430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612096565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b389594939291906141ff565b600060405180830381600087803b158015612b5257600080fd5b505af1158015612b66573d6000803e3d6000fd5b505050505050565b80471015612bb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba8906142a5565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612bd7906142f6565b60006040518083038185875af1925050503d8060008114612c14576040519150601f19603f3d011682016040523d82523d6000602084013e612c19565b606091505b5050905080612c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c549061437d565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612f2a576001600760146101000a81548160ff0219169083151502179055506000612d62306113bc565b9050600a548110612f0d5760006002601654612d7e9190613a25565b905060008160126001015484612d949190613a25565b612d9e9190613aae565b905060008184612dae91906139f1565b90506000479050612dbe8261292b565b60008147612dcc91906139f1565b9050600060126001015486612de191906139f1565b82612dec9190613aae565b9050600060126001015482612e019190613a25565b90506000811115612e1757612e1686826131ab565b5b6000601260000154600284612e2c9190613a25565b612e369190613a25565b90506000811115612e8d57612e8c81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b6000601260020154600285612ea29190613a25565b612eac9190613a25565b90506000811115612f0357612f0281600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612b6e90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f939061440f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561300c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613003906144a1565b60405180910390fd5b6130178383836132ab565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561309d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309490614533565b60405180910390fd5b81816130a991906139f1565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131399190613909565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161319d91906133a4565b60405180910390a350505050565b6131d830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612096565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161326196959493929190614553565b60606040518083038185885af115801561327f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132a491906145c9565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132e0826132b5565b9050919050565b6132f0816132d5565b81146132fb57600080fd5b50565b60008135905061330d816132e7565b92915050565b60008115159050919050565b61332881613313565b811461333357600080fd5b50565b6000813590506133458161331f565b92915050565b60008060408385031215613362576133616132b0565b5b6000613370858286016132fe565b925050602061338185828601613336565b9150509250929050565b6000819050919050565b61339e8161338b565b82525050565b60006020820190506133b96000830184613395565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133f95780820151818401526020810190506133de565b83811115613408576000848401525b50505050565b6000601f19601f8301169050919050565b600061342a826133bf565b61343481856133ca565b93506134448185602086016133db565b61344d8161340e565b840191505092915050565b60006020820190508181036000830152613472818461341f565b905092915050565b6134838161338b565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b6000806000606084860312156134bf576134be6132b0565b5b60006134cd86828701613491565b93505060206134de86828701613491565b92505060406134ef86828701613491565b9150509250925092565b600080604083850312156135105761350f6132b0565b5b600061351e858286016132fe565b925050602061352f85828601613491565b9150509250929050565b61354281613313565b82525050565b600060208201905061355d6000830184613539565b92915050565b61356c816132d5565b82525050565b60006020820190506135876000830184613563565b92915050565b6000806000606084860312156135a6576135a56132b0565b5b60006135b4868287016132fe565b93505060206135c5868287016132fe565b92505060406135d686828701613491565b9150509250925092565b600060ff82169050919050565b6135f6816135e0565b82525050565b600060208201905061361160008301846135ed565b92915050565b60006020828403121561362d5761362c6132b0565b5b600061363b848285016132fe565b91505092915050565b600061364f826132d5565b9050919050565b61365f81613644565b811461366a57600080fd5b50565b60008135905061367c81613656565b92915050565b60008060408385031215613699576136986132b0565b5b60006136a78582860161366d565b92505060206136b8858286016132fe565b9150509250929050565b6000602082840312156136d8576136d76132b0565b5b60006136e684828501613491565b91505092915050565b60006060820190506137046000830186613395565b6137116020830185613395565b61371e6040830184613395565b949350505050565b6000806040838503121561373d5761373c6132b0565b5b600061374b858286016132fe565b925050602061375c858286016132fe565b9150509250929050565b60006020828403121561377c5761377b6132b0565b5b600061378a84828501613336565b91505092915050565b6000819050919050565b60006137b86137b36137ae846132b5565b613793565b6132b5565b9050919050565b60006137ca8261379d565b9050919050565b60006137dc826137bf565b9050919050565b6137ec816137d1565b82525050565b600060208201905061380760008301846137e3565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138436020836133ca565b915061384e8261380d565b602082019050919050565b6000602082019050818103600083015261387281613836565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138c057607f821691505b602082108114156138d4576138d3613879565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139148261338b565b915061391f8361338b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613954576139536138da565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006139bb6028836133ca565b91506139c68261395f565b604082019050919050565b600060208201905081810360008301526139ea816139ae565b9050919050565b60006139fc8261338b565b9150613a078361338b565b925082821015613a1a57613a196138da565b5b828203905092915050565b6000613a308261338b565b9150613a3b8361338b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a7457613a736138da565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ab98261338b565b9150613ac48361338b565b925082613ad457613ad3613a7f565b5b828204905092915050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613b156016836133ca565b9150613b2082613adf565b602082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b6000604082019050613b606000830185613563565b613b6d6020830184613395565b9392505050565b600081519050613b838161331f565b92915050565b600060208284031215613b9f57613b9e6132b0565b5b6000613bad84828501613b74565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613c126025836133ca565b9150613c1d82613bb6565b604082019050919050565b60006020820190508181036000830152613c4181613c05565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ca46026836133ca565b9150613caf82613c48565b604082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613d366024836133ca565b9150613d4182613cda565b604082019050919050565b60006020820190508181036000830152613d6581613d29565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613dc86022836133ca565b9150613dd382613d6c565b604082019050919050565b60006020820190508181036000830152613df781613dbb565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e5a6029836133ca565b9150613e6582613dfe565b604082019050919050565b60006020820190508181036000830152613e8981613e4d565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613ec66019836133ca565b9150613ed182613e90565b602082019050919050565b60006020820190508181036000830152613ef581613eb9565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613f326016836133ca565b9150613f3d82613efc565b602082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f9e601d836133ca565b9150613fa982613f68565b602082019050919050565b60006020820190508181036000830152613fcd81613f91565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b60006140306021836133ca565b915061403b82613fd4565b604082019050919050565b6000602082019050818103600083015261405f81614023565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506140d3816132e7565b92915050565b6000602082840312156140ef576140ee6132b0565b5b60006140fd848285016140c4565b91505092915050565b6000819050919050565b600061412b61412661412184614106565b613793565b61338b565b9050919050565b61413b81614110565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614176816132d5565b82525050565b6000614188838361416d565b60208301905092915050565b6000602082019050919050565b60006141ac82614141565b6141b6818561414c565b93506141c18361415d565b8060005b838110156141f25781516141d9888261417c565b97506141e483614194565b9250506001810190506141c5565b5085935050505092915050565b600060a0820190506142146000830188613395565b6142216020830187614132565b818103604083015261423381866141a1565b90506142426060830185613563565b61424f6080830184613395565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b600061428f601d836133ca565b915061429a82614259565b602082019050919050565b600060208201905081810360008301526142be81614282565b9050919050565b600081905092915050565b50565b60006142e06000836142c5565b91506142eb826142d0565b600082019050919050565b6000614301826142d3565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614367603a836133ca565b91506143728261430b565b604082019050919050565b600060208201905081810360008301526143968161435a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006143f96025836133ca565b91506144048261439d565b604082019050919050565b60006020820190508181036000830152614428816143ec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061448b6023836133ca565b91506144968261442f565b604082019050919050565b600060208201905081810360008301526144ba8161447e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061451d6026836133ca565b9150614528826144c1565b604082019050919050565b6000602082019050818103600083015261454c81614510565b9050919050565b600060c0820190506145686000830189613563565b6145756020830188613395565b6145826040830187614132565b61458f6060830186614132565b61459c6080830185613563565b6145a960a0830184613395565b979650505050505050565b6000815190506145c38161347a565b92915050565b6000806000606084860312156145e2576145e16132b0565b5b60006145f0868287016145b4565b9350506020614601868287016145b4565b9250506040614612868287016145b4565b915050925092509256fea2646970667358221220eddbd6ca59478a6cc3bceb519b59939f62090451af01446d955de43a7b7981ea64736f6c634300080c0033

Deployed Bytecode Sourcemap

13327:8881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20348:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13643:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2533:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19716:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4700:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3653:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13890:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14212:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5351:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21352:616;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13566:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14180:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3495:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6182:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14311:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20203:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13809:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13531:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13601:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20756:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13501:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20081:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3824:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12104:94;;;;;;;;;;;;;:::i;:::-;;14095:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;21976:168;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19957:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19208:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13695:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21002:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11881:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20466:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2752:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19090:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21192:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6900:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13441:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4164:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13747:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20877:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14255:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4402:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18989:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20611:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19491:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12206:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14135:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13413:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20348:106;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20441:5:::1;20424;:14;20430:7;20424:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20348:106:::0;;:::o;13643:45::-;;;;:::o;2533:100::-;2587:13;2620:5;2613:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2533:100;:::o;19716:229::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19838:40:::1;;;;;;;;19844:9;19838:40;;;;19855:10;19838:40;;;;19867:10;19838:40;;::::0;19826:9:::1;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;19927:10;19914;19902:9;:22;;;;:::i;:::-;:35;;;;:::i;:::-;19889:10;:48;;;;19716:229:::0;;;:::o;4700:169::-;4783:4;4800:39;4809:12;:10;:12::i;:::-;4823:7;4832:6;4800:8;:39::i;:::-;4857:4;4850:11;;4700:169;;;;:::o;3653:108::-;3714:7;3741:12;;3734:19;;3653:108;:::o;13890:75::-;;;;;;;;;;;;;:::o;14212:30::-;;;;:::o;5351:422::-;5457:4;5474:36;5484:6;5492:9;5503:6;5474:9;:36::i;:::-;5523:24;5550:11;:19;5562:6;5550:19;;;;;;;;;;;;;;;:33;5570:12;:10;:12::i;:::-;5550:33;;;;;;;;;;;;;;;;5523:60;;5622:6;5602:16;:26;;5594:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5684:57;5693:6;5701:12;:10;:12::i;:::-;5734:6;5715:16;:25;;;;:::i;:::-;5684:8;:57::i;:::-;5761:4;5754:11;;;5351:422;;;;;:::o;21352:616::-;21488:14;;;;;;;;;;;21474:28;;:10;:28;;;21465:38;;;;;;21514:19;21536:21;21514:43;;21568:24;21585:6;21568:16;:24::i;:::-;21603:18;21648:11;21624:21;:35;;;;:::i;:::-;21603:56;;21694:1;21673:18;:22;21670:138;;;21697:111;21788:18;21766:19;:40;;;;:::i;:::-;21744:18;21731:10;:31;;;;:::i;:::-;:76;;;;:::i;:::-;21705:14;;;;;;;;;;;21697:33;;;;:111;;;;:::i;:::-;21670:138;21844:1;21822:19;:23;21819:141;;;21847:113;21940:18;21918:19;:40;;;;:::i;:::-;21895:19;21882:10;:32;;;;:::i;:::-;:77;;;;:::i;:::-;21855:15;;;;;;;;;;;21847:34;;;;:113;;;;:::i;:::-;21819:141;21454:514;;21352:616;;;:::o;13566:28::-;;;;:::o;14180:25::-;;;;:::o;3495:93::-;3553:5;3578:2;3571:9;;3495:93;:::o;6182:215::-;6270:4;6287:80;6296:12;:10;:12::i;:::-;6310:7;6356:10;6319:11;:25;6331:12;:10;:12::i;:::-;6319:25;;;;;;;;;;;;;;;:34;6345:7;6319:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6287:8;:80::i;:::-;6385:4;6378:11;;6182:215;;;;:::o;14311:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20203:137::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20302:7:::1;20293:6;;:16;;;;;;;;;;;;;;;;;;20327:5;20320:4;;:12;;;;;;;;;;;;;;;;;;20203:137:::0;;:::o;13809:74::-;;;;;;;;;;;;;:::o;13531:26::-;;;;;;;;;;;;;:::o;13601:29::-;;;;:::o;20756:109::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20851:6:::1;20842;:15;;;;:::i;:::-;20828:11;:29;;;;20756:109:::0;:::o;13501:23::-;;;;;;;;;;;;;:::o;20081:114::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20178:9:::1;20160:15;;:27;;;;;;;;;;;;;;;;;;20081:114:::0;:::o;3824:127::-;3898:7;3925:9;:18;3935:7;3925:18;;;;;;;;;;;;;;;;3918:25;;3824:127;;;:::o;12104:94::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12169:21:::1;12187:1;12169:9;:21::i;:::-;12104:94::o:0;14095:33::-;;;;;;;;;;;;;;;;;;;:::o;21976:168::-;22028:4;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22059:13:::1;22045:11;:27;;;;22101:13;22083:15;:31;;;;22132:4;22125:11;;21976:168:::0;:::o;19957:112::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20052:9:::1;20035:14;;:26;;;;;;;;;;;;;;;;;;19957:112:::0;:::o;19208:275::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19295:14:::1;;;;;;;;;;;19294:15;19286:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19364:4;19347:14;;:21;;;;;;;;;;;;;;;;;;19393:4;19379:11;;:18;;;;;;;;;;;;;;;;;;19424:12;19408:13;:28;;;;19460:15;19447:10;:28;;;;19208:275:::0;:::o;13695:45::-;;;;:::o;21002:182::-;21104:14;;;;;;;;;;;21090:28;;:10;:28;;;21081:38;;;;;;21137:12;21130:29;;;21160:7;:5;:7::i;:::-;21169:6;21130:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21002:182;;:::o;11881:87::-;11927:7;11954:6;;;;;;;;;;;11947:13;;11881:87;:::o;20466:137::-;20547:14;;;;;;;;;;;20533:28;;:10;:28;;;20524:38;;;;;;20590:5;20573;:14;20579:7;20573:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20466:137;:::o;2752:104::-;2808:13;2841:7;2834:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2752:104;:::o;19090:110::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19182:10:::1;19166:13;:26;;;;19090:110:::0;:::o;21192:152::-;21273:14;;;;;;;;;;;21259:28;;:10;:28;;;21250:38;;;;;;21299:37;21326:9;21307:7;:5;:7::i;:::-;21299:26;;;;:37;;;;:::i;:::-;21192:152;:::o;6900:377::-;6993:4;7010:24;7037:11;:25;7049:12;:10;:12::i;:::-;7037:25;;;;;;;;;;;;;;;:34;7063:7;7037:34;;;;;;;;;;;;;;;;7010:61;;7110:15;7090:16;:35;;7082:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7178:67;7187:12;:10;:12::i;:::-;7201:7;7229:15;7210:16;:34;;;;:::i;:::-;7178:8;:67::i;:::-;7265:4;7258:11;;;6900:377;;;;:::o;13441:19::-;;;;;;;;;;;;;:::o;4164:175::-;4250:4;4267:42;4277:12;:10;:12::i;:::-;4291:9;4302:6;4267:9;:42::i;:::-;4327:4;4320:11;;4164:175;;;;:::o;13747:49::-;;;;:::o;20877:117::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20980:6:::1;20971;:15;;;;:::i;:::-;20953;:33;;;;20877:117:::0;:::o;14255:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4402:151::-;4491:7;4518:11;:18;4530:5;4518:18;;;;;;;;;;;;;;;:27;4537:7;4518:27;;;;;;;;;;;;;;;;4511:34;;4402:151;;;;:::o;18989:93::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19069:5:::1;19055:11;;:19;;;;;;;;;;;;;;;;;;18989:93:::0;:::o;20611:133::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20731:5:::1;20702:16;:26;20719:8;20702:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20611:133:::0;;:::o;19491:217::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19605:40:::1;;;;;;;;19611:9;19605:40;;;;19622:10;19605:40;;;;19634:10;19605:40;;::::0;19597:5:::1;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;19690:10;19677;19665:9;:22;;;;:::i;:::-;:35;;;;:::i;:::-;19656:6;:44;;;;19491:217:::0;;;:::o;12206:192::-;12027:12;:10;:12::i;:::-;12016:23;;:7;:5;:7::i;:::-;:23;;;12008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12315:1:::1;12295:22;;:8;:22;;;;12287:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12371:19;12381:8;12371:9;:19::i;:::-;12206:192:::0;:::o;14135:38::-;;;;;;;;;;;;;;;;;;;:::o;13413:21::-;;;;;;;;;;;;;:::o;249:98::-;302:7;329:10;322:17;;249:98;:::o;10256:346::-;10375:1;10358:19;;:5;:19;;;;10350:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10456:1;10437:21;;:7;:21;;;;10429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10540:6;10510:11;:18;10522:5;10510:18;;;;;;;;;;;;;;;:27;10529:7;10510:27;;;;;;;;;;;;;;;:36;;;;10578:7;10562:32;;10571:5;10562:32;;;10587:6;10562:32;;;;;;:::i;:::-;;;;;;;;10256:346;;;:::o;15080:1573::-;15196:1;15187:6;:10;15179:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15263:5;:13;15269:6;15263:13;;;;;;;;;;;;;;;;;;;;;;;;;15262:14;:35;;;;;15281:5;:16;15287:9;15281:16;;;;;;;;;;;;;;;;;;;;;;;;;15280:17;15262:35;15254:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15370:16;:24;15387:6;15370:24;;;;;;;;;;;;;;;;;;;;;;;;;15369:25;:57;;;;;15399:16;:27;15416:9;15399:27;;;;;;;;;;;;;;;;;;;;;;;;;15398:28;15369:57;:70;;;;;15431:8;;;;;;;;;;;15430:9;15369:70;15366:589;;;15463:14;;;;;;;;;;;15455:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15551:12;15538:10;;15522:13;;:26;;;;:::i;:::-;:41;15519:183;;;15599:4;;;;;;;;;;;15586:17;;:9;:17;;;15583:45;;15624:4;15605:5;:16;15611:9;15605:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15583:45;15660:4;;;;;;;;;;;15650:14;;:6;:14;;;15647:39;;15682:4;15666:5;:13;15672:6;15666:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15647:39;15519:183;15734:11;;15724:6;:21;;15716:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15810:4;;;;;;;;;;;15797:17;;:9;:17;;;15794:150;;15875:15;;15865:6;15842:20;15852:9;15842;:20::i;:::-;:29;;;;:::i;:::-;:48;;15834:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15794:150;15366:589;15967:11;16074:8;;;;;;;;;;;:36;;;;16086:16;:24;16103:6;16086:24;;;;;;;;;;;;;;;;;;;;;;;;;16074:36;:67;;;;16114:16;:27;16131:9;16114:27;;;;;;;;;;;;;;;;;;;;;;;;;16074:67;16070:257;;;16149:1;16143:7;;16070:257;;;16231:4;;;;;;;;;;;16218:17;;:9;:17;;;16215:100;;;16265:3;16252:10;;16243:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16237:31;;16215:100;;;16312:3;16303:6;;16294;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16288:27;;16215:100;16070:257;16448:11;;;;;;;;;;;:24;;;;;16464:8;;;;;;;;;;;16463:9;16448:24;:42;;;;;16486:4;;;;;;;;;;;16476:14;;:6;:14;;;;16448:42;:53;;;;;16500:1;16494:3;:7;16448:53;16444:72;;;16503:13;:11;:13::i;:::-;16444:72;16529:48;16545:6;16553:9;16573:3;16564:6;:12;;;;:::i;:::-;16529:15;:48::i;:::-;16597:1;16591:3;:7;16588:55;;;16600:43;16616:6;16632:4;16639:3;16600:15;:43::i;:::-;16588:55;15168:1485;15080:1573;;;:::o;18070:400::-;18136:21;18174:1;18160:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18136:40;;18205:4;18187;18192:1;18187:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18231:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18221:4;18226:1;18221:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18257:53;18274:4;18289:6;;;;;;;;;;;18298:11;18257:8;:53::i;:::-;18349:6;;;;;;;;;;;:57;;;18407:11;18420:1;18423:4;18437;18444:15;18349:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18125:345;18070:400;:::o;11326:317::-;11441:6;11416:21;:31;;11408:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11495:12;11513:9;:14;;11535:6;11513:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11494:52;;;11565:7;11557:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11397:246;11326:317;;:::o;12406:173::-;12462:16;12481:6;;;;;;;;;;;12462:25;;12507:8;12498:6;;:17;;;;;;;;;;;;;;;;;;12562:8;12531:40;;12552:8;12531:40;;;;;;;;;;;;12451:128;12406:173;:::o;16661:1399::-;14396:8;;;;;;;;;;;14391:104;;14432:4;14421:8;;:15;;;;;;;;;;;;;;;;;;16710:23:::1;16736:24;16754:4;16736:9;:24::i;:::-;16710:50;;16794:13;;16775:15;:32;16771:1282;;16881:19;16916:1;16903:10;;:14;;;;:::i;:::-;16881:36;;16932:32;17007:11;16985:9;:19;;;16967:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16932:86;;17033:14;17068:24;17050:15;:42;;;;:::i;:::-;17033:59;;17113:22;17138:21;17113:46;;17180:24;17197:6;17180:16;:24::i;:::-;17225:20;17272:14;17248:21;:38;;;;:::i;:::-;17225:61;;17301:19;17352:9;:19;;;17338:11;:33;;;;:::i;:::-;17322:12;:50;;;;:::i;:::-;17301:71;;17387:29;17433:9;:19;;;17419:11;:33;;;;:::i;:::-;17387:65;;17500:1;17476:21;:25;17473:170;;;17566:61;17579:24;17605:21;17566:12;:61::i;:::-;17473:170;17663:19;17703:9;:18;;;17699:1;17685:11;:15;;;;:::i;:::-;:36;;;;:::i;:::-;17663:58;;17753:1;17739:11;:15;17736:100;;;17774:46;17808:11;17782:14;;;;;;;;;;;17774:33;;;;:46;;;;:::i;:::-;17736:100;17864:20;17905:9;:19;;;17901:1;17887:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17864:60;;17957:1;17942:12;:16;17939:103;;;17978:48;18013:12;17986:15;;;;;;;;;;;17978:34;;;;:48;;;;:::i;:::-;17939:103;16809:1244;;;;;;;;;16771:1282;16699:1361;14478:5:::0;14467:8;;:16;;;;;;;;;;;;;;;;;;14391:104;16661:1399::o;7767:604::-;7891:1;7873:20;;:6;:20;;;;7865:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7975:1;7954:23;;:9;:23;;;;7946:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8030:47;8051:6;8059:9;8070:6;8030:20;:47::i;:::-;8090:21;8114:9;:17;8124:6;8114:17;;;;;;;;;;;;;;;;8090:41;;8167:6;8150:13;:23;;8142:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8263:6;8247:13;:22;;;;:::i;:::-;8227:9;:17;8237:6;8227:17;;;;;;;;;;;;;;;:42;;;;8304:6;8280:9;:20;8290:9;8280:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8345:9;8328:35;;8337:6;8328:35;;;8356:6;8328:35;;;;;;:::i;:::-;;;;;;;;7854:517;7767:604;;;:::o;18478:503::-;18626:53;18643:4;18658:6;;;;;;;;;;;18667:11;18626:8;:53::i;:::-;18722:6;;;;;;;;;;;:22;;;18752:9;18785:4;18805:11;18831:1;18874;18917:15;;;;;;;;;;;18947;18722:251;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18478:503;;:::o;11205:92::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:77::-;1709:7;1738:5;1727:16;;1672:77;;;:::o;1755:118::-;1842:24;1860:5;1842:24;:::i;:::-;1837:3;1830:37;1755:118;;:::o;1879:222::-;1972:4;2010:2;1999:9;1995:18;1987:26;;2023:71;2091:1;2080:9;2076:17;2067:6;2023:71;:::i;:::-;1879:222;;;;:::o;2107:99::-;2159:6;2193:5;2187:12;2177:22;;2107:99;;;:::o;2212:169::-;2296:11;2330:6;2325:3;2318:19;2370:4;2365:3;2361:14;2346:29;;2212:169;;;;:::o;2387:307::-;2455:1;2465:113;2479:6;2476:1;2473:13;2465:113;;;2564:1;2559:3;2555:11;2549:18;2545:1;2540:3;2536:11;2529:39;2501:2;2498:1;2494:10;2489:15;;2465:113;;;2596:6;2593:1;2590:13;2587:101;;;2676:1;2667:6;2662:3;2658:16;2651:27;2587:101;2436:258;2387:307;;;:::o;2700:102::-;2741:6;2792:2;2788:7;2783:2;2776:5;2772:14;2768:28;2758:38;;2700:102;;;:::o;2808:364::-;2896:3;2924:39;2957:5;2924:39;:::i;:::-;2979:71;3043:6;3038:3;2979:71;:::i;:::-;2972:78;;3059:52;3104:6;3099:3;3092:4;3085:5;3081:16;3059:52;:::i;:::-;3136:29;3158:6;3136:29;:::i;:::-;3131:3;3127:39;3120:46;;2900:272;2808:364;;;;:::o;3178:313::-;3291:4;3329:2;3318:9;3314:18;3306:26;;3378:9;3372:4;3368:20;3364:1;3353:9;3349:17;3342:47;3406:78;3479:4;3470:6;3406:78;:::i;:::-;3398:86;;3178:313;;;;:::o;3497:122::-;3570:24;3588:5;3570:24;:::i;:::-;3563:5;3560:35;3550:63;;3609:1;3606;3599:12;3550:63;3497:122;:::o;3625:139::-;3671:5;3709:6;3696:20;3687:29;;3725:33;3752:5;3725:33;:::i;:::-;3625:139;;;;:::o;3770:619::-;3847:6;3855;3863;3912:2;3900:9;3891:7;3887:23;3883:32;3880:119;;;3918:79;;:::i;:::-;3880:119;4038:1;4063:53;4108:7;4099:6;4088:9;4084:22;4063:53;:::i;:::-;4053:63;;4009:117;4165:2;4191:53;4236:7;4227:6;4216:9;4212:22;4191:53;:::i;:::-;4181:63;;4136:118;4293:2;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4264:118;3770:619;;;;;:::o;4395:474::-;4463:6;4471;4520:2;4508:9;4499:7;4495:23;4491:32;4488:119;;;4526:79;;:::i;:::-;4488:119;4646:1;4671:53;4716:7;4707:6;4696:9;4692:22;4671:53;:::i;:::-;4661:63;;4617:117;4773:2;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4744:118;4395:474;;;;;:::o;4875:109::-;4956:21;4971:5;4956:21;:::i;:::-;4951:3;4944:34;4875:109;;:::o;4990:210::-;5077:4;5115:2;5104:9;5100:18;5092:26;;5128:65;5190:1;5179:9;5175:17;5166:6;5128:65;:::i;:::-;4990:210;;;;:::o;5206:118::-;5293:24;5311:5;5293:24;:::i;:::-;5288:3;5281:37;5206:118;;:::o;5330:222::-;5423:4;5461:2;5450:9;5446:18;5438:26;;5474:71;5542:1;5531:9;5527:17;5518:6;5474:71;:::i;:::-;5330:222;;;;:::o;5558:619::-;5635:6;5643;5651;5700:2;5688:9;5679:7;5675:23;5671:32;5668:119;;;5706:79;;:::i;:::-;5668:119;5826:1;5851:53;5896:7;5887:6;5876:9;5872:22;5851:53;:::i;:::-;5841:63;;5797:117;5953:2;5979:53;6024:7;6015:6;6004:9;6000:22;5979:53;:::i;:::-;5969:63;;5924:118;6081:2;6107:53;6152:7;6143:6;6132:9;6128:22;6107:53;:::i;:::-;6097:63;;6052:118;5558:619;;;;;:::o;6183:86::-;6218:7;6258:4;6251:5;6247:16;6236:27;;6183:86;;;:::o;6275:112::-;6358:22;6374:5;6358:22;:::i;:::-;6353:3;6346:35;6275:112;;:::o;6393:214::-;6482:4;6520:2;6509:9;6505:18;6497:26;;6533:67;6597:1;6586:9;6582:17;6573:6;6533:67;:::i;:::-;6393:214;;;;:::o;6613:329::-;6672:6;6721:2;6709:9;6700:7;6696:23;6692:32;6689:119;;;6727:79;;:::i;:::-;6689:119;6847:1;6872:53;6917:7;6908:6;6897:9;6893:22;6872:53;:::i;:::-;6862:63;;6818:117;6613:329;;;;:::o;6948:111::-;7000:7;7029:24;7047:5;7029:24;:::i;:::-;7018:35;;6948:111;;;:::o;7065:152::-;7153:39;7186:5;7153:39;:::i;:::-;7146:5;7143:50;7133:78;;7207:1;7204;7197:12;7133:78;7065:152;:::o;7223:169::-;7284:5;7322:6;7309:20;7300:29;;7338:48;7380:5;7338:48;:::i;:::-;7223:169;;;;:::o;7398:504::-;7481:6;7489;7538:2;7526:9;7517:7;7513:23;7509:32;7506:119;;;7544:79;;:::i;:::-;7506:119;7664:1;7689:68;7749:7;7740:6;7729:9;7725:22;7689:68;:::i;:::-;7679:78;;7635:132;7806:2;7832:53;7877:7;7868:6;7857:9;7853:22;7832:53;:::i;:::-;7822:63;;7777:118;7398:504;;;;;:::o;7908:329::-;7967:6;8016:2;8004:9;7995:7;7991:23;7987:32;7984:119;;;8022:79;;:::i;:::-;7984:119;8142:1;8167:53;8212:7;8203:6;8192:9;8188:22;8167:53;:::i;:::-;8157:63;;8113:117;7908:329;;;;:::o;8243:442::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:71;8511:1;8500:9;8496:17;8487:6;8443:71;:::i;:::-;8524:72;8592:2;8581:9;8577:18;8568:6;8524:72;:::i;:::-;8606;8674:2;8663:9;8659:18;8650:6;8606:72;:::i;:::-;8243:442;;;;;;:::o;8691:474::-;8759:6;8767;8816:2;8804:9;8795:7;8791:23;8787:32;8784:119;;;8822:79;;:::i;:::-;8784:119;8942:1;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8913:117;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;8691:474;;;;;:::o;9171:323::-;9227:6;9276:2;9264:9;9255:7;9251:23;9247:32;9244:119;;;9282:79;;:::i;:::-;9244:119;9402:1;9427:50;9469:7;9460:6;9449:9;9445:22;9427:50;:::i;:::-;9417:60;;9373:114;9171:323;;;;:::o;9500:60::-;9528:3;9549:5;9542:12;;9500:60;;;:::o;9566:142::-;9616:9;9649:53;9667:34;9676:24;9694:5;9676:24;:::i;:::-;9667:34;:::i;:::-;9649:53;:::i;:::-;9636:66;;9566:142;;;:::o;9714:126::-;9764:9;9797:37;9828:5;9797:37;:::i;:::-;9784:50;;9714:126;;;:::o;9846:141::-;9911:9;9944:37;9975:5;9944:37;:::i;:::-;9931:50;;9846:141;;;:::o;9993:161::-;10095:52;10141:5;10095:52;:::i;:::-;10090:3;10083:65;9993:161;;:::o;10160:252::-;10268:4;10306:2;10295:9;10291:18;10283:26;;10319:86;10402:1;10391:9;10387:17;10378:6;10319:86;:::i;:::-;10160:252;;;;:::o;10418:182::-;10558:34;10554:1;10546:6;10542:14;10535:58;10418:182;:::o;10606:366::-;10748:3;10769:67;10833:2;10828:3;10769:67;:::i;:::-;10762:74;;10845:93;10934:3;10845:93;:::i;:::-;10963:2;10958:3;10954:12;10947:19;;10606:366;;;:::o;10978:419::-;11144:4;11182:2;11171:9;11167:18;11159:26;;11231:9;11225:4;11221:20;11217:1;11206:9;11202:17;11195:47;11259:131;11385:4;11259:131;:::i;:::-;11251:139;;10978:419;;;:::o;11403:180::-;11451:77;11448:1;11441:88;11548:4;11545:1;11538:15;11572:4;11569:1;11562:15;11589:320;11633:6;11670:1;11664:4;11660:12;11650:22;;11717:1;11711:4;11707:12;11738:18;11728:81;;11794:4;11786:6;11782:17;11772:27;;11728:81;11856:2;11848:6;11845:14;11825:18;11822:38;11819:84;;;11875:18;;:::i;:::-;11819:84;11640:269;11589:320;;;:::o;11915:180::-;11963:77;11960:1;11953:88;12060:4;12057:1;12050:15;12084:4;12081:1;12074:15;12101:305;12141:3;12160:20;12178:1;12160:20;:::i;:::-;12155:25;;12194:20;12212:1;12194:20;:::i;:::-;12189:25;;12348:1;12280:66;12276:74;12273:1;12270:81;12267:107;;;12354:18;;:::i;:::-;12267:107;12398:1;12395;12391:9;12384:16;;12101:305;;;;:::o;12412:227::-;12552:34;12548:1;12540:6;12536:14;12529:58;12621:10;12616:2;12608:6;12604:15;12597:35;12412:227;:::o;12645:366::-;12787:3;12808:67;12872:2;12867:3;12808:67;:::i;:::-;12801:74;;12884:93;12973:3;12884:93;:::i;:::-;13002:2;12997:3;12993:12;12986:19;;12645:366;;;:::o;13017:419::-;13183:4;13221:2;13210:9;13206:18;13198:26;;13270:9;13264:4;13260:20;13256:1;13245:9;13241:17;13234:47;13298:131;13424:4;13298:131;:::i;:::-;13290:139;;13017:419;;;:::o;13442:191::-;13482:4;13502:20;13520:1;13502:20;:::i;:::-;13497:25;;13536:20;13554:1;13536:20;:::i;:::-;13531:25;;13575:1;13572;13569:8;13566:34;;;13580:18;;:::i;:::-;13566:34;13625:1;13622;13618:9;13610:17;;13442:191;;;;:::o;13639:348::-;13679:7;13702:20;13720:1;13702:20;:::i;:::-;13697:25;;13736:20;13754:1;13736:20;:::i;:::-;13731:25;;13924:1;13856:66;13852:74;13849:1;13846:81;13841:1;13834:9;13827:17;13823:105;13820:131;;;13931:18;;:::i;:::-;13820:131;13979:1;13976;13972:9;13961:20;;13639:348;;;;:::o;13993:180::-;14041:77;14038:1;14031:88;14138:4;14135:1;14128:15;14162:4;14159:1;14152:15;14179:185;14219:1;14236:20;14254:1;14236:20;:::i;:::-;14231:25;;14270:20;14288:1;14270:20;:::i;:::-;14265:25;;14309:1;14299:35;;14314:18;;:::i;:::-;14299:35;14356:1;14353;14349:9;14344:14;;14179:185;;;;:::o;14370:172::-;14510:24;14506:1;14498:6;14494:14;14487:48;14370:172;:::o;14548:366::-;14690:3;14711:67;14775:2;14770:3;14711:67;:::i;:::-;14704:74;;14787:93;14876:3;14787:93;:::i;:::-;14905:2;14900:3;14896:12;14889:19;;14548:366;;;:::o;14920:419::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15173:9;15167:4;15163:20;15159:1;15148:9;15144:17;15137:47;15201:131;15327:4;15201:131;:::i;:::-;15193:139;;14920:419;;;:::o;15345:332::-;15466:4;15504:2;15493:9;15489:18;15481:26;;15517:71;15585:1;15574:9;15570:17;15561:6;15517:71;:::i;:::-;15598:72;15666:2;15655:9;15651:18;15642:6;15598:72;:::i;:::-;15345:332;;;;;:::o;15683:137::-;15737:5;15768:6;15762:13;15753:22;;15784:30;15808:5;15784:30;:::i;:::-;15683:137;;;;:::o;15826:345::-;15893:6;15942:2;15930:9;15921:7;15917:23;15913:32;15910:119;;;15948:79;;:::i;:::-;15910:119;16068:1;16093:61;16146:7;16137:6;16126:9;16122:22;16093:61;:::i;:::-;16083:71;;16039:125;15826:345;;;;:::o;16177:224::-;16317:34;16313:1;16305:6;16301:14;16294:58;16386:7;16381:2;16373:6;16369:15;16362:32;16177:224;:::o;16407:366::-;16549:3;16570:67;16634:2;16629:3;16570:67;:::i;:::-;16563:74;;16646:93;16735:3;16646:93;:::i;:::-;16764:2;16759:3;16755:12;16748:19;;16407:366;;;:::o;16779:419::-;16945:4;16983:2;16972:9;16968:18;16960:26;;17032:9;17026:4;17022:20;17018:1;17007:9;17003:17;16996:47;17060:131;17186:4;17060:131;:::i;:::-;17052:139;;16779:419;;;:::o;17204:225::-;17344:34;17340:1;17332:6;17328:14;17321:58;17413:8;17408:2;17400:6;17396:15;17389:33;17204:225;:::o;17435:366::-;17577:3;17598:67;17662:2;17657:3;17598:67;:::i;:::-;17591:74;;17674:93;17763:3;17674:93;:::i;:::-;17792:2;17787:3;17783:12;17776:19;;17435:366;;;:::o;17807:419::-;17973:4;18011:2;18000:9;17996:18;17988:26;;18060:9;18054:4;18050:20;18046:1;18035:9;18031:17;18024:47;18088:131;18214:4;18088:131;:::i;:::-;18080:139;;17807:419;;;:::o;18232:223::-;18372:34;18368:1;18360:6;18356:14;18349:58;18441:6;18436:2;18428:6;18424:15;18417:31;18232:223;:::o;18461:366::-;18603:3;18624:67;18688:2;18683:3;18624:67;:::i;:::-;18617:74;;18700:93;18789:3;18700:93;:::i;:::-;18818:2;18813:3;18809:12;18802:19;;18461:366;;;:::o;18833:419::-;18999:4;19037:2;19026:9;19022:18;19014:26;;19086:9;19080:4;19076:20;19072:1;19061:9;19057:17;19050:47;19114:131;19240:4;19114:131;:::i;:::-;19106:139;;18833:419;;;:::o;19258:221::-;19398:34;19394:1;19386:6;19382:14;19375:58;19467:4;19462:2;19454:6;19450:15;19443:29;19258:221;:::o;19485:366::-;19627:3;19648:67;19712:2;19707:3;19648:67;:::i;:::-;19641:74;;19724:93;19813:3;19724:93;:::i;:::-;19842:2;19837:3;19833:12;19826:19;;19485:366;;;:::o;19857:419::-;20023:4;20061:2;20050:9;20046:18;20038:26;;20110:9;20104:4;20100:20;20096:1;20085:9;20081:17;20074:47;20138:131;20264:4;20138:131;:::i;:::-;20130:139;;19857:419;;;:::o;20282:228::-;20422:34;20418:1;20410:6;20406:14;20399:58;20491:11;20486:2;20478:6;20474:15;20467:36;20282:228;:::o;20516:366::-;20658:3;20679:67;20743:2;20738:3;20679:67;:::i;:::-;20672:74;;20755:93;20844:3;20755:93;:::i;:::-;20873:2;20868:3;20864:12;20857:19;;20516:366;;;:::o;20888:419::-;21054:4;21092:2;21081:9;21077:18;21069:26;;21141:9;21135:4;21131:20;21127:1;21116:9;21112:17;21105:47;21169:131;21295:4;21169:131;:::i;:::-;21161:139;;20888:419;;;:::o;21313:175::-;21453:27;21449:1;21441:6;21437:14;21430:51;21313:175;:::o;21494:366::-;21636:3;21657:67;21721:2;21716:3;21657:67;:::i;:::-;21650:74;;21733:93;21822:3;21733:93;:::i;:::-;21851:2;21846:3;21842:12;21835:19;;21494:366;;;:::o;21866:419::-;22032:4;22070:2;22059:9;22055:18;22047:26;;22119:9;22113:4;22109:20;22105:1;22094:9;22090:17;22083:47;22147:131;22273:4;22147:131;:::i;:::-;22139:139;;21866:419;;;:::o;22291:172::-;22431:24;22427:1;22419:6;22415:14;22408:48;22291:172;:::o;22469:366::-;22611:3;22632:67;22696:2;22691:3;22632:67;:::i;:::-;22625:74;;22708:93;22797:3;22708:93;:::i;:::-;22826:2;22821:3;22817:12;22810:19;;22469:366;;;:::o;22841:419::-;23007:4;23045:2;23034:9;23030:18;23022:26;;23094:9;23088:4;23084:20;23080:1;23069:9;23065:17;23058:47;23122:131;23248:4;23122:131;:::i;:::-;23114:139;;22841:419;;;:::o;23266:179::-;23406:31;23402:1;23394:6;23390:14;23383:55;23266:179;:::o;23451:366::-;23593:3;23614:67;23678:2;23673:3;23614:67;:::i;:::-;23607:74;;23690:93;23779:3;23690:93;:::i;:::-;23808:2;23803:3;23799:12;23792:19;;23451:366;;;:::o;23823:419::-;23989:4;24027:2;24016:9;24012:18;24004:26;;24076:9;24070:4;24066:20;24062:1;24051:9;24047:17;24040:47;24104:131;24230:4;24104:131;:::i;:::-;24096:139;;23823:419;;;:::o;24248:220::-;24388:34;24384:1;24376:6;24372:14;24365:58;24457:3;24452:2;24444:6;24440:15;24433:28;24248:220;:::o;24474:366::-;24616:3;24637:67;24701:2;24696:3;24637:67;:::i;:::-;24630:74;;24713:93;24802:3;24713:93;:::i;:::-;24831:2;24826:3;24822:12;24815:19;;24474:366;;;:::o;24846:419::-;25012:4;25050:2;25039:9;25035:18;25027:26;;25099:9;25093:4;25089:20;25085:1;25074:9;25070:17;25063:47;25127:131;25253:4;25127:131;:::i;:::-;25119:139;;24846:419;;;:::o;25271:180::-;25319:77;25316:1;25309:88;25416:4;25413:1;25406:15;25440:4;25437:1;25430:15;25457:180;25505:77;25502:1;25495:88;25602:4;25599:1;25592:15;25626:4;25623:1;25616:15;25643:143;25700:5;25731:6;25725:13;25716:22;;25747:33;25774:5;25747:33;:::i;:::-;25643:143;;;;:::o;25792:351::-;25862:6;25911:2;25899:9;25890:7;25886:23;25882:32;25879:119;;;25917:79;;:::i;:::-;25879:119;26037:1;26062:64;26118:7;26109:6;26098:9;26094:22;26062:64;:::i;:::-;26052:74;;26008:128;25792:351;;;;:::o;26149:85::-;26194:7;26223:5;26212:16;;26149:85;;;:::o;26240:158::-;26298:9;26331:61;26349:42;26358:32;26384:5;26358:32;:::i;:::-;26349:42;:::i;:::-;26331:61;:::i;:::-;26318:74;;26240:158;;;:::o;26404:147::-;26499:45;26538:5;26499:45;:::i;:::-;26494:3;26487:58;26404:147;;:::o;26557:114::-;26624:6;26658:5;26652:12;26642:22;;26557:114;;;:::o;26677:184::-;26776:11;26810:6;26805:3;26798:19;26850:4;26845:3;26841:14;26826:29;;26677:184;;;;:::o;26867:132::-;26934:4;26957:3;26949:11;;26987:4;26982:3;26978:14;26970:22;;26867:132;;;:::o;27005:108::-;27082:24;27100:5;27082:24;:::i;:::-;27077:3;27070:37;27005:108;;:::o;27119:179::-;27188:10;27209:46;27251:3;27243:6;27209:46;:::i;:::-;27287:4;27282:3;27278:14;27264:28;;27119:179;;;;:::o;27304:113::-;27374:4;27406;27401:3;27397:14;27389:22;;27304:113;;;:::o;27453:732::-;27572:3;27601:54;27649:5;27601:54;:::i;:::-;27671:86;27750:6;27745:3;27671:86;:::i;:::-;27664:93;;27781:56;27831:5;27781:56;:::i;:::-;27860:7;27891:1;27876:284;27901:6;27898:1;27895:13;27876:284;;;27977:6;27971:13;28004:63;28063:3;28048:13;28004:63;:::i;:::-;27997:70;;28090:60;28143:6;28090:60;:::i;:::-;28080:70;;27936:224;27923:1;27920;27916:9;27911:14;;27876:284;;;27880:14;28176:3;28169:10;;27577:608;;;27453:732;;;;:::o;28191:831::-;28454:4;28492:3;28481:9;28477:19;28469:27;;28506:71;28574:1;28563:9;28559:17;28550:6;28506:71;:::i;:::-;28587:80;28663:2;28652:9;28648:18;28639:6;28587:80;:::i;:::-;28714:9;28708:4;28704:20;28699:2;28688:9;28684:18;28677:48;28742:108;28845:4;28836:6;28742:108;:::i;:::-;28734:116;;28860:72;28928:2;28917:9;28913:18;28904:6;28860:72;:::i;:::-;28942:73;29010:3;28999:9;28995:19;28986:6;28942:73;:::i;:::-;28191:831;;;;;;;;:::o;29028:179::-;29168:31;29164:1;29156:6;29152:14;29145:55;29028:179;:::o;29213:366::-;29355:3;29376:67;29440:2;29435:3;29376:67;:::i;:::-;29369:74;;29452:93;29541:3;29452:93;:::i;:::-;29570:2;29565:3;29561:12;29554:19;;29213:366;;;:::o;29585:419::-;29751:4;29789:2;29778:9;29774:18;29766:26;;29838:9;29832:4;29828:20;29824:1;29813:9;29809:17;29802:47;29866:131;29992:4;29866:131;:::i;:::-;29858:139;;29585:419;;;:::o;30010:147::-;30111:11;30148:3;30133:18;;30010:147;;;;:::o;30163:114::-;;:::o;30283:398::-;30442:3;30463:83;30544:1;30539:3;30463:83;:::i;:::-;30456:90;;30555:93;30644:3;30555:93;:::i;:::-;30673:1;30668:3;30664:11;30657:18;;30283:398;;;:::o;30687:379::-;30871:3;30893:147;31036:3;30893:147;:::i;:::-;30886:154;;31057:3;31050:10;;30687:379;;;:::o;31072:245::-;31212:34;31208:1;31200:6;31196:14;31189:58;31281:28;31276:2;31268:6;31264:15;31257:53;31072:245;:::o;31323:366::-;31465:3;31486:67;31550:2;31545:3;31486:67;:::i;:::-;31479:74;;31562:93;31651:3;31562:93;:::i;:::-;31680:2;31675:3;31671:12;31664:19;;31323:366;;;:::o;31695:419::-;31861:4;31899:2;31888:9;31884:18;31876:26;;31948:9;31942:4;31938:20;31934:1;31923:9;31919:17;31912:47;31976:131;32102:4;31976:131;:::i;:::-;31968:139;;31695:419;;;:::o;32120:224::-;32260:34;32256:1;32248:6;32244:14;32237:58;32329:7;32324:2;32316:6;32312:15;32305:32;32120:224;:::o;32350:366::-;32492:3;32513:67;32577:2;32572:3;32513:67;:::i;:::-;32506:74;;32589:93;32678:3;32589:93;:::i;:::-;32707:2;32702:3;32698:12;32691:19;;32350:366;;;:::o;32722:419::-;32888:4;32926:2;32915:9;32911:18;32903:26;;32975:9;32969:4;32965:20;32961:1;32950:9;32946:17;32939:47;33003:131;33129:4;33003:131;:::i;:::-;32995:139;;32722:419;;;:::o;33147:222::-;33287:34;33283:1;33275:6;33271:14;33264:58;33356:5;33351:2;33343:6;33339:15;33332:30;33147:222;:::o;33375:366::-;33517:3;33538:67;33602:2;33597:3;33538:67;:::i;:::-;33531:74;;33614:93;33703:3;33614:93;:::i;:::-;33732:2;33727:3;33723:12;33716:19;;33375:366;;;:::o;33747:419::-;33913:4;33951:2;33940:9;33936:18;33928:26;;34000:9;33994:4;33990:20;33986:1;33975:9;33971:17;33964:47;34028:131;34154:4;34028:131;:::i;:::-;34020:139;;33747:419;;;:::o;34172:225::-;34312:34;34308:1;34300:6;34296:14;34289:58;34381:8;34376:2;34368:6;34364:15;34357:33;34172:225;:::o;34403:366::-;34545:3;34566:67;34630:2;34625:3;34566:67;:::i;:::-;34559:74;;34642:93;34731:3;34642:93;:::i;:::-;34760:2;34755:3;34751:12;34744:19;;34403:366;;;:::o;34775:419::-;34941:4;34979:2;34968:9;34964:18;34956:26;;35028:9;35022:4;35018:20;35014:1;35003:9;34999:17;34992:47;35056:131;35182:4;35056:131;:::i;:::-;35048:139;;34775:419;;;:::o;35200:807::-;35449:4;35487:3;35476:9;35472:19;35464:27;;35501:71;35569:1;35558:9;35554:17;35545:6;35501:71;:::i;:::-;35582:72;35650:2;35639:9;35635:18;35626:6;35582:72;:::i;:::-;35664:80;35740:2;35729:9;35725:18;35716:6;35664:80;:::i;:::-;35754;35830:2;35819:9;35815:18;35806:6;35754:80;:::i;:::-;35844:73;35912:3;35901:9;35897:19;35888:6;35844:73;:::i;:::-;35927;35995:3;35984:9;35980:19;35971:6;35927:73;:::i;:::-;35200:807;;;;;;;;;:::o;36013:143::-;36070:5;36101:6;36095:13;36086:22;;36117:33;36144:5;36117:33;:::i;:::-;36013:143;;;;:::o;36162:663::-;36250:6;36258;36266;36315:2;36303:9;36294:7;36290:23;36286:32;36283:119;;;36321:79;;:::i;:::-;36283:119;36441:1;36466:64;36522:7;36513:6;36502:9;36498:22;36466:64;:::i;:::-;36456:74;;36412:128;36579:2;36605:64;36661:7;36652:6;36641:9;36637:22;36605:64;:::i;:::-;36595:74;;36550:129;36718:2;36744:64;36800:7;36791:6;36780:9;36776:22;36744:64;:::i;:::-;36734:74;;36689:129;36162:663;;;;;:::o

Swarm Source

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