BNB Price: $613.70 (+2.77%)
 

Overview

Max Total Supply

210,000,000ChocoPro

Holders

5,303

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
69,293.535110982732897916 ChocoPro

Value
$0.00
0xcd16ac44bfb8448193da96c20f1e119e9640eb83
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2025-09-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

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

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint256 private _decimals;

    constructor(string memory name_, string memory symbol_, uint256 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint256) {
        return _decimals;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

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

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountsOut(
        uint256 amountIn,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

interface IUniswapV2Factory {
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function feeTo() external view returns (address);
}

interface IUniswapV2Pair {
    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function kLast() external view returns (uint);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function sync() external;

    event Sync(uint112 reserve0, uint112 reserve1);
}

interface CenterContract {

    function setValid(address _user,uint256 _isValid) external ;
    function bind(address _user,address _agent) external returns (bool);
    function buyToken(address _user) external payable;
    function updateTokenAverage(uint256 amt) external;
    function setZero(address _user) external;
    function take(address _user) external returns (uint256 amt);
}
interface BurnContract {
    function goBurn() external;
}

contract Token is ERC20, Ownable{

  
    using SafeMath for uint256;

    uint256 bindAmt = 1 * 10 **18;
    uint256 public LPFeeRewardsTimes;
    uint256 public processRewardWaitBlock = 10;
    uint256 sellBackBurnFee = 50; 
    uint256 public lpBurnFrequency = 3600 seconds; 
    uint256 public lastLpBurnTime =block.timestamp; 
    uint256 public percentForLPBurn = 18;
    uint256 public percentForLPReward = 18; 
    uint256 public goMarketAmt;
    uint256 public goMarketAtAmt = 1000 * 10 ** 18;

    address public uniswapPair; 
    address marketAddress = 0xFD0330070FA9136Fb5407b49d528178A3F98E6e3;
    address centerContractAddress ;
    address usdtContract = 0x55d398326f99059fF775485246999027B3197955;
    address public constant cakeTokenAddress = 0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82; 
    address public uniswapV2RouterContractAddress = 0x10ED43C718714eb63d5aA57B78B54704E256024E; 
    IUniswapV2Router02 public uniswapV2Router = IUniswapV2Router02(uniswapV2RouterContractAddress);

    bool isSwitch = true;
    bool swapping;

    mapping(address => bool) public swapRouters;
    mapping(address => bool) public pairs; 
    mapping(address => bool) public removeFeeList; 

    constructor() ERC20("ChocoPro", "ChocoPro", 18) Ownable() {
        uniswapPair = IUniswapV2Factory(
            IUniswapV2Router02(uniswapV2Router).factory()
        ).createPair(address(this), cakeTokenAddress);
        pairs[uniswapPair] = true;
        swapRouters[address(uniswapV2Router)] = true;
        removeFeeList[address(this)] = true;
        removeFeeList[0xde9E69dd5fB121176257F4516aAc18980d77D267] = true;
        _approve(_msgSender(), address(uniswapV2Router), ~uint256(0));
        _approve(address(this), address(uniswapV2Router), ~uint256(0));
        _mint(0xde9E69dd5fB121176257F4516aAc18980d77D267, 210000000 * 10 ** 18);
        
    }

    receive() external payable {
        CenterContract(centerContractAddress).buyToken{value: msg.value}(msg.sender);
    }
    

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        if (!isSwitch) {
            if (!removeFeeList[from] && !removeFeeList[to]) {
                require(false);
            }
        }
        bool isAdd;
        bool isRemove;
        if (!removeFeeList[from] && !removeFeeList[to]) {
            if (pairs[to]) {
                uint256 addLPLiquidity = _isAddLiquidity(amount);
                if (addLPLiquidity > 0) {
                    isAdd = true;
                }
            }
        }
        if (pairs[from]) {
            uint256 removeLPLiquidity = _isRemoveLiquidity(amount);
            if (removeLPLiquidity > 0) {
                isRemove = true;
            }
        }

        if(!isAdd && !swapping && !removeFeeList[from] && !pairs[from] && from != address(uniswapV2Router) && from != address(this) ){
            uint256 amt = CenterContract(centerContractAddress).take(msg.sender);
            
            if(amt>0){
                super._transfer(address(this),from,amt);
            }
        }
   
        if (
            !swapping &&
            !removeFeeList[from] &&
            from != address(this) &&
            !pairs[from] &&
            !isAdd &&
            from != address(uniswapV2Router) &&
            block.timestamp >= lastLpBurnTime + lpBurnFrequency
        ) {
            swapping = true;
            autoBurnLiquidityPairTokens();
            swapping = false;
        }

        uint256 rewardFeeAmt;
        if (
            !removeFeeList[from] &&
            !removeFeeList[to] &&
            from != address(uniswapV2Router)&&
            amount != 0
        ) {
            if (isAdd) {
                if(to != address(centerContractAddress)){
                    require(false,"not add");
                }
            } else if (isRemove) {
                    CenterContract(centerContractAddress).setZero(msg.sender);
                
            } else if (pairs[from]) {
                if(to != address(centerContractAddress)){
                    require(false,"not buy");
                }
            } else if (pairs[to]) {
                rewardFeeAmt = amount.mul(sellBackBurnFee).div(1000);
            }
            if (rewardFeeAmt > 0) {
                super._transfer(from, address(this), rewardFeeAmt);
                goMarketAmt += rewardFeeAmt;
                amount -= rewardFeeAmt;
            }
        }
        bool canSwapGo = goMarketAmt >= goMarketAtAmt;
        if (canSwapGo &&
            !swapping &&
            !removeFeeList[from] &&
            from != address(this) &&
            !pairs[from] &&
            !isAdd && !pairs[to] &&
            from != address(uniswapV2Router)
        ) {
            swapping = true;
            swapUsdt(goMarketAmt);
            goMarketAmt = 0;
            swapping = false;
        }
        super._transfer(from, to, amount);
        if (amount == bindAmt) {
            require(CenterContract(centerContractAddress).bind(from, to), "bind error");
        }
    }

    function swapUsdt(uint256 _amt) internal returns (uint256 _tokenAmt) {
        this.approve(address(uniswapV2Router),_amt);
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = cakeTokenAddress;
        path[2] = usdtContract;
        uint256 beforeAmt = IERC20(usdtContract).balanceOf(address(this));
        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            _amt,
            0,
            path,
            marketAddress,
            block.timestamp
        );
        uint256 afterAmt = IERC20(usdtContract).balanceOf(address(this));
        _tokenAmt = afterAmt.sub(beforeAmt);
    }

    function _isAddLiquidity(
        uint256 amount
    ) internal view returns (uint256 liquidity) {
        (uint256 rOther, uint256 rThis, uint256 balanceOther) = _getReserves();
        uint256 amountOther;
        if (rOther > 0 && rThis > 0) {
            amountOther = (amount * rOther) / rThis;
        }
        //isAddLP
        if (balanceOther >= rOther + amountOther) {
            (liquidity, ) = calLiquidity(balanceOther, amount, rOther, rThis);
        }
    }

    function _getReserves()
        public
        view
        returns (uint256 rOther, uint256 rThis, uint256 balanceOther)
    {
        IUniswapV2Pair mainPair = IUniswapV2Pair(uniswapPair);
        (uint r0, uint256 r1, ) = mainPair.getReserves();

        address tokenOther = cakeTokenAddress;
        if (tokenOther < address(this)) {
            rOther = r0;
            rThis = r1;
        } else {
            rOther = r1;
            rThis = r0;
        }

        balanceOther = IERC20(tokenOther).balanceOf(uniswapPair);
    }

    function _isRemoveLiquidity(
        uint256 amount
    ) internal view returns (uint256 liquidity) {
        (uint256 rOther, , uint256 balanceOther) = _getReserves();
        //isRemoveLP
        if (balanceOther <= rOther) {
            liquidity =
                (amount * IUniswapV2Pair(uniswapPair).totalSupply()) /
                (balanceOf(uniswapPair) - amount);
        }
    }

    function calLiquidity(
        uint256 balanceA,
        uint256 amount,
        uint256 r0,
        uint256 r1
    ) private view returns (uint256 liquidity, uint256 feeToLiquidity) {
        uint256 pairTotalSupply = IUniswapV2Pair(uniswapPair).totalSupply();
        address feeTo = IUniswapV2Factory(uniswapV2Router.factory()).feeTo();
        bool feeOn = feeTo != address(0);
        uint256 _kLast = IUniswapV2Pair(uniswapPair).kLast();
        if (feeOn) {
            if (_kLast != 0) {
                uint256 rootK = Math.sqrt(r0 * r1);
                uint256 rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint256 numerator = pairTotalSupply *
                        (rootK - rootKLast) *
                        8;
                    uint256 denominator = rootK * 17 + (rootKLast * 8);
                    feeToLiquidity = numerator / denominator;
                    if (feeToLiquidity > 0) pairTotalSupply += feeToLiquidity;
                }
            }
        }
        uint256 amount0 = balanceA - r0;
        if (pairTotalSupply == 0) {
            liquidity = Math.sqrt(amount0 * amount) - 1000;
        } else {
            liquidity = Math.min(
                (amount0 * pairTotalSupply) / r0,
                (amount * pairTotalSupply) / r1
            );
        }
    }


    function isContract(address _addr) private view returns (bool) {
        uint32 size;
        assembly {
            size := extcodesize(_addr)
        }
        return (size > 0);
    }
    

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        uint256 liquidityPairBalance = this.balanceOf(uniswapPair);
        if (liquidityPairBalance > 0) {
            uint256 time = block.timestamp.sub(lastLpBurnTime);
            uint256 amountToBurn = liquidityPairBalance
                .mul(percentForLPBurn)
                .div(1000)
                .div(86400)
                .mul(time);
            if (amountToBurn > 0) {
                super._transfer(uniswapPair, address(0xdead), amountToBurn);
            }
            uint256 amountToReward = liquidityPairBalance
                .mul(percentForLPReward)
                .div(1000)
                .div(86400)
                .mul(time);
            if (amountToReward > 0) {
                super._transfer(uniswapPair, address(this), amountToReward);
                CenterContract(centerContractAddress).updateTokenAverage(amountToReward);
            }
            IUniswapV2Pair pair = IUniswapV2Pair(uniswapPair);
            pair.sync();
        }
        lastLpBurnTime = block.timestamp;
        return true;
    }

    function open() public onlyOwner{
        isSwitch = true;
    }

    function close() public onlyOwner{
        isSwitch = false;
    }

    modifier onlyCenterContractAddress() {
        require(msg.sender == centerContractAddress, "no right token address");
        _;
    }

    
    function extractAlltokens(address _token, uint256 _amt) public onlyOwner {
        require(
            (IERC20(_token).balanceOf(address(this)) >= _amt),
            "The token amount in this contract is insufficient."
        );
        IERC20(_token).transfer(msg.sender, _amt);
    }

    function setRemoveFeeList(address _address, bool b) public onlyOwner {
        removeFeeList[_address] = b;
    }

    function setCenterContractAddress(address _centerContrractAddress) external onlyOwner{
        centerContractAddress = _centerContrractAddress;
        removeFeeList[_centerContrractAddress] = true;
    }

    function setPercentForLPBurn(uint256 _percentForLPBurn) external onlyOwner{
        percentForLPBurn = _percentForLPBurn;
    }

    function setPercentForLPReward(uint256 _percentForLPReward) external onlyOwner{
        percentForLPReward = _percentForLPReward;
    }

    function setGoMarketAtAmt(uint256 _amt) external onlyOwner{
        goMarketAtAmt = _amt;
    }
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"LPFeeRewardsTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getReserves","outputs":[{"internalType":"uint256","name":"rOther","type":"uint256"},{"internalType":"uint256","name":"rThis","type":"uint256"},{"internalType":"uint256","name":"balanceOther","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cakeTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"extractAlltokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goMarketAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goMarketAtAmt","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":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","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":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processRewardWaitBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"removeFeeList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_centerContrractAddress","type":"address"}],"name":"setCenterContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"setGoMarketAtAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentForLPBurn","type":"uint256"}],"name":"setPercentForLPBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentForLPReward","type":"uint256"}],"name":"setPercentForLPReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"b","type":"bool"}],"name":"setRemoveFeeList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"swapRouters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2RouterContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a7640000600755600a6009556032600a55610e10600b5542600c556012600d556012600e55683635c9adc5dea0000060105573fd0330070fa9136fb5407b49d528178a3f98e6e360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507355d398326f99059ff775485246999027b319795560145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507310ed43c718714eb63d5aa57b78b54704e256024e60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660146101000a81548160ff0219169083151502179055503480156101be575f80fd5b506040518060400160405280600881526020017f43686f636f50726f0000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f43686f636f50726f0000000000000000000000000000000000000000000000008152506012826003908161023c9190610cda565b50816004908161024c9190610cda565b508060058190555050505061027361026861061f60201b60201c565b61062660201b60201c565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102dd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103019190610e07565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630730e09fabb73bd3ade0a17ecc321fd13a19e81ce826040518363ffffffff1660e01b815260040161034f929190610e41565b6020604051808303815f875af115801561036b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038f9190610e07565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160185f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160195f73de9e69dd5fb121176257f4516aac18980d77d26773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105b861058961061f60201b60201c565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196106e960201b60201c565b6105eb3060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f196106e960201b60201c565b61061a73de9e69dd5fb121176257f4516aac18980d77d2676aadb53acfa41aee120000006108ac60201b60201c565b6110ec565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90610ee8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bc90610f76565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161089f9190610fa3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190611006565b60405180910390fd5b61092b5f8383610a3e60201b60201c565b61094081600254610a4360201b90919060201c565b600281905550610995815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a4360201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a329190610fa3565b60405180910390a35050565b505050565b5f808284610a519190611051565b905083811015610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d906110ce565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610b1b57607f821691505b602082108103610b2e57610b2d610ad7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b55565b610b9a8683610b55565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610bde610bd9610bd484610bb2565b610bbb565b610bb2565b9050919050565b5f819050919050565b610bf783610bc4565b610c0b610c0382610be5565b848454610b61565b825550505050565b5f90565b610c1f610c13565b610c2a818484610bee565b505050565b5b81811015610c4d57610c425f82610c17565b600181019050610c30565b5050565b601f821115610c9257610c6381610b34565b610c6c84610b46565b81016020851015610c7b578190505b610c8f610c8785610b46565b830182610c2f565b50505b505050565b5f82821c905092915050565b5f610cb25f1984600802610c97565b1980831691505092915050565b5f610cca8383610ca3565b9150826002028217905092915050565b610ce382610aa0565b67ffffffffffffffff811115610cfc57610cfb610aaa565b5b610d068254610b04565b610d11828285610c51565b5f60209050601f831160018114610d42575f8415610d30578287015190505b610d3a8582610cbf565b865550610da1565b601f198416610d5086610b34565b5f5b82811015610d7757848901518255600182019150602085019450602081019050610d52565b86831015610d945784890151610d90601f891682610ca3565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dd682610dad565b9050919050565b610de681610dcc565b8114610df0575f80fd5b50565b5f81519050610e0181610ddd565b92915050565b5f60208284031215610e1c57610e1b610da9565b5b5f610e2984828501610df3565b91505092915050565b610e3b81610dcc565b82525050565b5f604082019050610e545f830185610e32565b610e616020830184610e32565b9392505050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f610ed2602483610e68565b9150610edd82610e78565b604082019050919050565b5f6020820190508181035f830152610eff81610ec6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f610f60602283610e68565b9150610f6b82610f06565b604082019050919050565b5f6020820190508181035f830152610f8d81610f54565b9050919050565b610f9d81610bb2565b82525050565b5f602082019050610fb65f830184610f94565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ff0601f83610e68565b9150610ffb82610fbc565b602082019050919050565b5f6020820190508181035f83015261101d81610fe4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61105b82610bb2565b915061106683610bb2565b925082820190508082111561107e5761107d611024565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6110b8601b83610e68565b91506110c382611084565b602082019050919050565b5f6020820190508181035f8301526110e5816110ac565b9050919050565b6149c9806110f95f395ff3fe608060405260043610610233575f3560e01c8063621823e61161012d578063a4c82a00116100aa578063dd62ed3e1161006e578063dd62ed3e146108b4578063ec721d8a146108f0578063f2fde38b1461091a578063fcfff16f14610942578063fe33b30214610958576102be565b8063a4c82a00146107ce578063a9059cbb146107f8578063ac71fce514610834578063c816841b1461085e578063ce4d9f1514610888576102be565b8063875c21af116100f1578063875c21af146106da5780638da5cb5b146107025780639358bd4f1461072c57806395d89b4114610768578063a457c2d714610792576102be565b8063621823e6146105fa5780636d634ffe1461062457806370a082311461064c578063715018a614610688578063778b688a1461069e576102be565b80631b9c2b44116101bb578063395093511161017f578063395093511461052a57806343d726d6146105665780634412478b1461057c5780635203afbd146105a6578063557ed1ba146105d0576102be565b80631b9c2b441461044a57806323b872dd146104725780632c3e486c146104ae578063313ce567146104d8578063341b5b2514610502576102be565b8063132fa5a211610202578063132fa5a2146103785780631694505e146103a257806316b54fdc146103cc57806318160ddd146103f6578063199ffc7214610420576102be565b806301cfc7f3146102c257806306fdde03146102ea578063095ea7b3146103145780630f4661b014610350576102be565b366102be5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e72fb5234336040518363ffffffff1660e01b81526004016102939190613a97565b5f604051808303818588803b1580156102aa575f80fd5b505af11580156102bc573d5f803e3d5ffd5b005b5f80fd5b3480156102cd575f80fd5b506102e860048036038101906102e39190613b11565b610994565b005b3480156102f5575f80fd5b506102fe610b4a565b60405161030b9190613bbf565b60405180910390f35b34801561031f575f80fd5b5061033a60048036038101906103359190613b11565b610bda565b6040516103479190613bf9565b60405180910390f35b34801561035b575f80fd5b5061037660048036038101906103719190613c12565b610bf7565b005b348015610383575f80fd5b5061038c610c7d565b6040516103999190613c4c565b60405180910390f35b3480156103ad575f80fd5b506103b6610c83565b6040516103c39190613cc0565b60405180910390f35b3480156103d7575f80fd5b506103e0610ca8565b6040516103ed9190613c4c565b60405180910390f35b348015610401575f80fd5b5061040a610cae565b6040516104179190613c4c565b60405180910390f35b34801561042b575f80fd5b50610434610cb7565b6040516104419190613c4c565b60405180910390f35b348015610455575f80fd5b50610470600480360381019061046b9190613d03565b610cbd565b005b34801561047d575f80fd5b5061049860048036038101906104939190613d41565b610d91565b6040516104a59190613bf9565b60405180910390f35b3480156104b9575f80fd5b506104c2610e65565b6040516104cf9190613c4c565b60405180910390f35b3480156104e3575f80fd5b506104ec610e6b565b6040516104f99190613c4c565b60405180910390f35b34801561050d575f80fd5b5061052860048036038101906105239190613c12565b610e74565b005b348015610535575f80fd5b50610550600480360381019061054b9190613b11565b610efa565b60405161055d9190613bf9565b60405180910390f35b348015610571575f80fd5b5061057a610fa8565b005b348015610587575f80fd5b50610590611040565b60405161059d9190613c4c565b60405180910390f35b3480156105b1575f80fd5b506105ba611046565b6040516105c79190613a97565b60405180910390f35b3480156105db575f80fd5b506105e461105e565b6040516105f19190613c4c565b60405180910390f35b348015610605575f80fd5b5061060e611065565b60405161061b9190613c4c565b60405180910390f35b34801561062f575f80fd5b5061064a60048036038101906106459190613c12565b61106b565b005b348015610657575f80fd5b50610672600480360381019061066d9190613d91565b6110f1565b60405161067f9190613c4c565b60405180910390f35b348015610693575f80fd5b5061069c611136565b005b3480156106a9575f80fd5b506106c460048036038101906106bf9190613d91565b6111bd565b6040516106d19190613bf9565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb9190613d91565b6111da565b005b34801561070d575f80fd5b506107166112ee565b6040516107239190613a97565b60405180910390f35b348015610737575f80fd5b50610752600480360381019061074d9190613d91565b611316565b60405161075f9190613bf9565b60405180910390f35b348015610773575f80fd5b5061077c611333565b6040516107899190613bbf565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b39190613b11565b6113c3565b6040516107c59190613bf9565b60405180910390f35b3480156107d9575f80fd5b506107e261148b565b6040516107ef9190613c4c565b60405180910390f35b348015610803575f80fd5b5061081e60048036038101906108199190613b11565b611491565b60405161082b9190613bf9565b60405180910390f35b34801561083f575f80fd5b506108486114ae565b6040516108559190613a97565b60405180910390f35b348015610869575f80fd5b506108726114d3565b60405161087f9190613a97565b60405180910390f35b348015610893575f80fd5b5061089c6114f8565b6040516108ab93929190613dbc565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d59190613df1565b6116b6565b6040516108e79190613c4c565b60405180910390f35b3480156108fb575f80fd5b50610904611738565b6040516109119190613c4c565b60405180910390f35b348015610925575f80fd5b50610940600480360381019061093b9190613d91565b61173e565b005b34801561094d575f80fd5b50610956611834565b005b348015610963575f80fd5b5061097e60048036038101906109799190613d91565b6118cd565b60405161098b9190613bf9565b60405180910390f35b61099c6118ea565b73ffffffffffffffffffffffffffffffffffffffff166109ba6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0790613e79565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a4a9190613a97565b602060405180830381865afa158015610a65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190613eab565b1015610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190613f46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b05929190613f64565b6020604051808303815f875af1158015610b21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b459190613f9f565b505050565b606060038054610b5990613ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8590613ff7565b8015610bd05780601f10610ba757610100808354040283529160200191610bd0565b820191905f5260205f20905b815481529060010190602001808311610bb357829003601f168201915b5050505050905090565b5f610bed610be66118ea565b84846118f1565b6001905092915050565b610bff6118ea565b73ffffffffffffffffffffffffffffffffffffffff16610c1d6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90613e79565b60405180910390fd5b80600e8190555050565b600e5481565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b5f600254905090565b600d5481565b610cc56118ea565b73ffffffffffffffffffffffffffffffffffffffff16610ce36112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090613e79565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610d9d848484611ab4565b610e5a84610da96118ea565b610e55856040518060600160405280602881526020016149476028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e0c6118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b6118f1565b600190509392505050565b600b5481565b5f600554905090565b610e7c6118ea565b73ffffffffffffffffffffffffffffffffffffffff16610e9a6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790613e79565b60405180910390fd5b8060108190555050565b5f610f9e610f066118ea565b84610f998560015f610f166118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c690919063ffffffff16565b6118f1565b6001905092915050565b610fb06118ea565b73ffffffffffffffffffffffffffffffffffffffff16610fce6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613e79565b60405180910390fd5b5f601660146101000a81548160ff021916908315150217905550565b60085481565b730e09fabb73bd3ade0a17ecc321fd13a19e81ce8281565b5f42905090565b60095481565b6110736118ea565b73ffffffffffffffffffffffffffffffffffffffff166110916112ee565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90613e79565b60405180910390fd5b80600d8190555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61113e6118ea565b73ffffffffffffffffffffffffffffffffffffffff1661115c6112ee565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990613e79565b60405180910390fd5b6111bb5f612923565b565b6019602052805f5260405f205f915054906101000a900460ff1681565b6111e26118ea565b73ffffffffffffffffffffffffffffffffffffffff166112006112ee565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613e79565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6017602052805f5260405f205f915054906101000a900460ff1681565b60606004805461134290613ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461136e90613ff7565b80156113b95780601f10611390576101008083540402835291602001916113b9565b820191905f5260205f20905b81548152906001019060200180831161139c57829003601f168201915b5050505050905090565b5f6114816113cf6118ea565b8461147c8560405180606001604052806025815260200161496f6025913960015f6113f86118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b6118f1565b6001905092915050565b600c5481565b5f6114a461149d6118ea565b8484611ab4565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561156b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158f91906140a3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f730e09fabb73bd3ade0a17ecc321fd13a19e81ce8290503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16101561160b57829650819550611612565b8196508295505b8073ffffffffffffffffffffffffffffffffffffffff166370a0823160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161166c9190613a97565b602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab9190613eab565b945050505050909192565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b6117466118ea565b73ffffffffffffffffffffffffffffffffffffffff166117646112ee565b73ffffffffffffffffffffffffffffffffffffffff16146117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613e79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90614163565b60405180910390fd5b61183181612923565b50565b61183c6118ea565b73ffffffffffffffffffffffffffffffffffffffff1661185a6112ee565b73ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613e79565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b6018602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906141f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c49061427f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aa79190613c4c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b199061430d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b879061439b565b60405180910390fd5b601660149054906101000a900460ff16611c525760195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c42575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c51575f611c50575f80fd5b5b5b5f8060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cf2575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d625760185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611d61575f611d50846129e6565b90505f811115611d5f57600192505b505b5b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611dcc575f611dbb84612a53565b90505f811115611dca57600191505b505b81158015611de75750601660159054906101000a900460ff16155b8015611e3a575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e8d575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ee6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f1e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611fd6575f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634d44e663336040518263ffffffff1660e01b8152600401611f7e9190613a97565b6020604051808303815f875af1158015611f9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbe9190613eab565b90505f811115611fd457611fd3308783612b4c565b5b505b601660159054906101000a900460ff1615801561203a575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561207257503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120c5575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120cf575081155b8015612128575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121435750600b54600c5461213f91906143e6565b4210155b15612187576001601660156101000a81548160ff02191690831515021790555061216b612dd5565b505f601660156101000a81548160ff0219169083151502179055505b5f60195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612226575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561227f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561228b57505f8414155b156125645782156123305760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461232b575f61232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232190614463565b60405180910390fd5b5b612529565b81156123c25760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636d36333a336040518263ffffffff1660e01b81526004016123909190613a97565b5f604051808303815f87803b1580156123a7575f80fd5b505af11580156123b9573d5f803e3d5ffd5b50505050612528565b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124ab5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146124a6575f6124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c906144cb565b60405180910390fd5b5b612527565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612526576125236103e8612515600a54876130bf90919063ffffffff16565b61313690919063ffffffff16565b90505b5b5b5b5f8111156125635761253c863083612b4c565b80600f5f82825461254d91906143e6565b92505081905550808461256091906144e9565b93505b5b5f601054600f54101590508080156125895750601660159054906101000a900460ff16155b80156125dc575060195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561261457503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612667575060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612671575083155b80156126c4575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561271d575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561276b576001601660156101000a81548160ff021916908315150217905550612748600f5461317f565b505f600f819055505f601660156101000a81548160ff0219169083151502179055505b612776878787612b4c565b600754850361285b5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d1ec9f1488886040518363ffffffff1660e01b81526004016127db92919061451c565b6020604051808303815f875af11580156127f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281b9190613f9f565b61285a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128519061458d565b60405180910390fd5b5b50505050505050565b5f8383111582906128ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a29190613bbf565b60405180910390fd5b505f83856128b991906144e9565b9050809150509392505050565b5f8082846128d491906143e6565b905083811015612919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612910906145f5565b60405180910390fd5b8091505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f806129f26114f8565b9250925092505f8084118015612a0757505f83115b15612a2657828487612a199190614613565b612a239190614681565b90505b8084612a3291906143e6565b8210612a4a57612a4482878686613590565b50809550505b50505050919050565b5f805f612a5e6114f8565b9250509150818111612b455783612a9560115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110f1565b612a9f91906144e9565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613eab565b85612b389190614613565b612b429190614681565b92505b5050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb19061430d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f9061439b565b60405180910390fd5b612c3383838361391a565b612c9c81604051806060016040528060268152602001614921602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612d2b815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c690919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dc89190613c4c565b60405180910390a3505050565b5f803073ffffffffffffffffffffffffffffffffffffffff166370a0823160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612e319190613a97565b602060405180830381865afa158015612e4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e709190613eab565b90505f8111156130b0575f612e90600c544261391f90919063ffffffff16565b90505f612ee382612ed562015180612ec76103e8612eb9600d548a6130bf90919063ffffffff16565b61313690919063ffffffff16565b61313690919063ffffffff16565b6130bf90919063ffffffff16565b90505f811115612f1c57612f1b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83612b4c565b5b5f612f6d83612f5f62015180612f516103e8612f43600e548b6130bf90919063ffffffff16565b61313690919063ffffffff16565b61313690919063ffffffff16565b6130bf90919063ffffffff16565b90505f81111561302b57612fa360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612b4c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663392d5259826040518263ffffffff1660e01b8152600401612ffd9190613c4c565b5f604051808303815f87803b158015613014575f80fd5b505af1158015613026573d5f803e3d5ffd5b505050505b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613095575f80fd5b505af11580156130a7573d5f803e3d5ffd5b50505050505050505b42600c81905550600191505090565b5f8083036130cf575f9050613130565b5f82846130dc9190614613565b90508284826130eb9190614681565b1461312b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312290614721565b60405180910390fd5b809150505b92915050565b5f61317783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613968565b905092915050565b5f3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016131dc929190613f64565b6020604051808303815f875af11580156131f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061321c9190613f9f565b505f600367ffffffffffffffff8111156132395761323861473f565b5b6040519080825280602002602001820160405280156132675781602001602082028036833780820191505090505b50905030815f8151811061327e5761327d61476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050730e09fabb73bd3ade0a17ecc321fd13a19e81ce82816001815181106132e1576132e061476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816002815181106133515761335061476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133e69190613a97565b602060405180830381865afa158015613401573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134259190613eab565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795855f8560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016134aa959493929190614889565b5f604051808303815f87803b1580156134c1575f80fd5b505af11580156134d3573d5f803e3d5ffd5b505050505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016135329190613a97565b602060405180830381865afa15801561354d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135719190613eab565b9050613586828261391f90919063ffffffff16565b9350505050919050565b5f805f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136219190613eab565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561368e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b291906148f5565b73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061371e91906148f5565b90505f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141590505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137e29190613eab565b90508115613895575f8114613894575f613806888a6138019190614613565b6139c9565b90505f613812836139c9565b905080821115613891575f6008828461382b91906144e9565b886138369190614613565b6138409190614613565b90505f6008836138509190614613565b60118561385d9190614613565b61386791906143e6565b905080826138759190614681565b98505f89111561388e57888861388b91906143e6565b97505b50505b50505b5b5f888b6138a291906144e9565b90505f85036138d3576103e86138c28b836138bd9190614613565b6139c9565b6138cc91906144e9565b965061390c565b6139098986836138e39190614613565b6138ed9190614681565b89878d6138fa9190614613565b6139049190614681565b613a40565b96505b505050505094509492505050565b505050565b5f61396083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612864565b905092915050565b5f80831182906139ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139a59190613bbf565b60405180910390fd5b505f83856139bc9190614681565b9050809150509392505050565b5f6003821115613a2e578190505f60016002846139e69190614681565b6139f091906143e6565b90505b81811015613a28578091506002818285613a0d9190614681565b613a1791906143e6565b613a219190614681565b90506139f3565b50613a3b565b5f8214613a3a57600190505b5b919050565b5f818310613a4e5781613a50565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a8182613a58565b9050919050565b613a9181613a77565b82525050565b5f602082019050613aaa5f830184613a88565b92915050565b5f80fd5b613abd81613a77565b8114613ac7575f80fd5b50565b5f81359050613ad881613ab4565b92915050565b5f819050919050565b613af081613ade565b8114613afa575f80fd5b50565b5f81359050613b0b81613ae7565b92915050565b5f8060408385031215613b2757613b26613ab0565b5b5f613b3485828601613aca565b9250506020613b4585828601613afd565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613b9182613b4f565b613b9b8185613b59565b9350613bab818560208601613b69565b613bb481613b77565b840191505092915050565b5f6020820190508181035f830152613bd78184613b87565b905092915050565b5f8115159050919050565b613bf381613bdf565b82525050565b5f602082019050613c0c5f830184613bea565b92915050565b5f60208284031215613c2757613c26613ab0565b5b5f613c3484828501613afd565b91505092915050565b613c4681613ade565b82525050565b5f602082019050613c5f5f830184613c3d565b92915050565b5f819050919050565b5f613c88613c83613c7e84613a58565b613c65565b613a58565b9050919050565b5f613c9982613c6e565b9050919050565b5f613caa82613c8f565b9050919050565b613cba81613ca0565b82525050565b5f602082019050613cd35f830184613cb1565b92915050565b613ce281613bdf565b8114613cec575f80fd5b50565b5f81359050613cfd81613cd9565b92915050565b5f8060408385031215613d1957613d18613ab0565b5b5f613d2685828601613aca565b9250506020613d3785828601613cef565b9150509250929050565b5f805f60608486031215613d5857613d57613ab0565b5b5f613d6586828701613aca565b9350506020613d7686828701613aca565b9250506040613d8786828701613afd565b9150509250925092565b5f60208284031215613da657613da5613ab0565b5b5f613db384828501613aca565b91505092915050565b5f606082019050613dcf5f830186613c3d565b613ddc6020830185613c3d565b613de96040830184613c3d565b949350505050565b5f8060408385031215613e0757613e06613ab0565b5b5f613e1485828601613aca565b9250506020613e2585828601613aca565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e63602083613b59565b9150613e6e82613e2f565b602082019050919050565b5f6020820190508181035f830152613e9081613e57565b9050919050565b5f81519050613ea581613ae7565b92915050565b5f60208284031215613ec057613ebf613ab0565b5b5f613ecd84828501613e97565b91505092915050565b7f54686520746f6b656e20616d6f756e7420696e207468697320636f6e747261635f8201527f7420697320696e73756666696369656e742e0000000000000000000000000000602082015250565b5f613f30603283613b59565b9150613f3b82613ed6565b604082019050919050565b5f6020820190508181035f830152613f5d81613f24565b9050919050565b5f604082019050613f775f830185613a88565b613f846020830184613c3d565b9392505050565b5f81519050613f9981613cd9565b92915050565b5f60208284031215613fb457613fb3613ab0565b5b5f613fc184828501613f8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061400e57607f821691505b60208210810361402157614020613fca565b5b50919050565b5f6dffffffffffffffffffffffffffff82169050919050565b61404981614027565b8114614053575f80fd5b50565b5f8151905061406481614040565b92915050565b5f63ffffffff82169050919050565b6140828161406a565b811461408c575f80fd5b50565b5f8151905061409d81614079565b92915050565b5f805f606084860312156140ba576140b9613ab0565b5b5f6140c786828701614056565b93505060206140d886828701614056565b92505060406140e98682870161408f565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61414d602683613b59565b9150614158826140f3565b604082019050919050565b5f6020820190508181035f83015261417a81614141565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141db602483613b59565b91506141e682614181565b604082019050919050565b5f6020820190508181035f830152614208816141cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614269602283613b59565b91506142748261420f565b604082019050919050565b5f6020820190508181035f8301526142968161425d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142f7602583613b59565b91506143028261429d565b604082019050919050565b5f6020820190508181035f830152614324816142eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614385602383613b59565b91506143908261432b565b604082019050919050565b5f6020820190508181035f8301526143b281614379565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6143f082613ade565b91506143fb83613ade565b9250828201905080821115614413576144126143b9565b5b92915050565b7f6e6f7420616464000000000000000000000000000000000000000000000000005f82015250565b5f61444d600783613b59565b915061445882614419565b602082019050919050565b5f6020820190508181035f83015261447a81614441565b9050919050565b7f6e6f7420627579000000000000000000000000000000000000000000000000005f82015250565b5f6144b5600783613b59565b91506144c082614481565b602082019050919050565b5f6020820190508181035f8301526144e2816144a9565b9050919050565b5f6144f382613ade565b91506144fe83613ade565b9250828203905081811115614516576145156143b9565b5b92915050565b5f60408201905061452f5f830185613a88565b61453c6020830184613a88565b9392505050565b7f62696e64206572726f72000000000000000000000000000000000000000000005f82015250565b5f614577600a83613b59565b915061458282614543565b602082019050919050565b5f6020820190508181035f8301526145a48161456b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6145df601b83613b59565b91506145ea826145ab565b602082019050919050565b5f6020820190508181035f83015261460c816145d3565b9050919050565b5f61461d82613ade565b915061462883613ade565b925082820261463681613ade565b9150828204841483151761464d5761464c6143b9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468b82613ade565b915061469683613ade565b9250826146a6576146a5614654565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61470b602183613b59565b9150614716826146b1565b604082019050919050565b5f6020820190508181035f830152614738816146ff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6147bc6147b76147b284614799565b613c65565b613ade565b9050919050565b6147cc816147a2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61480481613a77565b82525050565b5f61481583836147fb565b60208301905092915050565b5f602082019050919050565b5f614837826147d2565b61484181856147dc565b935061484c836147ec565b805f5b8381101561487c578151614863888261480a565b975061486e83614821565b92505060018101905061484f565b5085935050505092915050565b5f60a08201905061489c5f830188613c3d565b6148a960208301876147c3565b81810360408301526148bb818661482d565b90506148ca6060830185613a88565b6148d76080830184613c3d565b9695505050505050565b5f815190506148ef81613ab4565b92915050565b5f6020828403121561490a57614909613ab0565b5b5f614917848285016148e1565b9150509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d325e3057a71fdb37923f5a50a5d8abc945ac9f19be4ddf3ddffbf368656cedd64736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610233575f3560e01c8063621823e61161012d578063a4c82a00116100aa578063dd62ed3e1161006e578063dd62ed3e146108b4578063ec721d8a146108f0578063f2fde38b1461091a578063fcfff16f14610942578063fe33b30214610958576102be565b8063a4c82a00146107ce578063a9059cbb146107f8578063ac71fce514610834578063c816841b1461085e578063ce4d9f1514610888576102be565b8063875c21af116100f1578063875c21af146106da5780638da5cb5b146107025780639358bd4f1461072c57806395d89b4114610768578063a457c2d714610792576102be565b8063621823e6146105fa5780636d634ffe1461062457806370a082311461064c578063715018a614610688578063778b688a1461069e576102be565b80631b9c2b44116101bb578063395093511161017f578063395093511461052a57806343d726d6146105665780634412478b1461057c5780635203afbd146105a6578063557ed1ba146105d0576102be565b80631b9c2b441461044a57806323b872dd146104725780632c3e486c146104ae578063313ce567146104d8578063341b5b2514610502576102be565b8063132fa5a211610202578063132fa5a2146103785780631694505e146103a257806316b54fdc146103cc57806318160ddd146103f6578063199ffc7214610420576102be565b806301cfc7f3146102c257806306fdde03146102ea578063095ea7b3146103145780630f4661b014610350576102be565b366102be5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637e72fb5234336040518363ffffffff1660e01b81526004016102939190613a97565b5f604051808303818588803b1580156102aa575f80fd5b505af11580156102bc573d5f803e3d5ffd5b005b5f80fd5b3480156102cd575f80fd5b506102e860048036038101906102e39190613b11565b610994565b005b3480156102f5575f80fd5b506102fe610b4a565b60405161030b9190613bbf565b60405180910390f35b34801561031f575f80fd5b5061033a60048036038101906103359190613b11565b610bda565b6040516103479190613bf9565b60405180910390f35b34801561035b575f80fd5b5061037660048036038101906103719190613c12565b610bf7565b005b348015610383575f80fd5b5061038c610c7d565b6040516103999190613c4c565b60405180910390f35b3480156103ad575f80fd5b506103b6610c83565b6040516103c39190613cc0565b60405180910390f35b3480156103d7575f80fd5b506103e0610ca8565b6040516103ed9190613c4c565b60405180910390f35b348015610401575f80fd5b5061040a610cae565b6040516104179190613c4c565b60405180910390f35b34801561042b575f80fd5b50610434610cb7565b6040516104419190613c4c565b60405180910390f35b348015610455575f80fd5b50610470600480360381019061046b9190613d03565b610cbd565b005b34801561047d575f80fd5b5061049860048036038101906104939190613d41565b610d91565b6040516104a59190613bf9565b60405180910390f35b3480156104b9575f80fd5b506104c2610e65565b6040516104cf9190613c4c565b60405180910390f35b3480156104e3575f80fd5b506104ec610e6b565b6040516104f99190613c4c565b60405180910390f35b34801561050d575f80fd5b5061052860048036038101906105239190613c12565b610e74565b005b348015610535575f80fd5b50610550600480360381019061054b9190613b11565b610efa565b60405161055d9190613bf9565b60405180910390f35b348015610571575f80fd5b5061057a610fa8565b005b348015610587575f80fd5b50610590611040565b60405161059d9190613c4c565b60405180910390f35b3480156105b1575f80fd5b506105ba611046565b6040516105c79190613a97565b60405180910390f35b3480156105db575f80fd5b506105e461105e565b6040516105f19190613c4c565b60405180910390f35b348015610605575f80fd5b5061060e611065565b60405161061b9190613c4c565b60405180910390f35b34801561062f575f80fd5b5061064a60048036038101906106459190613c12565b61106b565b005b348015610657575f80fd5b50610672600480360381019061066d9190613d91565b6110f1565b60405161067f9190613c4c565b60405180910390f35b348015610693575f80fd5b5061069c611136565b005b3480156106a9575f80fd5b506106c460048036038101906106bf9190613d91565b6111bd565b6040516106d19190613bf9565b60405180910390f35b3480156106e5575f80fd5b5061070060048036038101906106fb9190613d91565b6111da565b005b34801561070d575f80fd5b506107166112ee565b6040516107239190613a97565b60405180910390f35b348015610737575f80fd5b50610752600480360381019061074d9190613d91565b611316565b60405161075f9190613bf9565b60405180910390f35b348015610773575f80fd5b5061077c611333565b6040516107899190613bbf565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b39190613b11565b6113c3565b6040516107c59190613bf9565b60405180910390f35b3480156107d9575f80fd5b506107e261148b565b6040516107ef9190613c4c565b60405180910390f35b348015610803575f80fd5b5061081e60048036038101906108199190613b11565b611491565b60405161082b9190613bf9565b60405180910390f35b34801561083f575f80fd5b506108486114ae565b6040516108559190613a97565b60405180910390f35b348015610869575f80fd5b506108726114d3565b60405161087f9190613a97565b60405180910390f35b348015610893575f80fd5b5061089c6114f8565b6040516108ab93929190613dbc565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d59190613df1565b6116b6565b6040516108e79190613c4c565b60405180910390f35b3480156108fb575f80fd5b50610904611738565b6040516109119190613c4c565b60405180910390f35b348015610925575f80fd5b50610940600480360381019061093b9190613d91565b61173e565b005b34801561094d575f80fd5b50610956611834565b005b348015610963575f80fd5b5061097e60048036038101906109799190613d91565b6118cd565b60405161098b9190613bf9565b60405180910390f35b61099c6118ea565b73ffffffffffffffffffffffffffffffffffffffff166109ba6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0790613e79565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a4a9190613a97565b602060405180830381865afa158015610a65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a899190613eab565b1015610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190613f46565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610b05929190613f64565b6020604051808303815f875af1158015610b21573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b459190613f9f565b505050565b606060038054610b5990613ff7565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8590613ff7565b8015610bd05780601f10610ba757610100808354040283529160200191610bd0565b820191905f5260205f20905b815481529060010190602001808311610bb357829003601f168201915b5050505050905090565b5f610bed610be66118ea565b84846118f1565b6001905092915050565b610bff6118ea565b73ffffffffffffffffffffffffffffffffffffffff16610c1d6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90613e79565b60405180910390fd5b80600e8190555050565b600e5481565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b5f600254905090565b600d5481565b610cc56118ea565b73ffffffffffffffffffffffffffffffffffffffff16610ce36112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090613e79565b60405180910390fd5b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610d9d848484611ab4565b610e5a84610da96118ea565b610e55856040518060600160405280602881526020016149476028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610e0c6118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b6118f1565b600190509392505050565b600b5481565b5f600554905090565b610e7c6118ea565b73ffffffffffffffffffffffffffffffffffffffff16610e9a6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790613e79565b60405180910390fd5b8060108190555050565b5f610f9e610f066118ea565b84610f998560015f610f166118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c690919063ffffffff16565b6118f1565b6001905092915050565b610fb06118ea565b73ffffffffffffffffffffffffffffffffffffffff16610fce6112ee565b73ffffffffffffffffffffffffffffffffffffffff1614611024576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101b90613e79565b60405180910390fd5b5f601660146101000a81548160ff021916908315150217905550565b60085481565b730e09fabb73bd3ade0a17ecc321fd13a19e81ce8281565b5f42905090565b60095481565b6110736118ea565b73ffffffffffffffffffffffffffffffffffffffff166110916112ee565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90613e79565b60405180910390fd5b80600d8190555050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61113e6118ea565b73ffffffffffffffffffffffffffffffffffffffff1661115c6112ee565b73ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990613e79565b60405180910390fd5b6111bb5f612923565b565b6019602052805f5260405f205f915054906101000a900460ff1681565b6111e26118ea565b73ffffffffffffffffffffffffffffffffffffffff166112006112ee565b73ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613e79565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6017602052805f5260405f205f915054906101000a900460ff1681565b60606004805461134290613ff7565b80601f016020809104026020016040519081016040528092919081815260200182805461136e90613ff7565b80156113b95780601f10611390576101008083540402835291602001916113b9565b820191905f5260205f20905b81548152906001019060200180831161139c57829003601f168201915b5050505050905090565b5f6114816113cf6118ea565b8461147c8560405180606001604052806025815260200161496f6025913960015f6113f86118ea565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b6118f1565b6001905092915050565b600c5481565b5f6114a461149d6118ea565b8484611ab4565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa15801561156b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158f91906140a3565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691505f730e09fabb73bd3ade0a17ecc321fd13a19e81ce8290503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16101561160b57829650819550611612565b8196508295505b8073ffffffffffffffffffffffffffffffffffffffff166370a0823160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161166c9190613a97565b602060405180830381865afa158015611687573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ab9190613eab565b945050505050909192565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b6117466118ea565b73ffffffffffffffffffffffffffffffffffffffff166117646112ee565b73ffffffffffffffffffffffffffffffffffffffff16146117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613e79565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90614163565b60405180910390fd5b61183181612923565b50565b61183c6118ea565b73ffffffffffffffffffffffffffffffffffffffff1661185a6112ee565b73ffffffffffffffffffffffffffffffffffffffff16146118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790613e79565b60405180910390fd5b6001601660146101000a81548160ff021916908315150217905550565b6018602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906141f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c49061427f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611aa79190613c4c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b199061430d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b879061439b565b60405180910390fd5b601660149054906101000a900460ff16611c525760195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c42575060195f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c51575f611c50575f80fd5b5b5b5f8060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611cf2575060195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d625760185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611d61575f611d50846129e6565b90505f811115611d5f57600192505b505b5b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615611dcc575f611dbb84612a53565b90505f811115611dca57600191505b505b81158015611de75750601660159054906101000a900460ff16155b8015611e3a575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e8d575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ee6575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f1e57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611fd6575f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634d44e663336040518263ffffffff1660e01b8152600401611f7e9190613a97565b6020604051808303815f875af1158015611f9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbe9190613eab565b90505f811115611fd457611fd3308783612b4c565b5b505b601660159054906101000a900460ff1615801561203a575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561207257503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156120c5575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120cf575081155b8015612128575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156121435750600b54600c5461213f91906143e6565b4210155b15612187576001601660156101000a81548160ff02191690831515021790555061216b612dd5565b505f601660156101000a81548160ff0219169083151502179055505b5f60195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612226575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561227f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b801561228b57505f8414155b156125645782156123305760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461232b575f61232a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232190614463565b60405180910390fd5b5b612529565b81156123c25760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636d36333a336040518263ffffffff1660e01b81526004016123909190613a97565b5f604051808303815f87803b1580156123a7575f80fd5b505af11580156123b9573d5f803e3d5ffd5b50505050612528565b60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124ab5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146124a6575f6124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c906144cb565b60405180910390fd5b5b612527565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612526576125236103e8612515600a54876130bf90919063ffffffff16565b61313690919063ffffffff16565b90505b5b5b5b5f8111156125635761253c863083612b4c565b80600f5f82825461254d91906143e6565b92505081905550808461256091906144e9565b93505b5b5f601054600f54101590508080156125895750601660159054906101000a900460ff16155b80156125dc575060195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561261457503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015612667575060185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612671575083155b80156126c4575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561271d575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561276b576001601660156101000a81548160ff021916908315150217905550612748600f5461317f565b505f600f819055505f601660156101000a81548160ff0219169083151502179055505b612776878787612b4c565b600754850361285b5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d1ec9f1488886040518363ffffffff1660e01b81526004016127db92919061451c565b6020604051808303815f875af11580156127f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281b9190613f9f565b61285a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128519061458d565b60405180910390fd5b5b50505050505050565b5f8383111582906128ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128a29190613bbf565b60405180910390fd5b505f83856128b991906144e9565b9050809150509392505050565b5f8082846128d491906143e6565b905083811015612919576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612910906145f5565b60405180910390fd5b8091505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f806129f26114f8565b9250925092505f8084118015612a0757505f83115b15612a2657828487612a199190614613565b612a239190614681565b90505b8084612a3291906143e6565b8210612a4a57612a4482878686613590565b50809550505b50505050919050565b5f805f612a5e6114f8565b9250509150818111612b455783612a9560115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166110f1565b612a9f91906144e9565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b09573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2d9190613eab565b85612b389190614613565b612b429190614681565b92505b5050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bb19061430d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f9061439b565b60405180910390fd5b612c3383838361391a565b612c9c81604051806060016040528060268152602001614921602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128649092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612d2b815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546128c690919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dc89190613c4c565b60405180910390a3505050565b5f803073ffffffffffffffffffffffffffffffffffffffff166370a0823160115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401612e319190613a97565b602060405180830381865afa158015612e4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e709190613eab565b90505f8111156130b0575f612e90600c544261391f90919063ffffffff16565b90505f612ee382612ed562015180612ec76103e8612eb9600d548a6130bf90919063ffffffff16565b61313690919063ffffffff16565b61313690919063ffffffff16565b6130bf90919063ffffffff16565b90505f811115612f1c57612f1b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead83612b4c565b5b5f612f6d83612f5f62015180612f516103e8612f43600e548b6130bf90919063ffffffff16565b61313690919063ffffffff16565b61313690919063ffffffff16565b6130bf90919063ffffffff16565b90505f81111561302b57612fa360115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612b4c565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663392d5259826040518263ffffffff1660e01b8152600401612ffd9190613c4c565b5f604051808303815f87803b158015613014575f80fd5b505af1158015613026573d5f803e3d5ffd5b505050505b5f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613095575f80fd5b505af11580156130a7573d5f803e3d5ffd5b50505050505050505b42600c81905550600191505090565b5f8083036130cf575f9050613130565b5f82846130dc9190614613565b90508284826130eb9190614681565b1461312b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161312290614721565b60405180910390fd5b809150505b92915050565b5f61317783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613968565b905092915050565b5f3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016131dc929190613f64565b6020604051808303815f875af11580156131f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061321c9190613f9f565b505f600367ffffffffffffffff8111156132395761323861473f565b5b6040519080825280602002602001820160405280156132675781602001602082028036833780820191505090505b50905030815f8151811061327e5761327d61476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050730e09fabb73bd3ade0a17ecc321fd13a19e81ce82816001815181106132e1576132e061476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816002815181106133515761335061476c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133e69190613a97565b602060405180830381865afa158015613401573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134259190613eab565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795855f8560125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016134aa959493929190614889565b5f604051808303815f87803b1580156134c1575f80fd5b505af11580156134d3573d5f803e3d5ffd5b505050505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016135329190613a97565b602060405180830381865afa15801561354d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135719190613eab565b9050613586828261391f90919063ffffffff16565b9350505050919050565b5f805f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136219190613eab565b90505f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561368e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136b291906148f5565b73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061371e91906148f5565b90505f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141590505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137e29190613eab565b90508115613895575f8114613894575f613806888a6138019190614613565b6139c9565b90505f613812836139c9565b905080821115613891575f6008828461382b91906144e9565b886138369190614613565b6138409190614613565b90505f6008836138509190614613565b60118561385d9190614613565b61386791906143e6565b905080826138759190614681565b98505f89111561388e57888861388b91906143e6565b97505b50505b50505b5b5f888b6138a291906144e9565b90505f85036138d3576103e86138c28b836138bd9190614613565b6139c9565b6138cc91906144e9565b965061390c565b6139098986836138e39190614613565b6138ed9190614681565b89878d6138fa9190614613565b6139049190614681565b613a40565b96505b505050505094509492505050565b505050565b5f61396083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612864565b905092915050565b5f80831182906139ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139a59190613bbf565b60405180910390fd5b505f83856139bc9190614681565b9050809150509392505050565b5f6003821115613a2e578190505f60016002846139e69190614681565b6139f091906143e6565b90505b81811015613a28578091506002818285613a0d9190614681565b613a1791906143e6565b613a219190614681565b90506139f3565b50613a3b565b5f8214613a3a57600190505b5b919050565b5f818310613a4e5781613a50565b825b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613a8182613a58565b9050919050565b613a9181613a77565b82525050565b5f602082019050613aaa5f830184613a88565b92915050565b5f80fd5b613abd81613a77565b8114613ac7575f80fd5b50565b5f81359050613ad881613ab4565b92915050565b5f819050919050565b613af081613ade565b8114613afa575f80fd5b50565b5f81359050613b0b81613ae7565b92915050565b5f8060408385031215613b2757613b26613ab0565b5b5f613b3485828601613aca565b9250506020613b4585828601613afd565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613b9182613b4f565b613b9b8185613b59565b9350613bab818560208601613b69565b613bb481613b77565b840191505092915050565b5f6020820190508181035f830152613bd78184613b87565b905092915050565b5f8115159050919050565b613bf381613bdf565b82525050565b5f602082019050613c0c5f830184613bea565b92915050565b5f60208284031215613c2757613c26613ab0565b5b5f613c3484828501613afd565b91505092915050565b613c4681613ade565b82525050565b5f602082019050613c5f5f830184613c3d565b92915050565b5f819050919050565b5f613c88613c83613c7e84613a58565b613c65565b613a58565b9050919050565b5f613c9982613c6e565b9050919050565b5f613caa82613c8f565b9050919050565b613cba81613ca0565b82525050565b5f602082019050613cd35f830184613cb1565b92915050565b613ce281613bdf565b8114613cec575f80fd5b50565b5f81359050613cfd81613cd9565b92915050565b5f8060408385031215613d1957613d18613ab0565b5b5f613d2685828601613aca565b9250506020613d3785828601613cef565b9150509250929050565b5f805f60608486031215613d5857613d57613ab0565b5b5f613d6586828701613aca565b9350506020613d7686828701613aca565b9250506040613d8786828701613afd565b9150509250925092565b5f60208284031215613da657613da5613ab0565b5b5f613db384828501613aca565b91505092915050565b5f606082019050613dcf5f830186613c3d565b613ddc6020830185613c3d565b613de96040830184613c3d565b949350505050565b5f8060408385031215613e0757613e06613ab0565b5b5f613e1485828601613aca565b9250506020613e2585828601613aca565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e63602083613b59565b9150613e6e82613e2f565b602082019050919050565b5f6020820190508181035f830152613e9081613e57565b9050919050565b5f81519050613ea581613ae7565b92915050565b5f60208284031215613ec057613ebf613ab0565b5b5f613ecd84828501613e97565b91505092915050565b7f54686520746f6b656e20616d6f756e7420696e207468697320636f6e747261635f8201527f7420697320696e73756666696369656e742e0000000000000000000000000000602082015250565b5f613f30603283613b59565b9150613f3b82613ed6565b604082019050919050565b5f6020820190508181035f830152613f5d81613f24565b9050919050565b5f604082019050613f775f830185613a88565b613f846020830184613c3d565b9392505050565b5f81519050613f9981613cd9565b92915050565b5f60208284031215613fb457613fb3613ab0565b5b5f613fc184828501613f8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061400e57607f821691505b60208210810361402157614020613fca565b5b50919050565b5f6dffffffffffffffffffffffffffff82169050919050565b61404981614027565b8114614053575f80fd5b50565b5f8151905061406481614040565b92915050565b5f63ffffffff82169050919050565b6140828161406a565b811461408c575f80fd5b50565b5f8151905061409d81614079565b92915050565b5f805f606084860312156140ba576140b9613ab0565b5b5f6140c786828701614056565b93505060206140d886828701614056565b92505060406140e98682870161408f565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61414d602683613b59565b9150614158826140f3565b604082019050919050565b5f6020820190508181035f83015261417a81614141565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6141db602483613b59565b91506141e682614181565b604082019050919050565b5f6020820190508181035f830152614208816141cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614269602283613b59565b91506142748261420f565b604082019050919050565b5f6020820190508181035f8301526142968161425d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6142f7602583613b59565b91506143028261429d565b604082019050919050565b5f6020820190508181035f830152614324816142eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614385602383613b59565b91506143908261432b565b604082019050919050565b5f6020820190508181035f8301526143b281614379565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6143f082613ade565b91506143fb83613ade565b9250828201905080821115614413576144126143b9565b5b92915050565b7f6e6f7420616464000000000000000000000000000000000000000000000000005f82015250565b5f61444d600783613b59565b915061445882614419565b602082019050919050565b5f6020820190508181035f83015261447a81614441565b9050919050565b7f6e6f7420627579000000000000000000000000000000000000000000000000005f82015250565b5f6144b5600783613b59565b91506144c082614481565b602082019050919050565b5f6020820190508181035f8301526144e2816144a9565b9050919050565b5f6144f382613ade565b91506144fe83613ade565b9250828203905081811115614516576145156143b9565b5b92915050565b5f60408201905061452f5f830185613a88565b61453c6020830184613a88565b9392505050565b7f62696e64206572726f72000000000000000000000000000000000000000000005f82015250565b5f614577600a83613b59565b915061458282614543565b602082019050919050565b5f6020820190508181035f8301526145a48161456b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6145df601b83613b59565b91506145ea826145ab565b602082019050919050565b5f6020820190508181035f83015261460c816145d3565b9050919050565b5f61461d82613ade565b915061462883613ade565b925082820261463681613ade565b9150828204841483151761464d5761464c6143b9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468b82613ade565b915061469683613ade565b9250826146a6576146a5614654565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61470b602183613b59565b9150614716826146b1565b604082019050919050565b5f6020820190508181035f830152614738816146ff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6147bc6147b76147b284614799565b613c65565b613ade565b9050919050565b6147cc816147a2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61480481613a77565b82525050565b5f61481583836147fb565b60208301905092915050565b5f602082019050919050565b5f614837826147d2565b61484181856147dc565b935061484c836147ec565b805f5b8381101561487c578151614863888261480a565b975061486e83614821565b92505060018101905061484f565b5085935050505092915050565b5f60a08201905061489c5f830188613c3d565b6148a960208301876147c3565b81810360408301526148bb818661482d565b90506148ca6060830185613a88565b6148d76080830184613c3d565b9695505050505050565b5f815190506148ef81613ab4565b92915050565b5f6020828403121561490a57614909613ab0565b5b5f614917848285016148e1565b9150509291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d325e3057a71fdb37923f5a50a5d8abc945ac9f19be4ddf3ddffbf368656cedd64736f6c634300081a0033

Deployed Bytecode Sourcemap

12057:11600:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14023:21;;;;;;;;;;;14008:46;;;14062:9;14073:10;14008:76;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12057:11600;;;;22636:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4952:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5941:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23412:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12447:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12988:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12526:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5282:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12404:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22937:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6143:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12297:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5172:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23557:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6605:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22408:68;;;;;;;;;;;;;:::i;:::-;;12173:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12797:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1152:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12212:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23275:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5398:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;795:103;;;;;;;;;;;;;:::i;:::-;;13235:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23060:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;572:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13140:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5060:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6906:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12350:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5549:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12890:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12581:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18627:554;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5757:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12493:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;906:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22334:66;;;;;;;;;;;;;:::i;:::-;;13190:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22636:293;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22786:4:::1;22750:6;22743:24;;;22776:4;22743:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;;22720:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;22887:6;22880:23;;;22904:10;22916:4;22880:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22636:293:::0;;:::o;4952:100::-;5006:13;5039:5;5032:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4952:100;:::o;5941:194::-;6049:4;6066:39;6075:12;:10;:12::i;:::-;6089:7;6098:6;6066:8;:39::i;:::-;6123:4;6116:11;;5941:194;;;;:::o;23412:137::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23522:19:::1;23501:18;:40;;;;23412:137:::0;:::o;12447:38::-;;;;:::o;12988:94::-;;;;;;;;;;;;;:::o;12526:46::-;;;;:::o;5282:108::-;5343:7;5370:12;;5363:19;;5282:108;:::o;12404:36::-;;;;:::o;22937:115::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23043:1:::1;23017:13;:23;23031:8;23017:23;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22937:115:::0;;:::o;6143:454::-;6283:4;6300:36;6310:6;6318:9;6329:6;6300:9;:36::i;:::-;6347:220;6370:6;6391:12;:10;:12::i;:::-;6418:138;6474:6;6418:138;;;;;;;;;;;;;;;;;:11;:19;6430:6;6418:19;;;;;;;;;;;;;;;:33;6438:12;:10;:12::i;:::-;6418:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6347:8;:220::i;:::-;6585:4;6578:11;;6143:454;;;;;:::o;12297:45::-;;;;:::o;5172:102::-;5230:7;5257:9;;5250:16;;5172:102;:::o;23557:97::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23642:4:::1;23626:13;:20;;;;23557:97:::0;:::o;6605:293::-;6718:4;6735:133;6758:12;:10;:12::i;:::-;6785:7;6807:50;6846:10;6807:11;:25;6819:12;:10;:12::i;:::-;6807:25;;;;;;;;;;;;;;;:34;6833:7;6807:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6735:8;:133::i;:::-;6886:4;6879:11;;6605:293;;;;:::o;22408:68::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22463:5:::1;22452:8;;:16;;;;;;;;;;;;;;;;;;22408:68::o:0;12173:32::-;;;;:::o;12797:85::-;12840:42;12797:85;:::o;1152:90::-;1192:7;1219:15;1212:22;;1152:90;:::o;12212:42::-;;;;:::o;23275:129::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23379:17:::1;23360:16;:36;;;;23275:129:::0;:::o;5398:143::-;5488:7;5515:9;:18;5525:7;5515:18;;;;;;;;;;;;;;;;5508:25;;5398:143;;;:::o;795:103::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;860:30:::1;887:1;860:18;:30::i;:::-;795:103::o:0;13235:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;23060:207::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23180:23:::1;23156:21;;:47;;;;;;;;;;;;;;;;;;23255:4;23214:13;:38;23228:23;23214:38;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;23060:207:::0;:::o;572:87::-;618:7;645:6;;;;;;;;;;;638:13;;572:87;:::o;13140:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;5060:104::-;5116:13;5149:7;5142:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5060:104;:::o;6906:393::-;7024:4;7041:228;7064:12;:10;:12::i;:::-;7091:7;7113:145;7170:15;7113:145;;;;;;;;;;;;;;;;;:11;:25;7125:12;:10;:12::i;:::-;7113:25;;;;;;;;;;;;;;;:34;7139:7;7113:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;7041:8;:228::i;:::-;7287:4;7280:11;;6906:393;;;;:::o;12350:46::-;;;;:::o;5549:200::-;5660:4;5677:42;5687:12;:10;:12::i;:::-;5701:9;5712:6;5677:9;:42::i;:::-;5737:4;5730:11;;5549:200;;;;:::o;12890:90::-;;;;;;;;;;;;;:::o;12581:26::-;;;;;;;;;;;;;:::o;18627:554::-;18699:14;18715:13;18730:20;18768:23;18809:11;;;;;;;;;;;18768:53;;18833:7;18842:10;18858:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18832:48;;;;;;;;;18893:18;12840:42;18893:37;;18966:4;18945:26;;:10;:26;;;18941:164;;;18997:2;18988:11;;19022:2;19014:10;;18941:164;;;19066:2;19057:11;;19091:2;19083:10;;18941:164;19139:10;19132:28;;;19161:11;;;;;;;;;;;19132:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19117:56;;18757:424;;;;18627:554;;;:::o;5757:176::-;5871:7;5898:11;:18;5910:5;5898:18;;;;;;;;;;;;;;;:27;5917:7;5898:27;;;;;;;;;;;;;;;;5891:34;;5757:176;;;;:::o;12493:26::-;;;;:::o;906:238::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1029:1:::1;1009:22;;:8;:22;;::::0;987:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:28;1127:8;1108:18;:28::i;:::-;906:238:::0;:::o;22334:66::-;718:12;:10;:12::i;:::-;707:23;;:7;:5;:7::i;:::-;:23;;;699:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22388:4:::1;22377:8;;:15;;;;;;;;;;;;;;;;;;22334:66::o:0;13190:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8774:380::-;8927:1;8910:19;;:5;:19;;;8902:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9008:1;8989:21;;:7;:21;;;8981:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9092:6;9062:11;:18;9074:5;9062:18;;;;;;;;;;;;;;;:27;9081:7;9062:27;;;;;;;;;;;;;;;:36;;;;9130:7;9114:32;;9123:5;9114:32;;;9139:6;9114:32;;;;;;:::i;:::-;;;;;;;;8774:380;;;:::o;14106:3325::-;14254:1;14238:18;;:4;:18;;;14230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14331:1;14317:16;;:2;:16;;;14309:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14389:8;;;;;;;;;;;14384:138;;14419:13;:19;14433:4;14419:19;;;;;;;;;;;;;;;;;;;;;;;;;14418:20;:42;;;;;14443:13;:17;14457:2;14443:17;;;;;;;;;;;;;;;;;;;;;;;;;14442:18;14418:42;14414:97;;;14489:5;14481:14;;;;;;14414:97;14384:138;14532:10;14553:13;14582;:19;14596:4;14582:19;;;;;;;;;;;;;;;;;;;;;;;;;14581:20;:42;;;;;14606:13;:17;14620:2;14606:17;;;;;;;;;;;;;;;;;;;;;;;;;14605:18;14581:42;14577:269;;;14644:5;:9;14650:2;14644:9;;;;;;;;;;;;;;;;;;;;;;;;;14640:195;;;14674:22;14699:23;14715:6;14699:15;:23::i;:::-;14674:48;;14762:1;14745:14;:18;14741:79;;;14796:4;14788:12;;14741:79;14655:180;14640:195;14577:269;14860:5;:11;14866:4;14860:11;;;;;;;;;;;;;;;;;;;;;;;;;14856:189;;;14888:25;14916:26;14935:6;14916:18;:26::i;:::-;14888:54;;14981:1;14961:17;:21;14957:77;;;15014:4;15003:15;;14957:77;14873:172;14856:189;15061:5;15060:6;:19;;;;;15071:8;;;;;;;;;;;15070:9;15060:19;:43;;;;;15084:13;:19;15098:4;15084:19;;;;;;;;;;;;;;;;;;;;;;;;;15083:20;15060:43;:59;;;;;15108:5;:11;15114:4;15108:11;;;;;;;;;;;;;;;;;;;;;;;;;15107:12;15060:59;:95;;;;;15139:15;;;;;;;;;;;15123:32;;:4;:32;;;;15060:95;:120;;;;;15175:4;15159:21;;:4;:21;;;;15060:120;15057:331;;;15197:11;15226:21;;;;;;;;;;;15211:42;;;15254:10;15211:54;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15197:68;;15301:1;15297:3;:5;15294:83;;;15322:39;15346:4;15352;15357:3;15322:15;:39::i;:::-;15294:83;15182:206;15057:331;15422:8;;;;;;;;;;;15421:9;:46;;;;;15448:13;:19;15462:4;15448:19;;;;;;;;;;;;;;;;;;;;;;;;;15447:20;15421:46;:84;;;;;15500:4;15484:21;;:4;:21;;;;15421:84;:113;;;;;15523:5;:11;15529:4;15523:11;;;;;;;;;;;;;;;;;;;;;;;;;15522:12;15421:113;:136;;;;;15552:5;15551:6;15421:136;:185;;;;;15590:15;;;;;;;;;;;15574:32;;:4;:32;;;;15421:185;:253;;;;;15659:15;;15642:14;;:32;;;;:::i;:::-;15623:15;:51;;15421:253;15403:400;;;15712:4;15701:8;;:15;;;;;;;;;;;;;;;;;;15731:29;:27;:29::i;:::-;;15786:5;15775:8;;:16;;;;;;;;;;;;;;;;;;15403:400;15815:20;15865:13;:19;15879:4;15865:19;;;;;;;;;;;;;;;;;;;;;;;;;15864:20;:55;;;;;15902:13;:17;15916:2;15902:17;;;;;;;;;;;;;;;;;;;;;;;;;15901:18;15864:55;:104;;;;;15952:15;;;;;;;;;;;15936:32;;:4;:32;;;;15864:104;:131;;;;;15994:1;15984:6;:11;;15864:131;15846:953;;;16026:5;16022:558;;;16069:21;;;;;;;;;;;16055:36;;:2;:36;;;16052:107;;16123:5;16115:24;;;;;;;;;;;;:::i;:::-;;;;;;;;;16052:107;16022:558;;;16184:8;16180:400;;;16232:21;;;;;;;;;;;16217:45;;;16263:10;16217:57;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16180:400;;;16318:5;:11;16324:4;16318:11;;;;;;;;;;;;;;;;;;;;;;;;;16314:266;;;16367:21;;;;;;;;;;;16353:36;;:2;:36;;;16350:107;;16421:5;16413:24;;;;;;;;;;;;:::i;:::-;;;;;;;;;16350:107;16314:266;;;16482:5;:9;16488:2;16482:9;;;;;;;;;;;;;;;;;;;;;;;;;16478:102;;;16527:37;16559:4;16527:27;16538:15;;16527:6;:10;;:27;;;;:::i;:::-;:31;;:37;;;;:::i;:::-;16512:52;;16478:102;16314:266;16180:400;16022:558;16613:1;16598:12;:16;16594:194;;;16635:50;16651:4;16665;16672:12;16635:15;:50::i;:::-;16719:12;16704:11;;:27;;;;;;;:::i;:::-;;;;;;;;16760:12;16750:22;;;;;:::i;:::-;;;16594:194;15846:953;16809:14;16841:13;;16826:11;;:28;;16809:45;;16869:9;:35;;;;;16896:8;;;;;;;;;;;16895:9;16869:35;:72;;;;;16922:13;:19;16936:4;16922:19;;;;;;;;;;;;;;;;;;;;;;;;;16921:20;16869:72;:110;;;;;16974:4;16958:21;;:4;:21;;;;16869:110;:139;;;;;16997:5;:11;17003:4;16997:11;;;;;;;;;;;;;;;;;;;;;;;;;16996:12;16869:139;:162;;;;;17026:5;17025:6;16869:162;:176;;;;;17036:5;:9;17042:2;17036:9;;;;;;;;;;;;;;;;;;;;;;;;;17035:10;16869:176;:225;;;;;17078:15;;;;;;;;;;;17062:32;;:4;:32;;;;16869:225;16865:380;;;17132:4;17121:8;;:15;;;;;;;;;;;;;;;;;;17151:21;17160:11;;17151:8;:21::i;:::-;;17201:1;17187:11;:15;;;;17228:5;17217:8;;:16;;;;;;;;;;;;;;;;;;16865:380;17255:33;17271:4;17277:2;17281:6;17255:15;:33::i;:::-;17313:7;;17303:6;:17;17299:125;;17360:21;;;;;;;;;;;17345:42;;;17388:4;17394:2;17345:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17337:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17299:125;14219:3212;;;;14106:3325;;;:::o;3234:226::-;3354:7;3387:1;3382;:6;;3390:12;3374:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3414:9;3430:1;3426;:5;;;;:::i;:::-;3414:17;;3451:1;3444:8;;;3234:226;;;;;:::o;2901:181::-;2959:7;2979:9;2995:1;2991;:5;;;;:::i;:::-;2979:17;;3020:1;3015;:6;;3007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3073:1;3066:8;;;2901:181;;;;:::o;1250:191::-;1324:16;1343:6;;;;;;;;;;;1324:25;;1369:8;1360:6;;:17;;;;;;;;;;;;;;;;;;1424:8;1393:40;;1414:8;1393:40;;;;;;;;;;;;1313:128;1250:191;:::o;18133:486::-;18213:17;18244:14;18260:13;18275:20;18299:14;:12;:14::i;:::-;18243:70;;;;;;18324:19;18367:1;18358:6;:10;:23;;;;;18380:1;18372:5;:9;18358:23;18354:95;;;18432:5;18422:6;18413;:15;;;;:::i;:::-;18412:25;;;;:::i;:::-;18398:39;;18354:95;18507:11;18498:6;:20;;;;:::i;:::-;18482:12;:36;18478:134;;18551:49;18564:12;18578:6;18586;18594:5;18551:12;:49::i;:::-;18535:65;;;;;18478:134;18232:387;;;;18133:486;;;:::o;19189:399::-;19272:17;19303:14;19321:20;19345:14;:12;:14::i;:::-;19302:57;;;;;19412:6;19396:12;:22;19392:189;;19562:6;19537:22;19547:11;;;;;;;;;;;19537:9;:22::i;:::-;:31;;;;:::i;:::-;19489:11;;;;;;;;;;;19474:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19465:6;:50;;;;:::i;:::-;19464:105;;;;:::i;:::-;19435:134;;19392:189;19291:297;;19189:399;;;:::o;7307:610::-;7465:1;7447:20;;:6;:20;;;7439:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7549:1;7528:23;;:9;:23;;;7520:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7604:47;7625:6;7633:9;7644:6;7604:20;:47::i;:::-;7684:108;7720:6;7684:108;;;;;;;;;;;;;;;;;:9;:17;7694:6;7684:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;7664:9;:17;7674:6;7664:17;;;;;;;;;;;;;;;:128;;;;7826:32;7851:6;7826:9;:20;7836:9;7826:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7803:9;:20;7813:9;7803:20;;;;;;;;;;;;;;;:55;;;;7891:9;7874:35;;7883:6;7874:35;;;7902:6;7874:35;;;;;;:::i;:::-;;;;;;;;7307:610;;;:::o;21191:1135::-;21248:4;21265:28;21296:4;:14;;;21311:11;;;;;;;;;;;21296:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21265:58;;21361:1;21338:20;:24;21334:920;;;21379:12;21394:35;21414:14;;21394:15;:19;;:35;;;;:::i;:::-;21379:50;;21444:20;21467:145;21607:4;21467:117;21578:5;21467:88;21550:4;21467:60;21510:16;;21467:20;:42;;:60;;;;:::i;:::-;:82;;:88;;;;:::i;:::-;:110;;:117;;;;:::i;:::-;:139;;:145;;;;:::i;:::-;21444:168;;21646:1;21631:12;:16;21627:116;;;21668:59;21684:11;;;;;;;;;;;21705:6;21714:12;21668:15;:59::i;:::-;21627:116;21757:22;21782:147;21924:4;21782:119;21895:5;21782:90;21867:4;21782:62;21825:18;;21782:20;:42;;:62;;;;:::i;:::-;:84;;:90;;;;:::i;:::-;:112;;:119;;;;:::i;:::-;:141;;:147;;;;:::i;:::-;21757:172;;21965:1;21948:14;:18;21944:209;;;21987:59;22003:11;;;;;;;;;;;22024:4;22031:14;21987:15;:59::i;:::-;22080:21;;;;;;;;;;;22065:56;;;22122:14;22065:72;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21944:209;22167:19;22204:11;;;;;;;;;;;22167:49;;22231:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21364:890;;;;21334:920;22281:15;22264:14;:32;;;;22314:4;22307:11;;;21191:1135;:::o;3468:250::-;3526:7;3555:1;3550;:6;3546:47;;3580:1;3573:8;;;;3546:47;3605:9;3621:1;3617;:5;;;;:::i;:::-;3605:17;;3650:1;3645;3641;:5;;;;:::i;:::-;:10;3633:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3709:1;3702:8;;;3468:250;;;;;:::o;3726:132::-;3784:7;3811:39;3815:1;3818;3811:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3804:46;;3726:132;;;;:::o;17439:686::-;17489:17;17519:4;:12;;;17540:15;;;;;;;;;;;17557:4;17519:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17573:21;17611:1;17597:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17573:40;;17642:4;17624;17629:1;17624:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12840:42;17658:4;17663:1;17658:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;17705:12;;;;;;;;;;;17695:4;17700:1;17695:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;17728:17;17755:12;;;;;;;;;;;17748:30;;;17787:4;17748:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17728:65;;17804:15;;;;;;;;;;;:69;;;17888:4;17907:1;17923:4;17942:13;;;;;;;;;;;17970:15;17804:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18007:16;18033:12;;;;;;;;;;;18026:30;;;18065:4;18026:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18007:64;;18094:23;18107:9;18094:8;:12;;:23;;;;:::i;:::-;18082:35;;17508:617;;;17439:686;;;:::o;19596:1379::-;19741:17;19760:22;19795:23;19836:11;;;;;;;;;;;19821:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19795:67;;19873:13;19907:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19889:50;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19873:68;;19952:10;19982:1;19965:19;;:5;:19;;;;19952:32;;19995:14;20027:11;;;;;;;;;;;20012:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19995:52;;20062:5;20058:590;;;20098:1;20088:6;:11;20084:553;;20120:13;20136:18;20151:2;20146;:7;;;;:::i;:::-;20136:9;:18::i;:::-;20120:34;;20173:17;20193;20203:6;20193:9;:17::i;:::-;20173:37;;20241:9;20233:5;:17;20229:393;;;20275:17;20385:1;20347:9;20339:5;:17;;;;:::i;:::-;20295:15;:62;;;;:::i;:::-;:91;;;;:::i;:::-;20275:111;;20409:19;20457:1;20445:9;:13;;;;:::i;:::-;20439:2;20431:5;:10;;;;:::i;:::-;:28;;;;:::i;:::-;20409:50;;20511:11;20499:9;:23;;;;:::i;:::-;20482:40;;20566:1;20549:14;:18;20545:57;;;20588:14;20569:33;;;;;:::i;:::-;;;20545:57;20252:370;;20229:393;20101:536;;20084:553;20058:590;20658:15;20687:2;20676:8;:13;;;;:::i;:::-;20658:31;;20723:1;20704:15;:20;20700:268;;20783:4;20753:27;20773:6;20763:7;:16;;;;:::i;:::-;20753:9;:27::i;:::-;:34;;;;:::i;:::-;20741:46;;20700:268;;;20832:124;20889:2;20870:15;20860:7;:25;;;;:::i;:::-;20859:32;;;;:::i;:::-;20939:2;20920:15;20911:6;:24;;;;:::i;:::-;20910:31;;;;:::i;:::-;20832:8;:124::i;:::-;20820:136;;20700:268;19784:1191;;;;;19596:1379;;;;;;;:::o;9162:125::-;;;;:::o;3090:136::-;3148:7;3175:43;3179:1;3182;3175:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3168:50;;3090:136;;;;:::o;3866:225::-;3986:7;4018:1;4014;:5;4021:12;4006:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4045:9;4061:1;4057;:5;;;;:::i;:::-;4045:17;;4082:1;4075:8;;;3866:225;;;;;:::o;2567:303::-;2612:6;2639:1;2635;:5;2631:232;;;2661:1;2657:5;;2677:6;2694:1;2690;2686;:5;;;;:::i;:::-;:9;;;;:::i;:::-;2677:18;;2710:92;2721:1;2717;:5;2710:92;;;2747:1;2743:5;;2785:1;2780;2776;2772;:5;;;;:::i;:::-;:9;;;;:::i;:::-;2771:15;;;;:::i;:::-;2767:19;;2710:92;;;2642:171;2631:232;;;2828:1;2823;:6;2819:44;;2850:1;2846:5;;2819:44;2631:232;2567:303;;;:::o;2463:96::-;2515:6;2542:1;2538;:5;:13;;2550:1;2538:13;;;2546:1;2538:13;2534:17;;2463:96;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:77::-;1230:7;1259:5;1248:16;;1193:77;;;:::o;1276:122::-;1349:24;1367:5;1349:24;:::i;:::-;1342:5;1339:35;1329:63;;1388:1;1385;1378:12;1329:63;1276:122;:::o;1404:139::-;1450:5;1488:6;1475:20;1466:29;;1504:33;1531:5;1504:33;:::i;:::-;1404:139;;;;:::o;1549:474::-;1617:6;1625;1674:2;1662:9;1653:7;1649:23;1645:32;1642:119;;;1680:79;;:::i;:::-;1642:119;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1549:474;;;;;:::o;2029:99::-;2081:6;2115:5;2109:12;2099:22;;2029:99;;;:::o;2134:169::-;2218:11;2252:6;2247:3;2240:19;2292:4;2287:3;2283:14;2268:29;;2134:169;;;;:::o;2309:139::-;2398:6;2393:3;2388;2382:23;2439:1;2430:6;2425:3;2421:16;2414:27;2309:139;;;:::o;2454:102::-;2495:6;2546:2;2542:7;2537:2;2530:5;2526:14;2522:28;2512:38;;2454:102;;;:::o;2562:377::-;2650:3;2678:39;2711:5;2678:39;:::i;:::-;2733:71;2797:6;2792:3;2733:71;:::i;:::-;2726:78;;2813:65;2871:6;2866:3;2859:4;2852:5;2848:16;2813:65;:::i;:::-;2903:29;2925:6;2903:29;:::i;:::-;2898:3;2894:39;2887:46;;2654:285;2562:377;;;;:::o;2945:313::-;3058:4;3096:2;3085:9;3081:18;3073:26;;3145:9;3139:4;3135:20;3131:1;3120:9;3116:17;3109:47;3173:78;3246:4;3237:6;3173:78;:::i;:::-;3165:86;;2945:313;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:329::-;3750:6;3799:2;3787:9;3778:7;3774:23;3770:32;3767:119;;;3805:79;;:::i;:::-;3767:119;3925:1;3950:53;3995:7;3986:6;3975:9;3971:22;3950:53;:::i;:::-;3940:63;;3896:117;3691:329;;;;:::o;4026:118::-;4113:24;4131:5;4113:24;:::i;:::-;4108:3;4101:37;4026:118;;:::o;4150:222::-;4243:4;4281:2;4270:9;4266:18;4258:26;;4294:71;4362:1;4351:9;4347:17;4338:6;4294:71;:::i;:::-;4150:222;;;;:::o;4378:60::-;4406:3;4427:5;4420:12;;4378:60;;;:::o;4444:142::-;4494:9;4527:53;4545:34;4554:24;4572:5;4554:24;:::i;:::-;4545:34;:::i;:::-;4527:53;:::i;:::-;4514:66;;4444:142;;;:::o;4592:126::-;4642:9;4675:37;4706:5;4675:37;:::i;:::-;4662:50;;4592:126;;;:::o;4724:153::-;4801:9;4834:37;4865:5;4834:37;:::i;:::-;4821:50;;4724:153;;;:::o;4883:185::-;4997:64;5055:5;4997:64;:::i;:::-;4992:3;4985:77;4883:185;;:::o;5074:276::-;5194:4;5232:2;5221:9;5217:18;5209:26;;5245:98;5340:1;5329:9;5325:17;5316:6;5245:98;:::i;:::-;5074:276;;;;:::o;5356:116::-;5426:21;5441:5;5426:21;:::i;:::-;5419:5;5416:32;5406:60;;5462:1;5459;5452:12;5406:60;5356:116;:::o;5478:133::-;5521:5;5559:6;5546:20;5537:29;;5575:30;5599:5;5575:30;:::i;:::-;5478:133;;;;:::o;5617:468::-;5682:6;5690;5739:2;5727:9;5718:7;5714:23;5710:32;5707:119;;;5745:79;;:::i;:::-;5707:119;5865:1;5890:53;5935:7;5926:6;5915:9;5911:22;5890:53;:::i;:::-;5880:63;;5836:117;5992:2;6018:50;6060:7;6051:6;6040:9;6036:22;6018:50;:::i;:::-;6008:60;;5963:115;5617:468;;;;;:::o;6091:619::-;6168:6;6176;6184;6233:2;6221:9;6212:7;6208:23;6204:32;6201:119;;;6239:79;;:::i;:::-;6201:119;6359:1;6384:53;6429:7;6420:6;6409:9;6405:22;6384:53;:::i;:::-;6374:63;;6330:117;6486:2;6512:53;6557:7;6548:6;6537:9;6533:22;6512:53;:::i;:::-;6502:63;;6457:118;6614:2;6640:53;6685:7;6676:6;6665:9;6661:22;6640:53;:::i;:::-;6630:63;;6585:118;6091:619;;;;;:::o;6716:329::-;6775:6;6824:2;6812:9;6803:7;6799:23;6795:32;6792:119;;;6830:79;;:::i;:::-;6792:119;6950:1;6975:53;7020:7;7011:6;7000:9;6996:22;6975:53;:::i;:::-;6965:63;;6921:117;6716:329;;;;:::o;7051:442::-;7200:4;7238:2;7227:9;7223:18;7215:26;;7251:71;7319:1;7308:9;7304:17;7295:6;7251:71;:::i;:::-;7332:72;7400:2;7389:9;7385:18;7376:6;7332:72;:::i;:::-;7414;7482:2;7471:9;7467:18;7458:6;7414:72;:::i;:::-;7051:442;;;;;;:::o;7499:474::-;7567:6;7575;7624:2;7612:9;7603:7;7599:23;7595:32;7592:119;;;7630:79;;:::i;:::-;7592:119;7750:1;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7721:117;7877:2;7903:53;7948:7;7939:6;7928:9;7924:22;7903:53;:::i;:::-;7893:63;;7848:118;7499:474;;;;;:::o;7979:182::-;8119:34;8115:1;8107:6;8103:14;8096:58;7979:182;:::o;8167:366::-;8309:3;8330:67;8394:2;8389:3;8330:67;:::i;:::-;8323:74;;8406:93;8495:3;8406:93;:::i;:::-;8524:2;8519:3;8515:12;8508:19;;8167:366;;;:::o;8539:419::-;8705:4;8743:2;8732:9;8728:18;8720:26;;8792:9;8786:4;8782:20;8778:1;8767:9;8763:17;8756:47;8820:131;8946:4;8820:131;:::i;:::-;8812:139;;8539:419;;;:::o;8964:143::-;9021:5;9052:6;9046:13;9037:22;;9068:33;9095:5;9068:33;:::i;:::-;8964:143;;;;:::o;9113:351::-;9183:6;9232:2;9220:9;9211:7;9207:23;9203:32;9200:119;;;9238:79;;:::i;:::-;9200:119;9358:1;9383:64;9439:7;9430:6;9419:9;9415:22;9383:64;:::i;:::-;9373:74;;9329:128;9113:351;;;;:::o;9470:237::-;9610:34;9606:1;9598:6;9594:14;9587:58;9679:20;9674:2;9666:6;9662:15;9655:45;9470:237;:::o;9713:366::-;9855:3;9876:67;9940:2;9935:3;9876:67;:::i;:::-;9869:74;;9952:93;10041:3;9952:93;:::i;:::-;10070:2;10065:3;10061:12;10054:19;;9713:366;;;:::o;10085:419::-;10251:4;10289:2;10278:9;10274:18;10266:26;;10338:9;10332:4;10328:20;10324:1;10313:9;10309:17;10302:47;10366:131;10492:4;10366:131;:::i;:::-;10358:139;;10085:419;;;:::o;10510:332::-;10631:4;10669:2;10658:9;10654:18;10646:26;;10682:71;10750:1;10739:9;10735:17;10726:6;10682:71;:::i;:::-;10763:72;10831:2;10820:9;10816:18;10807:6;10763:72;:::i;:::-;10510:332;;;;;:::o;10848:137::-;10902:5;10933:6;10927:13;10918:22;;10949:30;10973:5;10949:30;:::i;:::-;10848:137;;;;:::o;10991:345::-;11058:6;11107:2;11095:9;11086:7;11082:23;11078:32;11075:119;;;11113:79;;:::i;:::-;11075:119;11233:1;11258:61;11311:7;11302:6;11291:9;11287:22;11258:61;:::i;:::-;11248:71;;11204:125;10991:345;;;;:::o;11342:180::-;11390:77;11387:1;11380:88;11487:4;11484:1;11477:15;11511:4;11508:1;11501:15;11528:320;11572:6;11609:1;11603:4;11599:12;11589:22;;11656:1;11650:4;11646:12;11677:18;11667:81;;11733:4;11725:6;11721:17;11711:27;;11667:81;11795:2;11787:6;11784:14;11764:18;11761:38;11758:84;;11814:18;;:::i;:::-;11758:84;11579:269;11528:320;;;:::o;11854:114::-;11891:7;11931:30;11924:5;11920:42;11909:53;;11854:114;;;:::o;11974:122::-;12047:24;12065:5;12047:24;:::i;:::-;12040:5;12037:35;12027:63;;12086:1;12083;12076:12;12027:63;11974:122;:::o;12102:143::-;12159:5;12190:6;12184:13;12175:22;;12206:33;12233:5;12206:33;:::i;:::-;12102:143;;;;:::o;12251:93::-;12287:7;12327:10;12320:5;12316:22;12305:33;;12251:93;;;:::o;12350:120::-;12422:23;12439:5;12422:23;:::i;:::-;12415:5;12412:34;12402:62;;12460:1;12457;12450:12;12402:62;12350:120;:::o;12476:141::-;12532:5;12563:6;12557:13;12548:22;;12579:32;12605:5;12579:32;:::i;:::-;12476:141;;;;:::o;12623:661::-;12710:6;12718;12726;12775:2;12763:9;12754:7;12750:23;12746:32;12743:119;;;12781:79;;:::i;:::-;12743:119;12901:1;12926:64;12982:7;12973:6;12962:9;12958:22;12926:64;:::i;:::-;12916:74;;12872:128;13039:2;13065:64;13121:7;13112:6;13101:9;13097:22;13065:64;:::i;:::-;13055:74;;13010:129;13178:2;13204:63;13259:7;13250:6;13239:9;13235:22;13204:63;:::i;:::-;13194:73;;13149:128;12623:661;;;;;:::o;13290:225::-;13430:34;13426:1;13418:6;13414:14;13407:58;13499:8;13494:2;13486:6;13482:15;13475:33;13290:225;:::o;13521:366::-;13663:3;13684:67;13748:2;13743:3;13684:67;:::i;:::-;13677:74;;13760:93;13849:3;13760:93;:::i;:::-;13878:2;13873:3;13869:12;13862:19;;13521:366;;;:::o;13893:419::-;14059:4;14097:2;14086:9;14082:18;14074:26;;14146:9;14140:4;14136:20;14132:1;14121:9;14117:17;14110:47;14174:131;14300:4;14174:131;:::i;:::-;14166:139;;13893:419;;;:::o;14318:223::-;14458:34;14454:1;14446:6;14442:14;14435:58;14527:6;14522:2;14514:6;14510:15;14503:31;14318:223;:::o;14547:366::-;14689:3;14710:67;14774:2;14769:3;14710:67;:::i;:::-;14703:74;;14786:93;14875:3;14786:93;:::i;:::-;14904:2;14899:3;14895:12;14888:19;;14547:366;;;:::o;14919:419::-;15085:4;15123:2;15112:9;15108:18;15100:26;;15172:9;15166:4;15162:20;15158:1;15147:9;15143:17;15136:47;15200:131;15326:4;15200:131;:::i;:::-;15192:139;;14919:419;;;:::o;15344:221::-;15484:34;15480:1;15472:6;15468:14;15461:58;15553:4;15548:2;15540:6;15536:15;15529:29;15344:221;:::o;15571:366::-;15713:3;15734:67;15798:2;15793:3;15734:67;:::i;:::-;15727:74;;15810:93;15899:3;15810:93;:::i;:::-;15928:2;15923:3;15919:12;15912:19;;15571:366;;;:::o;15943:419::-;16109:4;16147:2;16136:9;16132:18;16124:26;;16196:9;16190:4;16186:20;16182:1;16171:9;16167:17;16160:47;16224:131;16350:4;16224:131;:::i;:::-;16216:139;;15943:419;;;:::o;16368:224::-;16508:34;16504:1;16496:6;16492:14;16485:58;16577:7;16572:2;16564:6;16560:15;16553:32;16368:224;:::o;16598:366::-;16740:3;16761:67;16825:2;16820:3;16761:67;:::i;:::-;16754:74;;16837:93;16926:3;16837:93;:::i;:::-;16955:2;16950:3;16946:12;16939:19;;16598:366;;;:::o;16970:419::-;17136:4;17174:2;17163:9;17159:18;17151:26;;17223:9;17217:4;17213:20;17209:1;17198:9;17194:17;17187:47;17251:131;17377:4;17251:131;:::i;:::-;17243:139;;16970:419;;;:::o;17395:222::-;17535:34;17531:1;17523:6;17519:14;17512:58;17604:5;17599:2;17591:6;17587:15;17580:30;17395:222;:::o;17623:366::-;17765:3;17786:67;17850:2;17845:3;17786:67;:::i;:::-;17779:74;;17862:93;17951:3;17862:93;:::i;:::-;17980:2;17975:3;17971:12;17964:19;;17623:366;;;:::o;17995:419::-;18161:4;18199:2;18188:9;18184:18;18176:26;;18248:9;18242:4;18238:20;18234:1;18223:9;18219:17;18212:47;18276:131;18402:4;18276:131;:::i;:::-;18268:139;;17995:419;;;:::o;18420:180::-;18468:77;18465:1;18458:88;18565:4;18562:1;18555:15;18589:4;18586:1;18579:15;18606:191;18646:3;18665:20;18683:1;18665:20;:::i;:::-;18660:25;;18699:20;18717:1;18699:20;:::i;:::-;18694:25;;18742:1;18739;18735:9;18728:16;;18763:3;18760:1;18757:10;18754:36;;;18770:18;;:::i;:::-;18754:36;18606:191;;;;:::o;18803:157::-;18943:9;18939:1;18931:6;18927:14;18920:33;18803:157;:::o;18966:365::-;19108:3;19129:66;19193:1;19188:3;19129:66;:::i;:::-;19122:73;;19204:93;19293:3;19204:93;:::i;:::-;19322:2;19317:3;19313:12;19306:19;;18966:365;;;:::o;19337:419::-;19503:4;19541:2;19530:9;19526:18;19518:26;;19590:9;19584:4;19580:20;19576:1;19565:9;19561:17;19554:47;19618:131;19744:4;19618:131;:::i;:::-;19610:139;;19337:419;;;:::o;19762:157::-;19902:9;19898:1;19890:6;19886:14;19879:33;19762:157;:::o;19925:365::-;20067:3;20088:66;20152:1;20147:3;20088:66;:::i;:::-;20081:73;;20163:93;20252:3;20163:93;:::i;:::-;20281:2;20276:3;20272:12;20265:19;;19925:365;;;:::o;20296:419::-;20462:4;20500:2;20489:9;20485:18;20477:26;;20549:9;20543:4;20539:20;20535:1;20524:9;20520:17;20513:47;20577:131;20703:4;20577:131;:::i;:::-;20569:139;;20296:419;;;:::o;20721:194::-;20761:4;20781:20;20799:1;20781:20;:::i;:::-;20776:25;;20815:20;20833:1;20815:20;:::i;:::-;20810:25;;20859:1;20856;20852:9;20844:17;;20883:1;20877:4;20874:11;20871:37;;;20888:18;;:::i;:::-;20871:37;20721:194;;;;:::o;20921:332::-;21042:4;21080:2;21069:9;21065:18;21057:26;;21093:71;21161:1;21150:9;21146:17;21137:6;21093:71;:::i;:::-;21174:72;21242:2;21231:9;21227:18;21218:6;21174:72;:::i;:::-;20921:332;;;;;:::o;21259:160::-;21399:12;21395:1;21387:6;21383:14;21376:36;21259:160;:::o;21425:366::-;21567:3;21588:67;21652:2;21647:3;21588:67;:::i;:::-;21581:74;;21664:93;21753:3;21664:93;:::i;:::-;21782:2;21777:3;21773:12;21766:19;;21425:366;;;:::o;21797:419::-;21963:4;22001:2;21990:9;21986:18;21978:26;;22050:9;22044:4;22040:20;22036:1;22025:9;22021:17;22014:47;22078:131;22204:4;22078:131;:::i;:::-;22070:139;;21797:419;;;:::o;22222:177::-;22362:29;22358:1;22350:6;22346:14;22339:53;22222:177;:::o;22405:366::-;22547:3;22568:67;22632:2;22627:3;22568:67;:::i;:::-;22561:74;;22644:93;22733:3;22644:93;:::i;:::-;22762:2;22757:3;22753:12;22746:19;;22405:366;;;:::o;22777:419::-;22943:4;22981:2;22970:9;22966:18;22958:26;;23030:9;23024:4;23020:20;23016:1;23005:9;23001:17;22994:47;23058:131;23184:4;23058:131;:::i;:::-;23050:139;;22777:419;;;:::o;23202:410::-;23242:7;23265:20;23283:1;23265:20;:::i;:::-;23260:25;;23299:20;23317:1;23299:20;:::i;:::-;23294:25;;23354:1;23351;23347:9;23376:30;23394:11;23376:30;:::i;:::-;23365:41;;23555:1;23546:7;23542:15;23539:1;23536:22;23516:1;23509:9;23489:83;23466:139;;23585:18;;:::i;:::-;23466:139;23250:362;23202:410;;;;:::o;23618:180::-;23666:77;23663:1;23656:88;23763:4;23760:1;23753:15;23787:4;23784:1;23777:15;23804:185;23844:1;23861:20;23879:1;23861:20;:::i;:::-;23856:25;;23895:20;23913:1;23895:20;:::i;:::-;23890:25;;23934:1;23924:35;;23939:18;;:::i;:::-;23924:35;23981:1;23978;23974:9;23969:14;;23804:185;;;;:::o;23995:220::-;24135:34;24131:1;24123:6;24119:14;24112:58;24204:3;24199:2;24191:6;24187:15;24180:28;23995:220;:::o;24221:366::-;24363:3;24384:67;24448:2;24443:3;24384:67;:::i;:::-;24377:74;;24460:93;24549:3;24460:93;:::i;:::-;24578:2;24573:3;24569:12;24562:19;;24221:366;;;:::o;24593:419::-;24759:4;24797:2;24786:9;24782:18;24774:26;;24846:9;24840:4;24836:20;24832:1;24821:9;24817:17;24810:47;24874:131;25000:4;24874:131;:::i;:::-;24866:139;;24593:419;;;:::o;25018:180::-;25066:77;25063:1;25056:88;25163:4;25160:1;25153:15;25187:4;25184:1;25177:15;25204:180;25252:77;25249:1;25242:88;25349:4;25346:1;25339:15;25373:4;25370:1;25363:15;25390:85;25435:7;25464:5;25453:16;;25390:85;;;:::o;25481:158::-;25539:9;25572:61;25590:42;25599:32;25625:5;25599:32;:::i;:::-;25590:42;:::i;:::-;25572:61;:::i;:::-;25559:74;;25481:158;;;:::o;25645:147::-;25740:45;25779:5;25740:45;:::i;:::-;25735:3;25728:58;25645:147;;:::o;25798:114::-;25865:6;25899:5;25893:12;25883:22;;25798:114;;;:::o;25918:184::-;26017:11;26051:6;26046:3;26039:19;26091:4;26086:3;26082:14;26067:29;;25918:184;;;;:::o;26108:132::-;26175:4;26198:3;26190:11;;26228:4;26223:3;26219:14;26211:22;;26108:132;;;:::o;26246:108::-;26323:24;26341:5;26323:24;:::i;:::-;26318:3;26311:37;26246:108;;:::o;26360:179::-;26429:10;26450:46;26492:3;26484:6;26450:46;:::i;:::-;26528:4;26523:3;26519:14;26505:28;;26360:179;;;;:::o;26545:113::-;26615:4;26647;26642:3;26638:14;26630:22;;26545:113;;;:::o;26694:732::-;26813:3;26842:54;26890:5;26842:54;:::i;:::-;26912:86;26991:6;26986:3;26912:86;:::i;:::-;26905:93;;27022:56;27072:5;27022:56;:::i;:::-;27101:7;27132:1;27117:284;27142:6;27139:1;27136:13;27117:284;;;27218:6;27212:13;27245:63;27304:3;27289:13;27245:63;:::i;:::-;27238:70;;27331:60;27384:6;27331:60;:::i;:::-;27321:70;;27177:224;27164:1;27161;27157:9;27152:14;;27117:284;;;27121:14;27417:3;27410:10;;26818:608;;;26694:732;;;;:::o;27432:831::-;27695:4;27733:3;27722:9;27718:19;27710:27;;27747:71;27815:1;27804:9;27800:17;27791:6;27747:71;:::i;:::-;27828:80;27904:2;27893:9;27889:18;27880:6;27828:80;:::i;:::-;27955:9;27949:4;27945:20;27940:2;27929:9;27925:18;27918:48;27983:108;28086:4;28077:6;27983:108;:::i;:::-;27975:116;;28101:72;28169:2;28158:9;28154:18;28145:6;28101:72;:::i;:::-;28183:73;28251:3;28240:9;28236:19;28227:6;28183:73;:::i;:::-;27432:831;;;;;;;;:::o;28269:143::-;28326:5;28357:6;28351:13;28342:22;;28373:33;28400:5;28373:33;:::i;:::-;28269:143;;;;:::o;28418:351::-;28488:6;28537:2;28525:9;28516:7;28512:23;28508:32;28505:119;;;28543:79;;:::i;:::-;28505:119;28663:1;28688:64;28744:7;28735:6;28724:9;28720:22;28688:64;:::i;:::-;28678:74;;28634:128;28418:351;;;;:::o

Swarm Source

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