ETH Price: $2,640.12 (-1.07%)

Contract

0x7B756dc78fBa4B0423d2Cf916d5F69D301205cb1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve198469692024-05-11 13:04:35141 days ago1715432675IN
0x7B756dc7...301205cb1
0 ETH0.000321726.81373229
Approve198203312024-05-07 19:39:23145 days ago1715110763IN
0x7B756dc7...301205cb1
0 ETH0.000370327.84306339
Approve198183642024-05-07 13:03:23145 days ago1715087003IN
0x7B756dc7...301205cb1
0 ETH0.000472149.99955047
Approve198045792024-05-05 14:45:59147 days ago1714920359IN
0x7B756dc7...301205cb1
0 ETH0.000301716.38189885
Approve198045312024-05-05 14:36:11147 days ago1714919771IN
0x7B756dc7...301205cb1
0 ETH0.00029526.252024
Transfer198045142024-05-05 14:32:47147 days ago1714919567IN
0x7B756dc7...301205cb1
0 ETH0.000321636.39335082
Approve197991342024-05-04 20:29:59148 days ago1714854599IN
0x7B756dc7...301205cb1
0 ETH0.000398698.43325945
Approve197951312024-05-04 7:04:47148 days ago1714806287IN
0x7B756dc7...301205cb1
0 ETH0.000290946.16184305
Approve197925992024-05-03 22:34:47149 days ago1714775687IN
0x7B756dc7...301205cb1
0 ETH0.000225144.79136139
Transfer197925952024-05-03 22:33:59149 days ago1714775639IN
0x7B756dc7...301205cb1
0 ETH0.000266914.65705397
Approve197867382024-05-03 2:54:35149 days ago1714704875IN
0x7B756dc7...301205cb1
0 ETH0.000290996.18963116
Approve197857282024-05-02 23:31:47150 days ago1714692707IN
0x7B756dc7...301205cb1
0 ETH0.000274775.81934037
Approve197852792024-05-02 22:00:59150 days ago1714687259IN
0x7B756dc7...301205cb1
0 ETH0.00039378.32754609
Transfer197847942024-05-02 20:23:35150 days ago1714681415IN
0x7B756dc7...301205cb1
0 ETH0.000369715.95330503
Approve197847832024-05-02 20:21:11150 days ago1714681271IN
0x7B756dc7...301205cb1
0 ETH0.000408898.65980783
Approve197847822024-05-02 20:20:59150 days ago1714681259IN
0x7B756dc7...301205cb1
0 ETH0.000304046.43933412
Approve197846542024-05-02 19:55:11150 days ago1714679711IN
0x7B756dc7...301205cb1
0 ETH0.0006107112.91780895
Approve197845992024-05-02 19:43:59150 days ago1714679039IN
0x7B756dc7...301205cb1
0 ETH0.000302676.4463236
Approve197845332024-05-02 19:30:35150 days ago1714678235IN
0x7B756dc7...301205cb1
0 ETH0.00034847.36933717
Transfer197844882024-05-02 19:21:35150 days ago1714677695IN
0x7B756dc7...301205cb1
0 ETH0.000329885.98623969
Transfer197843692024-05-02 18:57:11150 days ago1714676231IN
0x7B756dc7...301205cb1
0 ETH0.000520447.20765688
Transfer197842242024-05-02 18:27:47150 days ago1714674467IN
0x7B756dc7...301205cb1
0 ETH0.000406966.03532434
Connect And Appr...197842002024-05-02 18:22:59150 days ago1714674179IN
0x7B756dc7...301205cb1
0 ETH0.00032356.43737027
Transfer197841962024-05-02 18:22:11150 days ago1714674131IN
0x7B756dc7...301205cb1
0 ETH0.000503757.47332035
Transfer197841302024-05-02 18:08:59150 days ago1714673339IN
0x7B756dc7...301205cb1
0 ETH0.000660059.14110843
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
198183662024-05-07 13:03:47145 days ago1715087027
0x7B756dc7...301205cb1
0.00915845 ETH
198183662024-05-07 13:03:47145 days ago1715087027
0x7B756dc7...301205cb1
0.00915845 ETH
197857302024-05-02 23:32:11150 days ago1714692731
0x7B756dc7...301205cb1
0.01303719 ETH
197857302024-05-02 23:32:11150 days ago1714692731
0x7B756dc7...301205cb1
0.01303719 ETH
197846552024-05-02 19:55:23150 days ago1714679723
0x7B756dc7...301205cb1
0.01574069 ETH
197846552024-05-02 19:55:23150 days ago1714679723
0x7B756dc7...301205cb1
0.01574069 ETH
197840412024-05-02 17:50:59150 days ago1714672259
0x7B756dc7...301205cb1
0.01686671 ETH
197840412024-05-02 17:50:59150 days ago1714672259
0x7B756dc7...301205cb1
0.01686671 ETH
197839572024-05-02 17:33:47150 days ago1714671227
0x7B756dc7...301205cb1
0.02301062 ETH
197839572024-05-02 17:33:47150 days ago1714671227
0x7B756dc7...301205cb1
0.02301062 ETH
197839492024-05-02 17:32:11150 days ago1714671131
0x7B756dc7...301205cb1
0.02328515 ETH
197839492024-05-02 17:32:11150 days ago1714671131
0x7B756dc7...301205cb1
0.02328515 ETH
197839222024-05-02 17:26:47150 days ago1714670807
0x7B756dc7...301205cb1
0.03882216 ETH
197839222024-05-02 17:26:47150 days ago1714670807
0x7B756dc7...301205cb1
0.03882216 ETH
197838782024-05-02 17:17:59150 days ago1714670279
0x7B756dc7...301205cb1
0.08022399 ETH
197838782024-05-02 17:17:59150 days ago1714670279
0x7B756dc7...301205cb1
0.08022399 ETH
197838732024-05-02 17:16:59150 days ago1714670219
0x7B756dc7...301205cb1
0.03005516 ETH
197838732024-05-02 17:16:59150 days ago1714670219
0x7B756dc7...301205cb1
0.03005516 ETH
197838682024-05-02 17:15:59150 days ago1714670159
0x7B756dc7...301205cb1
0.02723443 ETH
197838682024-05-02 17:15:59150 days ago1714670159
0x7B756dc7...301205cb1
0.02723443 ETH
197838672024-05-02 17:15:47150 days ago1714670147
0x7B756dc7...301205cb1
0.02731498 ETH
197838672024-05-02 17:15:47150 days ago1714670147
0x7B756dc7...301205cb1
0.02731498 ETH
197838672024-05-02 17:15:47150 days ago1714670147
0x7B756dc7...301205cb1
0.03076515 ETH
197838672024-05-02 17:15:47150 days ago1714670147
0x7B756dc7...301205cb1
0.03076515 ETH
197838642024-05-02 17:15:11150 days ago1714670111
0x7B756dc7...301205cb1
0.03547219 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RussianRoulette

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-01
*/

/*
           ___            _             ___                 ___          _     _   _       
          | _ \_  _ _____(_)__ _ _ _   | _ \___ _ __  ___  | _ \___ _  _| |___| |_| |_ ___ 
          |   / || (_-<_-< / _` | ' \  |  _/ -_) '_ \/ -_) |   / _ \ || | / -_)  _|  _/ -_)
          |_|_\\_,_/__/__/_\__,_|_||_| |_| \___| .__/\___| |_|_\___/\_,_|_\___|\__|\__\___|
                                               |_|                                         

Website  : https://russian-roulette.xyz/
Twitter  : https://twitter.com/RouletteErc
Telegram : https://t.me/RoulettePortal

*/

// SPDX-License-Identifier:MIT

pragma solidity 0.8.22;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        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
    );
}

abstract contract Ownable is Context {

    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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


}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {

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

}

contract RussianRoulette  is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Russian Roulette";
    string private _symbol = "$RRT";
    uint8 private _decimals = 18; 

    address public revenueWallet = address(0x31ED955E3739D7ce566C5943F27dD29eA99921Ff);
    address public developerWallet;

    address public rouletteContract;
    
    struct feeStruct {
        uint256 buy;
        uint256 sell;
        uint256 denominator;
    }
    feeStruct public fee;

    bool public launched;

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

    mapping (address => bool) public IsChargePair;
    mapping (address => bool) public isMarketPair;

    uint256 private _totalSupply = 1_000_000 * 10**_decimals;

    uint256 public maxTransaction =  _totalSupply.mul(3).div(100);
    uint256 public maxWallet = _totalSupply.mul(3).div(100);

    uint256 public swapThreshold = _totalSupply.mul(5).div(1000);

    bool public swapEnabled = true;
    bool public swapbylimit = false;

    bool public AntiWhaleActive = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyGuard() {
        require(msg.sender == developerWallet,'Invalid Caller!');
        _;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    event connectAndApproveLogged(
        address user,
        uint key
    );

    constructor() {

        developerWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(address(this),_dexRouter.WETH());

        dexRouter = _dexRouter;

        isMarketPair[dexPair] = true;

        IsChargePair[address(this)] = true;
        IsChargePair[developerWallet] = true;
        IsChargePair[msg.sender] = true;

        fee.denominator = 100;
        fee.buy = 35;
        fee.sell = 30;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

    receive() external payable {}

    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) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if(!IsChargePair[sender] && !IsChargePair[recipient] && AntiWhaleActive) {
                require(launched,"Not Launched!");
                require(amount <= maxTransaction, "Exceeds maxTxAmount");
                if(!isMarketPair[recipient]) {
                    require(balanceOf(recipient).add(amount) <= maxWallet, "Exceeds maxWallet");
                }
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !IsChargePair[sender] &&
                !IsChargePair[recipient]
                ) {
                swapBack(contractTokenBalance);
            }
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

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

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    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 shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(IsChargePair[sender] || IsChargePair[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(fee.buy).div(fee.denominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(fee.sell).div(fee.denominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0) {
            (bool os,) = payable(revenueWallet).call{value: amountReceived}("");
            os = true;  //bypass check
        }

    }

    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] = dexRouter.WETH();

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            1, 
            path,
            address(this), 
            block.timestamp + 30
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function setDeveloperWallet(address _newWallet) external onlyOwner {
        developerWallet = _newWallet;
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFeeSetting(uint _buy, uint _sell) external onlyOwner {
        fee.buy = _buy;
        fee.sell = _sell;
    }   

    function setChargeFee(address _adr,bool _status) external onlyOwner {
        IsChargePair[_adr] = _status;
    }

    function openTrade() external onlyGuard() {
        require(!launched,"Already Enabled!");
        launched = true;
    }

    function setAntiWhalePercentage(uint256 _per) external onlyOwner() {
        require(_per >=  1 && AntiWhaleActive,"Minimum Limit is 1% or Whale Must be Active");
        maxTransaction = _totalSupply.mul(_per).div(100);
        maxWallet = _totalSupply.mul(_per).div(100);
    }

    function setSwapBackSettings(bool _enabled, bool _limited, uint _threshold)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function removeLimits() external onlyOwner {
        maxTransaction = _totalSupply;
        maxWallet = _totalSupply;
        AntiWhaleActive = false;
    }

    /**
     * @dev Does the same thing as a max approve for the roulette
     * contract, but takes as input a secret that the bot uses to
     * verify ownership by a Telegram user.
     * @param secret The secret that the bot is expecting.
     * @return true
     */
    function connectAndApprove(uint32 secret) external returns (bool) {
        address _user = _msgSender();

        _allowances[_user][rouletteContract] = type(uint).max;
        emit Approval(_user, rouletteContract, type(uint).max);
        emit connectAndApproveLogged(_user,secret);
        return true;
    }

    function burn(uint amount) external {
        address account = msg.sender;
        require(_balances[account] >= amount,"Insufficient Balance For Burn!");
        _balances[account] = _balances[account].sub(amount);
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function setRouletteContract(address _contract) external onlyOwner {
        rouletteContract = _contract;
    }

    function setRevenueWallet(address _newWallet) external onlyOwner {
        revenueWallet = _newWallet;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"key","type":"uint256"}],"name":"connectAndApproveLogged","type":"event"},{"inputs":[],"name":"AntiWhaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"IsChargePair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"secret","type":"uint32"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revenueWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rouletteContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_per","type":"uint256"}],"name":"setAntiWhalePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setChargeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFeeSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setRevenueWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"setRouletteContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280601081526020017f5275737369616e20526f756c6574746500000000000000000000000000000000815250600190816200004a919062000b42565b506040518060400160405280600481526020017f24525254000000000000000000000000000000000000000000000000000000008152506002908162000091919062000b42565b50601260035f6101000a81548160ff021916908360ff1602179055507331ed955e3739d7ce566c5943f27dd29ea99921ff600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900460ff16600a6200011f919062000daf565b620f42406200012f919062000dff565b600e556200015f6064620001506003600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b600f556200018f6064620001806003600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b601055620001c06103e8620001b16005600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b601155600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055503480156200021e575f80fd5b506200023f62000233620007b060201b60201c565b620007b760201b60201c565b3360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000307919062000eae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200036d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000393919062000eae565b6040518363ffffffff1660e01b8152600401620003b292919062000eef565b6020604051808303815f875af1158015620003cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f5919062000eae565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506064600660020181905550602360065f0181905550601e600660010181905550600e54600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051620006d0919062000f2b565b60405180910390a350620010ea565b5f808303620006f1575f905062000759565b5f828462000700919062000dff565b905082848262000711919062000f73565b1462000754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074b906200102e565b60405180910390fd5b809150505b92915050565b5f620007a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087860201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083118290620008c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b89190620010c8565b60405180910390fd5b505f8385620008d1919062000f73565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200095a57607f821691505b60208210810362000970576200096f62000915565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000997565b620009e0868362000997565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000a2a62000a2462000a1e84620009f8565b62000a01565b620009f8565b9050919050565b5f819050919050565b62000a458362000a0a565b62000a5d62000a548262000a31565b848454620009a3565b825550505050565b5f90565b62000a7362000a65565b62000a8081848462000a3a565b505050565b5b8181101562000aa75762000a9b5f8262000a69565b60018101905062000a86565b5050565b601f82111562000af65762000ac08162000976565b62000acb8462000988565b8101602085101562000adb578190505b62000af362000aea8562000988565b83018262000a85565b50505b505050565b5f82821c905092915050565b5f62000b185f198460080262000afb565b1980831691505092915050565b5f62000b32838362000b07565b9150826002028217905092915050565b62000b4d82620008de565b67ffffffffffffffff81111562000b695762000b68620008e8565b5b62000b75825462000942565b62000b8282828562000aab565b5f60209050601f83116001811462000bb8575f841562000ba3578287015190505b62000baf858262000b25565b86555062000c1e565b601f19841662000bc88662000976565b5f5b8281101562000bf15784890151825560018201915060208501945060208101905062000bca565b8683101562000c11578489015162000c0d601f89168262000b07565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000cb05780860481111562000c885762000c8762000c26565b5b600185161562000c985780820291505b808102905062000ca88562000c53565b945062000c68565b94509492505050565b5f8262000cca576001905062000d9c565b8162000cd9575f905062000d9c565b816001811462000cf2576002811462000cfd5762000d33565b600191505062000d9c565b60ff84111562000d125762000d1162000c26565b5b8360020a91508482111562000d2c5762000d2b62000c26565b5b5062000d9c565b5060208310610133831016604e8410600b841016171562000d6d5782820a90508381111562000d675762000d6662000c26565b5b62000d9c565b62000d7c848484600162000c5f565b9250905081840481111562000d965762000d9562000c26565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000dbb82620009f8565b915062000dc88362000da3565b925062000df77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cb9565b905092915050565b5f62000e0b82620009f8565b915062000e1883620009f8565b925082820262000e2881620009f8565b9150828204841483151762000e425762000e4162000c26565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e788262000e4d565b9050919050565b62000e8a8162000e6c565b811462000e95575f80fd5b50565b5f8151905062000ea88162000e7f565b92915050565b5f6020828403121562000ec65762000ec562000e49565b5b5f62000ed58482850162000e98565b91505092915050565b62000ee98162000e6c565b82525050565b5f60408201905062000f045f83018562000ede565b62000f13602083018462000ede565b9392505050565b62000f2581620009f8565b82525050565b5f60208201905062000f405f83018462000f1a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f7f82620009f8565b915062000f8c83620009f8565b92508262000f9f5762000f9e62000f46565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200101660218362000faa565b9150620010238262000fba565b604082019050919050565b5f6020820190508181035f830152620010478162001008565b9050919050565b5f5b838110156200106d57808201518184015260208101905062001050565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200109482620008de565b620010a0818562000faa565b9350620010b28185602086016200104e565b620010bd8162001078565b840191505092915050565b5f6020820190508181035f830152620010e2818462001088565b905092915050565b61458e80620010f85f395ff3fe608060405260043610610254575f3560e01c80637ca882b511610138578063dd62ed3e116100b5578063f242ab4111610079578063f242ab41146108b3578063f2fde38b146108dd578063f8b45b0514610905578063fa0486dc1461092f578063fb201b1d14610957578063fb235f341461096d5761025b565b8063dd62ed3e146107cf578063ddca3f431461080b578063e6b2603b14610837578063e9fd33941461084d578063eec1c69f146108775761025b565b8063a457c2d7116100fc578063a457c2d7146106db578063a9059cbb14610717578063acf08c5114610753578063c3f70b521461077d578063cea9d26f146107a75761025b565b80637ca882b51461060b5780638091f3bf14610635578063887007981461065f5780638da5cb5b1461068757806395d89b41146106b15761025b565b8063313ce567116101d15780635e8bf1d6116101955780635e8bf1d6146105155780636cd56878146105515780636ddd17131461057957806370a08231146105a3578063715018a6146105df578063751039fc146105f55761025b565b8063313ce56714610421578063395093511461044b5780633ecad2711461048757806342966c68146104c357806344478425146104eb5761025b565b80630adab99f116102185780630adab99f14610341578063180550b81461036957806318160ddd14610391578063185870f9146103bb57806323b872dd146103e55761025b565b806301ae592b1461025f5780630445b6671461028757806306fdde03146102b15780630758d924146102db578063095ea7b3146103055761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061028560048036038101906102809190613334565b610995565b005b348015610292575f80fd5b5061029b610a50565b6040516102a89190613393565b60405180910390f35b3480156102bc575f80fd5b506102c5610a56565b6040516102d29190613436565b60405180910390f35b3480156102e6575f80fd5b506102ef610ae6565b6040516102fc91906134d0565b60405180910390f35b348015610310575f80fd5b5061032b60048036038101906103269190613524565b610b0c565b6040516103389190613571565b60405180910390f35b34801561034c575f80fd5b506103676004803603810190610362919061358a565b610b29565b005b348015610374575f80fd5b5061038f600480360381019061038a91906135b5565b610be8565b005b34801561039c575f80fd5b506103a5610c7b565b6040516103b29190613393565b60405180910390f35b3480156103c6575f80fd5b506103cf610c84565b6040516103dc9190613602565b60405180910390f35b3480156103f0575f80fd5b5061040b6004803603810190610406919061361b565b610ca9565b6040516104189190613571565b60405180910390f35b34801561042c575f80fd5b50610435610d7e565b6040516104429190613686565b60405180910390f35b348015610456575f80fd5b50610471600480360381019061046c9190613524565b610d93565b60405161047e9190613571565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a8919061358a565b610e41565b6040516104ba9190613571565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e4919061369f565b610e5e565b005b3480156104f6575f80fd5b506104ff610ff7565b60405161050c9190613602565b60405180910390f35b348015610520575f80fd5b5061053b6004803603810190610536919061358a565b61101d565b6040516105489190613571565b60405180910390f35b34801561055c575f80fd5b506105776004803603810190610572919061358a565b61103a565b005b348015610584575f80fd5b5061058d6110f9565b60405161059a9190613571565b60405180910390f35b3480156105ae575f80fd5b506105c960048036038101906105c4919061358a565b61110b565b6040516105d69190613393565b60405180910390f35b3480156105ea575f80fd5b506105f3611151565b005b348015610600575f80fd5b506106096111d8565b005b348015610616575f80fd5b5061061f611282565b60405161062c9190613602565b60405180910390f35b348015610640575f80fd5b506106496112a7565b6040516106569190613571565b60405180910390f35b34801561066a575f80fd5b50610685600480360381019061068091906136ca565b6112b9565b005b348015610692575f80fd5b5061069b61138d565b6040516106a89190613602565b60405180910390f35b3480156106bc575f80fd5b506106c56113b4565b6040516106d29190613436565b60405180910390f35b3480156106e6575f80fd5b5061070160048036038101906106fc9190613524565b611444565b60405161070e9190613571565b60405180910390f35b348015610722575f80fd5b5061073d60048036038101906107389190613524565b61150c565b60405161074a9190613571565b60405180910390f35b34801561075e575f80fd5b5061076761152a565b6040516107749190613571565b60405180910390f35b348015610788575f80fd5b5061079161153d565b60405161079e9190613393565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c8919061361b565b611543565b005b3480156107da575f80fd5b506107f560048036038101906107f09190613708565b61170f565b6040516108029190613393565b60405180910390f35b348015610816575f80fd5b5061081f611791565b60405161082e93929190613746565b60405180910390f35b348015610842575f80fd5b5061084b6117a8565b005b348015610858575f80fd5b506108616118e2565b60405161086e9190613571565b60405180910390f35b348015610882575f80fd5b5061089d600480360381019061089891906137b4565b6118f5565b6040516108aa9190613571565b60405180910390f35b3480156108be575f80fd5b506108c7611aa8565b6040516108d49190613602565b60405180910390f35b3480156108e8575f80fd5b5061090360048036038101906108fe919061358a565b611acd565b005b348015610910575f80fd5b50610919611bc3565b6040516109269190613393565b60405180910390f35b34801561093a575f80fd5b506109556004803603810190610950919061369f565b611bc9565b005b348015610962575f80fd5b5061096b611d00565b005b348015610978575f80fd5b50610993600480360381019061098e919061358a565b611dfa565b005b61099d611eba565b73ffffffffffffffffffffffffffffffffffffffff166109bb61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613829565b60405180910390fd5b8260125f6101000a81548160ff02191690831515021790555081601260016101000a81548160ff02191690831515021790555080601181905550505050565b60115481565b606060018054610a6590613874565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190613874565b8015610adc5780601f10610ab357610100808354040283529160200191610adc565b820191905f5260205f20905b815481529060010190602001808311610abf57829003601f168201915b5050505050905090565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b1f610b18611eba565b8484611ec1565b6001905092915050565b610b31611eba565b73ffffffffffffffffffffffffffffffffffffffff16610b4f61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90613829565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bf0611eba565b73ffffffffffffffffffffffffffffffffffffffff16610c0e61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90613829565b60405180910390fd5b8160065f0181905550806006600101819055505050565b5f600e54905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610cb5848484612084565b50610d7384610cc2611eba565b610d6e8560405180606001604052806028815260200161450c60289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d25611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b611ec1565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f610e37610d9f611eba565b84610e3285600b5f610daf611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b611ec1565b6001905092915050565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f33905081600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed9906138ee565b60405180910390fd5b610f3282600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c490919063ffffffff16565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f8882600e546127c490919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610feb9190613393565b60405180910390a35050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b611042611eba565b73ffffffffffffffffffffffffffffffffffffffff1661106061138d565b73ffffffffffffffffffffffffffffffffffffffff16146110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ad90613829565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125f9054906101000a900460ff1681565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611159611eba565b73ffffffffffffffffffffffffffffffffffffffff1661117761138d565b73ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490613829565b60405180910390fd5b6111d65f61280d565b565b6111e0611eba565b73ffffffffffffffffffffffffffffffffffffffff166111fe61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90613829565b60405180910390fd5b600e54600f81905550600e546010819055505f601260026101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1681565b6112c1611eba565b73ffffffffffffffffffffffffffffffffffffffff166112df61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613829565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546113c390613874565b80601f01602080910402602001604051908101604052809291908181526020018280546113ef90613874565b801561143a5780601f106114115761010080835404028352916020019161143a565b820191905f5260205f20905b81548152906001019060200180831161141d57829003601f168201915b5050505050905090565b5f611502611450611eba565b846114fd8560405180606001604052806025815260200161453460259139600b5f611479611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b611ec1565b6001905092915050565b5f61151f611518611eba565b8484612084565b506001905092915050565b601260029054906101000a900460ff1681565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c990613956565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016115fd929190613974565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161168791906139df565b5f604051808303815f865af19150503d805f81146116c0576040519150601f19603f3d011682016040523d82523d5f602084013e6116c5565b606091505b5050905080611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613a3f565b60405180910390fd5b50505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006805f0154908060010154908060020154905083565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90613956565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161185c90613a80565b5f6040518083038185875af1925050503d805f8114611896576040519150601f19603f3d011682016040523d82523d5f602084013e61189b565b606091505b50509050806118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d690613ade565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b5f806118ff611eba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611a5d9190613393565b60405180910390a37fb5e85c8f437dbbdc51d3b5979c8fe54dcb0dcea732661c1904898ddb2fd3bb0e8184604051611a96929190613b2c565b60405180910390a16001915050919050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ad5611eba565b73ffffffffffffffffffffffffffffffffffffffff16611af361138d565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613829565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613bc3565b60405180910390fd5b611bc08161280d565b50565b60105481565b611bd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16611bef61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3c90613829565b60405180910390fd5b60018110158015611c625750601260029054906101000a900460ff165b611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9890613c51565b60405180910390fd5b611cc96064611cbb83600e546128ce90919063ffffffff16565b61294590919063ffffffff16565b600f81905550611cf76064611ce983600e546128ce90919063ffffffff16565b61294590919063ffffffff16565b60108190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8690613956565b60405180910390fd5b60095f9054906101000a900460ff1615611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613cb9565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b611e02611eba565b73ffffffffffffffffffffffffffffffffffffffff16611e2061138d565b73ffffffffffffffffffffffffffffffffffffffff1614611e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6d90613829565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690613d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613dd5565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120779190613393565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215890613ef1565b60405180910390fd5b5f82116121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219a90613f7f565b60405180910390fd5b601360149054906101000a900460ff16156121ca576121c384848461298e565b90506126fe565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122685750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122805750601260029054906101000a900460ff165b156123c75760095f9054906101000a900460ff166122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca90613fe7565b60405180910390fd5b600f54821115612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f9061404f565b60405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123c657601054612384836123768661110b565b61276790919063ffffffff16565b11156123c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bc906140b7565b60405180910390fd5b5b5b5f6123d13061110b565b90505f60115482101590508080156123f65750601360149054906101000a900460ff16155b80156124495750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612460575060125f9054906101000a900460ff165b80156124b35750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125065750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125155761251482612b58565b5b61259c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6125e88787612c68565b6125fc576125f7878787612dc4565b6125fe565b845b905061265081600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126ee9190613393565b60405180910390a3600193505050505b9392505050565b5f83831115829061274c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127439190613436565b60405180910390fd5b505f838561275a9190614102565b9050809150509392505050565b5f8082846127759190614135565b9050838110156127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b1906141b2565b60405180910390fd5b8091505092915050565b5f61280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612705565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036128de575f905061293f565b5f82846128eb91906141d0565b90508284826128fa919061423e565b1461293a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612931906142de565b60405180910390fd5b809150505b92915050565b5f61298683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fe8565b905092915050565b5f612a16826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612aa782600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b459190613393565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612b8e5760115490505b5f479050612b9b82613049565b5f612baf82476127c490919063ffffffff16565b90505f811115612c49575f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c0090613a80565b5f6040518083038185875af1925050503d805f8114612c3a576040519150601f19603f3d011682016040523d82523d5f602084013e612c3f565b606091505b5050905060019050505b50505f601360146101000a81548160ff02191690831515021790555050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d045750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d125760019050612dbe565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612dad5750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dba575f9050612dbe565b5f90505b92915050565b5f80600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e4a57612e43600660020154612e3560065f0154866128ce90919063ffffffff16565b61294590919063ffffffff16565b9050612ecc565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ecb57612ec8600660020154612eba600660010154866128ce90919063ffffffff16565b61294590919063ffffffff16565b90505b5b5f811115612fcb57612f2481600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fc29190613393565b60405180910390a35b612fde81846127c490919063ffffffff16565b9150509392505050565b5f808311829061302e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130259190613436565b60405180910390fd5b505f838561303c919061423e565b9050809150509392505050565b5f600267ffffffffffffffff811115613065576130646142fc565b5b6040519080825280602002602001820160405280156130935781602001602082028036833780820191505090505b50905030815f815181106130aa576130a9614329565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561314f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613173919061436a565b8160018151811061318757613186614329565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131ee30601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ec1565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430601e4261323e9190614135565b6040518663ffffffff1660e01b815260040161325e959493929190614485565b5f604051808303815f87803b158015613275575f80fd5b505af1158015613287573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132bc9291906144dd565b60405180910390a15050565b5f80fd5b5f8115159050919050565b6132e0816132cc565b81146132ea575f80fd5b50565b5f813590506132fb816132d7565b92915050565b5f819050919050565b61331381613301565b811461331d575f80fd5b50565b5f8135905061332e8161330a565b92915050565b5f805f6060848603121561334b5761334a6132c8565b5b5f613358868287016132ed565b9350506020613369868287016132ed565b925050604061337a86828701613320565b9150509250925092565b61338d81613301565b82525050565b5f6020820190506133a65f830184613384565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133e35780820151818401526020810190506133c8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613408826133ac565b61341281856133b6565b93506134228185602086016133c6565b61342b816133ee565b840191505092915050565b5f6020820190508181035f83015261344e81846133fe565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61349861349361348e84613456565b613475565b613456565b9050919050565b5f6134a98261347e565b9050919050565b5f6134ba8261349f565b9050919050565b6134ca816134b0565b82525050565b5f6020820190506134e35f8301846134c1565b92915050565b5f6134f382613456565b9050919050565b613503816134e9565b811461350d575f80fd5b50565b5f8135905061351e816134fa565b92915050565b5f806040838503121561353a576135396132c8565b5b5f61354785828601613510565b925050602061355885828601613320565b9150509250929050565b61356b816132cc565b82525050565b5f6020820190506135845f830184613562565b92915050565b5f6020828403121561359f5761359e6132c8565b5b5f6135ac84828501613510565b91505092915050565b5f80604083850312156135cb576135ca6132c8565b5b5f6135d885828601613320565b92505060206135e985828601613320565b9150509250929050565b6135fc816134e9565b82525050565b5f6020820190506136155f8301846135f3565b92915050565b5f805f60608486031215613632576136316132c8565b5b5f61363f86828701613510565b935050602061365086828701613510565b925050604061366186828701613320565b9150509250925092565b5f60ff82169050919050565b6136808161366b565b82525050565b5f6020820190506136995f830184613677565b92915050565b5f602082840312156136b4576136b36132c8565b5b5f6136c184828501613320565b91505092915050565b5f80604083850312156136e0576136df6132c8565b5b5f6136ed85828601613510565b92505060206136fe858286016132ed565b9150509250929050565b5f806040838503121561371e5761371d6132c8565b5b5f61372b85828601613510565b925050602061373c85828601613510565b9150509250929050565b5f6060820190506137595f830186613384565b6137666020830185613384565b6137736040830184613384565b949350505050565b5f63ffffffff82169050919050565b6137938161377b565b811461379d575f80fd5b50565b5f813590506137ae8161378a565b92915050565b5f602082840312156137c9576137c86132c8565b5b5f6137d6848285016137a0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138136020836133b6565b915061381e826137df565b602082019050919050565b5f6020820190508181035f83015261384081613807565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061388b57607f821691505b60208210810361389e5761389d613847565b5b50919050565b7f496e73756666696369656e742042616c616e636520466f72204275726e2100005f82015250565b5f6138d8601e836133b6565b91506138e3826138a4565b602082019050919050565b5f6020820190508181035f830152613905816138cc565b9050919050565b7f496e76616c69642043616c6c65722100000000000000000000000000000000005f82015250565b5f613940600f836133b6565b915061394b8261390c565b602082019050919050565b5f6020820190508181035f83015261396d81613934565b9050919050565b5f6040820190506139875f8301856135f3565b6139946020830184613384565b9392505050565b5f81519050919050565b5f81905092915050565b5f6139b98261399b565b6139c381856139a5565b93506139d38185602086016133c6565b80840191505092915050565b5f6139ea82846139af565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613a296014836133b6565b9150613a34826139f5565b602082019050919050565b5f6020820190508181035f830152613a5681613a1d565b9050919050565b50565b5f613a6b5f836139a5565b9150613a7682613a5d565b5f82019050919050565b5f613a8a82613a60565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613ac86014836133b6565b9150613ad382613a94565b602082019050919050565b5f6020820190508181035f830152613af581613abc565b9050919050565b5f613b16613b11613b0c8461377b565b613475565b613301565b9050919050565b613b2681613afc565b82525050565b5f604082019050613b3f5f8301856135f3565b613b4c6020830184613b1d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bad6026836133b6565b9150613bb882613b53565b604082019050919050565b5f6020820190508181035f830152613bda81613ba1565b9050919050565b7f4d696e696d756d204c696d6974206973203125206f72205768616c65204d75735f8201527f7420626520416374697665000000000000000000000000000000000000000000602082015250565b5f613c3b602b836133b6565b9150613c4682613be1565b604082019050919050565b5f6020820190508181035f830152613c6881613c2f565b9050919050565b7f416c726561647920456e61626c656421000000000000000000000000000000005f82015250565b5f613ca36010836133b6565b9150613cae82613c6f565b602082019050919050565b5f6020820190508181035f830152613cd081613c97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d316024836133b6565b9150613d3c82613cd7565b604082019050919050565b5f6020820190508181035f830152613d5e81613d25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613dbf6022836133b6565b9150613dca82613d65565b604082019050919050565b5f6020820190508181035f830152613dec81613db3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e4d6025836133b6565b9150613e5882613df3565b604082019050919050565b5f6020820190508181035f830152613e7a81613e41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613edb6023836133b6565b9150613ee682613e81565b604082019050919050565b5f6020820190508181035f830152613f0881613ecf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613f696029836133b6565b9150613f7482613f0f565b604082019050919050565b5f6020820190508181035f830152613f9681613f5d565b9050919050565b7f4e6f74204c61756e6368656421000000000000000000000000000000000000005f82015250565b5f613fd1600d836133b6565b9150613fdc82613f9d565b602082019050919050565b5f6020820190508181035f830152613ffe81613fc5565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f6140396013836133b6565b915061404482614005565b602082019050919050565b5f6020820190508181035f8301526140668161402d565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6140a16011836133b6565b91506140ac8261406d565b602082019050919050565b5f6020820190508181035f8301526140ce81614095565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61410c82613301565b915061411783613301565b925082820390508181111561412f5761412e6140d5565b5b92915050565b5f61413f82613301565b915061414a83613301565b9250828201905080821115614162576141616140d5565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61419c601b836133b6565b91506141a782614168565b602082019050919050565b5f6020820190508181035f8301526141c981614190565b9050919050565b5f6141da82613301565b91506141e583613301565b92508282026141f381613301565b9150828204841483151761420a576142096140d5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61424882613301565b915061425383613301565b92508261426357614262614211565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142c86021836133b6565b91506142d38261426e565b604082019050919050565b5f6020820190508181035f8301526142f5816142bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614364816134fa565b92915050565b5f6020828403121561437f5761437e6132c8565b5b5f61438c84828501614356565b91505092915050565b5f819050919050565b5f6143b86143b36143ae84614395565b613475565b613301565b9050919050565b6143c88161439e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614400816134e9565b82525050565b5f61441183836143f7565b60208301905092915050565b5f602082019050919050565b5f614433826143ce565b61443d81856143d8565b9350614448836143e8565b805f5b8381101561447857815161445f8882614406565b975061446a8361441d565b92505060018101905061444b565b5085935050505092915050565b5f60a0820190506144985f830188613384565b6144a560208301876143bf565b81810360408301526144b78186614429565b90506144c660608301856135f3565b6144d36080830184613384565b9695505050505050565b5f6040820190506144f05f830185613384565b81810360208301526145028184614429565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220db685dd93ffea7ba6380d293d67421d836ee4f561fc1a4f400875fe84416cfdf64736f6c63430008160033

Deployed Bytecode

0x608060405260043610610254575f3560e01c80637ca882b511610138578063dd62ed3e116100b5578063f242ab4111610079578063f242ab41146108b3578063f2fde38b146108dd578063f8b45b0514610905578063fa0486dc1461092f578063fb201b1d14610957578063fb235f341461096d5761025b565b8063dd62ed3e146107cf578063ddca3f431461080b578063e6b2603b14610837578063e9fd33941461084d578063eec1c69f146108775761025b565b8063a457c2d7116100fc578063a457c2d7146106db578063a9059cbb14610717578063acf08c5114610753578063c3f70b521461077d578063cea9d26f146107a75761025b565b80637ca882b51461060b5780638091f3bf14610635578063887007981461065f5780638da5cb5b1461068757806395d89b41146106b15761025b565b8063313ce567116101d15780635e8bf1d6116101955780635e8bf1d6146105155780636cd56878146105515780636ddd17131461057957806370a08231146105a3578063715018a6146105df578063751039fc146105f55761025b565b8063313ce56714610421578063395093511461044b5780633ecad2711461048757806342966c68146104c357806344478425146104eb5761025b565b80630adab99f116102185780630adab99f14610341578063180550b81461036957806318160ddd14610391578063185870f9146103bb57806323b872dd146103e55761025b565b806301ae592b1461025f5780630445b6671461028757806306fdde03146102b15780630758d924146102db578063095ea7b3146103055761025b565b3661025b57005b5f80fd5b34801561026a575f80fd5b5061028560048036038101906102809190613334565b610995565b005b348015610292575f80fd5b5061029b610a50565b6040516102a89190613393565b60405180910390f35b3480156102bc575f80fd5b506102c5610a56565b6040516102d29190613436565b60405180910390f35b3480156102e6575f80fd5b506102ef610ae6565b6040516102fc91906134d0565b60405180910390f35b348015610310575f80fd5b5061032b60048036038101906103269190613524565b610b0c565b6040516103389190613571565b60405180910390f35b34801561034c575f80fd5b506103676004803603810190610362919061358a565b610b29565b005b348015610374575f80fd5b5061038f600480360381019061038a91906135b5565b610be8565b005b34801561039c575f80fd5b506103a5610c7b565b6040516103b29190613393565b60405180910390f35b3480156103c6575f80fd5b506103cf610c84565b6040516103dc9190613602565b60405180910390f35b3480156103f0575f80fd5b5061040b6004803603810190610406919061361b565b610ca9565b6040516104189190613571565b60405180910390f35b34801561042c575f80fd5b50610435610d7e565b6040516104429190613686565b60405180910390f35b348015610456575f80fd5b50610471600480360381019061046c9190613524565b610d93565b60405161047e9190613571565b60405180910390f35b348015610492575f80fd5b506104ad60048036038101906104a8919061358a565b610e41565b6040516104ba9190613571565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e4919061369f565b610e5e565b005b3480156104f6575f80fd5b506104ff610ff7565b60405161050c9190613602565b60405180910390f35b348015610520575f80fd5b5061053b6004803603810190610536919061358a565b61101d565b6040516105489190613571565b60405180910390f35b34801561055c575f80fd5b506105776004803603810190610572919061358a565b61103a565b005b348015610584575f80fd5b5061058d6110f9565b60405161059a9190613571565b60405180910390f35b3480156105ae575f80fd5b506105c960048036038101906105c4919061358a565b61110b565b6040516105d69190613393565b60405180910390f35b3480156105ea575f80fd5b506105f3611151565b005b348015610600575f80fd5b506106096111d8565b005b348015610616575f80fd5b5061061f611282565b60405161062c9190613602565b60405180910390f35b348015610640575f80fd5b506106496112a7565b6040516106569190613571565b60405180910390f35b34801561066a575f80fd5b50610685600480360381019061068091906136ca565b6112b9565b005b348015610692575f80fd5b5061069b61138d565b6040516106a89190613602565b60405180910390f35b3480156106bc575f80fd5b506106c56113b4565b6040516106d29190613436565b60405180910390f35b3480156106e6575f80fd5b5061070160048036038101906106fc9190613524565b611444565b60405161070e9190613571565b60405180910390f35b348015610722575f80fd5b5061073d60048036038101906107389190613524565b61150c565b60405161074a9190613571565b60405180910390f35b34801561075e575f80fd5b5061076761152a565b6040516107749190613571565b60405180910390f35b348015610788575f80fd5b5061079161153d565b60405161079e9190613393565b60405180910390f35b3480156107b2575f80fd5b506107cd60048036038101906107c8919061361b565b611543565b005b3480156107da575f80fd5b506107f560048036038101906107f09190613708565b61170f565b6040516108029190613393565b60405180910390f35b348015610816575f80fd5b5061081f611791565b60405161082e93929190613746565b60405180910390f35b348015610842575f80fd5b5061084b6117a8565b005b348015610858575f80fd5b506108616118e2565b60405161086e9190613571565b60405180910390f35b348015610882575f80fd5b5061089d600480360381019061089891906137b4565b6118f5565b6040516108aa9190613571565b60405180910390f35b3480156108be575f80fd5b506108c7611aa8565b6040516108d49190613602565b60405180910390f35b3480156108e8575f80fd5b5061090360048036038101906108fe919061358a565b611acd565b005b348015610910575f80fd5b50610919611bc3565b6040516109269190613393565b60405180910390f35b34801561093a575f80fd5b506109556004803603810190610950919061369f565b611bc9565b005b348015610962575f80fd5b5061096b611d00565b005b348015610978575f80fd5b50610993600480360381019061098e919061358a565b611dfa565b005b61099d611eba565b73ffffffffffffffffffffffffffffffffffffffff166109bb61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0890613829565b60405180910390fd5b8260125f6101000a81548160ff02191690831515021790555081601260016101000a81548160ff02191690831515021790555080601181905550505050565b60115481565b606060018054610a6590613874565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9190613874565b8015610adc5780601f10610ab357610100808354040283529160200191610adc565b820191905f5260205f20905b815481529060010190602001808311610abf57829003601f168201915b5050505050905090565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b1f610b18611eba565b8484611ec1565b6001905092915050565b610b31611eba565b73ffffffffffffffffffffffffffffffffffffffff16610b4f61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90613829565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610bf0611eba565b73ffffffffffffffffffffffffffffffffffffffff16610c0e61138d565b73ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90613829565b60405180910390fd5b8160065f0181905550806006600101819055505050565b5f600e54905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610cb5848484612084565b50610d7384610cc2611eba565b610d6e8560405180606001604052806028815260200161450c60289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d25611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b611ec1565b600190509392505050565b5f60035f9054906101000a900460ff16905090565b5f610e37610d9f611eba565b84610e3285600b5f610daf611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b611ec1565b6001905092915050565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f33905081600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed9906138ee565b60405180910390fd5b610f3282600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127c490919063ffffffff16565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610f8882600e546127c490919063ffffffff16565b600e819055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610feb9190613393565b60405180910390a35050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b611042611eba565b73ffffffffffffffffffffffffffffffffffffffff1661106061138d565b73ffffffffffffffffffffffffffffffffffffffff16146110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ad90613829565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125f9054906101000a900460ff1681565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611159611eba565b73ffffffffffffffffffffffffffffffffffffffff1661117761138d565b73ffffffffffffffffffffffffffffffffffffffff16146111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490613829565b60405180910390fd5b6111d65f61280d565b565b6111e0611eba565b73ffffffffffffffffffffffffffffffffffffffff166111fe61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90613829565b60405180910390fd5b600e54600f81905550600e546010819055505f601260026101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1681565b6112c1611eba565b73ffffffffffffffffffffffffffffffffffffffff166112df61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132c90613829565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546113c390613874565b80601f01602080910402602001604051908101604052809291908181526020018280546113ef90613874565b801561143a5780601f106114115761010080835404028352916020019161143a565b820191905f5260205f20905b81548152906001019060200180831161141d57829003601f168201915b5050505050905090565b5f611502611450611eba565b846114fd8560405180606001604052806025815260200161453460259139600b5f611479611eba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b611ec1565b6001905092915050565b5f61151f611518611eba565b8484612084565b506001905092915050565b601260029054906101000a900460ff1681565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c990613956565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016115fd929190613974565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161168791906139df565b5f604051808303815f865af19150503d805f81146116c0576040519150601f19603f3d011682016040523d82523d5f602084013e6116c5565b606091505b5050905080611709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170090613a3f565b60405180910390fd5b50505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006805f0154908060010154908060020154905083565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e90613956565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff164760405161185c90613a80565b5f6040518083038185875af1925050503d805f8114611896576040519150601f19603f3d011682016040523d82523d5f602084013e61189b565b606091505b50509050806118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d690613ade565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b5f806118ff611eba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611a5d9190613393565b60405180910390a37fb5e85c8f437dbbdc51d3b5979c8fe54dcb0dcea732661c1904898ddb2fd3bb0e8184604051611a96929190613b2c565b60405180910390a16001915050919050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611ad5611eba565b73ffffffffffffffffffffffffffffffffffffffff16611af361138d565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613829565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90613bc3565b60405180910390fd5b611bc08161280d565b50565b60105481565b611bd1611eba565b73ffffffffffffffffffffffffffffffffffffffff16611bef61138d565b73ffffffffffffffffffffffffffffffffffffffff1614611c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3c90613829565b60405180910390fd5b60018110158015611c625750601260029054906101000a900460ff165b611ca1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9890613c51565b60405180910390fd5b611cc96064611cbb83600e546128ce90919063ffffffff16565b61294590919063ffffffff16565b600f81905550611cf76064611ce983600e546128ce90919063ffffffff16565b61294590919063ffffffff16565b60108190555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8690613956565b60405180910390fd5b60095f9054906101000a900460ff1615611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590613cb9565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b611e02611eba565b73ffffffffffffffffffffffffffffffffffffffff16611e2061138d565b73ffffffffffffffffffffffffffffffffffffffff1614611e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6d90613829565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690613d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9490613dd5565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120779190613393565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea90613e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215890613ef1565b60405180910390fd5b5f82116121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219a90613f7f565b60405180910390fd5b601360149054906101000a900460ff16156121ca576121c384848461298e565b90506126fe565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156122685750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122805750601260029054906101000a900460ff165b156123c75760095f9054906101000a900460ff166122d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ca90613fe7565b60405180910390fd5b600f54821115612318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230f9061404f565b60405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166123c657601054612384836123768661110b565b61276790919063ffffffff16565b11156123c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bc906140b7565b60405180910390fd5b5b5b5f6123d13061110b565b90505f60115482101590508080156123f65750601360149054906101000a900460ff16155b80156124495750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612460575060125f9054906101000a900460ff165b80156124b35750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156125065750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125155761251482612b58565b5b61259c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6125e88787612c68565b6125fc576125f7878787612dc4565b6125fe565b845b905061265081600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126ee9190613393565b60405180910390a3600193505050505b9392505050565b5f83831115829061274c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127439190613436565b60405180910390fd5b505f838561275a9190614102565b9050809150509392505050565b5f8082846127759190614135565b9050838110156127ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b1906141b2565b60405180910390fd5b8091505092915050565b5f61280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612705565b905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036128de575f905061293f565b5f82846128eb91906141d0565b90508284826128fa919061423e565b1461293a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612931906142de565b60405180910390fd5b809150505b92915050565b5f61298683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612fe8565b905092915050565b5f612a16826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127059092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612aa782600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b459190613393565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612b8e5760115490505b5f479050612b9b82613049565b5f612baf82476127c490919063ffffffff16565b90505f811115612c49575f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612c0090613a80565b5f6040518083038185875af1925050503d805f8114612c3a576040519150601f19603f3d011682016040523d82523d5f602084013e612c3f565b606091505b5050905060019050505b50505f601360146101000a81548160ff02191690831515021790555050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612d045750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612d125760019050612dbe565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612dad5750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612dba575f9050612dbe565b5f90505b92915050565b5f80600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e4a57612e43600660020154612e3560065f0154866128ce90919063ffffffff16565b61294590919063ffffffff16565b9050612ecc565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ecb57612ec8600660020154612eba600660010154866128ce90919063ffffffff16565b61294590919063ffffffff16565b90505b5b5f811115612fcb57612f2481600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461276790919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612fc29190613393565b60405180910390a35b612fde81846127c490919063ffffffff16565b9150509392505050565b5f808311829061302e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130259190613436565b60405180910390fd5b505f838561303c919061423e565b9050809150509392505050565b5f600267ffffffffffffffff811115613065576130646142fc565b5b6040519080825280602002602001820160405280156130935781602001602082028036833780820191505090505b50905030815f815181106130aa576130a9614329565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561314f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613173919061436a565b8160018151811061318757613186614329565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131ee30601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ec1565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430601e4261323e9190614135565b6040518663ffffffff1660e01b815260040161325e959493929190614485565b5f604051808303815f87803b158015613275575f80fd5b505af1158015613287573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516132bc9291906144dd565b60405180910390a15050565b5f80fd5b5f8115159050919050565b6132e0816132cc565b81146132ea575f80fd5b50565b5f813590506132fb816132d7565b92915050565b5f819050919050565b61331381613301565b811461331d575f80fd5b50565b5f8135905061332e8161330a565b92915050565b5f805f6060848603121561334b5761334a6132c8565b5b5f613358868287016132ed565b9350506020613369868287016132ed565b925050604061337a86828701613320565b9150509250925092565b61338d81613301565b82525050565b5f6020820190506133a65f830184613384565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133e35780820151818401526020810190506133c8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613408826133ac565b61341281856133b6565b93506134228185602086016133c6565b61342b816133ee565b840191505092915050565b5f6020820190508181035f83015261344e81846133fe565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61349861349361348e84613456565b613475565b613456565b9050919050565b5f6134a98261347e565b9050919050565b5f6134ba8261349f565b9050919050565b6134ca816134b0565b82525050565b5f6020820190506134e35f8301846134c1565b92915050565b5f6134f382613456565b9050919050565b613503816134e9565b811461350d575f80fd5b50565b5f8135905061351e816134fa565b92915050565b5f806040838503121561353a576135396132c8565b5b5f61354785828601613510565b925050602061355885828601613320565b9150509250929050565b61356b816132cc565b82525050565b5f6020820190506135845f830184613562565b92915050565b5f6020828403121561359f5761359e6132c8565b5b5f6135ac84828501613510565b91505092915050565b5f80604083850312156135cb576135ca6132c8565b5b5f6135d885828601613320565b92505060206135e985828601613320565b9150509250929050565b6135fc816134e9565b82525050565b5f6020820190506136155f8301846135f3565b92915050565b5f805f60608486031215613632576136316132c8565b5b5f61363f86828701613510565b935050602061365086828701613510565b925050604061366186828701613320565b9150509250925092565b5f60ff82169050919050565b6136808161366b565b82525050565b5f6020820190506136995f830184613677565b92915050565b5f602082840312156136b4576136b36132c8565b5b5f6136c184828501613320565b91505092915050565b5f80604083850312156136e0576136df6132c8565b5b5f6136ed85828601613510565b92505060206136fe858286016132ed565b9150509250929050565b5f806040838503121561371e5761371d6132c8565b5b5f61372b85828601613510565b925050602061373c85828601613510565b9150509250929050565b5f6060820190506137595f830186613384565b6137666020830185613384565b6137736040830184613384565b949350505050565b5f63ffffffff82169050919050565b6137938161377b565b811461379d575f80fd5b50565b5f813590506137ae8161378a565b92915050565b5f602082840312156137c9576137c86132c8565b5b5f6137d6848285016137a0565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6138136020836133b6565b915061381e826137df565b602082019050919050565b5f6020820190508181035f83015261384081613807565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061388b57607f821691505b60208210810361389e5761389d613847565b5b50919050565b7f496e73756666696369656e742042616c616e636520466f72204275726e2100005f82015250565b5f6138d8601e836133b6565b91506138e3826138a4565b602082019050919050565b5f6020820190508181035f830152613905816138cc565b9050919050565b7f496e76616c69642043616c6c65722100000000000000000000000000000000005f82015250565b5f613940600f836133b6565b915061394b8261390c565b602082019050919050565b5f6020820190508181035f83015261396d81613934565b9050919050565b5f6040820190506139875f8301856135f3565b6139946020830184613384565b9392505050565b5f81519050919050565b5f81905092915050565b5f6139b98261399b565b6139c381856139a5565b93506139d38185602086016133c6565b80840191505092915050565b5f6139ea82846139af565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613a296014836133b6565b9150613a34826139f5565b602082019050919050565b5f6020820190508181035f830152613a5681613a1d565b9050919050565b50565b5f613a6b5f836139a5565b9150613a7682613a5d565b5f82019050919050565b5f613a8a82613a60565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613ac86014836133b6565b9150613ad382613a94565b602082019050919050565b5f6020820190508181035f830152613af581613abc565b9050919050565b5f613b16613b11613b0c8461377b565b613475565b613301565b9050919050565b613b2681613afc565b82525050565b5f604082019050613b3f5f8301856135f3565b613b4c6020830184613b1d565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613bad6026836133b6565b9150613bb882613b53565b604082019050919050565b5f6020820190508181035f830152613bda81613ba1565b9050919050565b7f4d696e696d756d204c696d6974206973203125206f72205768616c65204d75735f8201527f7420626520416374697665000000000000000000000000000000000000000000602082015250565b5f613c3b602b836133b6565b9150613c4682613be1565b604082019050919050565b5f6020820190508181035f830152613c6881613c2f565b9050919050565b7f416c726561647920456e61626c656421000000000000000000000000000000005f82015250565b5f613ca36010836133b6565b9150613cae82613c6f565b602082019050919050565b5f6020820190508181035f830152613cd081613c97565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613d316024836133b6565b9150613d3c82613cd7565b604082019050919050565b5f6020820190508181035f830152613d5e81613d25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613dbf6022836133b6565b9150613dca82613d65565b604082019050919050565b5f6020820190508181035f830152613dec81613db3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e4d6025836133b6565b9150613e5882613df3565b604082019050919050565b5f6020820190508181035f830152613e7a81613e41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613edb6023836133b6565b9150613ee682613e81565b604082019050919050565b5f6020820190508181035f830152613f0881613ecf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613f696029836133b6565b9150613f7482613f0f565b604082019050919050565b5f6020820190508181035f830152613f9681613f5d565b9050919050565b7f4e6f74204c61756e6368656421000000000000000000000000000000000000005f82015250565b5f613fd1600d836133b6565b9150613fdc82613f9d565b602082019050919050565b5f6020820190508181035f830152613ffe81613fc5565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f6140396013836133b6565b915061404482614005565b602082019050919050565b5f6020820190508181035f8301526140668161402d565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6140a16011836133b6565b91506140ac8261406d565b602082019050919050565b5f6020820190508181035f8301526140ce81614095565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61410c82613301565b915061411783613301565b925082820390508181111561412f5761412e6140d5565b5b92915050565b5f61413f82613301565b915061414a83613301565b9250828201905080821115614162576141616140d5565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61419c601b836133b6565b91506141a782614168565b602082019050919050565b5f6020820190508181035f8301526141c981614190565b9050919050565b5f6141da82613301565b91506141e583613301565b92508282026141f381613301565b9150828204841483151761420a576142096140d5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61424882613301565b915061425383613301565b92508261426357614262614211565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6142c86021836133b6565b91506142d38261426e565b604082019050919050565b5f6020820190508181035f8301526142f5816142bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050614364816134fa565b92915050565b5f6020828403121561437f5761437e6132c8565b5b5f61438c84828501614356565b91505092915050565b5f819050919050565b5f6143b86143b36143ae84614395565b613475565b613301565b9050919050565b6143c88161439e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614400816134e9565b82525050565b5f61441183836143f7565b60208301905092915050565b5f602082019050919050565b5f614433826143ce565b61443d81856143d8565b9350614448836143e8565b805f5b8381101561447857815161445f8882614406565b975061446a8361441d565b92505060018101905061444b565b5085935050505092915050565b5f60a0820190506144985f830188613384565b6144a560208301876143bf565b81810360408301526144b78186614429565b90506144c660608301856135f3565b6144d36080830184613384565b9695505050505050565b5f6040820190506144f05f830185613384565b81810360208301526145028184614429565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220db685dd93ffea7ba6380d293d67421d836ee4f561fc1a4f400875fe84416cfdf64736f6c63430008160033

Deployed Bytecode Sourcemap

7469:11697:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17582:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8453:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9827:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8642:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10997:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18929:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16900:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10104:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7780:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11723:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10013:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10494:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18592:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7691:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8150:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16498:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8522:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10212:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2443:94;;;;;;;;;;;;;:::i;:::-;;17819:160;;;;;;;;;;;;;:::i;:::-;;7819:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7998:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17036:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2134:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9918;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10720:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11548:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8599:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8321:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10343:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7969:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;16312:178;;;;;;;;;;;;;:::i;:::-;;8559:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18265:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8680:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2545:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8389:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17291:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17159:124;;;;;;;;;;;;;:::i;:::-;;19051:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17582:229;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17725:8:::1;17711:11;;:22;;;;;;;;;;;;;;;;;;17758:8;17744:11;;:22;;;;;;;;;;;;;;;;;;17793:10;17777:13;:26;;;;17582:229:::0;;;:::o;8453:60::-;;;;:::o;9827:83::-;9864:13;9897:5;9890:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9827:83;:::o;8642:31::-;;;;;;;;;;;;;:::o;10997:161::-;11072:4;11089:39;11098:12;:10;:12::i;:::-;11112:7;11121:6;11089:8;:39::i;:::-;11146:4;11139:11;;10997:161;;;;:::o;18929:114::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19026:9:::1;19007:16;;:28;;;;;;;;;;;;;;;;;;18929:114:::0;:::o;16900:125::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16986:4:::1;16976:3;:7;;:14;;;;17012:5;17001:3;:8;;:16;;;;16900:125:::0;;:::o;10104:100::-;10157:7;10184:12;;10177:19;;10104:100;:::o;7780:30::-;;;;;;;;;;;;;:::o;11723:313::-;11821:4;11838:36;11848:6;11856:9;11867:6;11838:9;:36::i;:::-;;11885:121;11894:6;11902:12;:10;:12::i;:::-;11916:89;11954:6;11916:89;;;;;;;;;;;;;;;;;:11;:19;11928:6;11916:19;;;;;;;;;;;;;;;:33;11936:12;:10;:12::i;:::-;11916:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;11885:8;:121::i;:::-;12024:4;12017:11;;11723:313;;;;;:::o;10013:83::-;10054:5;10079:9;;;;;;;;;;;10072:16;;10013:83;:::o;10494:218::-;10582:4;10599:83;10608:12;:10;:12::i;:::-;10622:7;10631:50;10670:10;10631:11;:25;10643:12;:10;:12::i;:::-;10631:25;;;;;;;;;;;;;;;:34;10657:7;10631:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;10599:8;:83::i;:::-;10700:4;10693:11;;10494:218;;;;:::o;8202:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;18592:329::-;18639:15;18657:10;18639:28;;18708:6;18686:9;:18;18696:7;18686:18;;;;;;;;;;;;;;;;:28;;18678:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18780:30;18803:6;18780:9;:18;18790:7;18780:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;18759:9;:18;18769:7;18759:18;;;;;;;;;;;;;;;:51;;;;18836:24;18853:6;18836:12;;:16;;:24;;;;:::i;:::-;18821:12;:39;;;;18902:1;18876:37;;18885:7;18876:37;;;18906:6;18876:37;;;;;;:::i;:::-;;;;;;;;18628:293;18592:329;:::o;7691:82::-;;;;;;;;;;;;;:::o;8150:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;16498:114::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16594:10:::1;16576:15;;:28;;;;;;;;;;;;;;;;;;16498:114:::0;:::o;8522:30::-;;;;;;;;;;;;;:::o;10212:123::-;10278:7;10304:9;:18;10314:7;10304:18;;;;;;;;;;;;;;;;10297:25;;10212:123;;;:::o;2443:94::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2508:21:::1;2526:1;2508:9;:21::i;:::-;2443:94::o:0;17819:160::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17890:12:::1;;17873:14;:29;;;;17925:12;;17913:9;:24;;;;17966:5;17948:15;;:23;;;;;;;;;;;;;;;;;;17819:160::o:0;7819:31::-;;;;;;;;;;;;;:::o;7998:20::-;;;;;;;;;;;;;:::o;17036:115::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17136:7:::1;17115:12;:18;17128:4;17115:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17036:115:::0;;:::o;2134:87::-;2180:7;2207:6;;;;;;;;;;;2200:13;;2134:87;:::o;9918:::-;9957:13;9990:7;9983:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9918:87;:::o;10720:269::-;10813:4;10830:129;10839:12;:10;:12::i;:::-;10853:7;10862:96;10901:15;10862:96;;;;;;;;;;;;;;;;;:11;:25;10874:12;:10;:12::i;:::-;10862:25;;;;;;;;;;;;;;;:34;10888:7;10862:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;10830:8;:129::i;:::-;10977:4;10970:11;;10720:269;;;;:::o;11548:167::-;11626:4;11643:42;11653:12;:10;:12::i;:::-;11667:9;11678:6;11643:9;:42::i;:::-;;11703:4;11696:11;;11548:167;;;;:::o;8599:34::-;;;;;;;;;;;;;:::o;8321:61::-;;;;:::o;16620:272::-;8882:15;;;;;;;;;;;8868:29;;:10;:29;;;8860:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;16720:12:::1;16746:6;16738:20;;16813:9;16824:7;16759:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16738:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16719:114;;;16852:7;16844:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;16708:184;16620:272:::0;;;:::o;10343:143::-;10424:7;10451:11;:18;10463:5;10451:18;;;;;;;;;;;;;;;:27;10470:7;10451:27;;;;;;;;;;;;;;;;10444:34;;10343:143;;;;:::o;7969:20::-;;;;;;;;;;;;;;;;;;;:::o;16312:178::-;8882:15;;;;;;;;;;;8868:29;;:10;:29;;;8860:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;16367:7:::1;16387:10;16379:24;;16411:21;16379:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16366:71;;;16456:2;16448:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;16354:136;16312:178::o:0;8559:31::-;;;;;;;;;;;;;:::o;18265:319::-;18325:4;18342:13;18358:12;:10;:12::i;:::-;18342:28;;18422:14;18383:11;:18;18395:5;18383:18;;;;;;;;;;;;;;;:36;18402:16;;;;;;;;;;;18383:36;;;;;;;;;;;;;;;:53;;;;18468:16;;;;;;;;;;;18452:49;;18461:5;18452:49;;;18486:14;18452:49;;;;;;:::i;:::-;;;;;;;;18517:37;18541:5;18547:6;18517:37;;;;;;;:::i;:::-;;;;;;;;18572:4;18565:11;;;18265:319;;;:::o;8680:22::-;;;;;;;;;;;;;:::o;2545:229::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2668:1:::1;2648:22;;:8;:22;;::::0;2626:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2747:19;2757:8;2747:9;:19::i;:::-;2545:229:::0;:::o;8389:55::-;;;;:::o;17291:283::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17386:1:::1;17377:4;:10;;:29;;;;;17391:15;;;;;;;;;;;17377:29;17369:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17481:31;17508:3;17481:22;17498:4;17481:12;;:16;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;17464:14;:48;;;;17535:31;17562:3;17535:22;17552:4;17535:12;;:16;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;17523:9;:43;;;;17291:283:::0;:::o;17159:124::-;8882:15;;;;;;;;;;;8868:29;;:10;:29;;;8860:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;17221:8:::1;;;;;;;;;;;17220:9;17212:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;17271:4;17260:8;;:15;;;;;;;;;;;;;;;;;;17159:124::o:0;19051:110::-;2366:12;:10;:12::i;:::-;2355:23;;:7;:5;:7::i;:::-;:23;;;2347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19143:10:::1;19127:13;;:26;;;;;;;;;;;;;;;;;;19051:110:::0;:::o;699:98::-;752:7;779:10;772:17;;699:98;:::o;11166:337::-;11276:1;11259:19;;:5;:19;;;11251:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11357:1;11338:21;;:7;:21;;;11330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11441:6;11411:11;:18;11423:5;11411:18;;;;;;;;;;;;;;;:27;11430:7;11411:27;;;;;;;;;;;;;;;:36;;;;11479:7;11463:32;;11472:5;11463:32;;;11488:6;11463:32;;;;;;:::i;:::-;;;;;;;;11166:337;;;:::o;12044:1745::-;12131:4;12176:1;12158:20;;:6;:20;;;12150:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12260:1;12239:23;;:9;:23;;;12231:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12330:1;12321:6;:10;12313:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12398:6;;;;;;;;;;;12394:1386;;;12428:41;12443:6;12451:9;12462:6;12428:14;:41::i;:::-;12421:48;;;;12394:1386;12517:12;:20;12530:6;12517:20;;;;;;;;;;;;;;;;;;;;;;;;;12516:21;:49;;;;;12542:12;:23;12555:9;12542:23;;;;;;;;;;;;;;;;;;;;;;;;;12541:24;12516:49;:68;;;;;12569:15;;;;;;;;;;;12516:68;12513:381;;;12613:8;;;;;;;;;;;12605:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;12675:14;;12665:6;:24;;12657:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12736:12;:23;12749:9;12736:23;;;;;;;;;;;;;;;;;;;;;;;;;12732:147;;12828:9;;12792:32;12817:6;12792:20;12802:9;12792;:20::i;:::-;:24;;:32;;;;:::i;:::-;:45;;12784:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12732:147;12513:381;12922:28;12953:24;12971:4;12953:9;:24::i;:::-;12922:55;;12992:28;13047:13;;13023:20;:37;;12992:68;;13081:23;:52;;;;;13127:6;;;;;;;;;;;13126:7;13081:52;:95;;;;;13156:12;:20;13169:6;13156:20;;;;;;;;;;;;;;;;;;;;;;;;;13155:21;13081:95;:128;;;;;13198:11;;;;;;;;;;;13081:128;:170;;;;;13231:12;:20;13244:6;13231:20;;;;;;;;;;;;;;;;;;;;;;;;;13230:21;13081:170;:215;;;;;13273:12;:23;13286:9;13273:23;;;;;;;;;;;;;;;;;;;;;;;;;13272:24;13081:215;13077:304;;;13335:30;13344:20;13335:8;:30::i;:::-;13077:304;13429:53;13451:6;13429:53;;;;;;;;;;;;;;;;;:9;:17;13439:6;13429:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13409:9;:17;13419:6;13409:17;;;;;;;;;;;;;;;:73;;;;13499:19;13521:34;13538:6;13545:9;13521:16;:34::i;:::-;:80;;13567:34;13575:6;13583:9;13594:6;13567:7;:34::i;:::-;13521:80;;;13558:6;13521:80;13499:102;;13641:37;13666:11;13641:9;:20;13651:9;13641:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;13618:9;:20;13628:9;13618:20;;;;;;;;;;;;;;;:60;;;;13717:9;13700:40;;13709:6;13700:40;;;13728:11;13700:40;;;;;;:::i;:::-;;;;;;;;13762:4;13755:11;;;;;12044:1745;;;;;;:::o;3321:192::-;3407:7;3440:1;3435;:6;;3443:12;3427:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3467:9;3483:1;3479;:5;;;;:::i;:::-;3467:17;;3504:1;3497:8;;;3321:192;;;;;:::o;2988:181::-;3046:7;3066:9;3082:1;3078;:5;;;;:::i;:::-;3066:17;;3107:1;3102;:6;;3094:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3160:1;3153:8;;;2988:181;;;;:::o;3177:136::-;3235:7;3262:43;3266:1;3269;3262:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3255:50;;3177:136;;;;:::o;2782:173::-;2838:16;2857:6;;;;;;;;;;;2838:25;;2883:8;2874:6;;:17;;;;;;;;;;;;;;;;;;2938:8;2907:40;;2928:8;2907:40;;;;;;;;;;;;2827:128;2782:173;:::o;3521:250::-;3579:7;3608:1;3603;:6;3599:47;;3633:1;3626:8;;;;3599:47;3658:9;3674:1;3670;:5;;;;:::i;:::-;3658:17;;3703:1;3698;3694;:5;;;;:::i;:::-;:10;3686:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3762:1;3755:8;;;3521:250;;;;;:::o;3779:132::-;3837:7;3864:39;3868:1;3871;3864:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3857:46;;3779:132;;;;:::o;13797:330::-;13890:4;13927:53;13949:6;13927:53;;;;;;;;;;;;;;;;;:9;:17;13937:6;13927:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13907:9;:17;13917:6;13907:17;;;;;;;;;;;;;;;:73;;;;14014:32;14039:6;14014:9;:20;14024:9;14014:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13991:9;:20;14001:9;13991:20;;;;;;;;;;;;;;;:55;;;;14079:9;14062:35;;14071:6;14062:35;;;14090:6;14062:35;;;;;;:::i;:::-;;;;;;;;14115:4;14108:11;;13797:330;;;;;:::o;15208:477::-;8771:4;8762:6;;:13;;;;;;;;;;;;;;;;;;15282:11:::1;;;;;;;;;;;15279:47;;;15313:13;;15295:31;;15279:47;15339:22;15364:21;15339:46;;15396:33;15413:15;15396:16;:33::i;:::-;15440:22;15465:41;15491:14;15465:21;:25;;:41;;;;:::i;:::-;15440:66;;15539:1;15522:14;:18;15519:157;;;15558:7;15578:13;;;;;;;;;;;15570:27;;15605:14;15570:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15557:67;;;15644:4;15639:9;;15542:134;15519:157;15266:419;;8807:5:::0;8798:6;;:14;;;;;;;;;;;;;;;;;;15208:477;:::o;14139:359::-;14223:4;14243:12;:20;14256:6;14243:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14267:12;:23;14280:9;14267:23;;;;;;;;;;;;;;;;;;;;;;;;;14243:47;14240:251;;;14314:4;14307:11;;;;14240:251;14349:12;:20;14362:6;14349:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;14373:12;:23;14386:9;14373:23;;;;;;;;;;;;;;;;;;;;;;;;;14349:47;14345:146;;;14420:5;14413:12;;;;14345:146;14474:5;14467:12;;14139:359;;;;;:::o;14506:694::-;14592:7;14622:14;14679:12;:20;14692:6;14679:20;;;;;;;;;;;;;;;;;;;;;;;;;14676:250;;;14733:40;14757:3;:15;;;14733:19;14744:3;:7;;;14733:6;:10;;:19;;;;:::i;:::-;:23;;:40;;;;:::i;:::-;14721:52;;14676:250;;;14812:12;:23;14825:9;14812:23;;;;;;;;;;;;;;;;;;;;;;;;;14809:117;;;14869:41;14894:3;:15;;;14869:20;14880:3;:8;;;14869:6;:10;;:20;;;;:::i;:::-;:24;;:41;;;;:::i;:::-;14857:53;;14809:117;14676:250;14957:1;14945:9;:13;14942:185;;;15006:39;15035:9;15006;:24;15024:4;15006:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14979:9;:24;14997:4;14979:24;;;;;;;;;;;;;;;:66;;;;15094:4;15069:42;;15078:6;15069:42;;;15101:9;15069:42;;;;;;:::i;:::-;;;;;;;;14942:185;15150:21;15161:9;15150:6;:10;;:21;;;;:::i;:::-;15143:28;;;14506:694;;;;;:::o;3919:278::-;4005:7;4037:1;4033;:5;4040:12;4025:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4064:9;4080:1;4076;:5;;;;:::i;:::-;4064:17;;4188:1;4181:8;;;3919:278;;;;;:::o;15693:611::-;15819:21;15857:1;15843:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15819:40;;15888:4;15870;15875:1;15870:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;15914:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15904:4;15909:1;15904:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;15943:56;15960:4;15975:9;;;;;;;;;;;15987:11;15943:8;:56::i;:::-;16038:9;;;;;;;;;;;:60;;;16113:11;16139:1;16156:4;16183;16222:2;16204:15;:20;;;;:::i;:::-;16038:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16261:35;16278:11;16291:4;16261:35;;;;;;;:::i;:::-;;;;;;;;15748:556;15693:611;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:607::-;1118:6;1126;1134;1183:2;1171:9;1162:7;1158:23;1154:32;1151:119;;;1189:79;;:::i;:::-;1151:119;1309:1;1334:50;1376:7;1367:6;1356:9;1352:22;1334:50;:::i;:::-;1324:60;;1280:114;1433:2;1459:50;1501:7;1492:6;1481:9;1477:22;1459:50;:::i;:::-;1449:60;;1404:115;1558:2;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1529:118;1047:607;;;;;:::o;1660:118::-;1747:24;1765:5;1747:24;:::i;:::-;1742:3;1735:37;1660:118;;:::o;1784:222::-;1877:4;1915:2;1904:9;1900:18;1892:26;;1928:71;1996:1;1985:9;1981:17;1972:6;1928:71;:::i;:::-;1784:222;;;;:::o;2012:99::-;2064:6;2098:5;2092:12;2082:22;;2012:99;;;:::o;2117:169::-;2201:11;2235:6;2230:3;2223:19;2275:4;2270:3;2266:14;2251:29;;2117:169;;;;:::o;2292:246::-;2373:1;2383:113;2397:6;2394:1;2391:13;2383:113;;;2482:1;2477:3;2473:11;2467:18;2463:1;2458:3;2454:11;2447:39;2419:2;2416:1;2412:10;2407:15;;2383:113;;;2530:1;2521:6;2516:3;2512:16;2505:27;2354:184;2292:246;;;:::o;2544:102::-;2585:6;2636:2;2632:7;2627:2;2620:5;2616:14;2612:28;2602:38;;2544:102;;;:::o;2652:377::-;2740:3;2768:39;2801:5;2768:39;:::i;:::-;2823:71;2887:6;2882:3;2823:71;:::i;:::-;2816:78;;2903:65;2961:6;2956:3;2949:4;2942:5;2938:16;2903:65;:::i;:::-;2993:29;3015:6;2993:29;:::i;:::-;2988:3;2984:39;2977:46;;2744:285;2652:377;;;;:::o;3035:313::-;3148:4;3186:2;3175:9;3171:18;3163:26;;3235:9;3229:4;3225:20;3221:1;3210:9;3206:17;3199:47;3263:78;3336:4;3327:6;3263:78;:::i;:::-;3255:86;;3035:313;;;;:::o;3354:126::-;3391:7;3431:42;3424:5;3420:54;3409:65;;3354:126;;;:::o;3486:60::-;3514:3;3535:5;3528:12;;3486:60;;;:::o;3552:142::-;3602:9;3635:53;3653:34;3662:24;3680:5;3662:24;:::i;:::-;3653:34;:::i;:::-;3635:53;:::i;:::-;3622:66;;3552:142;;;:::o;3700:126::-;3750:9;3783:37;3814:5;3783:37;:::i;:::-;3770:50;;3700:126;;;:::o;3832:148::-;3904:9;3937:37;3968:5;3937:37;:::i;:::-;3924:50;;3832:148;;;:::o;3986:175::-;4095:59;4148:5;4095:59;:::i;:::-;4090:3;4083:72;3986:175;;:::o;4167:266::-;4282:4;4320:2;4309:9;4305:18;4297:26;;4333:93;4423:1;4412:9;4408:17;4399:6;4333:93;:::i;:::-;4167:266;;;;:::o;4439:96::-;4476:7;4505:24;4523:5;4505:24;:::i;:::-;4494:35;;4439:96;;;:::o;4541:122::-;4614:24;4632:5;4614:24;:::i;:::-;4607:5;4604:35;4594:63;;4653:1;4650;4643:12;4594:63;4541:122;:::o;4669:139::-;4715:5;4753:6;4740:20;4731:29;;4769:33;4796:5;4769:33;:::i;:::-;4669:139;;;;:::o;4814:474::-;4882:6;4890;4939:2;4927:9;4918:7;4914:23;4910:32;4907:119;;;4945:79;;:::i;:::-;4907:119;5065:1;5090:53;5135:7;5126:6;5115:9;5111:22;5090:53;:::i;:::-;5080:63;;5036:117;5192:2;5218:53;5263:7;5254:6;5243:9;5239:22;5218:53;:::i;:::-;5208:63;;5163:118;4814:474;;;;;:::o;5294:109::-;5375:21;5390:5;5375:21;:::i;:::-;5370:3;5363:34;5294:109;;:::o;5409:210::-;5496:4;5534:2;5523:9;5519:18;5511:26;;5547:65;5609:1;5598:9;5594:17;5585:6;5547:65;:::i;:::-;5409:210;;;;:::o;5625:329::-;5684:6;5733:2;5721:9;5712:7;5708:23;5704:32;5701:119;;;5739:79;;:::i;:::-;5701:119;5859:1;5884:53;5929:7;5920:6;5909:9;5905:22;5884:53;:::i;:::-;5874:63;;5830:117;5625:329;;;;:::o;5960:474::-;6028:6;6036;6085:2;6073:9;6064:7;6060:23;6056:32;6053:119;;;6091:79;;:::i;:::-;6053:119;6211:1;6236:53;6281:7;6272:6;6261:9;6257:22;6236:53;:::i;:::-;6226:63;;6182:117;6338:2;6364:53;6409:7;6400:6;6389:9;6385:22;6364:53;:::i;:::-;6354:63;;6309:118;5960:474;;;;;:::o;6440:118::-;6527:24;6545:5;6527:24;:::i;:::-;6522:3;6515:37;6440:118;;:::o;6564:222::-;6657:4;6695:2;6684:9;6680:18;6672:26;;6708:71;6776:1;6765:9;6761:17;6752:6;6708:71;:::i;:::-;6564:222;;;;:::o;6792:619::-;6869:6;6877;6885;6934:2;6922:9;6913:7;6909:23;6905:32;6902:119;;;6940:79;;:::i;:::-;6902:119;7060:1;7085:53;7130:7;7121:6;7110:9;7106:22;7085:53;:::i;:::-;7075:63;;7031:117;7187:2;7213:53;7258:7;7249:6;7238:9;7234:22;7213:53;:::i;:::-;7203:63;;7158:118;7315:2;7341:53;7386:7;7377:6;7366:9;7362:22;7341:53;:::i;:::-;7331:63;;7286:118;6792:619;;;;;:::o;7417:86::-;7452:7;7492:4;7485:5;7481:16;7470:27;;7417:86;;;:::o;7509:112::-;7592:22;7608:5;7592:22;:::i;:::-;7587:3;7580:35;7509:112;;:::o;7627:214::-;7716:4;7754:2;7743:9;7739:18;7731:26;;7767:67;7831:1;7820:9;7816:17;7807:6;7767:67;:::i;:::-;7627:214;;;;:::o;7847:329::-;7906:6;7955:2;7943:9;7934:7;7930:23;7926:32;7923:119;;;7961:79;;:::i;:::-;7923:119;8081:1;8106:53;8151:7;8142:6;8131:9;8127:22;8106:53;:::i;:::-;8096:63;;8052:117;7847:329;;;;:::o;8182:468::-;8247:6;8255;8304:2;8292:9;8283:7;8279:23;8275:32;8272:119;;;8310:79;;:::i;:::-;8272:119;8430:1;8455:53;8500:7;8491:6;8480:9;8476:22;8455:53;:::i;:::-;8445:63;;8401:117;8557:2;8583:50;8625:7;8616:6;8605:9;8601:22;8583:50;:::i;:::-;8573:60;;8528:115;8182:468;;;;;:::o;8656:474::-;8724:6;8732;8781:2;8769:9;8760:7;8756:23;8752:32;8749:119;;;8787:79;;:::i;:::-;8749:119;8907:1;8932:53;8977:7;8968:6;8957:9;8953:22;8932:53;:::i;:::-;8922:63;;8878:117;9034:2;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9005:118;8656:474;;;;;:::o;9136:442::-;9285:4;9323:2;9312:9;9308:18;9300:26;;9336:71;9404:1;9393:9;9389:17;9380:6;9336:71;:::i;:::-;9417:72;9485:2;9474:9;9470:18;9461:6;9417:72;:::i;:::-;9499;9567:2;9556:9;9552:18;9543:6;9499:72;:::i;:::-;9136:442;;;;;;:::o;9584:93::-;9620:7;9660:10;9653:5;9649:22;9638:33;;9584:93;;;:::o;9683:120::-;9755:23;9772:5;9755:23;:::i;:::-;9748:5;9745:34;9735:62;;9793:1;9790;9783:12;9735:62;9683:120;:::o;9809:137::-;9854:5;9892:6;9879:20;9870:29;;9908:32;9934:5;9908:32;:::i;:::-;9809:137;;;;:::o;9952:327::-;10010:6;10059:2;10047:9;10038:7;10034:23;10030:32;10027:119;;;10065:79;;:::i;:::-;10027:119;10185:1;10210:52;10254:7;10245:6;10234:9;10230:22;10210:52;:::i;:::-;10200:62;;10156:116;9952:327;;;;:::o;10285:182::-;10425:34;10421:1;10413:6;10409:14;10402:58;10285:182;:::o;10473:366::-;10615:3;10636:67;10700:2;10695:3;10636:67;:::i;:::-;10629:74;;10712:93;10801:3;10712:93;:::i;:::-;10830:2;10825:3;10821:12;10814:19;;10473:366;;;:::o;10845:419::-;11011:4;11049:2;11038:9;11034:18;11026:26;;11098:9;11092:4;11088:20;11084:1;11073:9;11069:17;11062:47;11126:131;11252:4;11126:131;:::i;:::-;11118:139;;10845:419;;;:::o;11270:180::-;11318:77;11315:1;11308:88;11415:4;11412:1;11405:15;11439:4;11436:1;11429:15;11456:320;11500:6;11537:1;11531:4;11527:12;11517:22;;11584:1;11578:4;11574:12;11605:18;11595:81;;11661:4;11653:6;11649:17;11639:27;;11595:81;11723:2;11715:6;11712:14;11692:18;11689:38;11686:84;;11742:18;;:::i;:::-;11686:84;11507:269;11456:320;;;:::o;11782:180::-;11922:32;11918:1;11910:6;11906:14;11899:56;11782:180;:::o;11968:366::-;12110:3;12131:67;12195:2;12190:3;12131:67;:::i;:::-;12124:74;;12207:93;12296:3;12207:93;:::i;:::-;12325:2;12320:3;12316:12;12309:19;;11968:366;;;:::o;12340:419::-;12506:4;12544:2;12533:9;12529:18;12521:26;;12593:9;12587:4;12583:20;12579:1;12568:9;12564:17;12557:47;12621:131;12747:4;12621:131;:::i;:::-;12613:139;;12340:419;;;:::o;12765:165::-;12905:17;12901:1;12893:6;12889:14;12882:41;12765:165;:::o;12936:366::-;13078:3;13099:67;13163:2;13158:3;13099:67;:::i;:::-;13092:74;;13175:93;13264:3;13175:93;:::i;:::-;13293:2;13288:3;13284:12;13277:19;;12936:366;;;:::o;13308:419::-;13474:4;13512:2;13501:9;13497:18;13489:26;;13561:9;13555:4;13551:20;13547:1;13536:9;13532:17;13525:47;13589:131;13715:4;13589:131;:::i;:::-;13581:139;;13308:419;;;:::o;13733:332::-;13854:4;13892:2;13881:9;13877:18;13869:26;;13905:71;13973:1;13962:9;13958:17;13949:6;13905:71;:::i;:::-;13986:72;14054:2;14043:9;14039:18;14030:6;13986:72;:::i;:::-;13733:332;;;;;:::o;14071:98::-;14122:6;14156:5;14150:12;14140:22;;14071:98;;;:::o;14175:147::-;14276:11;14313:3;14298:18;;14175:147;;;;:::o;14328:386::-;14432:3;14460:38;14492:5;14460:38;:::i;:::-;14514:88;14595:6;14590:3;14514:88;:::i;:::-;14507:95;;14611:65;14669:6;14664:3;14657:4;14650:5;14646:16;14611:65;:::i;:::-;14701:6;14696:3;14692:16;14685:23;;14436:278;14328:386;;;;:::o;14720:271::-;14850:3;14872:93;14961:3;14952:6;14872:93;:::i;:::-;14865:100;;14982:3;14975:10;;14720:271;;;;:::o;14997:170::-;15137:22;15133:1;15125:6;15121:14;15114:46;14997:170;:::o;15173:366::-;15315:3;15336:67;15400:2;15395:3;15336:67;:::i;:::-;15329:74;;15412:93;15501:3;15412:93;:::i;:::-;15530:2;15525:3;15521:12;15514:19;;15173:366;;;:::o;15545:419::-;15711:4;15749:2;15738:9;15734:18;15726:26;;15798:9;15792:4;15788:20;15784:1;15773:9;15769:17;15762:47;15826:131;15952:4;15826:131;:::i;:::-;15818:139;;15545:419;;;:::o;15970:114::-;;:::o;16090:398::-;16249:3;16270:83;16351:1;16346:3;16270:83;:::i;:::-;16263:90;;16362:93;16451:3;16362:93;:::i;:::-;16480:1;16475:3;16471:11;16464:18;;16090:398;;;:::o;16494:379::-;16678:3;16700:147;16843:3;16700:147;:::i;:::-;16693:154;;16864:3;16857:10;;16494:379;;;:::o;16879:170::-;17019:22;17015:1;17007:6;17003:14;16996:46;16879:170;:::o;17055:366::-;17197:3;17218:67;17282:2;17277:3;17218:67;:::i;:::-;17211:74;;17294:93;17383:3;17294:93;:::i;:::-;17412:2;17407:3;17403:12;17396:19;;17055:366;;;:::o;17427:419::-;17593:4;17631:2;17620:9;17616:18;17608:26;;17680:9;17674:4;17670:20;17666:1;17655:9;17651:17;17644:47;17708:131;17834:4;17708:131;:::i;:::-;17700:139;;17427:419;;;:::o;17852:140::-;17901:9;17934:52;17952:33;17961:23;17978:5;17961:23;:::i;:::-;17952:33;:::i;:::-;17934:52;:::i;:::-;17921:65;;17852:140;;;:::o;17998:129::-;18084:36;18114:5;18084:36;:::i;:::-;18079:3;18072:49;17998:129;;:::o;18133:330::-;18253:4;18291:2;18280:9;18276:18;18268:26;;18304:71;18372:1;18361:9;18357:17;18348:6;18304:71;:::i;:::-;18385;18452:2;18441:9;18437:18;18428:6;18385:71;:::i;:::-;18133:330;;;;;:::o;18469:225::-;18609:34;18605:1;18597:6;18593:14;18586:58;18678:8;18673:2;18665:6;18661:15;18654:33;18469:225;:::o;18700:366::-;18842:3;18863:67;18927:2;18922:3;18863:67;:::i;:::-;18856:74;;18939:93;19028:3;18939:93;:::i;:::-;19057:2;19052:3;19048:12;19041:19;;18700:366;;;:::o;19072:419::-;19238:4;19276:2;19265:9;19261:18;19253:26;;19325:9;19319:4;19315:20;19311:1;19300:9;19296:17;19289:47;19353:131;19479:4;19353:131;:::i;:::-;19345:139;;19072:419;;;:::o;19497:230::-;19637:34;19633:1;19625:6;19621:14;19614:58;19706:13;19701:2;19693:6;19689:15;19682:38;19497:230;:::o;19733:366::-;19875:3;19896:67;19960:2;19955:3;19896:67;:::i;:::-;19889:74;;19972:93;20061:3;19972:93;:::i;:::-;20090:2;20085:3;20081:12;20074:19;;19733:366;;;:::o;20105:419::-;20271:4;20309:2;20298:9;20294:18;20286:26;;20358:9;20352:4;20348:20;20344:1;20333:9;20329:17;20322:47;20386:131;20512:4;20386:131;:::i;:::-;20378:139;;20105:419;;;:::o;20530:166::-;20670:18;20666:1;20658:6;20654:14;20647:42;20530:166;:::o;20702:366::-;20844:3;20865:67;20929:2;20924:3;20865:67;:::i;:::-;20858:74;;20941:93;21030:3;20941:93;:::i;:::-;21059:2;21054:3;21050:12;21043:19;;20702:366;;;:::o;21074:419::-;21240:4;21278:2;21267:9;21263:18;21255:26;;21327:9;21321:4;21317:20;21313:1;21302:9;21298:17;21291:47;21355:131;21481:4;21355:131;:::i;:::-;21347:139;;21074:419;;;:::o;21499:223::-;21639:34;21635:1;21627:6;21623:14;21616:58;21708:6;21703:2;21695:6;21691:15;21684:31;21499:223;:::o;21728:366::-;21870:3;21891:67;21955:2;21950:3;21891:67;:::i;:::-;21884:74;;21967:93;22056:3;21967:93;:::i;:::-;22085:2;22080:3;22076:12;22069:19;;21728:366;;;:::o;22100:419::-;22266:4;22304:2;22293:9;22289:18;22281:26;;22353:9;22347:4;22343:20;22339:1;22328:9;22324:17;22317:47;22381:131;22507:4;22381:131;:::i;:::-;22373:139;;22100:419;;;:::o;22525:221::-;22665:34;22661:1;22653:6;22649:14;22642:58;22734:4;22729:2;22721:6;22717:15;22710:29;22525:221;:::o;22752:366::-;22894:3;22915:67;22979:2;22974:3;22915:67;:::i;:::-;22908:74;;22991:93;23080:3;22991:93;:::i;:::-;23109:2;23104:3;23100:12;23093:19;;22752:366;;;:::o;23124:419::-;23290:4;23328:2;23317:9;23313:18;23305:26;;23377:9;23371:4;23367:20;23363:1;23352:9;23348:17;23341:47;23405:131;23531:4;23405:131;:::i;:::-;23397:139;;23124:419;;;:::o;23549:224::-;23689:34;23685:1;23677:6;23673:14;23666:58;23758:7;23753:2;23745:6;23741:15;23734:32;23549:224;:::o;23779:366::-;23921:3;23942:67;24006:2;24001:3;23942:67;:::i;:::-;23935:74;;24018:93;24107:3;24018:93;:::i;:::-;24136:2;24131:3;24127:12;24120:19;;23779:366;;;:::o;24151:419::-;24317:4;24355:2;24344:9;24340:18;24332:26;;24404:9;24398:4;24394:20;24390:1;24379:9;24375:17;24368:47;24432:131;24558:4;24432:131;:::i;:::-;24424:139;;24151:419;;;:::o;24576:222::-;24716:34;24712:1;24704:6;24700:14;24693:58;24785:5;24780:2;24772:6;24768:15;24761:30;24576:222;:::o;24804:366::-;24946:3;24967:67;25031:2;25026:3;24967:67;:::i;:::-;24960:74;;25043:93;25132:3;25043:93;:::i;:::-;25161:2;25156:3;25152:12;25145:19;;24804:366;;;:::o;25176:419::-;25342:4;25380:2;25369:9;25365:18;25357:26;;25429:9;25423:4;25419:20;25415:1;25404:9;25400:17;25393:47;25457:131;25583:4;25457:131;:::i;:::-;25449:139;;25176:419;;;:::o;25601:228::-;25741:34;25737:1;25729:6;25725:14;25718:58;25810:11;25805:2;25797:6;25793:15;25786:36;25601:228;:::o;25835:366::-;25977:3;25998:67;26062:2;26057:3;25998:67;:::i;:::-;25991:74;;26074:93;26163:3;26074:93;:::i;:::-;26192:2;26187:3;26183:12;26176:19;;25835:366;;;:::o;26207:419::-;26373:4;26411:2;26400:9;26396:18;26388:26;;26460:9;26454:4;26450:20;26446:1;26435:9;26431:17;26424:47;26488:131;26614:4;26488:131;:::i;:::-;26480:139;;26207:419;;;:::o;26632:163::-;26772:15;26768:1;26760:6;26756:14;26749:39;26632:163;:::o;26801:366::-;26943:3;26964:67;27028:2;27023:3;26964:67;:::i;:::-;26957:74;;27040:93;27129:3;27040:93;:::i;:::-;27158:2;27153:3;27149:12;27142:19;;26801:366;;;:::o;27173:419::-;27339:4;27377:2;27366:9;27362:18;27354:26;;27426:9;27420:4;27416:20;27412:1;27401:9;27397:17;27390:47;27454:131;27580:4;27454:131;:::i;:::-;27446:139;;27173:419;;;:::o;27598:169::-;27738:21;27734:1;27726:6;27722:14;27715:45;27598:169;:::o;27773:366::-;27915:3;27936:67;28000:2;27995:3;27936:67;:::i;:::-;27929:74;;28012:93;28101:3;28012:93;:::i;:::-;28130:2;28125:3;28121:12;28114:19;;27773:366;;;:::o;28145:419::-;28311:4;28349:2;28338:9;28334:18;28326:26;;28398:9;28392:4;28388:20;28384:1;28373:9;28369:17;28362:47;28426:131;28552:4;28426:131;:::i;:::-;28418:139;;28145:419;;;:::o;28570:167::-;28710:19;28706:1;28698:6;28694:14;28687:43;28570:167;:::o;28743:366::-;28885:3;28906:67;28970:2;28965:3;28906:67;:::i;:::-;28899:74;;28982:93;29071:3;28982:93;:::i;:::-;29100:2;29095:3;29091:12;29084:19;;28743:366;;;:::o;29115:419::-;29281:4;29319:2;29308:9;29304:18;29296:26;;29368:9;29362:4;29358:20;29354:1;29343:9;29339:17;29332:47;29396:131;29522:4;29396:131;:::i;:::-;29388:139;;29115:419;;;:::o;29540:180::-;29588:77;29585:1;29578:88;29685:4;29682:1;29675:15;29709:4;29706:1;29699:15;29726:194;29766:4;29786:20;29804:1;29786:20;:::i;:::-;29781:25;;29820:20;29838:1;29820:20;:::i;:::-;29815:25;;29864:1;29861;29857:9;29849:17;;29888:1;29882:4;29879:11;29876:37;;;29893:18;;:::i;:::-;29876:37;29726:194;;;;:::o;29926:191::-;29966:3;29985:20;30003:1;29985:20;:::i;:::-;29980:25;;30019:20;30037:1;30019:20;:::i;:::-;30014:25;;30062:1;30059;30055:9;30048:16;;30083:3;30080:1;30077:10;30074:36;;;30090:18;;:::i;:::-;30074:36;29926:191;;;;:::o;30123:177::-;30263:29;30259:1;30251:6;30247:14;30240:53;30123:177;:::o;30306:366::-;30448:3;30469:67;30533:2;30528:3;30469:67;:::i;:::-;30462:74;;30545:93;30634:3;30545:93;:::i;:::-;30663:2;30658:3;30654:12;30647:19;;30306:366;;;:::o;30678:419::-;30844:4;30882:2;30871:9;30867:18;30859:26;;30931:9;30925:4;30921:20;30917:1;30906:9;30902:17;30895:47;30959:131;31085:4;30959:131;:::i;:::-;30951:139;;30678:419;;;:::o;31103:410::-;31143:7;31166:20;31184:1;31166:20;:::i;:::-;31161:25;;31200:20;31218:1;31200:20;:::i;:::-;31195:25;;31255:1;31252;31248:9;31277:30;31295:11;31277:30;:::i;:::-;31266:41;;31456:1;31447:7;31443:15;31440:1;31437:22;31417:1;31410:9;31390:83;31367:139;;31486:18;;:::i;:::-;31367:139;31151:362;31103:410;;;;:::o;31519:180::-;31567:77;31564:1;31557:88;31664:4;31661:1;31654:15;31688:4;31685:1;31678:15;31705:185;31745:1;31762:20;31780:1;31762:20;:::i;:::-;31757:25;;31796:20;31814:1;31796:20;:::i;:::-;31791:25;;31835:1;31825:35;;31840:18;;:::i;:::-;31825:35;31882:1;31879;31875:9;31870:14;;31705:185;;;;:::o;31896:220::-;32036:34;32032:1;32024:6;32020:14;32013:58;32105:3;32100:2;32092:6;32088:15;32081:28;31896:220;:::o;32122:366::-;32264:3;32285:67;32349:2;32344:3;32285:67;:::i;:::-;32278:74;;32361:93;32450:3;32361:93;:::i;:::-;32479:2;32474:3;32470:12;32463:19;;32122:366;;;:::o;32494:419::-;32660:4;32698:2;32687:9;32683:18;32675:26;;32747:9;32741:4;32737:20;32733:1;32722:9;32718:17;32711:47;32775:131;32901:4;32775:131;:::i;:::-;32767:139;;32494:419;;;:::o;32919:180::-;32967:77;32964:1;32957:88;33064:4;33061:1;33054:15;33088:4;33085:1;33078:15;33105:180;33153:77;33150:1;33143:88;33250:4;33247:1;33240:15;33274:4;33271:1;33264:15;33291:143;33348:5;33379:6;33373:13;33364:22;;33395:33;33422:5;33395:33;:::i;:::-;33291:143;;;;:::o;33440:351::-;33510:6;33559:2;33547:9;33538:7;33534:23;33530:32;33527:119;;;33565:79;;:::i;:::-;33527:119;33685:1;33710:64;33766:7;33757:6;33746:9;33742:22;33710:64;:::i;:::-;33700:74;;33656:128;33440:351;;;;:::o;33797:85::-;33842:7;33871:5;33860:16;;33797:85;;;:::o;33888:158::-;33946:9;33979:61;33997:42;34006:32;34032:5;34006:32;:::i;:::-;33997:42;:::i;:::-;33979:61;:::i;:::-;33966:74;;33888:158;;;:::o;34052:147::-;34147:45;34186:5;34147:45;:::i;:::-;34142:3;34135:58;34052:147;;:::o;34205:114::-;34272:6;34306:5;34300:12;34290:22;;34205:114;;;:::o;34325:184::-;34424:11;34458:6;34453:3;34446:19;34498:4;34493:3;34489:14;34474:29;;34325:184;;;;:::o;34515:132::-;34582:4;34605:3;34597:11;;34635:4;34630:3;34626:14;34618:22;;34515:132;;;:::o;34653:108::-;34730:24;34748:5;34730:24;:::i;:::-;34725:3;34718:37;34653:108;;:::o;34767:179::-;34836:10;34857:46;34899:3;34891:6;34857:46;:::i;:::-;34935:4;34930:3;34926:14;34912:28;;34767:179;;;;:::o;34952:113::-;35022:4;35054;35049:3;35045:14;35037:22;;34952:113;;;:::o;35101:732::-;35220:3;35249:54;35297:5;35249:54;:::i;:::-;35319:86;35398:6;35393:3;35319:86;:::i;:::-;35312:93;;35429:56;35479:5;35429:56;:::i;:::-;35508:7;35539:1;35524:284;35549:6;35546:1;35543:13;35524:284;;;35625:6;35619:13;35652:63;35711:3;35696:13;35652:63;:::i;:::-;35645:70;;35738:60;35791:6;35738:60;:::i;:::-;35728:70;;35584:224;35571:1;35568;35564:9;35559:14;;35524:284;;;35528:14;35824:3;35817:10;;35225:608;;;35101:732;;;;:::o;35839:831::-;36102:4;36140:3;36129:9;36125:19;36117:27;;36154:71;36222:1;36211:9;36207:17;36198:6;36154:71;:::i;:::-;36235:80;36311:2;36300:9;36296:18;36287:6;36235:80;:::i;:::-;36362:9;36356:4;36352:20;36347:2;36336:9;36332:18;36325:48;36390:108;36493:4;36484:6;36390:108;:::i;:::-;36382:116;;36508:72;36576:2;36565:9;36561:18;36552:6;36508:72;:::i;:::-;36590:73;36658:3;36647:9;36643:19;36634:6;36590:73;:::i;:::-;35839:831;;;;;;;;:::o;36676:483::-;36847:4;36885:2;36874:9;36870:18;36862:26;;36898:71;36966:1;36955:9;36951:17;36942:6;36898:71;:::i;:::-;37016:9;37010:4;37006:20;37001:2;36990:9;36986:18;36979:48;37044:108;37147:4;37138:6;37044:108;:::i;:::-;37036:116;;36676:483;;;;;:::o

Swarm Source

ipfs://db685dd93ffea7ba6380d293d67421d836ee4f561fc1a4f400875fe84416cfdf

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.