ETH Price: $4,018.80 (+3.34%)

Token

ERC-20: Stake Vs Burn (SVB)
 

Overview

Max Total Supply

94,279,362 SVB

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,409,997.812954501217160945 SVB

Value
$0.00
0xddd2883baf403a8972ffb828c2ae7a70139b80e6
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:
StakeVsBurn

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-31
*/

// SPDX-License-Identifier: MIT

/**
    Website:  https://www.stakevsburn.app
    Twitter:  https://twitter.com/stakevsburn
    Telegram: https://t.me/stakeandburn
    Docs:     https://docs.stakevsburn.app/
*/

pragma solidity ^0.8.20;

abstract contract Context {

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

}

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function 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);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

interface IStaking {
    function deposit(address _address, uint amount) external ;   
}

contract StakeVsBurn is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;

    // Stake
    IStaking public stake;

    // Burn Stats

    uint256 public totalBurned = 0;
    uint256 public totalBurnRewards = 0;

    uint256 public burnCapDivisor = 10; // Divisor for burn reward cap per tx
    uint256 public burnSub1EthCap = 100000000000000000; // cap in gwei if rewards < 1 Eth
    
    string private _name = "Stake Vs Burn";
    string private _symbol = "SVB";
    uint8 private _decimals = 18;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address payable private devMarketingWallet;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public _buyJackpotFees = 10;
    uint256 public _buyDevFees = 5;
    uint256 public _buyBurnFees = 10;

    uint256 public _sellJackpotFees = 10;
    uint256 public _sellDevFees = 5;
    uint256 public _sellBurnFees = 10;

    uint256 public _jackpotShares = 2;
    uint256 public _devShares = 1;
    uint256 public _burnShares = 2;
    uint256 public _totalDistributionShares = 5;

    uint256 public _totalTaxIfBuying = 25;
    uint256 public _totalTaxIfSelling = 25;
    uint public buyCount = 0;


    // Fees / MaxWallet / TxLimit exemption mappings
    
    mapping (address => bool) public checkExcludedFromFees;
    mapping (address => bool) public checkWalletLimitExcept;
    mapping (address => bool) public checkTxLimitExcept;
    mapping (address => bool) public checkMarketPair;

    // Supply / Max Tx tokenomics

    uint256 private _totalSupply = 100 * 10**6 * 10**18;
    uint256 public _maxTxAmount = 2 * 10**6 * 10**18;
    uint256 public _walletMax = 2 * 10**6 * 10**18;
    uint256 private minimumTokensBeforeSwap = 2 * 10**5 * 10**18;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

    // Swap and liquify flags (for taxes)
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;
    bool public checkWalletLimit = true;
    bool public enableTrading;

    // events & modifiers

    event BurnedTokensForEth (
        address account,
        uint256 burnAmount,
        uint256 ethRecievedAmount
    );


    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (address _stakingAddress) {
        devMarketingWallet = payable(msg.sender);
        stake = IStaking(_stakingAddress);

        
        uniswapV2Router= IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 

        uniswapPair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        checkExcludedFromFees[owner()] = true;
        checkExcludedFromFees[address(this)] = true;
        checkExcludedFromFees[_stakingAddress] = true;
        
        _totalTaxIfBuying = _buyJackpotFees.add(_buyDevFees).add(_buyBurnFees);
        _totalTaxIfSelling = _sellJackpotFees.add(_sellDevFees).add(_sellBurnFees);
        _totalDistributionShares = _jackpotShares.add(_devShares).add(_burnShares);

        checkWalletLimitExcept[owner()] = true;
        checkWalletLimitExcept[address(uniswapPair)] = true;
        checkWalletLimitExcept[address(this)] = true;
        checkWalletLimitExcept[address(stake)] = true;
        
        checkTxLimitExcept[owner()] = true;
        checkTxLimitExcept[address(this)] = true;

        checkMarketPair[address(uniswapPair)] = true;

        _balances[_msgSender()] = _totalSupply;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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



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

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

    }

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

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

    function decimals() public view  returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) internal virtual  {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function addMarketPair(address account) public onlyOwner {
        checkMarketPair[account] = true;
    }

    function setcheckTxLimitExcept(address holder, bool exempt) external onlyOwner {
        checkTxLimitExcept[holder] = exempt;
    }
    
    function setcheckExcludedFromFees(address account, bool newValue) public onlyOwner {
        checkExcludedFromFees[account] = newValue;
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newDevShare, uint256 newBurnShare) external onlyOwner() {
        _jackpotShares = newLiquidityShare;
        _devShares = newDevShare;
        _burnShares = newBurnShare;

        _totalDistributionShares = _jackpotShares.add(_devShares).add(_burnShares);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
        require(maxTxAmount <= (100 * 10**6 * 10**18), "Max wallet should be less");
        _maxTxAmount = maxTxAmount;
    }

    function enableDisableWalletLimit(bool newValue) external onlyOwner {
       checkWalletLimit = newValue;
    }

    function setcheckWalletLimitExcept(address holder, bool exempt) external onlyOwner {
        checkWalletLimitExcept[holder] = exempt;
    }

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax  = newLimit;
    }

    function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
        minimumTokensBeforeSwap = newLimit;
    }

    function setDevMarketingWallet(address newAddress) external onlyOwner() {
        devMarketingWallet = payable(newAddress);
    }


    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
        swapAndLiquifyByLimitOnly = newValue;
    }

    function openTrading() external onlyOwner(){
        require(!enableTrading, "trading opened");
        addLiquidity(balanceOf(address(this)), address(this).balance);
        enableTrading = true;     
    }

    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swapping
    receive() external payable {}

    // msg.sender burns tokens and recieve uniswap rate TAX FREE, instead of selling.
    function burnForEth(uint256 amount) public returns (bool) {
        require(balanceOf(_msgSender()) >= amount, "not enough funds to burn");

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        uint[] memory a = uniswapV2Router.getAmountsOut(amount, path);

        uint256 cap;
        if (address(this).balance <= 1 ether) {
            cap = burnSub1EthCap;
        } else {
            cap = address(this).balance / burnCapDivisor;
        }

        require(a[a.length - 1] <= cap, "amount greater than cap");
        require(address(this).balance >= a[a.length - 1], "not enough funds in contract");

        transferToAddressETH(_msgSender(), a[a.length - 1]);
        _burn(_msgSender(), amount);
        
        totalBurnRewards += a[a.length - 1];
        totalBurned += amount;

        emit BurnedTokensForEth(_msgSender(), amount, a[a.length - 1]);
        return true;
    }

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

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

    function _transfer(address sender, address recipient, uint256 amount) internal virtual  {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if ((recipient == address(this)) && (enableTrading)){
            recipient = address(stake);
            stake.deposit(sender, amount);
        }


        if(inSwapAndLiquify)
        { 
            _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!checkTxLimitExcept[sender] && !checkTxLimitExcept[recipient]) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !checkMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly && enableTrading)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(amount < contractTokenBalance? amount:contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = (checkExcludedFromFees[sender] || checkExcludedFromFees[recipient]) ? 
                                         amount : takeFee(sender, recipient, amount);
            if(!enableTrading) finalAmount = takeFee(sender, recipient, amount);

            if(checkWalletLimit && !checkWalletLimitExcept[recipient])
                require(balanceOf(recipient).add(finalAmount) <= _walletMax);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);

        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {

        if(!enableTrading) return;
        
        uint256 ethBalanceBeforeSwap = address(this).balance;

        swapTokensForEth(tAmount);
        uint256 amountReceived = address(this).balance.sub(ethBalanceBeforeSwap);
        
        uint256 amountETHJackpot = amountReceived.mul(_jackpotShares).div(_totalDistributionShares);
        uint256 amountETHDev = amountReceived.mul(_devShares).div(_totalDistributionShares);

        if(amountETHJackpot > 0)
            transferToAddressETH(payable(address(stake)), amountETHJackpot);

        if(amountETHDev > 0)
            transferToAddressETH(devMarketingWallet, amountETHDev);


    }

    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), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(checkMarketPair[sender]) {
            feeAmount = amount.mul(buyCount > 20 ? 5: _totalTaxIfBuying).div(100);
                buyCount = buyCount.add(1);
        }
        else if(checkMarketPair[recipient]) {
            feeAmount = amount.mul(buyCount > 20 ? 5: _totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function getStats() public view returns (uint256, uint256, uint256) {
        return (totalBurned, totalBurnRewards, address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_stakingAddress","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":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"burnAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethRecievedAmount","type":"uint256"}],"name":"BurnedTokensForEth","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyJackpotFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_jackpotShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellJackpotFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnCapDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnForEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnSub1EthCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkTxLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"checkWalletLimitExcept","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStats","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newDevShare","type":"uint256"},{"internalType":"uint256","name":"newBurnShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setcheckExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckTxLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setcheckWalletLimitExcept","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stake","outputs":[{"internalType":"contract IStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040525f6003555f600455600a60055567016345785d8a00006006556040518060400160405280600d81526020017f5374616b65205673204275726e000000000000000000000000000000000000008152506007908162000063919062001040565b506040518060400160405280600381526020017f535642000000000000000000000000000000000000000000000000000000000081525060089081620000aa919062001040565b50601260095f6101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600a600d556005600e55600a600f55600a6010556005601155600a6012556002601355600160145560026015556005601655601960175560196018555f6019556a52b7d2dcc80cd2e4000000601e556a01a784379d99db42000000601f556a01a784379d99db42000000602055692a5a058fc295ed0000006021556001602360156101000a81548160ff0219169083151502179055505f602360166101000a81548160ff0219169083151502179055506001602360176101000a81548160ff021916908315150217905550348015620001d2575f80fd5b50604051620064e8380380620064e88339818101604052810190620001f8919062001189565b5f6200020962000b8160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60225f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200040a919062001189565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000491573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004b7919062001189565b6040518363ffffffff1660e01b8152600401620004d6929190620011ca565b6020604051808303815f875af1158015620004f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000519919062001189565b60235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200058e3060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601e5462000b8860201b60201c565b601e54600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001601a5f6200064362000d5360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200076b600f546200075c600e54600d5462000d7a60201b90919060201c565b62000d7a60201b90919060201c565b601781905550620007a06012546200079160115460105462000d7a60201b90919060201c565b62000d7a60201b90919060201c565b601881905550620007d5601554620007c660145460135462000d7a60201b90919060201c565b62000d7a60201b90919060201c565b6016819055506001601b5f620007f062000d5360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601c5f6200099562000d5360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001601d5f60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550601e54600a5f62000ac562000b8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000b1262000b8160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601e5460405162000b72919062001206565b60405180910390a3506200142e565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bf090620012a5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000c6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c619062001339565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000d46919062001206565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000d8a919062001386565b90508381101562000dd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000dc9906200140e565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000e5857607f821691505b60208210810362000e6e5762000e6d62000e13565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000ed27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000e95565b62000ede868362000e95565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000f2862000f2262000f1c8462000ef6565b62000eff565b62000ef6565b9050919050565b5f819050919050565b62000f438362000f08565b62000f5b62000f528262000f2f565b84845462000ea1565b825550505050565b5f90565b62000f7162000f63565b62000f7e81848462000f38565b505050565b5b8181101562000fa55762000f995f8262000f67565b60018101905062000f84565b5050565b601f82111562000ff45762000fbe8162000e74565b62000fc98462000e86565b8101602085101562000fd9578190505b62000ff162000fe88562000e86565b83018262000f83565b50505b505050565b5f82821c905092915050565b5f620010165f198460080262000ff9565b1980831691505092915050565b5f62001030838362001005565b9150826002028217905092915050565b6200104b8262000ddc565b67ffffffffffffffff81111562001067576200106662000de6565b5b62001073825462000e40565b6200108082828562000fa9565b5f60209050601f831160018114620010b6575f8415620010a1578287015190505b620010ad858262001023565b8655506200111c565b601f198416620010c68662000e74565b5f5b82811015620010ef57848901518255600182019150602085019450602081019050620010c8565b868310156200110f57848901516200110b601f89168262001005565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620011538262001128565b9050919050565b620011658162001147565b811462001170575f80fd5b50565b5f8151905062001183816200115a565b92915050565b5f60208284031215620011a157620011a062001124565b5b5f620011b08482850162001173565b91505092915050565b620011c48162001147565b82525050565b5f604082019050620011df5f830185620011b9565b620011ee6020830184620011b9565b9392505050565b620012008162000ef6565b82525050565b5f6020820190506200121b5f830184620011f5565b92915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6200128d60248362001221565b91506200129a8262001231565b604082019050919050565b5f6020820190508181035f830152620012be816200127f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200132160228362001221565b91506200132e82620012c5565b604082019050919050565b5f6020820190508181035f830152620013528162001313565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620013928262000ef6565b91506200139f8362000ef6565b9250828201905080821115620013ba57620013b962001359565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620013f6601b8362001221565b91506200140382620013c0565b602082019050919050565b5f6020820190508181035f8301526200142781620013e8565b9050919050565b60805161509a6200144e5f395f81816110ac01526110d7015261509a5ff3fe6080604052600436106103a5575f3560e01c806382eefb43116101e6578063c59d48471161010c578063e207a92b1161009f578063f872858a1161006e578063f872858a14610d90578063fabf706314610dba578063fb34a33614610df6578063fe47e0c914610e20576103ac565b8063e207a92b14610cee578063f0cd1dac14610d16578063f1d5f51714610d40578063f2fde38b14610d68576103ac565b8063ca703075116100db578063ca70307514610c34578063d89135cd14610c5e578063da00097d14610c88578063dd62ed3e14610cb2576103ac565b8063c59d484714610b8c578063c78a789b14610bb8578063c816841b14610bf4578063c9567bf914610c1e576103ac565b8063a08e671f11610184578063a9059cbb11610153578063a9059cbb14610ac4578063af254b7214610b00578063c2d4640e14610b3c578063c49b9a8014610b64576103ac565b8063a08e671f14610a0c578063a40dcda314610a36578063a457c2d714610a60578063a5d69d1f14610a9c576103ac565b80638e223341116101c05780638e2233411461097a5780638f03aad5146109a4578063914eb66a146109cc57806395d89b41146109e2576103ac565b806382eefb43146108fc5780638a8c523c146109265780638da5cb5b14610950576103ac565b80633d98b9af116102cb57806357e6adcb1161026957806374e8414e1161023857806374e8414e146108565780637b3a3ec61461087e5780637d1db4a5146108a8578063807c2d9c146108d2576103ac565b806357e6adcb146107a05780635e252455146107c8578063667b511c146107f257806370a082311461081a576103ac565b80634a74bb02116102a55780634a74bb02146106d45780634f1c2aa4146106fe578063526012e81461072857806355324fa914610764576103ac565b80633d98b9af146106565780633f251688146106805780634a728e24146106aa576103ac565b80632b112e491161034357806332cd6bcb1161031257806332cd6bcb1461059e57806339509351146105c85780633a4b66f1146106045780633b97084a1461062e576103ac565b80632b112e49146104f85780632cdae5cb14610522578063313ce5671461054a57806331eca57e14610574576103ac565b806318160ddd1161037f57806318160ddd1461044057806323b872dd1461046a5780632563ae83146104a657806327c8f835146104ce576103ac565b806306fdde03146103b0578063095ea7b3146103da5780631694505e14610416576103ac565b366103ac57005b5f80fd5b3480156103bb575f80fd5b506103c4610e4a565b6040516103d19190613daf565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190613e6d565b610eda565b60405161040d9190613ec5565b60405180910390f35b348015610421575f80fd5b5061042a610ef7565b6040516104379190613f39565b60405180910390f35b34801561044b575f80fd5b50610454610f1c565b6040516104619190613f61565b60405180910390f35b348015610475575f80fd5b50610490600480360381019061048b9190613f7a565b610f25565b60405161049d9190613ec5565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c79190613ff4565b610ff9565b005b3480156104d9575f80fd5b506104e26110aa565b6040516104ef919061402e565b60405180910390f35b348015610503575f80fd5b5061050c6110ce565b6040516105199190613f61565b60405180910390f35b34801561052d575f80fd5b5061054860048036038101906105439190614047565b611111565b005b348015610555575f80fd5b5061055e6111fd565b60405161056b91906140a0565b60405180910390f35b34801561057f575f80fd5b50610588611212565b6040516105959190613f61565b60405180910390f35b3480156105a9575f80fd5b506105b2611218565b6040516105bf9190613f61565b60405180910390f35b3480156105d3575f80fd5b506105ee60048036038101906105e99190613e6d565b61121e565b6040516105fb9190613ec5565b60405180910390f35b34801561060f575f80fd5b506106186112cc565b60405161062591906140d9565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906140f2565b6112f1565b005b348015610661575f80fd5b5061066a61138f565b6040516106779190613f61565b60405180910390f35b34801561068b575f80fd5b50610694611395565b6040516106a19190613f61565b60405180910390f35b3480156106b5575f80fd5b506106be61139b565b6040516106cb9190613f61565b60405180910390f35b3480156106df575f80fd5b506106e86113a1565b6040516106f59190613ec5565b60405180910390f35b348015610709575f80fd5b506107126113b4565b60405161071f9190613f61565b60405180910390f35b348015610733575f80fd5b5061074e6004803603810190610749919061411d565b6113ba565b60405161075b9190613ec5565b60405180910390f35b34801561076f575f80fd5b5061078a6004803603810190610785919061411d565b6113d7565b6040516107979190613ec5565b60405180910390f35b3480156107ab575f80fd5b506107c660048036038101906107c19190614047565b6113f4565b005b3480156107d3575f80fd5b506107dc6114e0565b6040516107e99190613f61565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190614047565b6114e6565b005b348015610825575f80fd5b50610840600480360381019061083b919061411d565b6115d2565b60405161084d9190613f61565b60405180910390f35b348015610861575f80fd5b5061087c6004803603810190610877919061411d565b611618565b005b348015610889575f80fd5b506108926116ef565b60405161089f9190613f61565b60405180910390f35b3480156108b3575f80fd5b506108bc6116f5565b6040516108c99190613f61565b60405180910390f35b3480156108dd575f80fd5b506108e66116fb565b6040516108f39190613f61565b60405180910390f35b348015610907575f80fd5b50610910611701565b60405161091d9190613f61565b60405180910390f35b348015610931575f80fd5b5061093a611707565b6040516109479190613ec5565b60405180910390f35b34801561095b575f80fd5b5061096461171a565b604051610971919061402e565b60405180910390f35b348015610985575f80fd5b5061098e611741565b60405161099b9190613f61565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906140f2565b611747565b005b3480156109d7575f80fd5b506109e0611833565b005b3480156109ed575f80fd5b506109f6611981565b604051610a039190613daf565b60405180910390f35b348015610a17575f80fd5b50610a20611a11565b604051610a2d9190613f61565b60405180910390f35b348015610a41575f80fd5b50610a4a611a17565b604051610a579190613f61565b60405180910390f35b348015610a6b575f80fd5b50610a866004803603810190610a819190613e6d565b611a1d565b604051610a939190613ec5565b60405180910390f35b348015610aa7575f80fd5b50610ac26004803603810190610abd9190613ff4565b611ae5565b005b348015610acf575f80fd5b50610aea6004803603810190610ae59190613e6d565b611b96565b604051610af79190613ec5565b60405180910390f35b348015610b0b575f80fd5b50610b266004803603810190610b2191906140f2565b611bb3565b604051610b339190613ec5565b60405180910390f35b348015610b47575f80fd5b50610b626004803603810190610b5d9190614148565b612032565b005b348015610b6f575f80fd5b50610b8a6004803603810190610b859190613ff4565b612111565b005b348015610b97575f80fd5b50610ba06121f9565b604051610baf93929190614198565b60405180910390f35b348015610bc3575f80fd5b50610bde6004803603810190610bd9919061411d565b61220e565b604051610beb9190613ec5565b60405180910390f35b348015610bff575f80fd5b50610c0861222b565b604051610c15919061402e565b60405180910390f35b348015610c29575f80fd5b50610c32612250565b005b348015610c3f575f80fd5b50610c48612363565b604051610c559190613f61565b60405180910390f35b348015610c69575f80fd5b50610c72612369565b604051610c7f9190613f61565b60405180910390f35b348015610c93575f80fd5b50610c9c61236f565b604051610ca99190613ec5565b60405180910390f35b348015610cbd575f80fd5b50610cd86004803603810190610cd391906141cd565b612382565b604051610ce59190613f61565b60405180910390f35b348015610cf9575f80fd5b50610d146004803603810190610d0f919061411d565b612404565b005b348015610d21575f80fd5b50610d2a6124f0565b604051610d379190613f61565b60405180910390f35b348015610d4b575f80fd5b50610d666004803603810190610d6191906140f2565b6124f6565b005b348015610d73575f80fd5b50610d8e6004803603810190610d89919061411d565b612594565b005b348015610d9b575f80fd5b50610da4612751565b604051610db19190613ec5565b60405180910390f35b348015610dc5575f80fd5b50610de06004803603810190610ddb919061411d565b612764565b604051610ded9190613ec5565b60405180910390f35b348015610e01575f80fd5b50610e0a612781565b604051610e179190613f61565b60405180910390f35b348015610e2b575f80fd5b50610e34612787565b604051610e419190613f61565b60405180910390f35b606060078054610e5990614238565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8590614238565b8015610ed05780601f10610ea757610100808354040283529160200191610ed0565b820191905f5260205f20905b815481529060010190602001808311610eb357829003601f168201915b5050505050905090565b5f610eed610ee661278d565b8484612794565b6001905092915050565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601e54905090565b5f610f31848484612957565b610fee84610f3d61278d565b610fe98560405180606001604052806028815260200161501860289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fa061278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b612794565b600190509392505050565b61100161278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611084906142b2565b60405180910390fd5b80602360176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f61110c6110fb7f00000000000000000000000000000000000000000000000000000000000000006115d2565b601e546130b690919063ffffffff16565b905090565b61111961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c906142b2565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60095f9054906101000a900460ff16905090565b60065481565b600d5481565b5f6112c261122a61278d565b846112bd85600b5f61123a61278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b612794565b6001905092915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112f961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c906142b2565b60405180910390fd5b8060218190555050565b60125481565b60145481565b600e5481565b602360159054906101000a900460ff1681565b60155481565b601b602052805f5260405f205f915054906101000a900460ff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b6113fc61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f906142b2565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f5481565b6114ee61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611571906142b2565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61162061278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906142b2565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b601f5481565b60205481565b60185481565b602360189054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b61174f61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906142b2565b60405180910390fd5b6a52b7d2dcc80cd2e4000000811115611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118209061431a565b60405180910390fd5b80601f8190555050565b61183b61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906142b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606008805461199090614238565b80601f01602080910402602001604051908101604052809291908181526020018280546119bc90614238565b8015611a075780601f106119de57610100808354040283529160200191611a07565b820191905f5260205f20905b8154815290600101906020018083116119ea57829003601f168201915b5050505050905090565b60165481565b60115481565b5f611adb611a2961278d565b84611ad68560405180606001604052806025815260200161504060259139600b5f611a5261278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b612794565b6001905092915050565b611aed61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b70906142b2565b60405180910390fd5b80602360166101000a81548160ff02191690831515021790555050565b5f611ba9611ba261278d565b8484612957565b6001905092915050565b5f81611bc5611bc061278d565b6115d2565b1015611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90614382565b60405180910390fd5b5f600267ffffffffffffffff811115611c2257611c216143a0565b5b604051908082528060200260200182016040528015611c505781602001602082028036833780820191505090505b50905030815f81518110611c6757611c666143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2f919061440e565b81600181518110611d4357611d426143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b8152600401611dda9291906144f0565b5f60405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e1c9190614645565b90505f670de0b6b3a76400004711611e38576006549050611e49565b60055447611e4691906146e6565b90505b808260018451611e599190614716565b81518110611e6a57611e696143cd565b5b60200260200101511115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90614793565b60405180910390fd5b8160018351611ec29190614716565b81518110611ed357611ed26143cd565b5b6020026020010151471015611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f14906147fb565b60405180910390fd5b611f55611f2861278d565b8360018551611f379190614716565b81518110611f4857611f476143cd565b5b602002602001015161315c565b611f66611f6061278d565b866131a4565b8160018351611f759190614716565b81518110611f8657611f856143cd565b5b602002602001015160045f828254611f9e9190614819565b925050819055508460035f828254611fb69190614819565b925050819055507f6ca5c7c2d43ebd8c6d3049382038bb2df58288440912f41fcd488a779ed94381611fe661278d565b868460018651611ff69190614716565b81518110612007576120066143cd565b5b602002602001015160405161201e9392919061486c565b60405180910390a160019350505050919050565b61203a61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd906142b2565b60405180910390fd5b8260138190555081601481905550806015819055506121066015546120f86014546013546130ff90919063ffffffff16565b6130ff90919063ffffffff16565b601681905550505050565b61211961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219c906142b2565b60405180910390fd5b80602360156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516121ee9190613ec5565b60405180910390a150565b5f805f60035460045447925092509250909192565b601c602052805f5260405f205f915054906101000a900460ff1681565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61225861278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db906142b2565b60405180910390fd5b602360189054906101000a900460ff1615612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b906148eb565b60405180910390fd5b612346612340306115d2565b4761335c565b6001602360186101000a81548160ff021916908315150217905550565b60195481565b60035481565b602360169054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61240c61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f906142b2565b60405180910390fd5b6001601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60175481565b6124fe61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461258a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612581906142b2565b60405180910390fd5b8060208190555050565b61259c61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261f906142b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268d90614979565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602360179054906101000a900460ff1681565b601a602052805f5260405f205f915054906101000a900460ff1681565b60045481565b60105481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f990614a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614a95565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161294a9190613f61565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bc90614b23565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2a90614bb1565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612a7a5750602360189054906101000a900460ff165b15612b2d5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef2484836040518363ffffffff1660e01b8152600401612aff929190614bcf565b5f604051808303815f87803b158015612b16575f80fd5b505af1158015612b28573d5f803e3d5ffd5b505050505b602360149054906101000a900460ff1615612b5357612b4d83838361343c565b5061304f565b601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612bf15750601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c3c57601f54811115612c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3290614c66565b60405180910390fd5b5b5f612c46306115d2565b90505f6021548210159050808015612c6b5750602360149054906101000a900460ff16155b8015612cbe5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cd65750602360159054906101000a900460ff165b15612d2657602360169054906101000a900460ff168015612d035750602360189054906101000a900460ff165b15612d0e5760215491505b612d25828410612d1e5782612d20565b835b613606565b5b612dad836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612e8a5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612e9e57612e9986868661373b565b612ea0565b835b9050602360189054906101000a900460ff16612ec457612ec186868661373b565b90505b602360179054906101000a900460ff168015612f275750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f5557602054612f4a82612f3c886115d2565b6130ff90919063ffffffff16565b1115612f54575f80fd5b5b612fa581600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130439190613f61565b60405180910390a35050505b505050565b5f83831115829061309b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130929190613daf565b60405180910390fd5b505f83856130a99190614716565b9050809150509392505050565b5f6130f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613054565b905092915050565b5f80828461310d9190614819565b905083811015613152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314990614cce565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561319f573d5f803e3d5ffd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320990614d5c565b60405180910390fd5b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328d90614dea565b60405180910390fd5b818103600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081601e5f8282546132eb9190614716565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161334f9190613f61565b60405180910390a3505050565b6133883060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612794565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806133d261171a565b426040518863ffffffff1660e01b81526004016133f496959493929190614e41565b60606040518083038185885af1158015613410573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906134359190614ea0565b5050505050565b5f6134c4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061355582600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135f39190613f61565b60405180910390a3600190509392505050565b6001602360146101000a81548160ff021916908315150217905550602360189054906101000a900460ff161561371e575f47905061364382613995565b5f61365782476130b690919063ffffffff16565b90505f61368360165461367560135485613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505f6136af6016546136a160145486613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505f8211156136e5576136e460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361315c565b5b5f81111561371957613718600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261315c565b5b505050505b5f602360146101000a81548160ff02191690831515021790555050565b5f805f9050601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156137ec576137c960646137bb6014601954116137a9576017546137ac565b60055b86613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90506137e160016019546130ff90919063ffffffff16565b601981905550613879565b601d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561387857613875606461386760146019541161385557601854613858565b60055b86613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505b5b5f811115613978576138d181600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161396f9190613f61565b60405180910390a35b61398b81846130b690919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff8111156139b1576139b06143a0565b5b6040519080825280602002602001820160405280156139df5781602001602082028036833780820191505090505b50905030815f815181106139f6576139f56143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613abe919061440e565b81600181518110613ad257613ad16143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613b383060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612794565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613b9a959493929190614ef0565b5f604051808303815f87803b158015613bb1575f80fd5b505af1158015613bc3573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613bf89291906144f0565b60405180910390a15050565b5f808303613c14575f9050613c75565b5f8284613c219190614f48565b9050828482613c3091906146e6565b14613c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c6790614ff9565b60405180910390fd5b809150505b92915050565b5f613cbc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cc4565b905092915050565b5f8083118290613d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d019190613daf565b60405180910390fd5b505f8385613d1891906146e6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613d5c578082015181840152602081019050613d41565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613d8182613d25565b613d8b8185613d2f565b9350613d9b818560208601613d3f565b613da481613d67565b840191505092915050565b5f6020820190508181035f830152613dc78184613d77565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613e0982613de0565b9050919050565b613e1981613dff565b8114613e23575f80fd5b50565b5f81359050613e3481613e10565b92915050565b5f819050919050565b613e4c81613e3a565b8114613e56575f80fd5b50565b5f81359050613e6781613e43565b92915050565b5f8060408385031215613e8357613e82613dd8565b5b5f613e9085828601613e26565b9250506020613ea185828601613e59565b9150509250929050565b5f8115159050919050565b613ebf81613eab565b82525050565b5f602082019050613ed85f830184613eb6565b92915050565b5f819050919050565b5f613f01613efc613ef784613de0565b613ede565b613de0565b9050919050565b5f613f1282613ee7565b9050919050565b5f613f2382613f08565b9050919050565b613f3381613f19565b82525050565b5f602082019050613f4c5f830184613f2a565b92915050565b613f5b81613e3a565b82525050565b5f602082019050613f745f830184613f52565b92915050565b5f805f60608486031215613f9157613f90613dd8565b5b5f613f9e86828701613e26565b9350506020613faf86828701613e26565b9250506040613fc086828701613e59565b9150509250925092565b613fd381613eab565b8114613fdd575f80fd5b50565b5f81359050613fee81613fca565b92915050565b5f6020828403121561400957614008613dd8565b5b5f61401684828501613fe0565b91505092915050565b61402881613dff565b82525050565b5f6020820190506140415f83018461401f565b92915050565b5f806040838503121561405d5761405c613dd8565b5b5f61406a85828601613e26565b925050602061407b85828601613fe0565b9150509250929050565b5f60ff82169050919050565b61409a81614085565b82525050565b5f6020820190506140b35f830184614091565b92915050565b5f6140c382613f08565b9050919050565b6140d3816140b9565b82525050565b5f6020820190506140ec5f8301846140ca565b92915050565b5f6020828403121561410757614106613dd8565b5b5f61411484828501613e59565b91505092915050565b5f6020828403121561413257614131613dd8565b5b5f61413f84828501613e26565b91505092915050565b5f805f6060848603121561415f5761415e613dd8565b5b5f61416c86828701613e59565b935050602061417d86828701613e59565b925050604061418e86828701613e59565b9150509250925092565b5f6060820190506141ab5f830186613f52565b6141b86020830185613f52565b6141c56040830184613f52565b949350505050565b5f80604083850312156141e3576141e2613dd8565b5b5f6141f085828601613e26565b925050602061420185828601613e26565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061424f57607f821691505b6020821081036142625761426161420b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61429c602083613d2f565b91506142a782614268565b602082019050919050565b5f6020820190508181035f8301526142c981614290565b9050919050565b7f4d61782077616c6c65742073686f756c64206265206c657373000000000000005f82015250565b5f614304601983613d2f565b915061430f826142d0565b602082019050919050565b5f6020820190508181035f830152614331816142f8565b9050919050565b7f6e6f7420656e6f7567682066756e647320746f206275726e00000000000000005f82015250565b5f61436c601883613d2f565b915061437782614338565b602082019050919050565b5f6020820190508181035f83015261439981614360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061440881613e10565b92915050565b5f6020828403121561442357614422613dd8565b5b5f614430848285016143fa565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61446b81613dff565b82525050565b5f61447c8383614462565b60208301905092915050565b5f602082019050919050565b5f61449e82614439565b6144a88185614443565b93506144b383614453565b805f5b838110156144e35781516144ca8882614471565b97506144d583614488565b9250506001810190506144b6565b5085935050505092915050565b5f6040820190506145035f830185613f52565b81810360208301526145158184614494565b90509392505050565b5f80fd5b61452b82613d67565b810181811067ffffffffffffffff8211171561454a576145496143a0565b5b80604052505050565b5f61455c613dcf565b90506145688282614522565b919050565b5f67ffffffffffffffff821115614587576145866143a0565b5b602082029050602081019050919050565b5f80fd5b5f815190506145aa81613e43565b92915050565b5f6145c26145bd8461456d565b614553565b905080838252602082019050602084028301858111156145e5576145e4614598565b5b835b8181101561460e57806145fa888261459c565b8452602084019350506020810190506145e7565b5050509392505050565b5f82601f83011261462c5761462b61451e565b5b815161463c8482602086016145b0565b91505092915050565b5f6020828403121561465a57614659613dd8565b5b5f82015167ffffffffffffffff81111561467757614676613ddc565b5b61468384828501614618565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6146f082613e3a565b91506146fb83613e3a565b92508261470b5761470a61468c565b5b828204905092915050565b5f61472082613e3a565b915061472b83613e3a565b9250828203905081811115614743576147426146b9565b5b92915050565b7f616d6f756e742067726561746572207468616e206361700000000000000000005f82015250565b5f61477d601783613d2f565b915061478882614749565b602082019050919050565b5f6020820190508181035f8301526147aa81614771565b9050919050565b7f6e6f7420656e6f7567682066756e647320696e20636f6e7472616374000000005f82015250565b5f6147e5601c83613d2f565b91506147f0826147b1565b602082019050919050565b5f6020820190508181035f830152614812816147d9565b9050919050565b5f61482382613e3a565b915061482e83613e3a565b9250828201905080821115614846576148456146b9565b5b92915050565b5f61485682613f08565b9050919050565b6148668161484c565b82525050565b5f60608201905061487f5f83018661485d565b61488c6020830185613f52565b6148996040830184613f52565b949350505050565b7f74726164696e67206f70656e65640000000000000000000000000000000000005f82015250565b5f6148d5600e83613d2f565b91506148e0826148a1565b602082019050919050565b5f6020820190508181035f830152614902816148c9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614963602683613d2f565b915061496e82614909565b604082019050919050565b5f6020820190508181035f83015261499081614957565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6149f1602483613d2f565b91506149fc82614997565b604082019050919050565b5f6020820190508181035f830152614a1e816149e5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614a7f602283613d2f565b9150614a8a82614a25565b604082019050919050565b5f6020820190508181035f830152614aac81614a73565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b0d602583613d2f565b9150614b1882614ab3565b604082019050919050565b5f6020820190508181035f830152614b3a81614b01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614b9b602383613d2f565b9150614ba682614b41565b604082019050919050565b5f6020820190508181035f830152614bc881614b8f565b9050919050565b5f604082019050614be25f83018561401f565b614bef6020830184613f52565b9392505050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f614c50602883613d2f565b9150614c5b82614bf6565b604082019050919050565b5f6020820190508181035f830152614c7d81614c44565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614cb8601b83613d2f565b9150614cc382614c84565b602082019050919050565b5f6020820190508181035f830152614ce581614cac565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d46602183613d2f565b9150614d5182614cec565b604082019050919050565b5f6020820190508181035f830152614d7381614d3a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f614dd4602283613d2f565b9150614ddf82614d7a565b604082019050919050565b5f6020820190508181035f830152614e0181614dc8565b9050919050565b5f819050919050565b5f614e2b614e26614e2184614e08565b613ede565b613e3a565b9050919050565b614e3b81614e11565b82525050565b5f60c082019050614e545f83018961401f565b614e616020830188613f52565b614e6e6040830187614e32565b614e7b6060830186614e32565b614e88608083018561401f565b614e9560a0830184613f52565b979650505050505050565b5f805f60608486031215614eb757614eb6613dd8565b5b5f614ec48682870161459c565b9350506020614ed58682870161459c565b9250506040614ee68682870161459c565b9150509250925092565b5f60a082019050614f035f830188613f52565b614f106020830187614e32565b8181036040830152614f228186614494565b9050614f31606083018561401f565b614f3e6080830184613f52565b9695505050505050565b5f614f5282613e3a565b9150614f5d83613e3a565b9250828202614f6b81613e3a565b91508282048414831517614f8257614f816146b9565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614fe3602183613d2f565b9150614fee82614f89565b604082019050919050565b5f6020820190508181035f83015261501081614fd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208314a00ef4e966634da5df1923102fbc486b4747fe8b614d85de7fb17e1d74bb64736f6c6343000814003300000000000000000000000065f62753b0043b2cafad3d038fdda56802443b68

Deployed Bytecode

0x6080604052600436106103a5575f3560e01c806382eefb43116101e6578063c59d48471161010c578063e207a92b1161009f578063f872858a1161006e578063f872858a14610d90578063fabf706314610dba578063fb34a33614610df6578063fe47e0c914610e20576103ac565b8063e207a92b14610cee578063f0cd1dac14610d16578063f1d5f51714610d40578063f2fde38b14610d68576103ac565b8063ca703075116100db578063ca70307514610c34578063d89135cd14610c5e578063da00097d14610c88578063dd62ed3e14610cb2576103ac565b8063c59d484714610b8c578063c78a789b14610bb8578063c816841b14610bf4578063c9567bf914610c1e576103ac565b8063a08e671f11610184578063a9059cbb11610153578063a9059cbb14610ac4578063af254b7214610b00578063c2d4640e14610b3c578063c49b9a8014610b64576103ac565b8063a08e671f14610a0c578063a40dcda314610a36578063a457c2d714610a60578063a5d69d1f14610a9c576103ac565b80638e223341116101c05780638e2233411461097a5780638f03aad5146109a4578063914eb66a146109cc57806395d89b41146109e2576103ac565b806382eefb43146108fc5780638a8c523c146109265780638da5cb5b14610950576103ac565b80633d98b9af116102cb57806357e6adcb1161026957806374e8414e1161023857806374e8414e146108565780637b3a3ec61461087e5780637d1db4a5146108a8578063807c2d9c146108d2576103ac565b806357e6adcb146107a05780635e252455146107c8578063667b511c146107f257806370a082311461081a576103ac565b80634a74bb02116102a55780634a74bb02146106d45780634f1c2aa4146106fe578063526012e81461072857806355324fa914610764576103ac565b80633d98b9af146106565780633f251688146106805780634a728e24146106aa576103ac565b80632b112e491161034357806332cd6bcb1161031257806332cd6bcb1461059e57806339509351146105c85780633a4b66f1146106045780633b97084a1461062e576103ac565b80632b112e49146104f85780632cdae5cb14610522578063313ce5671461054a57806331eca57e14610574576103ac565b806318160ddd1161037f57806318160ddd1461044057806323b872dd1461046a5780632563ae83146104a657806327c8f835146104ce576103ac565b806306fdde03146103b0578063095ea7b3146103da5780631694505e14610416576103ac565b366103ac57005b5f80fd5b3480156103bb575f80fd5b506103c4610e4a565b6040516103d19190613daf565b60405180910390f35b3480156103e5575f80fd5b5061040060048036038101906103fb9190613e6d565b610eda565b60405161040d9190613ec5565b60405180910390f35b348015610421575f80fd5b5061042a610ef7565b6040516104379190613f39565b60405180910390f35b34801561044b575f80fd5b50610454610f1c565b6040516104619190613f61565b60405180910390f35b348015610475575f80fd5b50610490600480360381019061048b9190613f7a565b610f25565b60405161049d9190613ec5565b60405180910390f35b3480156104b1575f80fd5b506104cc60048036038101906104c79190613ff4565b610ff9565b005b3480156104d9575f80fd5b506104e26110aa565b6040516104ef919061402e565b60405180910390f35b348015610503575f80fd5b5061050c6110ce565b6040516105199190613f61565b60405180910390f35b34801561052d575f80fd5b5061054860048036038101906105439190614047565b611111565b005b348015610555575f80fd5b5061055e6111fd565b60405161056b91906140a0565b60405180910390f35b34801561057f575f80fd5b50610588611212565b6040516105959190613f61565b60405180910390f35b3480156105a9575f80fd5b506105b2611218565b6040516105bf9190613f61565b60405180910390f35b3480156105d3575f80fd5b506105ee60048036038101906105e99190613e6d565b61121e565b6040516105fb9190613ec5565b60405180910390f35b34801561060f575f80fd5b506106186112cc565b60405161062591906140d9565b60405180910390f35b348015610639575f80fd5b50610654600480360381019061064f91906140f2565b6112f1565b005b348015610661575f80fd5b5061066a61138f565b6040516106779190613f61565b60405180910390f35b34801561068b575f80fd5b50610694611395565b6040516106a19190613f61565b60405180910390f35b3480156106b5575f80fd5b506106be61139b565b6040516106cb9190613f61565b60405180910390f35b3480156106df575f80fd5b506106e86113a1565b6040516106f59190613ec5565b60405180910390f35b348015610709575f80fd5b506107126113b4565b60405161071f9190613f61565b60405180910390f35b348015610733575f80fd5b5061074e6004803603810190610749919061411d565b6113ba565b60405161075b9190613ec5565b60405180910390f35b34801561076f575f80fd5b5061078a6004803603810190610785919061411d565b6113d7565b6040516107979190613ec5565b60405180910390f35b3480156107ab575f80fd5b506107c660048036038101906107c19190614047565b6113f4565b005b3480156107d3575f80fd5b506107dc6114e0565b6040516107e99190613f61565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190614047565b6114e6565b005b348015610825575f80fd5b50610840600480360381019061083b919061411d565b6115d2565b60405161084d9190613f61565b60405180910390f35b348015610861575f80fd5b5061087c6004803603810190610877919061411d565b611618565b005b348015610889575f80fd5b506108926116ef565b60405161089f9190613f61565b60405180910390f35b3480156108b3575f80fd5b506108bc6116f5565b6040516108c99190613f61565b60405180910390f35b3480156108dd575f80fd5b506108e66116fb565b6040516108f39190613f61565b60405180910390f35b348015610907575f80fd5b50610910611701565b60405161091d9190613f61565b60405180910390f35b348015610931575f80fd5b5061093a611707565b6040516109479190613ec5565b60405180910390f35b34801561095b575f80fd5b5061096461171a565b604051610971919061402e565b60405180910390f35b348015610985575f80fd5b5061098e611741565b60405161099b9190613f61565b60405180910390f35b3480156109af575f80fd5b506109ca60048036038101906109c591906140f2565b611747565b005b3480156109d7575f80fd5b506109e0611833565b005b3480156109ed575f80fd5b506109f6611981565b604051610a039190613daf565b60405180910390f35b348015610a17575f80fd5b50610a20611a11565b604051610a2d9190613f61565b60405180910390f35b348015610a41575f80fd5b50610a4a611a17565b604051610a579190613f61565b60405180910390f35b348015610a6b575f80fd5b50610a866004803603810190610a819190613e6d565b611a1d565b604051610a939190613ec5565b60405180910390f35b348015610aa7575f80fd5b50610ac26004803603810190610abd9190613ff4565b611ae5565b005b348015610acf575f80fd5b50610aea6004803603810190610ae59190613e6d565b611b96565b604051610af79190613ec5565b60405180910390f35b348015610b0b575f80fd5b50610b266004803603810190610b2191906140f2565b611bb3565b604051610b339190613ec5565b60405180910390f35b348015610b47575f80fd5b50610b626004803603810190610b5d9190614148565b612032565b005b348015610b6f575f80fd5b50610b8a6004803603810190610b859190613ff4565b612111565b005b348015610b97575f80fd5b50610ba06121f9565b604051610baf93929190614198565b60405180910390f35b348015610bc3575f80fd5b50610bde6004803603810190610bd9919061411d565b61220e565b604051610beb9190613ec5565b60405180910390f35b348015610bff575f80fd5b50610c0861222b565b604051610c15919061402e565b60405180910390f35b348015610c29575f80fd5b50610c32612250565b005b348015610c3f575f80fd5b50610c48612363565b604051610c559190613f61565b60405180910390f35b348015610c69575f80fd5b50610c72612369565b604051610c7f9190613f61565b60405180910390f35b348015610c93575f80fd5b50610c9c61236f565b604051610ca99190613ec5565b60405180910390f35b348015610cbd575f80fd5b50610cd86004803603810190610cd391906141cd565b612382565b604051610ce59190613f61565b60405180910390f35b348015610cf9575f80fd5b50610d146004803603810190610d0f919061411d565b612404565b005b348015610d21575f80fd5b50610d2a6124f0565b604051610d379190613f61565b60405180910390f35b348015610d4b575f80fd5b50610d666004803603810190610d6191906140f2565b6124f6565b005b348015610d73575f80fd5b50610d8e6004803603810190610d89919061411d565b612594565b005b348015610d9b575f80fd5b50610da4612751565b604051610db19190613ec5565b60405180910390f35b348015610dc5575f80fd5b50610de06004803603810190610ddb919061411d565b612764565b604051610ded9190613ec5565b60405180910390f35b348015610e01575f80fd5b50610e0a612781565b604051610e179190613f61565b60405180910390f35b348015610e2b575f80fd5b50610e34612787565b604051610e419190613f61565b60405180910390f35b606060078054610e5990614238565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8590614238565b8015610ed05780601f10610ea757610100808354040283529160200191610ed0565b820191905f5260205f20905b815481529060010190602001808311610eb357829003601f168201915b5050505050905090565b5f610eed610ee661278d565b8484612794565b6001905092915050565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601e54905090565b5f610f31848484612957565b610fee84610f3d61278d565b610fe98560405180606001604052806028815260200161501860289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fa061278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b612794565b600190509392505050565b61100161278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611084906142b2565b60405180910390fd5b80602360176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f61110c6110fb7f000000000000000000000000000000000000000000000000000000000000dead6115d2565b601e546130b690919063ffffffff16565b905090565b61111961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c906142b2565b60405180910390fd5b80601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60095f9054906101000a900460ff16905090565b60065481565b600d5481565b5f6112c261122a61278d565b846112bd85600b5f61123a61278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b612794565b6001905092915050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112f961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c906142b2565b60405180910390fd5b8060218190555050565b60125481565b60145481565b600e5481565b602360159054906101000a900460ff1681565b60155481565b601b602052805f5260405f205f915054906101000a900460ff1681565b601d602052805f5260405f205f915054906101000a900460ff1681565b6113fc61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147f906142b2565b60405180910390fd5b80601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600f5481565b6114ee61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461157a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611571906142b2565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61162061278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906142b2565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60055481565b601f5481565b60205481565b60185481565b602360189054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60135481565b61174f61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d2906142b2565b60405180910390fd5b6a52b7d2dcc80cd2e4000000811115611829576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118209061431a565b60405180910390fd5b80601f8190555050565b61183b61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906142b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606008805461199090614238565b80601f01602080910402602001604051908101604052809291908181526020018280546119bc90614238565b8015611a075780601f106119de57610100808354040283529160200191611a07565b820191905f5260205f20905b8154815290600101906020018083116119ea57829003601f168201915b5050505050905090565b60165481565b60115481565b5f611adb611a2961278d565b84611ad68560405180606001604052806025815260200161504060259139600b5f611a5261278d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b612794565b6001905092915050565b611aed61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b70906142b2565b60405180910390fd5b80602360166101000a81548160ff02191690831515021790555050565b5f611ba9611ba261278d565b8484612957565b6001905092915050565b5f81611bc5611bc061278d565b6115d2565b1015611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90614382565b60405180910390fd5b5f600267ffffffffffffffff811115611c2257611c216143a0565b5b604051908082528060200260200182016040528015611c505781602001602082028036833780820191505090505b50905030815f81518110611c6757611c666143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2f919061440e565b81600181518110611d4357611d426143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b8152600401611dda9291906144f0565b5f60405180830381865afa158015611df4573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611e1c9190614645565b90505f670de0b6b3a76400004711611e38576006549050611e49565b60055447611e4691906146e6565b90505b808260018451611e599190614716565b81518110611e6a57611e696143cd565b5b60200260200101511115611eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaa90614793565b60405180910390fd5b8160018351611ec29190614716565b81518110611ed357611ed26143cd565b5b6020026020010151471015611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f14906147fb565b60405180910390fd5b611f55611f2861278d565b8360018551611f379190614716565b81518110611f4857611f476143cd565b5b602002602001015161315c565b611f66611f6061278d565b866131a4565b8160018351611f759190614716565b81518110611f8657611f856143cd565b5b602002602001015160045f828254611f9e9190614819565b925050819055508460035f828254611fb69190614819565b925050819055507f6ca5c7c2d43ebd8c6d3049382038bb2df58288440912f41fcd488a779ed94381611fe661278d565b868460018651611ff69190614716565b81518110612007576120066143cd565b5b602002602001015160405161201e9392919061486c565b60405180910390a160019350505050919050565b61203a61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd906142b2565b60405180910390fd5b8260138190555081601481905550806015819055506121066015546120f86014546013546130ff90919063ffffffff16565b6130ff90919063ffffffff16565b601681905550505050565b61211961278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219c906142b2565b60405180910390fd5b80602360156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516121ee9190613ec5565b60405180910390a150565b5f805f60035460045447925092509250909192565b601c602052805f5260405f205f915054906101000a900460ff1681565b60235f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61225861278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db906142b2565b60405180910390fd5b602360189054906101000a900460ff1615612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b906148eb565b60405180910390fd5b612346612340306115d2565b4761335c565b6001602360186101000a81548160ff021916908315150217905550565b60195481565b60035481565b602360169054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61240c61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248f906142b2565b60405180910390fd5b6001601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60175481565b6124fe61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461258a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612581906142b2565b60405180910390fd5b8060208190555050565b61259c61278d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261f906142b2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268d90614979565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602360179054906101000a900460ff1681565b601a602052805f5260405f205f915054906101000a900460ff1681565b60045481565b60105481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f990614a07565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286790614a95565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161294a9190613f61565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bc90614b23565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2a90614bb1565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612a7a5750602360189054906101000a900460ff165b15612b2d5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef2484836040518363ffffffff1660e01b8152600401612aff929190614bcf565b5f604051808303815f87803b158015612b16575f80fd5b505af1158015612b28573d5f803e3d5ffd5b505050505b602360149054906101000a900460ff1615612b5357612b4d83838361343c565b5061304f565b601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612bf15750601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612c3c57601f54811115612c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3290614c66565b60405180910390fd5b5b5f612c46306115d2565b90505f6021548210159050808015612c6b5750602360149054906101000a900460ff16155b8015612cbe5750601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612cd65750602360159054906101000a900460ff165b15612d2657602360169054906101000a900460ff168015612d035750602360189054906101000a900460ff165b15612d0e5760215491505b612d25828410612d1e5782612d20565b835b613606565b5b612dad836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f601a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612e8a5750601a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612e9e57612e9986868661373b565b612ea0565b835b9050602360189054906101000a900460ff16612ec457612ec186868661373b565b90505b602360179054906101000a900460ff168015612f275750601b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612f5557602054612f4a82612f3c886115d2565b6130ff90919063ffffffff16565b1115612f54575f80fd5b5b612fa581600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130439190613f61565b60405180910390a35050505b505050565b5f83831115829061309b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130929190613daf565b60405180910390fd5b505f83856130a99190614716565b9050809150509392505050565b5f6130f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613054565b905092915050565b5f80828461310d9190614819565b905083811015613152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314990614cce565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561319f573d5f803e3d5ffd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161320990614d5c565b60405180910390fd5b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161328d90614dea565b60405180910390fd5b818103600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555081601e5f8282546132eb9190614716565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161334f9190613f61565b60405180910390a3505050565b6133883060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612794565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f806133d261171a565b426040518863ffffffff1660e01b81526004016133f496959493929190614e41565b60606040518083038185885af1158015613410573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906134359190614ea0565b5050505050565b5f6134c4826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130549092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061355582600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516135f39190613f61565b60405180910390a3600190509392505050565b6001602360146101000a81548160ff021916908315150217905550602360189054906101000a900460ff161561371e575f47905061364382613995565b5f61365782476130b690919063ffffffff16565b90505f61368360165461367560135485613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505f6136af6016546136a160145486613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505f8211156136e5576136e460025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361315c565b5b5f81111561371957613718600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261315c565b5b505050505b5f602360146101000a81548160ff02191690831515021790555050565b5f805f9050601d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156137ec576137c960646137bb6014601954116137a9576017546137ac565b60055b86613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90506137e160016019546130ff90919063ffffffff16565b601981905550613879565b601d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561387857613875606461386760146019541161385557601854613858565b60055b86613c0490919063ffffffff16565b613c7b90919063ffffffff16565b90505b5b5f811115613978576138d181600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546130ff90919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161396f9190613f61565b60405180910390a35b61398b81846130b690919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff8111156139b1576139b06143a0565b5b6040519080825280602002602001820160405280156139df5781602001602082028036833780820191505090505b50905030815f815181106139f6576139f56143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613abe919061440e565b81600181518110613ad257613ad16143cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613b383060225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612794565b60225f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613b9a959493929190614ef0565b5f604051808303815f87803b158015613bb1575f80fd5b505af1158015613bc3573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613bf89291906144f0565b60405180910390a15050565b5f808303613c14575f9050613c75565b5f8284613c219190614f48565b9050828482613c3091906146e6565b14613c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c6790614ff9565b60405180910390fd5b809150505b92915050565b5f613cbc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613cc4565b905092915050565b5f8083118290613d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d019190613daf565b60405180910390fd5b505f8385613d1891906146e6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613d5c578082015181840152602081019050613d41565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613d8182613d25565b613d8b8185613d2f565b9350613d9b818560208601613d3f565b613da481613d67565b840191505092915050565b5f6020820190508181035f830152613dc78184613d77565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613e0982613de0565b9050919050565b613e1981613dff565b8114613e23575f80fd5b50565b5f81359050613e3481613e10565b92915050565b5f819050919050565b613e4c81613e3a565b8114613e56575f80fd5b50565b5f81359050613e6781613e43565b92915050565b5f8060408385031215613e8357613e82613dd8565b5b5f613e9085828601613e26565b9250506020613ea185828601613e59565b9150509250929050565b5f8115159050919050565b613ebf81613eab565b82525050565b5f602082019050613ed85f830184613eb6565b92915050565b5f819050919050565b5f613f01613efc613ef784613de0565b613ede565b613de0565b9050919050565b5f613f1282613ee7565b9050919050565b5f613f2382613f08565b9050919050565b613f3381613f19565b82525050565b5f602082019050613f4c5f830184613f2a565b92915050565b613f5b81613e3a565b82525050565b5f602082019050613f745f830184613f52565b92915050565b5f805f60608486031215613f9157613f90613dd8565b5b5f613f9e86828701613e26565b9350506020613faf86828701613e26565b9250506040613fc086828701613e59565b9150509250925092565b613fd381613eab565b8114613fdd575f80fd5b50565b5f81359050613fee81613fca565b92915050565b5f6020828403121561400957614008613dd8565b5b5f61401684828501613fe0565b91505092915050565b61402881613dff565b82525050565b5f6020820190506140415f83018461401f565b92915050565b5f806040838503121561405d5761405c613dd8565b5b5f61406a85828601613e26565b925050602061407b85828601613fe0565b9150509250929050565b5f60ff82169050919050565b61409a81614085565b82525050565b5f6020820190506140b35f830184614091565b92915050565b5f6140c382613f08565b9050919050565b6140d3816140b9565b82525050565b5f6020820190506140ec5f8301846140ca565b92915050565b5f6020828403121561410757614106613dd8565b5b5f61411484828501613e59565b91505092915050565b5f6020828403121561413257614131613dd8565b5b5f61413f84828501613e26565b91505092915050565b5f805f6060848603121561415f5761415e613dd8565b5b5f61416c86828701613e59565b935050602061417d86828701613e59565b925050604061418e86828701613e59565b9150509250925092565b5f6060820190506141ab5f830186613f52565b6141b86020830185613f52565b6141c56040830184613f52565b949350505050565b5f80604083850312156141e3576141e2613dd8565b5b5f6141f085828601613e26565b925050602061420185828601613e26565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061424f57607f821691505b6020821081036142625761426161420b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61429c602083613d2f565b91506142a782614268565b602082019050919050565b5f6020820190508181035f8301526142c981614290565b9050919050565b7f4d61782077616c6c65742073686f756c64206265206c657373000000000000005f82015250565b5f614304601983613d2f565b915061430f826142d0565b602082019050919050565b5f6020820190508181035f830152614331816142f8565b9050919050565b7f6e6f7420656e6f7567682066756e647320746f206275726e00000000000000005f82015250565b5f61436c601883613d2f565b915061437782614338565b602082019050919050565b5f6020820190508181035f83015261439981614360565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061440881613e10565b92915050565b5f6020828403121561442357614422613dd8565b5b5f614430848285016143fa565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61446b81613dff565b82525050565b5f61447c8383614462565b60208301905092915050565b5f602082019050919050565b5f61449e82614439565b6144a88185614443565b93506144b383614453565b805f5b838110156144e35781516144ca8882614471565b97506144d583614488565b9250506001810190506144b6565b5085935050505092915050565b5f6040820190506145035f830185613f52565b81810360208301526145158184614494565b90509392505050565b5f80fd5b61452b82613d67565b810181811067ffffffffffffffff8211171561454a576145496143a0565b5b80604052505050565b5f61455c613dcf565b90506145688282614522565b919050565b5f67ffffffffffffffff821115614587576145866143a0565b5b602082029050602081019050919050565b5f80fd5b5f815190506145aa81613e43565b92915050565b5f6145c26145bd8461456d565b614553565b905080838252602082019050602084028301858111156145e5576145e4614598565b5b835b8181101561460e57806145fa888261459c565b8452602084019350506020810190506145e7565b5050509392505050565b5f82601f83011261462c5761462b61451e565b5b815161463c8482602086016145b0565b91505092915050565b5f6020828403121561465a57614659613dd8565b5b5f82015167ffffffffffffffff81111561467757614676613ddc565b5b61468384828501614618565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6146f082613e3a565b91506146fb83613e3a565b92508261470b5761470a61468c565b5b828204905092915050565b5f61472082613e3a565b915061472b83613e3a565b9250828203905081811115614743576147426146b9565b5b92915050565b7f616d6f756e742067726561746572207468616e206361700000000000000000005f82015250565b5f61477d601783613d2f565b915061478882614749565b602082019050919050565b5f6020820190508181035f8301526147aa81614771565b9050919050565b7f6e6f7420656e6f7567682066756e647320696e20636f6e7472616374000000005f82015250565b5f6147e5601c83613d2f565b91506147f0826147b1565b602082019050919050565b5f6020820190508181035f830152614812816147d9565b9050919050565b5f61482382613e3a565b915061482e83613e3a565b9250828201905080821115614846576148456146b9565b5b92915050565b5f61485682613f08565b9050919050565b6148668161484c565b82525050565b5f60608201905061487f5f83018661485d565b61488c6020830185613f52565b6148996040830184613f52565b949350505050565b7f74726164696e67206f70656e65640000000000000000000000000000000000005f82015250565b5f6148d5600e83613d2f565b91506148e0826148a1565b602082019050919050565b5f6020820190508181035f830152614902816148c9565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614963602683613d2f565b915061496e82614909565b604082019050919050565b5f6020820190508181035f83015261499081614957565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6149f1602483613d2f565b91506149fc82614997565b604082019050919050565b5f6020820190508181035f830152614a1e816149e5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614a7f602283613d2f565b9150614a8a82614a25565b604082019050919050565b5f6020820190508181035f830152614aac81614a73565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614b0d602583613d2f565b9150614b1882614ab3565b604082019050919050565b5f6020820190508181035f830152614b3a81614b01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614b9b602383613d2f565b9150614ba682614b41565b604082019050919050565b5f6020820190508181035f830152614bc881614b8f565b9050919050565b5f604082019050614be25f83018561401f565b614bef6020830184613f52565b9392505050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f614c50602883613d2f565b9150614c5b82614bf6565b604082019050919050565b5f6020820190508181035f830152614c7d81614c44565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614cb8601b83613d2f565b9150614cc382614c84565b602082019050919050565b5f6020820190508181035f830152614ce581614cac565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d46602183613d2f565b9150614d5182614cec565b604082019050919050565b5f6020820190508181035f830152614d7381614d3a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f614dd4602283613d2f565b9150614ddf82614d7a565b604082019050919050565b5f6020820190508181035f830152614e0181614dc8565b9050919050565b5f819050919050565b5f614e2b614e26614e2184614e08565b613ede565b613e3a565b9050919050565b614e3b81614e11565b82525050565b5f60c082019050614e545f83018961401f565b614e616020830188613f52565b614e6e6040830187614e32565b614e7b6060830186614e32565b614e88608083018561401f565b614e9560a0830184613f52565b979650505050505050565b5f805f60608486031215614eb757614eb6613dd8565b5b5f614ec48682870161459c565b9350506020614ed58682870161459c565b9250506040614ee68682870161459c565b9150509250925092565b5f60a082019050614f035f830188613f52565b614f106020830187614e32565b8181036040830152614f228186614494565b9050614f31606083018561401f565b614f3e6080830184613f52565b9695505050505050565b5f614f5282613e3a565b9150614f5d83613e3a565b9250828202614f6b81613e3a565b91508282048414831517614f8257614f816146b9565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614fe3602183613d2f565b9150614fee82614f89565b604082019050919050565b5f6020820190508181035f83015261501081614fd7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208314a00ef4e966634da5df1923102fbc486b4747fe8b614d85de7fb17e1d74bb64736f6c63430008140033

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

00000000000000000000000065f62753b0043b2cafad3d038fdda56802443b68

-----Decoded View---------------
Arg [0] : _stakingAddress (address): 0x65f62753B0043B2cAFad3D038FdDA56802443b68

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000065f62753b0043b2cafad3d038fdda56802443b68


Deployed Bytecode Sourcemap

14508:15760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19390:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20561:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16440:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19670:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24878:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22056:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15248:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23246:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21345:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19578:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14862:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15338:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20056:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14651:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22436:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15539:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15621:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15380:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16600:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15657:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15991:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16111:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22177:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15417:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21200:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19778:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22568:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14783:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16263:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16318:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15790:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16741:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5953:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15581:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21848:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6178:145;;;;;;;;;;;;;:::i;:::-;;19482:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15694:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15501:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20283:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22888:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24703:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23698:997;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21500:336;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22709:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30117:148;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;16053:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16488:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23021:211;;;;;;;;;;;;;:::i;:::-;;15835:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14702:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16647:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19905:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21085:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15746:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22326:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6331:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16699:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15930:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14739:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19390:84;19428:13;19461:5;19454:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19390:84;:::o;20561:161::-;20636:4;20653:39;20662:12;:10;:12::i;:::-;20676:7;20685:6;20653:8;:39::i;:::-;20710:4;20703:11;;20561:161;;;;:::o;16440:41::-;;;;;;;;;;;;;:::o;19670:100::-;19723:7;19750:12;;19743:19;;19670:100;:::o;24878:313::-;24976:4;24993:36;25003:6;25011:9;25022:6;24993:9;:36::i;:::-;25040:121;25049:6;25057:12;:10;:12::i;:::-;25071:89;25109:6;25071:89;;;;;;;;;;;;;;;;;:11;:19;25083:6;25071:19;;;;;;;;;;;;;;;:33;25091:12;:10;:12::i;:::-;25071:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;25040:8;:121::i;:::-;25179:4;25172:11;;24878:313;;;;;:::o;22056:113::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22153:8:::1;22134:16;;:27;;;;;;;;;;;;;;;;;;22056:113:::0;:::o;15248:81::-;;;:::o;23246:128::-;23299:7;23326:40;23343:22;23353:11;23343:9;:22::i;:::-;23326:12;;:16;;:40;;;;:::i;:::-;23319:47;;23246:128;:::o;21345:143::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21472:8:::1;21439:21;:30;21461:7;21439:30;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;21345:143:::0;;:::o;19578:84::-;19620:5;19645:9;;;;;;;;;;;19638:16;;19578:84;:::o;14862:50::-;;;;:::o;15338:35::-;;;;:::o;20056:219::-;20145:4;20162:83;20171:12;:10;:12::i;:::-;20185:7;20194:50;20233:10;20194:11;:25;20206:12;:10;:12::i;:::-;20194:25;;;;;;;;;;;;;;;:34;20220:7;20194:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20162:8;:83::i;:::-;20263:4;20256:11;;20056:219;;;;:::o;14651:21::-;;;;;;;;;;;;;:::o;22436:124::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22544:8:::1;22518:23;:34;;;;22436:124:::0;:::o;15539:33::-;;;;:::o;15621:29::-;;;;:::o;15380:30::-;;;;:::o;16600:40::-;;;;;;;;;;;;;:::o;15657:30::-;;;;:::o;15991:55::-;;;;;;;;;;;;;;;;;;;;;;:::o;16111:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;22177:141::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22304:6:::1;22271:22;:30;22294:6;22271:30;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22177:141:::0;;:::o;15417:32::-;;;;:::o;21200:133::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21319:6:::1;21290:18;:26;21309:6;21290:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21200:133:::0;;:::o;19778:119::-;19844:7;19871:9;:18;19881:7;19871:18;;;;;;;;;;;;;;;;19864:25;;19778:119;;;:::o;22568:131::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22680:10:::1;22651:18;;:40;;;;;;;;;;;;;;;;;;22568:131:::0;:::o;14783:34::-;;;;:::o;16263:48::-;;;;:::o;16318:46::-;;;;:::o;15790:38::-;;;;:::o;16741:25::-;;;;;;;;;;;;;:::o;5953:79::-;5991:7;6018:6;;;;;;;;;;;6011:13;;5953:79;:::o;15581:33::-;;;;:::o;21848:200::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21952:20:::1;21936:11;:37;;21928:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22029:11;22014:12;:26;;;;21848:200:::0;:::o;6178:145::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6282:1:::1;6245:40;;6266:6;::::0;::::1;;;;;;;;6245:40;;;;;;;;;;;;6313:1;6296:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;6178:145::o:0;19482:88::-;19522:13;19555:7;19548:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19482:88;:::o;15694:43::-;;;;:::o;15501:31::-;;;;:::o;20283:270::-;20377:4;20394:129;20403:12;:10;:12::i;:::-;20417:7;20426:96;20465:15;20426:96;;;;;;;;;;;;;;;;;:11;:25;20438:12;:10;:12::i;:::-;20426:25;;;;;;;;;;;;;;;:34;20452:7;20426:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20394:8;:129::i;:::-;20541:4;20534:11;;20283:270;;;;:::o;22888:125::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22997:8:::1;22969:25;;:36;;;;;;;;;;;;;;;;;;22888:125:::0;:::o;24703:167::-;24781:4;24798:42;24808:12;:10;:12::i;:::-;24822:9;24833:6;24798:9;:42::i;:::-;24858:4;24851:11;;24703:167;;;;:::o;23698:997::-;23750:4;23802:6;23775:23;23785:12;:10;:12::i;:::-;23775:9;:23::i;:::-;:33;;23767:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23850:21;23888:1;23874:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23850:40;;23919:4;23901;23906:1;23901:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23945:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23935:4;23940:1;23935:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23980:15;23998;;;;;;;;;;;:29;;;24028:6;24036:4;23998:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23980:61;;24054:11;24105:7;24080:21;:32;24076:162;;24135:14;;24129:20;;24076:162;;;24212:14;;24188:21;:38;;;;:::i;:::-;24182:44;;24076:162;24277:3;24258:1;24271;24260;:8;:12;;;;:::i;:::-;24258:15;;;;;;;;:::i;:::-;;;;;;;;:22;;24250:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;24352:1;24365;24354;:8;:12;;;;:::i;:::-;24352:15;;;;;;;;:::i;:::-;;;;;;;;24327:21;:40;;24319:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;24413:51;24434:12;:10;:12::i;:::-;24448:1;24461;24450;:8;:12;;;;:::i;:::-;24448:15;;;;;;;;:::i;:::-;;;;;;;;24413:20;:51::i;:::-;24475:27;24481:12;:10;:12::i;:::-;24495:6;24475:5;:27::i;:::-;24543:1;24556;24545;:8;:12;;;;:::i;:::-;24543:15;;;;;;;;:::i;:::-;;;;;;;;24523:16;;:35;;;;;;;:::i;:::-;;;;;;;;24584:6;24569:11;;:21;;;;;;;:::i;:::-;;;;;;;;24608:57;24627:12;:10;:12::i;:::-;24641:6;24649:1;24662;24651;:8;:12;;;;:::i;:::-;24649:15;;;;;;;;:::i;:::-;;;;;;;;24608:57;;;;;;;;:::i;:::-;;;;;;;;24683:4;24676:11;;;;;23698:997;;;:::o;21500:336::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21652:17:::1;21635:14;:34;;;;21693:11;21680:10;:24;;;;21729:12;21715:11;:26;;;;21781:47;21816:11;;21781:30;21800:10;;21781:14;;:18;;:30;;;;:::i;:::-;:34;;:47;;;;:::i;:::-;21754:24;:74;;;;21500:336:::0;;;:::o;22709:171::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22810:8:::1;22786:21;;:32;;;;;;;;;;;;;;;;;;22834:38;22863:8;22834:38;;;;;;:::i;:::-;;;;;;;;22709:171:::0;:::o;30117:148::-;30158:7;30167;30176;30204:11;;30217:16;;30235:21;30196:61;;;;;;30117:148;;;:::o;16053:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;16488:26::-;;;;;;;;;;;;;:::o;23021:211::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23084:13:::1;;;;;;;;;;;23083:14;23075:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;23127:61;23140:24;23158:4;23140:9;:24::i;:::-;23166:21;23127:12;:61::i;:::-;23215:4;23199:13;;:20;;;;;;;;;;;;;;;;;;23021:211::o:0;15835:24::-;;;;:::o;14702:30::-;;;;:::o;16647:45::-;;;;;;;;;;;;;:::o;19905:143::-;19986:7;20013:11;:18;20025:5;20013:18;;;;;;;;;;;;;;;:27;20032:7;20013:27;;;;;;;;;;;;;;;;20006:34;;19905:143;;;;:::o;21085:107::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21180:4:::1;21153:15;:24;21169:7;21153:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21085:107:::0;:::o;15746:37::-;;;;:::o;22326:102::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22412:8:::1;22398:10;:22;;;;22326:102:::0;:::o;6331:244::-;6097:12;:10;:12::i;:::-;6087:22;;:6;;;;;;;;;;:22;;;6079:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6440:1:::1;6420:22;;:8;:22;;::::0;6412:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6530:8;6501:38;;6522:6;::::0;::::1;;;;;;;;6501:38;;;;;;;;;;;;6559:8;6550:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;6331:244:::0;:::o;16699:35::-;;;;;;;;;;;;;:::o;15930:54::-;;;;;;;;;;;;;;;;;;;;;;:::o;14739:35::-;;;;:::o;15458:36::-;;;;:::o;285:115::-;338:15;381:10;366:26;;285:115;:::o;20730:347::-;20850:1;20833:19;;:5;:19;;;20825:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20931:1;20912:21;;:7;:21;;;20904:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21015:6;20985:11;:18;20997:5;20985:18;;;;;;;;;;;;;;;:27;21004:7;20985:27;;;;;;;;;;;;;;;:36;;;;21053:7;21037:32;;21046:5;21037:32;;;21062:6;21037:32;;;;;;:::i;:::-;;;;;;;;20730:347;;;:::o;25199:1991::-;25326:1;25308:20;;:6;:20;;;25300:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;25410:1;25389:23;;:9;:23;;;25381:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;25491:4;25470:26;;:9;:26;;;25469:47;;;;;25502:13;;;;;;;;;;;25469:47;25465:149;;;25552:5;;;;;;;;;;;25532:26;;25573:5;;;;;;;;;;;:13;;;25587:6;25595;25573:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25465:149;25631:16;;;;;;;;;;;25628:1555;;;25674:41;25689:6;25697:9;25708:6;25674:14;:41::i;:::-;;25628:1555;;;25771:18;:26;25790:6;25771:26;;;;;;;;;;;;;;;;;;;;;;;;;25770:27;:61;;;;;25802:18;:29;25821:9;25802:29;;;;;;;;;;;;;;;;;;;;;;;;;25801:30;25770:61;25767:176;;;25870:12;;25860:6;:22;;25852:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;25767:176;25971:28;26002:24;26020:4;26002:9;:24::i;:::-;25971:55;;26041:28;26096:23;;26072:20;:47;;26041:78;;26152:23;:44;;;;;26180:16;;;;;;;;;;;26179:17;26152:44;:72;;;;;26201:15;:23;26217:6;26201:23;;;;;;;;;;;;;;;;;;;;;;;;;26200:24;26152:72;:97;;;;;26228:21;;;;;;;;;;;26152:97;26148:363;;;26287:25;;;;;;;;;;;:42;;;;;26316:13;;;;;;;;;;;26287:42;26284:114;;;26375:23;;26352:46;;26284:114;26417:74;26441:20;26432:6;:29;:58;;26470:20;26432:58;;;26463:6;26432:58;26417:14;:74::i;:::-;26148:363;26547:53;26569:6;26547:53;;;;;;;;;;;;;;;;;:9;:17;26557:6;26547:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;26527:9;:17;26537:6;26527:17;;;;;;;;;;;;;;;:73;;;;26617:19;26640:21;:29;26662:6;26640:29;;;;;;;;;;;;;;;;;;;;;;;;;:65;;;;26673:21;:32;26695:9;26673:32;;;;;;;;;;;;;;;;;;;;;;;;;26640:65;26639:156;;26761:34;26769:6;26777:9;26788:6;26761:7;:34::i;:::-;26639:156;;;26752:6;26639:156;26617:178;;26814:13;;;;;;;;;;;26810:67;;26843:34;26851:6;26859:9;26870:6;26843:7;:34::i;:::-;26829:48;;26810:67;26897:16;;;;;;;;;;;:54;;;;;26918:22;:33;26941:9;26918:33;;;;;;;;;;;;;;;;;;;;;;;;;26917:34;26897:54;26894:136;;;27019:10;;26978:37;27003:11;26978:20;26988:9;26978;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;26970:60;;;;;;26894:136;27070:37;27095:11;27070:9;:20;27080:9;27070:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;27047:9;:20;27057:9;27047:20;;;;;;;;;;;;;;;:60;;;;27146:9;27129:40;;27138:6;27129:40;;;27157:11;27129:40;;;;;;:::i;:::-;;;;;;;;25752:1431;;;25628:1555;25199:1991;;;:::o;1688:192::-;1774:7;1807:1;1802;:6;;1810:12;1794:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1834:9;1850:1;1846;:5;;;;:::i;:::-;1834:17;;1871:1;1864:8;;;1688:192;;;;;:::o;1544:136::-;1602:7;1629:43;1633:1;1636;1629:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1622:50;;1544:136;;;;:::o;1355:181::-;1413:7;1433:9;1449:1;1445;:5;;;;:::i;:::-;1433:17;;1474:1;1469;:6;;1461:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1527:1;1520:8;;;1355:181;;;;:::o;23382:126::-;23474:9;:18;;:26;23493:6;23474:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23382:126;;:::o;18908:474::-;19011:1;18992:21;;:7;:21;;;18984:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19068:22;19093:9;:18;19103:7;19093:18;;;;;;;;;;;;;;;;19068:43;;19148:6;19130:14;:24;;19122:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19267:6;19250:14;:23;19229:9;:18;19239:7;19229:18;;;;;;;;;;;;;;;:44;;;;19311:6;19295:12;;:22;;;;;;;:::i;:::-;;;;;;;;19361:1;19335:37;;19344:7;19335:37;;;19365:6;19335:37;;;;;;:::i;:::-;;;;;;;;18973:409;18908:474;;:::o;28944:444::-;29025:62;29042:4;29057:15;;;;;;;;;;;29075:11;29025:8;:62::i;:::-;29128:15;;;;;;;;;;;:31;;;29167:9;29200:4;29220:11;29246:1;29289;29332:7;:5;:7::i;:::-;29354:15;29128:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28944:444;;:::o;27198:330::-;27291:4;27328:53;27350:6;27328:53;;;;;;;;;;;;;;;;;:9;:17;27338:6;27328:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;27308:9;:17;27318:6;27308:17;;;;;;;;;;;;;;;:73;;;;27415:32;27440:6;27415:9;:20;27425:9;27415:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;27392:9;:20;27402:9;27392:20;;;;;;;;;;;;;;;:55;;;;27480:9;27463:35;;27472:6;27463:35;;;27491:6;27463:35;;;;;;:::i;:::-;;;;;;;;27516:4;27509:11;;27198:330;;;;;:::o;27536:726::-;17371:4;17352:16;;:23;;;;;;;;;;;;;;;;;;27614:13:::1;;;;;;;;;;;27610:26:::0;27629:7:::1;27610:26;27656:28;27687:21;27656:52;;27721:25;27738:7;27721:16;:25::i;:::-;27757:22;27782:47;27808:20;27782:21;:25;;:47;;;;:::i;:::-;27757:72;;27850:24;27877:64;27916:24;;27877:34;27896:14;;27877;:18;;:34;;;;:::i;:::-;:38;;:64;;;;:::i;:::-;27850:91;;27952:20;27975:60;28010:24;;27975:30;27994:10;;27975:14;:18;;:30;;;;:::i;:::-;:34;;:60;;;;:::i;:::-;27952:83;;28070:1;28051:16;:20;28048:101;;;28086:63;28123:5;;;;;;;;;;;28132:16;28086:20;:63::i;:::-;28048:101;28180:1;28165:12;:16;28162:88;;;28196:54;28217:18;;;;;;;;;;;28237:12;28196:20;:54::i;:::-;28162:88;27597:665;;;;17386:1;17417:5:::0;17398:16;;:24;;;;;;;;;;;;;;;;;;27536:726;:::o;29398:711::-;29484:7;29514:17;29534:1;29514:21;;29559:15;:23;29575:6;29559:23;;;;;;;;;;;;;;;;;;;;;;;;;29556:312;;;29611:57;29664:3;29611:48;29633:2;29622:8;;:13;:36;;29641:17;;29622:36;;;29638:1;29622:36;29611:6;:10;;:48;;;;:::i;:::-;:52;;:57;;;;:::i;:::-;29599:69;;29698:15;29711:1;29698:8;;:12;;:15;;;;:::i;:::-;29687:8;:26;;;;29556:312;;;29743:15;:26;29759:9;29743:26;;;;;;;;;;;;;;;;;;;;;;;;;29740:128;;;29798:58;29852:3;29798:49;29820:2;29809:8;;:13;:37;;29828:18;;29809:37;;;29825:1;29809:37;29798:6;:10;;:49;;;;:::i;:::-;:53;;:58;;;;:::i;:::-;29786:70;;29740:128;29556:312;29903:1;29891:9;:13;29888:173;;;29948:39;29977:9;29948;:24;29966:4;29948:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;29921:9;:24;29939:4;29921:24;;;;;;;;;;;;;;;:66;;;;30032:4;30007:42;;30016:6;30007:42;;;30039:9;30007:42;;;;;;:::i;:::-;;;;;;;;29888:173;30080:21;30091:9;30080:6;:10;;:21;;;;:::i;:::-;30073:28;;;29398:711;;;;;:::o;28270:666::-;28396:21;28434:1;28420:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28396:40;;28465:4;28447;28452:1;28447:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;28491:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28481:4;28486:1;28481:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;28526:62;28543:4;28558:15;;;;;;;;;;;28576:11;28526:8;:62::i;:::-;28627:15;;;;;;;;;;;:66;;;28708:11;28734:1;28778:4;28805;28841:15;28627:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28893:35;28910:11;28923:4;28893:35;;;;;;;:::i;:::-;;;;;;;;28325:611;28270:666;:::o;1888:250::-;1946:7;1975:1;1970;:6;1966:47;;2000:1;1993:8;;;;1966:47;2025:9;2041:1;2037;:5;;;;:::i;:::-;2025:17;;2070:1;2065;2061;:5;;;;:::i;:::-;:10;2053:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2129:1;2122:8;;;1888:250;;;;;:::o;2146:132::-;2204:7;2231:39;2235:1;2238;2231:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2224:46;;2146:132;;;;:::o;2286:278::-;2372:7;2404:1;2400;:5;2407:12;2392:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2431:9;2447:1;2443;:5;;;;:::i;:::-;2431:17;;2555:1;2548:8;;;2286:278;;;;;:::o;7:99:1:-;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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:153::-;3869:9;3902:37;3933:5;3902:37;:::i;:::-;3889:50;;3792:153;;;:::o;3951:185::-;4065:64;4123:5;4065:64;:::i;:::-;4060:3;4053:77;3951:185;;:::o;4142:276::-;4262:4;4300:2;4289:9;4285:18;4277:26;;4313:98;4408:1;4397:9;4393:17;4384:6;4313:98;:::i;:::-;4142:276;;;;:::o;4424:118::-;4511:24;4529:5;4511:24;:::i;:::-;4506:3;4499:37;4424:118;;:::o;4548:222::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4692:71;4760:1;4749:9;4745:17;4736:6;4692:71;:::i;:::-;4548:222;;;;:::o;4776:619::-;4853:6;4861;4869;4918:2;4906:9;4897:7;4893:23;4889:32;4886:119;;;4924:79;;:::i;:::-;4886:119;5044:1;5069:53;5114:7;5105:6;5094:9;5090:22;5069:53;:::i;:::-;5059:63;;5015:117;5171:2;5197:53;5242:7;5233:6;5222:9;5218:22;5197:53;:::i;:::-;5187:63;;5142:118;5299:2;5325:53;5370:7;5361:6;5350:9;5346:22;5325:53;:::i;:::-;5315:63;;5270:118;4776:619;;;;;:::o;5401:116::-;5471:21;5486:5;5471:21;:::i;:::-;5464:5;5461:32;5451:60;;5507:1;5504;5497:12;5451:60;5401:116;:::o;5523:133::-;5566:5;5604:6;5591:20;5582:29;;5620:30;5644:5;5620:30;:::i;:::-;5523:133;;;;:::o;5662:323::-;5718:6;5767:2;5755:9;5746:7;5742:23;5738:32;5735:119;;;5773:79;;:::i;:::-;5735:119;5893:1;5918:50;5960:7;5951:6;5940:9;5936:22;5918:50;:::i;:::-;5908:60;;5864:114;5662:323;;;;:::o;5991:118::-;6078:24;6096:5;6078:24;:::i;:::-;6073:3;6066:37;5991:118;;:::o;6115:222::-;6208:4;6246:2;6235:9;6231:18;6223:26;;6259:71;6327:1;6316:9;6312:17;6303:6;6259:71;:::i;:::-;6115:222;;;;:::o;6343:468::-;6408:6;6416;6465:2;6453:9;6444:7;6440:23;6436:32;6433:119;;;6471:79;;:::i;:::-;6433:119;6591:1;6616:53;6661:7;6652:6;6641:9;6637:22;6616:53;:::i;:::-;6606:63;;6562:117;6718:2;6744:50;6786:7;6777:6;6766:9;6762:22;6744:50;:::i;:::-;6734:60;;6689:115;6343:468;;;;;:::o;6817:86::-;6852:7;6892:4;6885:5;6881:16;6870:27;;6817:86;;;:::o;6909:112::-;6992:22;7008:5;6992:22;:::i;:::-;6987:3;6980:35;6909:112;;:::o;7027:214::-;7116:4;7154:2;7143:9;7139:18;7131:26;;7167:67;7231:1;7220:9;7216:17;7207:6;7167:67;:::i;:::-;7027:214;;;;:::o;7247:143::-;7314:9;7347:37;7378:5;7347:37;:::i;:::-;7334:50;;7247:143;;;:::o;7396:165::-;7500:54;7548:5;7500:54;:::i;:::-;7495:3;7488:67;7396:165;;:::o;7567:256::-;7677:4;7715:2;7704:9;7700:18;7692:26;;7728:88;7813:1;7802:9;7798:17;7789:6;7728:88;:::i;:::-;7567:256;;;;:::o;7829:329::-;7888:6;7937:2;7925:9;7916:7;7912:23;7908:32;7905:119;;;7943:79;;:::i;:::-;7905:119;8063:1;8088:53;8133:7;8124:6;8113:9;8109:22;8088:53;:::i;:::-;8078:63;;8034:117;7829:329;;;;:::o;8164:::-;8223:6;8272:2;8260:9;8251:7;8247:23;8243:32;8240:119;;;8278:79;;:::i;:::-;8240:119;8398:1;8423:53;8468:7;8459:6;8448:9;8444:22;8423:53;:::i;:::-;8413:63;;8369:117;8164:329;;;;:::o;8499:619::-;8576:6;8584;8592;8641:2;8629:9;8620:7;8616:23;8612:32;8609:119;;;8647:79;;:::i;:::-;8609:119;8767:1;8792:53;8837:7;8828:6;8817:9;8813:22;8792:53;:::i;:::-;8782:63;;8738:117;8894:2;8920:53;8965:7;8956:6;8945:9;8941:22;8920:53;:::i;:::-;8910:63;;8865:118;9022:2;9048:53;9093:7;9084:6;9073:9;9069:22;9048:53;:::i;:::-;9038:63;;8993:118;8499:619;;;;;:::o;9124:442::-;9273:4;9311:2;9300:9;9296:18;9288:26;;9324:71;9392:1;9381:9;9377:17;9368:6;9324:71;:::i;:::-;9405:72;9473:2;9462:9;9458:18;9449:6;9405:72;:::i;:::-;9487;9555:2;9544:9;9540:18;9531:6;9487:72;:::i;:::-;9124:442;;;;;;:::o;9572:474::-;9640:6;9648;9697:2;9685:9;9676:7;9672:23;9668:32;9665:119;;;9703:79;;:::i;:::-;9665:119;9823:1;9848:53;9893:7;9884:6;9873:9;9869:22;9848:53;:::i;:::-;9838:63;;9794:117;9950:2;9976:53;10021:7;10012:6;10001:9;9997:22;9976:53;:::i;:::-;9966:63;;9921:118;9572:474;;;;;:::o;10052:180::-;10100:77;10097:1;10090:88;10197:4;10194:1;10187:15;10221:4;10218:1;10211:15;10238:320;10282:6;10319:1;10313:4;10309:12;10299:22;;10366:1;10360:4;10356:12;10387:18;10377:81;;10443:4;10435:6;10431:17;10421:27;;10377:81;10505:2;10497:6;10494:14;10474:18;10471:38;10468:84;;10524:18;;:::i;:::-;10468:84;10289:269;10238:320;;;:::o;10564:182::-;10704:34;10700:1;10692:6;10688:14;10681:58;10564:182;:::o;10752:366::-;10894:3;10915:67;10979:2;10974:3;10915:67;:::i;:::-;10908:74;;10991:93;11080:3;10991:93;:::i;:::-;11109:2;11104:3;11100:12;11093:19;;10752:366;;;:::o;11124:419::-;11290:4;11328:2;11317:9;11313:18;11305:26;;11377:9;11371:4;11367:20;11363:1;11352:9;11348:17;11341:47;11405:131;11531:4;11405:131;:::i;:::-;11397:139;;11124:419;;;:::o;11549:175::-;11689:27;11685:1;11677:6;11673:14;11666:51;11549:175;:::o;11730:366::-;11872:3;11893:67;11957:2;11952:3;11893:67;:::i;:::-;11886:74;;11969:93;12058:3;11969:93;:::i;:::-;12087:2;12082:3;12078:12;12071:19;;11730:366;;;:::o;12102:419::-;12268:4;12306:2;12295:9;12291:18;12283:26;;12355:9;12349:4;12345:20;12341:1;12330:9;12326:17;12319:47;12383:131;12509:4;12383:131;:::i;:::-;12375:139;;12102:419;;;:::o;12527:174::-;12667:26;12663:1;12655:6;12651:14;12644:50;12527:174;:::o;12707:366::-;12849:3;12870:67;12934:2;12929:3;12870:67;:::i;:::-;12863:74;;12946:93;13035:3;12946:93;:::i;:::-;13064:2;13059:3;13055:12;13048:19;;12707:366;;;:::o;13079:419::-;13245:4;13283:2;13272:9;13268:18;13260:26;;13332:9;13326:4;13322:20;13318:1;13307:9;13303:17;13296:47;13360:131;13486:4;13360:131;:::i;:::-;13352:139;;13079:419;;;:::o;13504:180::-;13552:77;13549:1;13542:88;13649:4;13646:1;13639:15;13673:4;13670:1;13663:15;13690:180;13738:77;13735:1;13728:88;13835:4;13832:1;13825:15;13859:4;13856:1;13849:15;13876:143;13933:5;13964:6;13958:13;13949:22;;13980:33;14007:5;13980:33;:::i;:::-;13876:143;;;;:::o;14025:351::-;14095:6;14144:2;14132:9;14123:7;14119:23;14115:32;14112:119;;;14150:79;;:::i;:::-;14112:119;14270:1;14295:64;14351:7;14342:6;14331:9;14327:22;14295:64;:::i;:::-;14285:74;;14241:128;14025:351;;;;:::o;14382:114::-;14449:6;14483:5;14477:12;14467:22;;14382:114;;;:::o;14502:184::-;14601:11;14635:6;14630:3;14623:19;14675:4;14670:3;14666:14;14651:29;;14502:184;;;;:::o;14692:132::-;14759:4;14782:3;14774:11;;14812:4;14807:3;14803:14;14795:22;;14692:132;;;:::o;14830:108::-;14907:24;14925:5;14907:24;:::i;:::-;14902:3;14895:37;14830:108;;:::o;14944:179::-;15013:10;15034:46;15076:3;15068:6;15034:46;:::i;:::-;15112:4;15107:3;15103:14;15089:28;;14944:179;;;;:::o;15129:113::-;15199:4;15231;15226:3;15222:14;15214:22;;15129:113;;;:::o;15278:732::-;15397:3;15426:54;15474:5;15426:54;:::i;:::-;15496:86;15575:6;15570:3;15496:86;:::i;:::-;15489:93;;15606:56;15656:5;15606:56;:::i;:::-;15685:7;15716:1;15701:284;15726:6;15723:1;15720:13;15701:284;;;15802:6;15796:13;15829:63;15888:3;15873:13;15829:63;:::i;:::-;15822:70;;15915:60;15968:6;15915:60;:::i;:::-;15905:70;;15761:224;15748:1;15745;15741:9;15736:14;;15701:284;;;15705:14;16001:3;15994:10;;15402:608;;;15278:732;;;;:::o;16016:483::-;16187:4;16225:2;16214:9;16210:18;16202:26;;16238:71;16306:1;16295:9;16291:17;16282:6;16238:71;:::i;:::-;16356:9;16350:4;16346:20;16341:2;16330:9;16326:18;16319:48;16384:108;16487:4;16478:6;16384:108;:::i;:::-;16376:116;;16016:483;;;;;:::o;16505:117::-;16614:1;16611;16604:12;16628:281;16711:27;16733:4;16711:27;:::i;:::-;16703:6;16699:40;16841:6;16829:10;16826:22;16805:18;16793:10;16790:34;16787:62;16784:88;;;16852:18;;:::i;:::-;16784:88;16892:10;16888:2;16881:22;16671:238;16628:281;;:::o;16915:129::-;16949:6;16976:20;;:::i;:::-;16966:30;;17005:33;17033:4;17025:6;17005:33;:::i;:::-;16915:129;;;:::o;17050:311::-;17127:4;17217:18;17209:6;17206:30;17203:56;;;17239:18;;:::i;:::-;17203:56;17289:4;17281:6;17277:17;17269:25;;17349:4;17343;17339:15;17331:23;;17050:311;;;:::o;17367:117::-;17476:1;17473;17466:12;17490:143;17547:5;17578:6;17572:13;17563:22;;17594:33;17621:5;17594:33;:::i;:::-;17490:143;;;;:::o;17656:732::-;17763:5;17788:81;17804:64;17861:6;17804:64;:::i;:::-;17788:81;:::i;:::-;17779:90;;17889:5;17918:6;17911:5;17904:21;17952:4;17945:5;17941:16;17934:23;;18005:4;17997:6;17993:17;17985:6;17981:30;18034:3;18026:6;18023:15;18020:122;;;18053:79;;:::i;:::-;18020:122;18168:6;18151:231;18185:6;18180:3;18177:15;18151:231;;;18260:3;18289:48;18333:3;18321:10;18289:48;:::i;:::-;18284:3;18277:61;18367:4;18362:3;18358:14;18351:21;;18227:155;18211:4;18206:3;18202:14;18195:21;;18151:231;;;18155:21;17769:619;;17656:732;;;;;:::o;18411:385::-;18493:5;18542:3;18535:4;18527:6;18523:17;18519:27;18509:122;;18550:79;;:::i;:::-;18509:122;18660:6;18654:13;18685:105;18786:3;18778:6;18771:4;18763:6;18759:17;18685:105;:::i;:::-;18676:114;;18499:297;18411:385;;;;:::o;18802:554::-;18897:6;18946:2;18934:9;18925:7;18921:23;18917:32;18914:119;;;18952:79;;:::i;:::-;18914:119;19093:1;19082:9;19078:17;19072:24;19123:18;19115:6;19112:30;19109:117;;;19145:79;;:::i;:::-;19109:117;19250:89;19331:7;19322:6;19311:9;19307:22;19250:89;:::i;:::-;19240:99;;19043:306;18802:554;;;;:::o;19362:180::-;19410:77;19407:1;19400:88;19507:4;19504:1;19497:15;19531:4;19528:1;19521:15;19548:180;19596:77;19593:1;19586:88;19693:4;19690:1;19683:15;19717:4;19714:1;19707:15;19734:185;19774:1;19791:20;19809:1;19791:20;:::i;:::-;19786:25;;19825:20;19843:1;19825:20;:::i;:::-;19820:25;;19864:1;19854:35;;19869:18;;:::i;:::-;19854:35;19911:1;19908;19904:9;19899:14;;19734:185;;;;:::o;19925:194::-;19965:4;19985:20;20003:1;19985:20;:::i;:::-;19980:25;;20019:20;20037:1;20019:20;:::i;:::-;20014:25;;20063:1;20060;20056:9;20048:17;;20087:1;20081:4;20078:11;20075:37;;;20092:18;;:::i;:::-;20075:37;19925:194;;;;:::o;20125:173::-;20265:25;20261:1;20253:6;20249:14;20242:49;20125:173;:::o;20304:366::-;20446:3;20467:67;20531:2;20526:3;20467:67;:::i;:::-;20460:74;;20543:93;20632:3;20543:93;:::i;:::-;20661:2;20656:3;20652:12;20645:19;;20304:366;;;:::o;20676:419::-;20842:4;20880:2;20869:9;20865:18;20857:26;;20929:9;20923:4;20919:20;20915:1;20904:9;20900:17;20893:47;20957:131;21083:4;20957:131;:::i;:::-;20949:139;;20676:419;;;:::o;21101:178::-;21241:30;21237:1;21229:6;21225:14;21218:54;21101:178;:::o;21285:366::-;21427:3;21448:67;21512:2;21507:3;21448:67;:::i;:::-;21441:74;;21524:93;21613:3;21524:93;:::i;:::-;21642:2;21637:3;21633:12;21626:19;;21285:366;;;:::o;21657:419::-;21823:4;21861:2;21850:9;21846:18;21838:26;;21910:9;21904:4;21900:20;21896:1;21885:9;21881:17;21874:47;21938:131;22064:4;21938:131;:::i;:::-;21930:139;;21657:419;;;:::o;22082:191::-;22122:3;22141:20;22159:1;22141:20;:::i;:::-;22136:25;;22175:20;22193:1;22175:20;:::i;:::-;22170:25;;22218:1;22215;22211:9;22204:16;;22239:3;22236:1;22233:10;22230:36;;;22246:18;;:::i;:::-;22230:36;22082:191;;;;:::o;22279:134::-;22337:9;22370:37;22401:5;22370:37;:::i;:::-;22357:50;;22279:134;;;:::o;22419:147::-;22514:45;22553:5;22514:45;:::i;:::-;22509:3;22502:58;22419:147;;:::o;22572:458::-;22729:4;22767:2;22756:9;22752:18;22744:26;;22780:79;22856:1;22845:9;22841:17;22832:6;22780:79;:::i;:::-;22869:72;22937:2;22926:9;22922:18;22913:6;22869:72;:::i;:::-;22951;23019:2;23008:9;23004:18;22995:6;22951:72;:::i;:::-;22572:458;;;;;;:::o;23036:164::-;23176:16;23172:1;23164:6;23160:14;23153:40;23036:164;:::o;23206:366::-;23348:3;23369:67;23433:2;23428:3;23369:67;:::i;:::-;23362:74;;23445:93;23534:3;23445:93;:::i;:::-;23563:2;23558:3;23554:12;23547:19;;23206:366;;;:::o;23578:419::-;23744:4;23782:2;23771:9;23767:18;23759:26;;23831:9;23825:4;23821:20;23817:1;23806:9;23802:17;23795:47;23859:131;23985:4;23859:131;:::i;:::-;23851:139;;23578:419;;;:::o;24003:225::-;24143:34;24139:1;24131:6;24127:14;24120:58;24212:8;24207:2;24199:6;24195:15;24188:33;24003:225;:::o;24234:366::-;24376:3;24397:67;24461:2;24456:3;24397:67;:::i;:::-;24390:74;;24473:93;24562:3;24473:93;:::i;:::-;24591:2;24586:3;24582:12;24575:19;;24234:366;;;:::o;24606:419::-;24772:4;24810:2;24799:9;24795:18;24787:26;;24859:9;24853:4;24849:20;24845:1;24834:9;24830:17;24823:47;24887:131;25013:4;24887:131;:::i;:::-;24879:139;;24606:419;;;:::o;25031:223::-;25171:34;25167:1;25159:6;25155:14;25148:58;25240:6;25235:2;25227:6;25223:15;25216:31;25031:223;:::o;25260:366::-;25402:3;25423:67;25487:2;25482:3;25423:67;:::i;:::-;25416:74;;25499:93;25588:3;25499:93;:::i;:::-;25617:2;25612:3;25608:12;25601:19;;25260:366;;;:::o;25632:419::-;25798:4;25836:2;25825:9;25821:18;25813:26;;25885:9;25879:4;25875:20;25871:1;25860:9;25856:17;25849:47;25913:131;26039:4;25913:131;:::i;:::-;25905:139;;25632:419;;;:::o;26057:221::-;26197:34;26193:1;26185:6;26181:14;26174:58;26266:4;26261:2;26253:6;26249:15;26242:29;26057:221;:::o;26284:366::-;26426:3;26447:67;26511:2;26506:3;26447:67;:::i;:::-;26440:74;;26523:93;26612:3;26523:93;:::i;:::-;26641:2;26636:3;26632:12;26625:19;;26284:366;;;:::o;26656:419::-;26822:4;26860:2;26849:9;26845:18;26837:26;;26909:9;26903:4;26899:20;26895:1;26884:9;26880:17;26873:47;26937:131;27063:4;26937:131;:::i;:::-;26929:139;;26656:419;;;:::o;27081:224::-;27221:34;27217:1;27209:6;27205:14;27198:58;27290:7;27285:2;27277:6;27273:15;27266:32;27081:224;:::o;27311:366::-;27453:3;27474:67;27538:2;27533:3;27474:67;:::i;:::-;27467:74;;27550:93;27639:3;27550:93;:::i;:::-;27668:2;27663:3;27659:12;27652:19;;27311:366;;;:::o;27683:419::-;27849:4;27887:2;27876:9;27872:18;27864:26;;27936:9;27930:4;27926:20;27922:1;27911:9;27907:17;27900:47;27964:131;28090:4;27964:131;:::i;:::-;27956:139;;27683:419;;;:::o;28108:222::-;28248:34;28244:1;28236:6;28232:14;28225:58;28317:5;28312:2;28304:6;28300:15;28293:30;28108:222;:::o;28336:366::-;28478:3;28499:67;28563:2;28558:3;28499:67;:::i;:::-;28492:74;;28575:93;28664:3;28575:93;:::i;:::-;28693:2;28688:3;28684:12;28677:19;;28336:366;;;:::o;28708:419::-;28874:4;28912:2;28901:9;28897:18;28889:26;;28961:9;28955:4;28951:20;28947:1;28936:9;28932:17;28925:47;28989:131;29115:4;28989:131;:::i;:::-;28981:139;;28708:419;;;:::o;29133:332::-;29254:4;29292:2;29281:9;29277:18;29269:26;;29305:71;29373:1;29362:9;29358:17;29349:6;29305:71;:::i;:::-;29386:72;29454:2;29443:9;29439:18;29430:6;29386:72;:::i;:::-;29133:332;;;;;:::o;29471:227::-;29611:34;29607:1;29599:6;29595:14;29588:58;29680:10;29675:2;29667:6;29663:15;29656:35;29471:227;:::o;29704:366::-;29846:3;29867:67;29931:2;29926:3;29867:67;:::i;:::-;29860:74;;29943:93;30032:3;29943:93;:::i;:::-;30061:2;30056:3;30052:12;30045:19;;29704:366;;;:::o;30076:419::-;30242:4;30280:2;30269:9;30265:18;30257:26;;30329:9;30323:4;30319:20;30315:1;30304:9;30300:17;30293:47;30357:131;30483:4;30357:131;:::i;:::-;30349:139;;30076:419;;;:::o;30501:177::-;30641:29;30637:1;30629:6;30625:14;30618:53;30501:177;:::o;30684:366::-;30826:3;30847:67;30911:2;30906:3;30847:67;:::i;:::-;30840:74;;30923:93;31012:3;30923:93;:::i;:::-;31041:2;31036:3;31032:12;31025:19;;30684:366;;;:::o;31056:419::-;31222:4;31260:2;31249:9;31245:18;31237:26;;31309:9;31303:4;31299:20;31295:1;31284:9;31280:17;31273:47;31337:131;31463:4;31337:131;:::i;:::-;31329:139;;31056:419;;;:::o;31481:220::-;31621:34;31617:1;31609:6;31605:14;31598:58;31690:3;31685:2;31677:6;31673:15;31666:28;31481:220;:::o;31707:366::-;31849:3;31870:67;31934:2;31929:3;31870:67;:::i;:::-;31863:74;;31946:93;32035:3;31946:93;:::i;:::-;32064:2;32059:3;32055:12;32048:19;;31707:366;;;:::o;32079:419::-;32245:4;32283:2;32272:9;32268:18;32260:26;;32332:9;32326:4;32322:20;32318:1;32307:9;32303:17;32296:47;32360:131;32486:4;32360:131;:::i;:::-;32352:139;;32079:419;;;:::o;32504:221::-;32644:34;32640:1;32632:6;32628:14;32621:58;32713:4;32708:2;32700:6;32696:15;32689:29;32504:221;:::o;32731:366::-;32873:3;32894:67;32958:2;32953:3;32894:67;:::i;:::-;32887:74;;32970:93;33059:3;32970:93;:::i;:::-;33088:2;33083:3;33079:12;33072:19;;32731:366;;;:::o;33103:419::-;33269:4;33307:2;33296:9;33292:18;33284:26;;33356:9;33350:4;33346:20;33342:1;33331:9;33327:17;33320:47;33384:131;33510:4;33384:131;:::i;:::-;33376:139;;33103:419;;;:::o;33528:85::-;33573:7;33602:5;33591:16;;33528:85;;;:::o;33619:158::-;33677:9;33710:61;33728:42;33737:32;33763:5;33737:32;:::i;:::-;33728:42;:::i;:::-;33710:61;:::i;:::-;33697:74;;33619:158;;;:::o;33783:147::-;33878:45;33917:5;33878:45;:::i;:::-;33873:3;33866:58;33783:147;;:::o;33936:807::-;34185:4;34223:3;34212:9;34208:19;34200:27;;34237:71;34305:1;34294:9;34290:17;34281:6;34237:71;:::i;:::-;34318:72;34386:2;34375:9;34371:18;34362:6;34318:72;:::i;:::-;34400:80;34476:2;34465:9;34461:18;34452:6;34400:80;:::i;:::-;34490;34566:2;34555:9;34551:18;34542:6;34490:80;:::i;:::-;34580:73;34648:3;34637:9;34633:19;34624:6;34580:73;:::i;:::-;34663;34731:3;34720:9;34716:19;34707:6;34663:73;:::i;:::-;33936:807;;;;;;;;;:::o;34749:663::-;34837:6;34845;34853;34902:2;34890:9;34881:7;34877:23;34873:32;34870:119;;;34908:79;;:::i;:::-;34870:119;35028:1;35053:64;35109:7;35100:6;35089:9;35085:22;35053:64;:::i;:::-;35043:74;;34999:128;35166:2;35192:64;35248:7;35239:6;35228:9;35224:22;35192:64;:::i;:::-;35182:74;;35137:129;35305:2;35331:64;35387:7;35378:6;35367:9;35363:22;35331:64;:::i;:::-;35321:74;;35276:129;34749:663;;;;;:::o;35418:831::-;35681:4;35719:3;35708:9;35704:19;35696:27;;35733:71;35801:1;35790:9;35786:17;35777:6;35733:71;:::i;:::-;35814:80;35890:2;35879:9;35875:18;35866:6;35814:80;:::i;:::-;35941:9;35935:4;35931:20;35926:2;35915:9;35911:18;35904:48;35969:108;36072:4;36063:6;35969:108;:::i;:::-;35961:116;;36087:72;36155:2;36144:9;36140:18;36131:6;36087:72;:::i;:::-;36169:73;36237:3;36226:9;36222:19;36213:6;36169:73;:::i;:::-;35418:831;;;;;;;;:::o;36255:410::-;36295:7;36318:20;36336:1;36318:20;:::i;:::-;36313:25;;36352:20;36370:1;36352:20;:::i;:::-;36347:25;;36407:1;36404;36400:9;36429:30;36447:11;36429:30;:::i;:::-;36418:41;;36608:1;36599:7;36595:15;36592:1;36589:22;36569:1;36562:9;36542:83;36519:139;;36638:18;;:::i;:::-;36519:139;36303:362;36255:410;;;;:::o;36671:220::-;36811:34;36807:1;36799:6;36795:14;36788:58;36880:3;36875:2;36867:6;36863:15;36856:28;36671:220;:::o;36897:366::-;37039:3;37060:67;37124:2;37119:3;37060:67;:::i;:::-;37053:74;;37136:93;37225:3;37136:93;:::i;:::-;37254:2;37249:3;37245:12;37238:19;;36897:366;;;:::o;37269:419::-;37435:4;37473:2;37462:9;37458:18;37450:26;;37522:9;37516:4;37512:20;37508:1;37497:9;37493:17;37486:47;37550:131;37676:4;37550:131;:::i;:::-;37542:139;;37269:419;;;:::o

Swarm Source

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