ETH Price: $2,888.67 (-9.80%)
Gas: 12 Gwei

Token

Silk Road ($SILK)
 

Overview

Max Total Supply

100,000,000,000 $SILK

Holders

135

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,847,276.926305291 $SILK

Value
$0.00
0xc63c4113f2037cc6afe804da69ff608932898498
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SILK

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 2023-11-21
*/

/*
Telegram : https://t.me/silkroaderc20official
Twitter : https://twitter.com/silkroaderc
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.22;

interface IERC20Errors {
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
    error ERC20TransferFailed();
    error ERC20ZeroTransfer();
}

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

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 {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract SILK is Context, IERC20, Ownable, IERC20Errors {

    using SafeMath for uint256;

    address private developmentWallet;
    address private marketingWallet;
    
    string private _name = "Silk Road";
    string private _symbol = "$SILK";
    uint8 private _decimals = 9; 

    uint256 private _totalSupply = 100_000_000_000 * 10**_decimals;
    
    uint256 public _maxTxAmount =  _totalSupply.mul(15).div(1000);     // 1.5%
    uint256 public _walletMax = _totalSupply.mul(15).div(1000);        // 1.5%

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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

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

    bool public swapEnabled = true;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    uint public buyTax = 2;
    uint public sellTax = 4;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor(address _marketing) {

        developmentWallet = msg.sender;
        marketingWallet = _marketing;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }

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

     //to recieve ETH from Router when swaping
    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: Exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        if (sender == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (recipient == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        if(amount == 0) {
            revert ERC20ZeroTransfer();
        }
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

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

            if (
                overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !isExcludedFromFee[sender] &&
                !isExcludedFromFee[recipient]
                ) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds maxTxAmount");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Exceeds Wallet");
            }

            _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(isExcludedFromFee[sender] || isExcludedFromFee[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(buyTax).div(100);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(sellTax).div(100);
            }

            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;

        swapTokensForEth(contractBalance,marketingWallet);

    }


    function swapTokensForEth(uint256 tokenAmount, address _recipient) 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,
            0, // accept any amount of ETH
            path,
            address(_recipient), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

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

    function rescueTokens(address _token,uint _amount) external {
        require(msg.sender == developmentWallet,"Unauthorized!");
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  developmentWallet, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _buySide, uint _sellSide) external onlyOwner {    
        buyTax = _buySide;
        sellTax = _sellSide;
    }

    function removeLimits() external onlyOwner {
        EnableTxLimit = false;
        checkWalletLimit =  false;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }
    
    function setDevelopmentWallet(address _newWallet) external onlyOwner {
        developmentWallet = _newWallet;
    }

    function setMarketingWallet(address _newWallet) external onlyOwner {
        marketingWallet = _newWallet;
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ERC20TransferFailed","type":"error"},{"inputs":[],"name":"ERC20ZeroTransfer","type":"error"},{"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"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buySide","type":"uint256"},{"internalType":"uint256","name":"_sellSide","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"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"}]

60a06040526040518060400160405280600981526020017f53696c6b20526f61640000000000000000000000000000000000000000000000815250600390816200004a919062000ef5565b506040518060400160405280600581526020017f2453494c4b0000000000000000000000000000000000000000000000000000008152506004908162000091919062000ef5565b50600960055f6101000a81548160ff021916908360ff16021790555060055f9054906101000a900460ff16600a620000ca919062001162565b64174876e800620000dc9190620011b2565b6006556200010d6103e8620000fe600f60065462000a9260201b90919060201c565b62000b1260201b90919060201c565b6007556200013e6103e86200012f600f60065462000a9260201b90919060201c565b62000b1260201b90919060201c565b6008556200016f6103e862000160600560065462000a9260201b90919060201c565b62000b1260201b90919060201c565b600f55600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff0219169083151502179055506001601060036101000a81548160ff0219169083151502179055506002601155600460125561dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525034801562000228575f80fd5b5060405162004ac038038062004ac083398181016040528101906200024e919062001261565b6200026e6200026262000b6360201b60201c565b62000b6a60201b60201c565b3360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000350573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000376919062001261565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000402919062001261565b6040518363ffffffff1660e01b815260040162000421929190620012a2565b6020604051808303815f875af11580156200043e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000464919062001261565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060065460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000a829190620012de565b60405180910390a350506200149d565b5f80830362000aa4575f905062000b0c565b5f828462000ab39190620011b2565b905082848262000ac4919062001326565b1462000b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afe90620013e1565b60405180910390fd5b809150505b92915050565b5f62000b5b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c2b60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c6b91906200147b565b60405180910390fd5b505f838562000c84919062001326565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d0d57607f821691505b60208210810362000d235762000d2262000cc8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000d877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d4a565b62000d93868362000d4a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ddd62000dd762000dd18462000dab565b62000db4565b62000dab565b9050919050565b5f819050919050565b62000df88362000dbd565b62000e1062000e078262000de4565b84845462000d56565b825550505050565b5f90565b62000e2662000e18565b62000e3381848462000ded565b505050565b5b8181101562000e5a5762000e4e5f8262000e1c565b60018101905062000e39565b5050565b601f82111562000ea95762000e738162000d29565b62000e7e8462000d3b565b8101602085101562000e8e578190505b62000ea662000e9d8562000d3b565b83018262000e38565b50505b505050565b5f82821c905092915050565b5f62000ecb5f198460080262000eae565b1980831691505092915050565b5f62000ee5838362000eba565b9150826002028217905092915050565b62000f008262000c91565b67ffffffffffffffff81111562000f1c5762000f1b62000c9b565b5b62000f28825462000cf5565b62000f3582828562000e5e565b5f60209050601f83116001811462000f6b575f841562000f56578287015190505b62000f62858262000ed8565b86555062000fd1565b601f19841662000f7b8662000d29565b5f5b8281101562000fa45784890151825560018201915060208501945060208101905062000f7d565b8683101562000fc4578489015162000fc0601f89168262000eba565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562001063578086048111156200103b576200103a62000fd9565b5b60018516156200104b5780820291505b80810290506200105b8562001006565b94506200101b565b94509492505050565b5f826200107d57600190506200114f565b816200108c575f90506200114f565b8160018114620010a55760028114620010b057620010e6565b60019150506200114f565b60ff841115620010c557620010c462000fd9565b5b8360020a915084821115620010df57620010de62000fd9565b5b506200114f565b5060208310610133831016604e8410600b8410161715620011205782820a9050838111156200111a576200111962000fd9565b5b6200114f565b6200112f848484600162001012565b9250905081840481111562001149576200114862000fd9565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200116e8262000dab565b91506200117b8362001156565b9250620011aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200106c565b905092915050565b5f620011be8262000dab565b9150620011cb8362000dab565b9250828202620011db8162000dab565b91508282048414831517620011f557620011f462000fd9565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200122b8262001200565b9050919050565b6200123d816200121f565b811462001248575f80fd5b50565b5f815190506200125b8162001232565b92915050565b5f60208284031215620012795762001278620011fc565b5b5f62001288848285016200124b565b91505092915050565b6200129c816200121f565b82525050565b5f604082019050620012b75f83018562001291565b620012c6602083018462001291565b9392505050565b620012d88162000dab565b82525050565b5f602082019050620012f35f830184620012cd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620013328262000dab565b91506200133f8362000dab565b925082620013525762001351620012f9565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620013c96021836200135d565b9150620013d6826200136d565b604082019050919050565b5f6020820190508181035f830152620013fa81620013bb565b9050919050565b5f5b838110156200142057808201518184015260208101905062001403565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620014478262000c91565b6200145381856200135d565b93506200146581856020860162001401565b62001470816200142b565b840191505092915050565b5f6020820190508181035f8301526200149581846200143b565b905092915050565b60805161360a620014b65f395f610a32015261360a5ff3fe608060405260043610610212575f3560e01c806372ac248611610117578063c867d60b1161009f578063e6b2603b1161006e578063e6b2603b146107a1578063e9fd3394146107b7578063f242ab41146107e1578063f2fde38b1461080b578063f872858a1461083357610219565b8063c867d60b146106d7578063cc1776d314610713578063dd62ed3e1461073d578063df8408fe1461077957610219565b80638b42507f116100e65780638b42507f146105e35780638da5cb5b1461061f57806395d89b4114610649578063a9059cbb14610673578063b94b0aef146106af57610219565b806372ac248614610551578063751039fc146105795780637d1db4a51461058f578063807c2d9c146105b957610219565b80634f7041a51161019a5780635d098b38116101695780635d098b38146104835780635e42358c146104ab5780636ddd1713146104d557806370a08231146104ff578063715018a61461053b57610219565b80634f7041a5146103cd57806352f7c988146103f75780635342acb41461041f578063573761981461045b57610219565b806318160ddd116101e157806318160ddd146102d757806323b872dd1461030157806327c8f8351461033d578063313ce567146103675780633ecad2711461039157610219565b80630445b6671461021d57806306fdde03146102475780630758d92414610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b5061023161085d565b60405161023e9190612950565b60405180910390f35b348015610252575f80fd5b5061025b610863565b60405161026891906129f3565b60405180910390f35b34801561027c575f80fd5b506102856108f3565b6040516102929190612a8d565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190612b0f565b610918565b6040516102ce9190612b67565b60405180910390f35b3480156102e2575f80fd5b506102eb610935565b6040516102f89190612950565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612b80565b61093e565b6040516103349190612b67565b60405180910390f35b348015610348575f80fd5b50610351610a30565b60405161035e9190612bdf565b60405180910390f35b348015610372575f80fd5b5061037b610a54565b6040516103889190612c13565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612c2c565b610a69565b6040516103c49190612b67565b60405180910390f35b3480156103d8575f80fd5b506103e1610a86565b6040516103ee9190612950565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190612c57565b610a8c565b005b34801561042a575f80fd5b5061044560048036038101906104409190612c2c565b610b1a565b6040516104529190612b67565b60405180910390f35b348015610466575f80fd5b50610481600480360381019061047c9190612b0f565b610b37565b005b34801561048e575f80fd5b506104a960048036038101906104a49190612c2c565b610d23565b005b3480156104b6575f80fd5b506104bf610de2565b6040516104cc9190612b67565b60405180910390f35b3480156104e0575f80fd5b506104e9610df5565b6040516104f69190612b67565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612c2c565b610e07565b6040516105329190612950565b60405180910390f35b348015610546575f80fd5b5061054f610e4d565b005b34801561055c575f80fd5b5061057760048036038101906105729190612c2c565b610ed4565b005b348015610584575f80fd5b5061058d610f93565b005b34801561059a575f80fd5b506105a3611045565b6040516105b09190612950565b60405180910390f35b3480156105c4575f80fd5b506105cd61104b565b6040516105da9190612950565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190612c2c565b611051565b6040516106169190612b67565b60405180910390f35b34801561062a575f80fd5b5061063361106e565b6040516106409190612bdf565b60405180910390f35b348015610654575f80fd5b5061065d611095565b60405161066a91906129f3565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612b0f565b611125565b6040516106a69190612b67565b60405180910390f35b3480156106ba575f80fd5b506106d560048036038101906106d09190612cbf565b611143565b005b3480156106e2575f80fd5b506106fd60048036038101906106f89190612c2c565b6111fe565b60405161070a9190612b67565b60405180910390f35b34801561071e575f80fd5b5061072761121b565b6040516107349190612950565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612d0f565b611221565b6040516107709190612950565b60405180910390f35b348015610784575f80fd5b5061079f600480360381019061079a9190612d4d565b6112a3565b005b3480156107ac575f80fd5b506107b5611377565b005b3480156107c2575f80fd5b506107cb6114d2565b6040516107d89190612b67565b60405180910390f35b3480156107ec575f80fd5b506107f56114e5565b6040516108029190612bdf565b60405180910390f35b348015610816575f80fd5b50610831600480360381019061082c9190612c2c565b61150a565b005b34801561083e575f80fd5b50610847611600565b6040516108549190612b67565b60405180910390f35b600f5481565b60606003805461087290612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90612db8565b80156108e95780601f106108c0576101008083540402835291602001916108e9565b820191905f5260205f20905b8154815290600101906020018083116108cc57829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61092b610924611613565b848461161a565b6001905092915050565b5f600654905090565b5f61094a8484846117e1565b50610a2584610957611613565b610a20856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109d7611613565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b61161a565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60055f9054906101000a900460ff16905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b60115481565b610a94611613565b73ffffffffffffffffffffffffffffffffffffffff16610ab261106e565b73ffffffffffffffffffffffffffffffffffffffff1614610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff90612e32565b60405180910390fd5b81601181905550806012819055505050565b600b602052805f5260405f205f915054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612e9a565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051602401610c12929190612eb8565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c9c9190612f23565b5f604051808303815f865af19150503d805f8114610cd5576040519150601f19603f3d011682016040523d82523d5f602084013e610cda565b606091505b5050905080610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590612f83565b60405180910390fd5b505050565b610d2b611613565b73ffffffffffffffffffffffffffffffffffffffff16610d4961106e565b73ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612e32565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060029054906101000a900460ff1681565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e55611613565b73ffffffffffffffffffffffffffffffffffffffff16610e7361106e565b73ffffffffffffffffffffffffffffffffffffffff1614610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec090612e32565b60405180910390fd5b610ed25f611e87565b565b610edc611613565b73ffffffffffffffffffffffffffffffffffffffff16610efa61106e565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612e32565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9b611613565b73ffffffffffffffffffffffffffffffffffffffff16610fb961106e565b73ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612e32565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60075481565b60085481565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546110a490612db8565b80601f01602080910402602001604051908101604052809291908181526020018280546110d090612db8565b801561111b5780601f106110f25761010080835404028352916020019161111b565b820191905f5260205f20905b8154815290600101906020018083116110fe57829003601f168201915b5050505050905090565b5f611138611131611613565b84846117e1565b506001905092915050565b61114b611613565b73ffffffffffffffffffffffffffffffffffffffff1661116961106e565b73ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612e32565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112ab611613565b73ffffffffffffffffffffffffffffffffffffffff166112c961106e565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690612e32565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612e9a565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161144c90612fc4565b5f6040518083038185875af1925050503d805f8114611486576040519150601f19603f3d011682016040523d82523d5f602084013e61148b565b606091505b50509050806114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690613022565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611512611613565b73ffffffffffffffffffffffffffffffffffffffff1661153061106e565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90612e32565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb906130b0565b60405180910390fd5b6115fd81611e87565b50565b601060039054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168a575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016116819190612bdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fa575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016116f19190612bdf565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d49190612950565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611852575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016118499190612bdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016118b99190612bdf565b60405180910390fd5b5f82036118fb576040517f67c8957700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148054906101000a900460ff161561192057611919848484611f48565b9050611e1e565b5f61192a30610e07565b90505f600f54821015905080801561194d575060148054906101000a900460ff16155b80156119a05750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119b7575060105f9054906101000a900460ff165b8015611a0a5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a5d5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6c57611a6b82612112565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b0a5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b225750601060029054906101000a900460ff165b15611b6d57600754841115611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390613118565b60405180910390fd5b5b611bf4846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611c40878761218e565b611c5457611c4f8787876122ea565b611c56565b845b9050601060039054906101000a900460ff168015611cbb5750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2057600854611cde82611cd089610e07565b61250190919063ffffffff16565b1115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613180565b60405180910390fd5b5b611d708160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0e9190612950565b60405180910390a3600193505050505b9392505050565b5f838311158290611e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6391906129f3565b60405180910390fd5b505f8385611e7a91906131cb565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611fd0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120618260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120ff9190612950565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550601060019054906101000a900460ff161561214757600f5490505b6121728160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661255e565b5f6014806101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061222a5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561223857600190506122e4565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122d35750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122e0575f90506122e4565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561236a576123636064612355601154866127ce90919063ffffffff16565b61284590919063ffffffff16565b90506123e5565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123e4576123e160646123d3601254866127ce90919063ffffffff16565b61284590919063ffffffff16565b90505b5b5f8111156124e45761243d8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124db9190612950565b60405180910390a35b6124f7818461288e90919063ffffffff16565b9150509392505050565b5f80828461250f91906131fe565b905083811015612554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254b9061327b565b60405180910390fd5b8091505092915050565b5f600267ffffffffffffffff81111561257a57612579613299565b5b6040519080825280602002602001820160405280156125a85781602001602082028036833780820191505090505b50905030815f815181106125bf576125be6132c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612663573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126879190613307565b8160018151811061269b5761269a6132c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127013060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561161a565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8486426040518663ffffffff1660e01b8152600401612763959493929190613422565b5f604051808303815f87803b15801561277a575f80fd5b505af115801561278c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a783826040516127c192919061347a565b60405180910390a1505050565b5f8083036127de575f905061283f565b5f82846127eb91906134a8565b90508284826127fa9190613516565b1461283a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612831906135b6565b60405180910390fd5b809150505b92915050565b5f61288683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128d7565b905092915050565b5f6128cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e25565b905092915050565b5f808311829061291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291491906129f3565b60405180910390fd5b505f838561292b9190613516565b9050809150509392505050565b5f819050919050565b61294a81612938565b82525050565b5f6020820190506129635f830184612941565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129a0578082015181840152602081019050612985565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129c582612969565b6129cf8185612973565b93506129df818560208601612983565b6129e8816129ab565b840191505092915050565b5f6020820190508181035f830152612a0b81846129bb565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612a55612a50612a4b84612a13565b612a32565b612a13565b9050919050565b5f612a6682612a3b565b9050919050565b5f612a7782612a5c565b9050919050565b612a8781612a6d565b82525050565b5f602082019050612aa05f830184612a7e565b92915050565b5f80fd5b5f612ab482612a13565b9050919050565b612ac481612aaa565b8114612ace575f80fd5b50565b5f81359050612adf81612abb565b92915050565b612aee81612938565b8114612af8575f80fd5b50565b5f81359050612b0981612ae5565b92915050565b5f8060408385031215612b2557612b24612aa6565b5b5f612b3285828601612ad1565b9250506020612b4385828601612afb565b9150509250929050565b5f8115159050919050565b612b6181612b4d565b82525050565b5f602082019050612b7a5f830184612b58565b92915050565b5f805f60608486031215612b9757612b96612aa6565b5b5f612ba486828701612ad1565b9350506020612bb586828701612ad1565b9250506040612bc686828701612afb565b9150509250925092565b612bd981612aaa565b82525050565b5f602082019050612bf25f830184612bd0565b92915050565b5f60ff82169050919050565b612c0d81612bf8565b82525050565b5f602082019050612c265f830184612c04565b92915050565b5f60208284031215612c4157612c40612aa6565b5b5f612c4e84828501612ad1565b91505092915050565b5f8060408385031215612c6d57612c6c612aa6565b5b5f612c7a85828601612afb565b9250506020612c8b85828601612afb565b9150509250929050565b612c9e81612b4d565b8114612ca8575f80fd5b50565b5f81359050612cb981612c95565b92915050565b5f805f60608486031215612cd657612cd5612aa6565b5b5f612ce386828701612afb565b9350506020612cf486828701612cab565b9250506040612d0586828701612cab565b9150509250925092565b5f8060408385031215612d2557612d24612aa6565b5b5f612d3285828601612ad1565b9250506020612d4385828601612ad1565b9150509250929050565b5f8060408385031215612d6357612d62612aa6565b5b5f612d7085828601612ad1565b9250506020612d8185828601612cab565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612dcf57607f821691505b602082108103612de257612de1612d8b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e1c602083612973565b9150612e2782612de8565b602082019050919050565b5f6020820190508181035f830152612e4981612e10565b9050919050565b7f556e617574686f72697a656421000000000000000000000000000000000000005f82015250565b5f612e84600d83612973565b9150612e8f82612e50565b602082019050919050565b5f6020820190508181035f830152612eb181612e78565b9050919050565b5f604082019050612ecb5f830185612bd0565b612ed86020830184612941565b9392505050565b5f81519050919050565b5f81905092915050565b5f612efd82612edf565b612f078185612ee9565b9350612f17818560208601612983565b80840191505092915050565b5f612f2e8284612ef3565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f612f6d601483612973565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b50565b5f612faf5f83612ee9565b9150612fba82612fa1565b5f82019050919050565b5f612fce82612fa4565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61300c601483612973565b915061301782612fd8565b602082019050919050565b5f6020820190508181035f83015261303981613000565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61309a602683612973565b91506130a582613040565b604082019050919050565b5f6020820190508181035f8301526130c78161308e565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613102601383612973565b915061310d826130ce565b602082019050919050565b5f6020820190508181035f83015261312f816130f6565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f61316a600e83612973565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131d582612938565b91506131e083612938565b92508282039050818111156131f8576131f761319e565b5b92915050565b5f61320882612938565b915061321383612938565b925082820190508082111561322b5761322a61319e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613265601b83612973565b915061327082613231565b602082019050919050565b5f6020820190508181035f83015261329281613259565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061330181612abb565b92915050565b5f6020828403121561331c5761331b612aa6565b5b5f613329848285016132f3565b91505092915050565b5f819050919050565b5f61335561335061334b84613332565b612a32565b612938565b9050919050565b6133658161333b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61339d81612aaa565b82525050565b5f6133ae8383613394565b60208301905092915050565b5f602082019050919050565b5f6133d08261336b565b6133da8185613375565b93506133e583613385565b805f5b838110156134155781516133fc88826133a3565b9750613407836133ba565b9250506001810190506133e8565b5085935050505092915050565b5f60a0820190506134355f830188612941565b613442602083018761335c565b818103604083015261345481866133c6565b90506134636060830185612bd0565b6134706080830184612941565b9695505050505050565b5f60408201905061348d5f830185612941565b818103602083015261349f81846133c6565b90509392505050565b5f6134b282612938565b91506134bd83612938565b92508282026134cb81612938565b915082820484148315176134e2576134e161319e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61352082612938565b915061352b83612938565b92508261353b5761353a6134e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135a0602183612973565b91506135ab82613546565b604082019050919050565b5f6020820190508181035f8301526135cd81613594565b905091905056fea2646970667358221220767c5e82407afef0a1387ee96bb649a14ea6b6a0ca7e4286c28a31c0bd8e364664736f6c6343000816003300000000000000000000000038cefd8f2ef8049f6c58f7d55e6c30fa95f440c0

Deployed Bytecode

0x608060405260043610610212575f3560e01c806372ac248611610117578063c867d60b1161009f578063e6b2603b1161006e578063e6b2603b146107a1578063e9fd3394146107b7578063f242ab41146107e1578063f2fde38b1461080b578063f872858a1461083357610219565b8063c867d60b146106d7578063cc1776d314610713578063dd62ed3e1461073d578063df8408fe1461077957610219565b80638b42507f116100e65780638b42507f146105e35780638da5cb5b1461061f57806395d89b4114610649578063a9059cbb14610673578063b94b0aef146106af57610219565b806372ac248614610551578063751039fc146105795780637d1db4a51461058f578063807c2d9c146105b957610219565b80634f7041a51161019a5780635d098b38116101695780635d098b38146104835780635e42358c146104ab5780636ddd1713146104d557806370a08231146104ff578063715018a61461053b57610219565b80634f7041a5146103cd57806352f7c988146103f75780635342acb41461041f578063573761981461045b57610219565b806318160ddd116101e157806318160ddd146102d757806323b872dd1461030157806327c8f8351461033d578063313ce567146103675780633ecad2711461039157610219565b80630445b6671461021d57806306fdde03146102475780630758d92414610271578063095ea7b31461029b57610219565b3661021957005b5f80fd5b348015610228575f80fd5b5061023161085d565b60405161023e9190612950565b60405180910390f35b348015610252575f80fd5b5061025b610863565b60405161026891906129f3565b60405180910390f35b34801561027c575f80fd5b506102856108f3565b6040516102929190612a8d565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190612b0f565b610918565b6040516102ce9190612b67565b60405180910390f35b3480156102e2575f80fd5b506102eb610935565b6040516102f89190612950565b60405180910390f35b34801561030c575f80fd5b5061032760048036038101906103229190612b80565b61093e565b6040516103349190612b67565b60405180910390f35b348015610348575f80fd5b50610351610a30565b60405161035e9190612bdf565b60405180910390f35b348015610372575f80fd5b5061037b610a54565b6040516103889190612c13565b60405180910390f35b34801561039c575f80fd5b506103b760048036038101906103b29190612c2c565b610a69565b6040516103c49190612b67565b60405180910390f35b3480156103d8575f80fd5b506103e1610a86565b6040516103ee9190612950565b60405180910390f35b348015610402575f80fd5b5061041d60048036038101906104189190612c57565b610a8c565b005b34801561042a575f80fd5b5061044560048036038101906104409190612c2c565b610b1a565b6040516104529190612b67565b60405180910390f35b348015610466575f80fd5b50610481600480360381019061047c9190612b0f565b610b37565b005b34801561048e575f80fd5b506104a960048036038101906104a49190612c2c565b610d23565b005b3480156104b6575f80fd5b506104bf610de2565b6040516104cc9190612b67565b60405180910390f35b3480156104e0575f80fd5b506104e9610df5565b6040516104f69190612b67565b60405180910390f35b34801561050a575f80fd5b5061052560048036038101906105209190612c2c565b610e07565b6040516105329190612950565b60405180910390f35b348015610546575f80fd5b5061054f610e4d565b005b34801561055c575f80fd5b5061057760048036038101906105729190612c2c565b610ed4565b005b348015610584575f80fd5b5061058d610f93565b005b34801561059a575f80fd5b506105a3611045565b6040516105b09190612950565b60405180910390f35b3480156105c4575f80fd5b506105cd61104b565b6040516105da9190612950565b60405180910390f35b3480156105ee575f80fd5b5061060960048036038101906106049190612c2c565b611051565b6040516106169190612b67565b60405180910390f35b34801561062a575f80fd5b5061063361106e565b6040516106409190612bdf565b60405180910390f35b348015610654575f80fd5b5061065d611095565b60405161066a91906129f3565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612b0f565b611125565b6040516106a69190612b67565b60405180910390f35b3480156106ba575f80fd5b506106d560048036038101906106d09190612cbf565b611143565b005b3480156106e2575f80fd5b506106fd60048036038101906106f89190612c2c565b6111fe565b60405161070a9190612b67565b60405180910390f35b34801561071e575f80fd5b5061072761121b565b6040516107349190612950565b60405180910390f35b348015610748575f80fd5b50610763600480360381019061075e9190612d0f565b611221565b6040516107709190612950565b60405180910390f35b348015610784575f80fd5b5061079f600480360381019061079a9190612d4d565b6112a3565b005b3480156107ac575f80fd5b506107b5611377565b005b3480156107c2575f80fd5b506107cb6114d2565b6040516107d89190612b67565b60405180910390f35b3480156107ec575f80fd5b506107f56114e5565b6040516108029190612bdf565b60405180910390f35b348015610816575f80fd5b50610831600480360381019061082c9190612c2c565b61150a565b005b34801561083e575f80fd5b50610847611600565b6040516108549190612b67565b60405180910390f35b600f5481565b60606003805461087290612db8565b80601f016020809104026020016040519081016040528092919081815260200182805461089e90612db8565b80156108e95780601f106108c0576101008083540402835291602001916108e9565b820191905f5260205f20905b8154815290600101906020018083116108cc57829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61092b610924611613565b848461161a565b6001905092915050565b5f600654905090565b5f61094a8484846117e1565b50610a2584610957611613565b610a20856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e63650000000000000000815250600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109d7611613565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b61161a565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f60055f9054906101000a900460ff16905090565b600c602052805f5260405f205f915054906101000a900460ff1681565b60115481565b610a94611613565b73ffffffffffffffffffffffffffffffffffffffff16610ab261106e565b73ffffffffffffffffffffffffffffffffffffffff1614610b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aff90612e32565b60405180910390fd5b81601181905550806012819055505050565b600b602052805f5260405f205f915054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612e9a565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051602401610c12929190612eb8565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610c9c9190612f23565b5f604051808303815f865af19150503d805f8114610cd5576040519150601f19603f3d011682016040523d82523d5f602084013e610cda565b606091505b5050905080610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590612f83565b60405180910390fd5b505050565b610d2b611613565b73ffffffffffffffffffffffffffffffffffffffff16610d4961106e565b73ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612e32565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060029054906101000a900460ff1681565b60105f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e55611613565b73ffffffffffffffffffffffffffffffffffffffff16610e7361106e565b73ffffffffffffffffffffffffffffffffffffffff1614610ec9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec090612e32565b60405180910390fd5b610ed25f611e87565b565b610edc611613565b73ffffffffffffffffffffffffffffffffffffffff16610efa61106e565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612e32565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f9b611613565b73ffffffffffffffffffffffffffffffffffffffff16610fb961106e565b73ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612e32565b60405180910390fd5b5f601060026101000a81548160ff0219169083151502179055505f601060036101000a81548160ff021916908315150217905550565b60075481565b60085481565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546110a490612db8565b80601f01602080910402602001604051908101604052809291908181526020018280546110d090612db8565b801561111b5780601f106110f25761010080835404028352916020019161111b565b820191905f5260205f20905b8154815290600101906020018083116110fe57829003601f168201915b5050505050905090565b5f611138611131611613565b84846117e1565b506001905092915050565b61114b611613565b73ffffffffffffffffffffffffffffffffffffffff1661116961106e565b73ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612e32565b60405180910390fd5b8160105f6101000a81548160ff02191690831515021790555080601060016101000a81548160ff02191690831515021790555082600f81905550505050565b600d602052805f5260405f205f915054906101000a900460ff1681565b60125481565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112ab611613565b73ffffffffffffffffffffffffffffffffffffffff166112c961106e565b73ffffffffffffffffffffffffffffffffffffffff161461131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690612e32565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612e9a565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161144c90612fc4565b5f6040518083038185875af1925050503d805f8114611486576040519150601f19603f3d011682016040523d82523d5f602084013e61148b565b606091505b50509050806114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c690613022565b60405180910390fd5b50565b601060019054906101000a900460ff1681565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611512611613565b73ffffffffffffffffffffffffffffffffffffffff1661153061106e565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90612e32565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115eb906130b0565b60405180910390fd5b6115fd81611e87565b50565b601060039054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168a575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016116819190612bdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fa575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016116f19190612bdf565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d49190612950565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611852575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016118499190612bdf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118c2575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016118b99190612bdf565b60405180910390fd5b5f82036118fb576040517f67c8957700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60148054906101000a900460ff161561192057611919848484611f48565b9050611e1e565b5f61192a30610e07565b90505f600f54821015905080801561194d575060148054906101000a900460ff16155b80156119a05750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156119b7575060105f9054906101000a900460ff165b8015611a0a5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611a5d5750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a6c57611a6b82612112565b5b600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b0a5750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b225750601060029054906101000a900460ff165b15611b6d57600754841115611b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6390613118565b60405180910390fd5b5b611bf4846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611c40878761218e565b611c5457611c4f8787876122ea565b611c56565b845b9050601060039054906101000a900460ff168015611cbb5750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611d2057600854611cde82611cd089610e07565b61250190919063ffffffff16565b1115611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613180565b60405180910390fd5b5b611d708160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e0e9190612950565b60405180910390a3600193505050505b9392505050565b5f838311158290611e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6391906129f3565b60405180910390fd5b505f8385611e7a91906131cb565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611fd0826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e259092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120618260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120ff9190612950565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550601060019054906101000a900460ff161561214757600f5490505b6121728160025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661255e565b5f6014806101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061222a5750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561223857600190506122e4565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806122d35750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156122e0575f90506122e4565b5f90505b92915050565b5f80600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561236a576123636064612355601154866127ce90919063ffffffff16565b61284590919063ffffffff16565b90506123e5565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156123e4576123e160646123d3601254866127ce90919063ffffffff16565b61284590919063ffffffff16565b90505b5b5f8111156124e45761243d8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461250190919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124db9190612950565b60405180910390a35b6124f7818461288e90919063ffffffff16565b9150509392505050565b5f80828461250f91906131fe565b905083811015612554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254b9061327b565b60405180910390fd5b8091505092915050565b5f600267ffffffffffffffff81111561257a57612579613299565b5b6040519080825280602002602001820160405280156125a85781602001602082028036833780820191505090505b50905030815f815181106125bf576125be6132c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612663573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126879190613307565b8160018151811061269b5761269a6132c6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506127013060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561161a565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8486426040518663ffffffff1660e01b8152600401612763959493929190613422565b5f604051808303815f87803b15801561277a575f80fd5b505af115801561278c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a783826040516127c192919061347a565b60405180910390a1505050565b5f8083036127de575f905061283f565b5f82846127eb91906134a8565b90508284826127fa9190613516565b1461283a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612831906135b6565b60405180910390fd5b809150505b92915050565b5f61288683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128d7565b905092915050565b5f6128cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e25565b905092915050565b5f808311829061291d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291491906129f3565b60405180910390fd5b505f838561292b9190613516565b9050809150509392505050565b5f819050919050565b61294a81612938565b82525050565b5f6020820190506129635f830184612941565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129a0578082015181840152602081019050612985565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6129c582612969565b6129cf8185612973565b93506129df818560208601612983565b6129e8816129ab565b840191505092915050565b5f6020820190508181035f830152612a0b81846129bb565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612a55612a50612a4b84612a13565b612a32565b612a13565b9050919050565b5f612a6682612a3b565b9050919050565b5f612a7782612a5c565b9050919050565b612a8781612a6d565b82525050565b5f602082019050612aa05f830184612a7e565b92915050565b5f80fd5b5f612ab482612a13565b9050919050565b612ac481612aaa565b8114612ace575f80fd5b50565b5f81359050612adf81612abb565b92915050565b612aee81612938565b8114612af8575f80fd5b50565b5f81359050612b0981612ae5565b92915050565b5f8060408385031215612b2557612b24612aa6565b5b5f612b3285828601612ad1565b9250506020612b4385828601612afb565b9150509250929050565b5f8115159050919050565b612b6181612b4d565b82525050565b5f602082019050612b7a5f830184612b58565b92915050565b5f805f60608486031215612b9757612b96612aa6565b5b5f612ba486828701612ad1565b9350506020612bb586828701612ad1565b9250506040612bc686828701612afb565b9150509250925092565b612bd981612aaa565b82525050565b5f602082019050612bf25f830184612bd0565b92915050565b5f60ff82169050919050565b612c0d81612bf8565b82525050565b5f602082019050612c265f830184612c04565b92915050565b5f60208284031215612c4157612c40612aa6565b5b5f612c4e84828501612ad1565b91505092915050565b5f8060408385031215612c6d57612c6c612aa6565b5b5f612c7a85828601612afb565b9250506020612c8b85828601612afb565b9150509250929050565b612c9e81612b4d565b8114612ca8575f80fd5b50565b5f81359050612cb981612c95565b92915050565b5f805f60608486031215612cd657612cd5612aa6565b5b5f612ce386828701612afb565b9350506020612cf486828701612cab565b9250506040612d0586828701612cab565b9150509250925092565b5f8060408385031215612d2557612d24612aa6565b5b5f612d3285828601612ad1565b9250506020612d4385828601612ad1565b9150509250929050565b5f8060408385031215612d6357612d62612aa6565b5b5f612d7085828601612ad1565b9250506020612d8185828601612cab565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612dcf57607f821691505b602082108103612de257612de1612d8b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612e1c602083612973565b9150612e2782612de8565b602082019050919050565b5f6020820190508181035f830152612e4981612e10565b9050919050565b7f556e617574686f72697a656421000000000000000000000000000000000000005f82015250565b5f612e84600d83612973565b9150612e8f82612e50565b602082019050919050565b5f6020820190508181035f830152612eb181612e78565b9050919050565b5f604082019050612ecb5f830185612bd0565b612ed86020830184612941565b9392505050565b5f81519050919050565b5f81905092915050565b5f612efd82612edf565b612f078185612ee9565b9350612f17818560208601612983565b80840191505092915050565b5f612f2e8284612ef3565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f612f6d601483612973565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b50565b5f612faf5f83612ee9565b9150612fba82612fa1565b5f82019050919050565b5f612fce82612fa4565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61300c601483612973565b915061301782612fd8565b602082019050919050565b5f6020820190508181035f83015261303981613000565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61309a602683612973565b91506130a582613040565b604082019050919050565b5f6020820190508181035f8301526130c78161308e565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613102601383612973565b915061310d826130ce565b602082019050919050565b5f6020820190508181035f83015261312f816130f6565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f61316a600e83612973565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131d582612938565b91506131e083612938565b92508282039050818111156131f8576131f761319e565b5b92915050565b5f61320882612938565b915061321383612938565b925082820190508082111561322b5761322a61319e565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613265601b83612973565b915061327082613231565b602082019050919050565b5f6020820190508181035f83015261329281613259565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061330181612abb565b92915050565b5f6020828403121561331c5761331b612aa6565b5b5f613329848285016132f3565b91505092915050565b5f819050919050565b5f61335561335061334b84613332565b612a32565b612938565b9050919050565b6133658161333b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61339d81612aaa565b82525050565b5f6133ae8383613394565b60208301905092915050565b5f602082019050919050565b5f6133d08261336b565b6133da8185613375565b93506133e583613385565b805f5b838110156134155781516133fc88826133a3565b9750613407836133ba565b9250506001810190506133e8565b5085935050505092915050565b5f60a0820190506134355f830188612941565b613442602083018761335c565b818103604083015261345481866133c6565b90506134636060830185612bd0565b6134706080830184612941565b9695505050505050565b5f60408201905061348d5f830185612941565b818103602083015261349f81846133c6565b90509392505050565b5f6134b282612938565b91506134bd83612938565b92508282026134cb81612938565b915082820484148315176134e2576134e161319e565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61352082612938565b915061352b83612938565b92508261353b5761353a6134e9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135a0602183612973565b91506135ab82613546565b604082019050919050565b5f6020820190508181035f8301526135cd81613594565b905091905056fea2646970667358221220767c5e82407afef0a1387ee96bb649a14ea6b6a0ca7e4286c28a31c0bd8e364664736f6c63430008160033

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

00000000000000000000000038cefd8f2ef8049f6c58f7d55e6c30fa95f440c0

-----Decoded View---------------
Arg [0] : _marketing (address): 0x38CEfd8F2ef8049F6C58f7D55e6C30fA95f440C0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000038cefd8f2ef8049f6c58f7d55e6c30fa95f440c0


Deployed Bytecode Sourcemap

4545:10069:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5431:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7295:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5728:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7962:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7572:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8781:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7481:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5263:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5667:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13727:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5206:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13400:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14258:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5584:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5510:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7680:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2301:94;;;;;;;;;;;;;:::i;:::-;;14132:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13871:119;;;;;;;;;;;;;:::i;:::-;;4921:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5001:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5374:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1992:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7386;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8606:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14380:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5315:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5696:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7811:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13998:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13150:242;;;;;;;;;;;;;:::i;:::-;;5547:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5766:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5623:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5431:60;;;;:::o;7295:83::-;7332:13;7365:5;7358:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7295:83;:::o;5728:31::-;;;;;;;;;;;;;:::o;7962:161::-;8037:4;8054:39;8063:12;:10;:12::i;:::-;8077:7;8086:6;8054:8;:39::i;:::-;8111:4;8104:11;;7962:161;;;;:::o;7572:100::-;7625:7;7652:12;;7645:19;;7572:100;:::o;8781:297::-;8879:4;8896:36;8906:6;8914:9;8925:6;8896:9;:36::i;:::-;;8943:105;8952:6;8960:12;:10;:12::i;:::-;8974:73;9012:6;8974:73;;;;;;;;;;;;;;;;;:11;:19;8986:6;8974:19;;;;;;;;;;;;;;;:33;8994:12;:10;:12::i;:::-;8974:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;8943:8;:105::i;:::-;9066:4;9059:11;;8781:297;;;;;:::o;5817:81::-;;;:::o;7481:83::-;7522:5;7547:9;;;;;;;;;;;7540:16;;7481:83;:::o;5263:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;5667:22::-;;;;:::o;13727:136::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13817:8:::1;13808:6;:17;;;;13846:9;13836:7;:19;;;;13727:136:::0;;:::o;5206:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;13400:319::-;13493:17;;;;;;;;;;;13479:31;;:10;:31;;;13471:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13539:12;13565:6;13557:20;;13632:17;;;;;;;;;;;13651:7;13578:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13557:103;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13538:122;;;13679:7;13671:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;13460:259;13400:319;;:::o;14258:114::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14354:10:::1;14336:15;;:28;;;;;;;;;;;;;;;;;;14258:114:::0;:::o;5584:32::-;;;;;;;;;;;;;:::o;5510:30::-;;;;;;;;;;;;;:::o;7680:123::-;7746:7;7772:9;:18;7782:7;7772:18;;;;;;;;;;;;;;;;7765:25;;7680:123;;;:::o;2301:94::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2366:21:::1;2384:1;2366:9;:21::i;:::-;2301:94::o:0;14132:118::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14232:10:::1;14212:17;;:30;;;;;;;;;;;;;;;;;;14132:118:::0;:::o;13871:119::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13941:5:::1;13925:13;;:21;;;;;;;;;;;;;;;;;;13977:5;13957:16;;:25;;;;;;;;;;;;;;;;;;13871:119::o:0;4921:61::-;;;;:::o;5001:58::-;;;;:::o;5374:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;1992:87::-;2038:7;2065:6;;;;;;;;;;;2058:13;;1992:87;:::o;7386:::-;7425:13;7458:7;7451:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7386:87;:::o;8606:167::-;8684:4;8701:42;8711:12;:10;:12::i;:::-;8725:9;8736:6;8701:9;:42::i;:::-;;8761:4;8754:11;;8606:167;;;;:::o;14380:229::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14523:8:::1;14509:11;;:22;;;;;;;;;;;;;;;;;;14556:8;14542:11;;:22;;;;;;;;;;;;;;;;;;14591:10;14575:13;:26;;;;14380:229:::0;;;:::o;5315:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5696:23::-;;;;:::o;7811:143::-;7892:7;7919:11;:18;7931:5;7919:18;;;;;;;;;;;;;;;:27;7938:7;7919:27;;;;;;;;;;;;;;;;7912:34;;7811:143;;;;:::o;13998:122::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14105:7:::1;14079:17;:23;14097:4;14079:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13998:122:::0;;:::o;13150:242::-;13216:17;;;;;;;;;;;13202:31;;:10;:31;;;13194:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13262:7;13282:17;;;;;;;;;;;13274:31;;13313:21;13274:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13261:78;;;13358:2;13350:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;13182:210;13150:242::o;5547:30::-;;;;;;;;;;;;;:::o;5766:22::-;;;;;;;;;;;;;:::o;2403:229::-;2224:12;:10;:12::i;:::-;2213:23;;:7;:5;:7::i;:::-;:23;;;2205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2526:1:::1;2506:22;;:8;:22;;::::0;2484:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2605:19;2615:8;2605:9;:19::i;:::-;2403:229:::0;:::o;5623:35::-;;;;;;;;;;;;;:::o;668:98::-;721:7;748:10;741:17;;668:98;:::o;8131:382::-;8237:1;8220:19;;:5;:19;;;8216:91;;8292:1;8263:32;;;;;;;;;;;:::i;:::-;;;;;;;;8216:91;8340:1;8321:21;;:7;:21;;;8317:92;;8394:1;8366:31;;;;;;;;;;;:::i;:::-;;;;;;;;8317:92;8451:6;8421:11;:18;8433:5;8421:18;;;;;;;;;;;;;;;:27;8440:7;8421:27;;;;;;;;;;;;;;;:36;;;;8489:7;8473:32;;8482:5;8473:32;;;8498:6;8473:32;;;;;;:::i;:::-;;;;;;;;8131:382;;;:::o;9086:1777::-;9173:4;9214:1;9196:20;;:6;:20;;;9192:90;;9267:1;9240:30;;;;;;;;;;;:::i;:::-;;;;;;;;9192:90;9317:1;9296:23;;:9;:23;;;9292:95;;9372:1;9343:32;;;;;;;;;;;:::i;:::-;;;;;;;;9292:95;9410:1;9400:6;:11;9397:69;;9435:19;;;;;;;;;;;;;;9397:69;9486:6;;;;;;;;;;9482:1372;;;9516:41;9531:6;9539:9;9550:6;9516:14;:41::i;:::-;9509:48;;;;9482:1372;9601:28;9632:24;9650:4;9632:9;:24::i;:::-;9601:55;;9671:28;9726:13;;9702:20;:37;;9671:68;;9778:23;:52;;;;;9824:6;;;;;;;;;;9823:7;9778:52;:95;;;;;9853:12;:20;9866:6;9853:20;;;;;;;;;;;;;;;;;;;;;;;;;9852:21;9778:95;:128;;;;;9895:11;;;;;;;;;;;9778:128;:175;;;;;9928:17;:25;9946:6;9928:25;;;;;;;;;;;;;;;;;;;;;;;;;9927:26;9778:175;:225;;;;;9975:17;:28;9993:9;9975:28;;;;;;;;;;;;;;;;;;;;;;;;;9974:29;9778:225;9756:332;;;10042:30;10051:20;10042:8;:30::i;:::-;9756:332;10108:15;:23;10124:6;10108:23;;;;;;;;;;;;;;;;;;;;;;;;;10107:24;:55;;;;;10136:15;:26;10152:9;10136:26;;;;;;;;;;;;;;;;;;;;;;;;;10135:27;10107:55;:72;;;;;10166:13;;;;;;;;;;;10107:72;10104:166;;;10218:12;;10208:6;:22;;10200:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;10104:166;10319:53;10341:6;10319:53;;;;;;;;;;;;;;;;;:9;:17;10329:6;10319:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10299:9;:17;10309:6;10299:17;;;;;;;;;;;;;;;:73;;;;10389:19;10411:34;10428:6;10435:9;10411:16;:34::i;:::-;:80;;10457:34;10465:6;10473:9;10484:6;10457:7;:34::i;:::-;10411:80;;;10448:6;10411:80;10389:102;;10511:16;;;;;;;;;;;:51;;;;;10532:19;:30;10552:9;10532:30;;;;;;;;;;;;;;;;;;;;;;;;;10531:31;10511:51;10508:168;;;10632:10;;10591:37;10616:11;10591:20;10601:9;10591;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;10583:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:168;10715:37;10740:11;10715:9;:20;10725:9;10715:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;10692:9;:20;10702:9;10692:20;;;;;;;;;;;;;;;:60;;;;10791:9;10774:40;;10783:6;10774:40;;;10802:11;10774:40;;;;;;:::i;:::-;;;;;;;;10836:4;10829:11;;;;;9086:1777;;;;;;:::o;3179:192::-;3265:7;3298:1;3293;:6;;3301:12;3285:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3325:9;3341:1;3337;:5;;;;:::i;:::-;3325:17;;3362:1;3355:8;;;3179:192;;;;;:::o;2640:173::-;2696:16;2715:6;;;;;;;;;;;2696:25;;2741:8;2732:6;;:17;;;;;;;;;;;;;;;;;;2796:8;2765:40;;2786:8;2765:40;;;;;;;;;;;;2685:128;2640:173;:::o;10871:330::-;10964:4;11001:53;11023:6;11001:53;;;;;;;;;;;;;;;;;:9;:17;11011:6;11001:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10981:9;:17;10991:6;10981:17;;;;;;;;;;;;;;;:73;;;;11088:32;11113:6;11088:9;:20;11098:9;11088:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11065:9;:20;11075:9;11065:20;;;;;;;;;;;;;;;:55;;;;11153:9;11136:35;;11145:6;11136:35;;;11164:6;11136:35;;;;;;:::i;:::-;;;;;;;;11189:4;11182:11;;10871:330;;;;;:::o;12268:190::-;5947:4;5938:6;;:13;;;;;;;;;;;;;;;;;;12342:11:::1;;;;;;;;;;;12339:47;;;12373:13;;12355:31;;12339:47;12399:49;12416:15;12432;;;;;;;;;;;12399:16;:49::i;:::-;5983:5:::0;5974:6;;:14;;;;;;;;;;;;;;;;;;12268:190;:::o;11213:369::-;11297:4;11317:17;:25;11335:6;11317:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;11346:17;:28;11364:9;11346:28;;;;;;;;;;;;;;;;;;;;;;;;;11317:57;11314:261;;;11398:4;11391:11;;;;11314:261;11433:12;:20;11446:6;11433:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;11457:12;:23;11470:9;11457:23;;;;;;;;;;;;;;;;;;;;;;;;;11433:47;11429:146;;;11504:5;11497:12;;;;11429:146;11558:5;11551:12;;11213:369;;;;;:::o;11590:668::-;11676:7;11706:14;11763:12;:20;11776:6;11763:20;;;;;;;;;;;;;;;;;;;;;;;;;11760:224;;;11817:27;11840:3;11817:18;11828:6;;11817;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;11805:39;;11760:224;;;11883:12;:23;11896:9;11883:23;;;;;;;;;;;;;;;;;;;;;;;;;11880:104;;;11940:28;11964:3;11940:19;11951:7;;11940:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11928:40;;11880:104;11760:224;12015:1;12003:9;:13;12000:185;;;12064:39;12093:9;12064;:24;12082:4;12064:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12037:9;:24;12055:4;12037:24;;;;;;;;;;;;;;;:66;;;;12152:4;12127:42;;12136:6;12127:42;;;12159:9;12127:42;;;;;;:::i;:::-;;;;;;;;12000:185;12208:21;12219:9;12208:6;:10;;:21;;;;:::i;:::-;12201:28;;;11590:668;;;;;:::o;2846:181::-;2904:7;2924:9;2940:1;2936;:5;;;;:::i;:::-;2924:17;;2965:1;2960;:6;;2952:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3018:1;3011:8;;;2846:181;;;;:::o;12468:674::-;12614:21;12652:1;12638:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12614:40;;12683:4;12665;12670:1;12665:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12709:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12699:4;12704:1;12699:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;12738:56;12755:4;12770:9;;;;;;;;;;;12782:11;12738:8;:56::i;:::-;12833:9;;;;;;;;;;;:60;;;12908:11;12934:1;12978:4;13005:10;13047:15;12833:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13099:35;13116:11;13129:4;13099:35;;;;;;;:::i;:::-;;;;;;;;12543:599;12468:674;;:::o;3379:250::-;3437:7;3466:1;3461;:6;3457:47;;3491:1;3484:8;;;;3457:47;3516:9;3532:1;3528;:5;;;;:::i;:::-;3516:17;;3561:1;3556;3552;:5;;;;:::i;:::-;:10;3544:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3620:1;3613:8;;;3379:250;;;;;:::o;3637:132::-;3695:7;3722:39;3726:1;3729;3722:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3715:46;;3637:132;;;;:::o;3035:136::-;3093:7;3120:43;3124:1;3127;3120:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3113:50;;3035:136;;;;:::o;3777:278::-;3863:7;3895:1;3891;:5;3898:12;3883:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3922:9;3938:1;3934;:5;;;;:::i;:::-;3922:17;;4046:1;4039:8;;;3777:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2950:117::-;3059:1;3056;3049:12;3196:96;3233:7;3262:24;3280:5;3262:24;:::i;:::-;3251:35;;3196:96;;;:::o;3298:122::-;3371:24;3389:5;3371:24;:::i;:::-;3364:5;3361:35;3351:63;;3410:1;3407;3400:12;3351:63;3298:122;:::o;3426:139::-;3472:5;3510:6;3497:20;3488:29;;3526:33;3553:5;3526:33;:::i;:::-;3426:139;;;;:::o;3571:122::-;3644:24;3662:5;3644:24;:::i;:::-;3637:5;3634:35;3624:63;;3683:1;3680;3673:12;3624:63;3571:122;:::o;3699:139::-;3745:5;3783:6;3770:20;3761:29;;3799:33;3826:5;3799:33;:::i;:::-;3699:139;;;;:::o;3844:474::-;3912:6;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;3844:474;;;;;:::o;4324:90::-;4358:7;4401:5;4394:13;4387:21;4376:32;;4324:90;;;:::o;4420:109::-;4501:21;4516:5;4501:21;:::i;:::-;4496:3;4489:34;4420:109;;:::o;4535:210::-;4622:4;4660:2;4649:9;4645:18;4637:26;;4673:65;4735:1;4724:9;4720:17;4711:6;4673:65;:::i;:::-;4535:210;;;;:::o;4751:619::-;4828:6;4836;4844;4893:2;4881:9;4872:7;4868:23;4864:32;4861:119;;;4899:79;;:::i;:::-;4861:119;5019:1;5044:53;5089:7;5080:6;5069:9;5065:22;5044:53;:::i;:::-;5034:63;;4990:117;5146:2;5172:53;5217:7;5208:6;5197:9;5193:22;5172:53;:::i;:::-;5162:63;;5117:118;5274:2;5300:53;5345:7;5336:6;5325:9;5321:22;5300:53;:::i;:::-;5290:63;;5245:118;4751:619;;;;;:::o;5376:118::-;5463:24;5481:5;5463:24;:::i;:::-;5458:3;5451:37;5376:118;;:::o;5500:222::-;5593:4;5631:2;5620:9;5616:18;5608:26;;5644:71;5712:1;5701:9;5697:17;5688:6;5644:71;:::i;:::-;5500:222;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:474::-;6561:6;6569;6618:2;6606:9;6597:7;6593:23;6589:32;6586:119;;;6624:79;;:::i;:::-;6586:119;6744:1;6769:53;6814:7;6805:6;6794:9;6790:22;6769:53;:::i;:::-;6759:63;;6715:117;6871:2;6897:53;6942:7;6933:6;6922:9;6918:22;6897:53;:::i;:::-;6887:63;;6842:118;6493:474;;;;;:::o;6973:116::-;7043:21;7058:5;7043:21;:::i;:::-;7036:5;7033:32;7023:60;;7079:1;7076;7069:12;7023:60;6973:116;:::o;7095:133::-;7138:5;7176:6;7163:20;7154:29;;7192:30;7216:5;7192:30;:::i;:::-;7095:133;;;;:::o;7234:607::-;7305:6;7313;7321;7370:2;7358:9;7349:7;7345:23;7341:32;7338:119;;;7376:79;;:::i;:::-;7338:119;7496:1;7521:53;7566:7;7557:6;7546:9;7542:22;7521:53;:::i;:::-;7511:63;;7467:117;7623:2;7649:50;7691:7;7682:6;7671:9;7667:22;7649:50;:::i;:::-;7639:60;;7594:115;7748:2;7774:50;7816:7;7807:6;7796:9;7792:22;7774:50;:::i;:::-;7764:60;;7719:115;7234:607;;;;;:::o;7847:474::-;7915:6;7923;7972:2;7960:9;7951:7;7947:23;7943:32;7940:119;;;7978:79;;:::i;:::-;7940:119;8098:1;8123:53;8168:7;8159:6;8148:9;8144:22;8123:53;:::i;:::-;8113:63;;8069:117;8225:2;8251:53;8296:7;8287:6;8276:9;8272:22;8251:53;:::i;:::-;8241:63;;8196:118;7847:474;;;;;:::o;8327:468::-;8392:6;8400;8449:2;8437:9;8428:7;8424:23;8420:32;8417:119;;;8455:79;;:::i;:::-;8417:119;8575:1;8600:53;8645:7;8636:6;8625:9;8621:22;8600:53;:::i;:::-;8590:63;;8546:117;8702:2;8728:50;8770:7;8761:6;8750:9;8746:22;8728:50;:::i;:::-;8718:60;;8673:115;8327:468;;;;;:::o;8801:180::-;8849:77;8846:1;8839:88;8946:4;8943:1;8936:15;8970:4;8967:1;8960:15;8987:320;9031:6;9068:1;9062:4;9058:12;9048:22;;9115:1;9109:4;9105:12;9136:18;9126:81;;9192:4;9184:6;9180:17;9170:27;;9126:81;9254:2;9246:6;9243:14;9223:18;9220:38;9217:84;;9273:18;;:::i;:::-;9217:84;9038:269;8987:320;;;:::o;9313:182::-;9453:34;9449:1;9441:6;9437:14;9430:58;9313:182;:::o;9501:366::-;9643:3;9664:67;9728:2;9723:3;9664:67;:::i;:::-;9657:74;;9740:93;9829:3;9740:93;:::i;:::-;9858:2;9853:3;9849:12;9842:19;;9501:366;;;:::o;9873:419::-;10039:4;10077:2;10066:9;10062:18;10054:26;;10126:9;10120:4;10116:20;10112:1;10101:9;10097:17;10090:47;10154:131;10280:4;10154:131;:::i;:::-;10146:139;;9873:419;;;:::o;10298:163::-;10438:15;10434:1;10426:6;10422:14;10415:39;10298:163;:::o;10467:366::-;10609:3;10630:67;10694:2;10689:3;10630:67;:::i;:::-;10623:74;;10706:93;10795:3;10706:93;:::i;:::-;10824:2;10819:3;10815:12;10808:19;;10467:366;;;:::o;10839:419::-;11005:4;11043:2;11032:9;11028:18;11020:26;;11092:9;11086:4;11082:20;11078:1;11067:9;11063:17;11056:47;11120:131;11246:4;11120:131;:::i;:::-;11112:139;;10839:419;;;:::o;11264:332::-;11385:4;11423:2;11412:9;11408:18;11400:26;;11436:71;11504:1;11493:9;11489:17;11480:6;11436:71;:::i;:::-;11517:72;11585:2;11574:9;11570:18;11561:6;11517:72;:::i;:::-;11264:332;;;;;:::o;11602:98::-;11653:6;11687:5;11681:12;11671:22;;11602:98;;;:::o;11706:147::-;11807:11;11844:3;11829:18;;11706:147;;;;:::o;11859:386::-;11963:3;11991:38;12023:5;11991:38;:::i;:::-;12045:88;12126:6;12121:3;12045:88;:::i;:::-;12038:95;;12142:65;12200:6;12195:3;12188:4;12181:5;12177:16;12142:65;:::i;:::-;12232:6;12227:3;12223:16;12216:23;;11967:278;11859:386;;;;:::o;12251:271::-;12381:3;12403:93;12492:3;12483:6;12403:93;:::i;:::-;12396:100;;12513:3;12506:10;;12251:271;;;;:::o;12528:170::-;12668:22;12664:1;12656:6;12652:14;12645:46;12528:170;:::o;12704:366::-;12846:3;12867:67;12931:2;12926:3;12867:67;:::i;:::-;12860:74;;12943:93;13032:3;12943:93;:::i;:::-;13061:2;13056:3;13052:12;13045:19;;12704:366;;;:::o;13076:419::-;13242:4;13280:2;13269:9;13265:18;13257:26;;13329:9;13323:4;13319:20;13315:1;13304:9;13300:17;13293:47;13357:131;13483:4;13357:131;:::i;:::-;13349:139;;13076:419;;;:::o;13501:114::-;;:::o;13621:398::-;13780:3;13801:83;13882:1;13877:3;13801:83;:::i;:::-;13794:90;;13893:93;13982:3;13893:93;:::i;:::-;14011:1;14006:3;14002:11;13995:18;;13621:398;;;:::o;14025:379::-;14209:3;14231:147;14374:3;14231:147;:::i;:::-;14224:154;;14395:3;14388:10;;14025:379;;;:::o;14410:170::-;14550:22;14546:1;14538:6;14534:14;14527:46;14410:170;:::o;14586:366::-;14728:3;14749:67;14813:2;14808:3;14749:67;:::i;:::-;14742:74;;14825:93;14914:3;14825:93;:::i;:::-;14943:2;14938:3;14934:12;14927:19;;14586:366;;;:::o;14958:419::-;15124:4;15162:2;15151:9;15147:18;15139:26;;15211:9;15205:4;15201:20;15197:1;15186:9;15182:17;15175:47;15239:131;15365:4;15239:131;:::i;:::-;15231:139;;14958:419;;;:::o;15383:225::-;15523:34;15519:1;15511:6;15507:14;15500:58;15592:8;15587:2;15579:6;15575:15;15568:33;15383:225;:::o;15614:366::-;15756:3;15777:67;15841:2;15836:3;15777:67;:::i;:::-;15770:74;;15853:93;15942:3;15853:93;:::i;:::-;15971:2;15966:3;15962:12;15955:19;;15614:366;;;:::o;15986:419::-;16152:4;16190:2;16179:9;16175:18;16167:26;;16239:9;16233:4;16229:20;16225:1;16214:9;16210:17;16203:47;16267:131;16393:4;16267:131;:::i;:::-;16259:139;;15986:419;;;:::o;16411:169::-;16551:21;16547:1;16539:6;16535:14;16528:45;16411:169;:::o;16586:366::-;16728:3;16749:67;16813:2;16808:3;16749:67;:::i;:::-;16742:74;;16825:93;16914:3;16825:93;:::i;:::-;16943:2;16938:3;16934:12;16927:19;;16586:366;;;:::o;16958:419::-;17124:4;17162:2;17151:9;17147:18;17139:26;;17211:9;17205:4;17201:20;17197:1;17186:9;17182:17;17175:47;17239:131;17365:4;17239:131;:::i;:::-;17231:139;;16958:419;;;:::o;17383:164::-;17523:16;17519:1;17511:6;17507:14;17500:40;17383:164;:::o;17553:366::-;17695:3;17716:67;17780:2;17775:3;17716:67;:::i;:::-;17709:74;;17792:93;17881:3;17792:93;:::i;:::-;17910:2;17905:3;17901:12;17894:19;;17553:366;;;:::o;17925:419::-;18091:4;18129:2;18118:9;18114:18;18106:26;;18178:9;18172:4;18168:20;18164:1;18153:9;18149:17;18142:47;18206:131;18332:4;18206:131;:::i;:::-;18198:139;;17925:419;;;:::o;18350:180::-;18398:77;18395:1;18388:88;18495:4;18492:1;18485:15;18519:4;18516:1;18509:15;18536:194;18576:4;18596:20;18614:1;18596:20;:::i;:::-;18591:25;;18630:20;18648:1;18630:20;:::i;:::-;18625:25;;18674:1;18671;18667:9;18659:17;;18698:1;18692:4;18689:11;18686:37;;;18703:18;;:::i;:::-;18686:37;18536:194;;;;:::o;18736:191::-;18776:3;18795:20;18813:1;18795:20;:::i;:::-;18790:25;;18829:20;18847:1;18829:20;:::i;:::-;18824:25;;18872:1;18869;18865:9;18858:16;;18893:3;18890:1;18887:10;18884:36;;;18900:18;;:::i;:::-;18884:36;18736:191;;;;:::o;18933:177::-;19073:29;19069:1;19061:6;19057:14;19050:53;18933:177;:::o;19116:366::-;19258:3;19279:67;19343:2;19338:3;19279:67;:::i;:::-;19272:74;;19355:93;19444:3;19355:93;:::i;:::-;19473:2;19468:3;19464:12;19457:19;;19116:366;;;:::o;19488:419::-;19654:4;19692:2;19681:9;19677:18;19669:26;;19741:9;19735:4;19731:20;19727:1;19716:9;19712:17;19705:47;19769:131;19895:4;19769:131;:::i;:::-;19761:139;;19488:419;;;:::o;19913:180::-;19961:77;19958:1;19951:88;20058:4;20055:1;20048:15;20082:4;20079:1;20072:15;20099:180;20147:77;20144:1;20137:88;20244:4;20241:1;20234:15;20268:4;20265:1;20258:15;20285:143;20342:5;20373:6;20367:13;20358:22;;20389:33;20416:5;20389:33;:::i;:::-;20285:143;;;;:::o;20434:351::-;20504:6;20553:2;20541:9;20532:7;20528:23;20524:32;20521:119;;;20559:79;;:::i;:::-;20521:119;20679:1;20704:64;20760:7;20751:6;20740:9;20736:22;20704:64;:::i;:::-;20694:74;;20650:128;20434:351;;;;:::o;20791:85::-;20836:7;20865:5;20854:16;;20791:85;;;:::o;20882:158::-;20940:9;20973:61;20991:42;21000:32;21026:5;21000:32;:::i;:::-;20991:42;:::i;:::-;20973:61;:::i;:::-;20960:74;;20882:158;;;:::o;21046:147::-;21141:45;21180:5;21141:45;:::i;:::-;21136:3;21129:58;21046:147;;:::o;21199:114::-;21266:6;21300:5;21294:12;21284:22;;21199:114;;;:::o;21319:184::-;21418:11;21452:6;21447:3;21440:19;21492:4;21487:3;21483:14;21468:29;;21319:184;;;;:::o;21509:132::-;21576:4;21599:3;21591:11;;21629:4;21624:3;21620:14;21612:22;;21509:132;;;:::o;21647:108::-;21724:24;21742:5;21724:24;:::i;:::-;21719:3;21712:37;21647:108;;:::o;21761:179::-;21830:10;21851:46;21893:3;21885:6;21851:46;:::i;:::-;21929:4;21924:3;21920:14;21906:28;;21761:179;;;;:::o;21946:113::-;22016:4;22048;22043:3;22039:14;22031:22;;21946:113;;;:::o;22095:732::-;22214:3;22243:54;22291:5;22243:54;:::i;:::-;22313:86;22392:6;22387:3;22313:86;:::i;:::-;22306:93;;22423:56;22473:5;22423:56;:::i;:::-;22502:7;22533:1;22518:284;22543:6;22540:1;22537:13;22518:284;;;22619:6;22613:13;22646:63;22705:3;22690:13;22646:63;:::i;:::-;22639:70;;22732:60;22785:6;22732:60;:::i;:::-;22722:70;;22578:224;22565:1;22562;22558:9;22553:14;;22518:284;;;22522:14;22818:3;22811:10;;22219:608;;;22095:732;;;;:::o;22833:831::-;23096:4;23134:3;23123:9;23119:19;23111:27;;23148:71;23216:1;23205:9;23201:17;23192:6;23148:71;:::i;:::-;23229:80;23305:2;23294:9;23290:18;23281:6;23229:80;:::i;:::-;23356:9;23350:4;23346:20;23341:2;23330:9;23326:18;23319:48;23384:108;23487:4;23478:6;23384:108;:::i;:::-;23376:116;;23502:72;23570:2;23559:9;23555:18;23546:6;23502:72;:::i;:::-;23584:73;23652:3;23641:9;23637:19;23628:6;23584:73;:::i;:::-;22833:831;;;;;;;;:::o;23670:483::-;23841:4;23879:2;23868:9;23864:18;23856:26;;23892:71;23960:1;23949:9;23945:17;23936:6;23892:71;:::i;:::-;24010:9;24004:4;24000:20;23995:2;23984:9;23980:18;23973:48;24038:108;24141:4;24132:6;24038:108;:::i;:::-;24030:116;;23670:483;;;;;:::o;24159:410::-;24199:7;24222:20;24240:1;24222:20;:::i;:::-;24217:25;;24256:20;24274:1;24256:20;:::i;:::-;24251:25;;24311:1;24308;24304:9;24333:30;24351:11;24333:30;:::i;:::-;24322:41;;24512:1;24503:7;24499:15;24496:1;24493:22;24473:1;24466:9;24446:83;24423:139;;24542:18;;:::i;:::-;24423:139;24207:362;24159:410;;;;:::o;24575:180::-;24623:77;24620:1;24613:88;24720:4;24717:1;24710:15;24744:4;24741:1;24734:15;24761:185;24801:1;24818:20;24836:1;24818:20;:::i;:::-;24813:25;;24852:20;24870:1;24852:20;:::i;:::-;24847:25;;24891:1;24881:35;;24896:18;;:::i;:::-;24881:35;24938:1;24935;24931:9;24926:14;;24761:185;;;;:::o;24952:220::-;25092:34;25088:1;25080:6;25076:14;25069:58;25161:3;25156:2;25148:6;25144:15;25137:28;24952:220;:::o;25178:366::-;25320:3;25341:67;25405:2;25400:3;25341:67;:::i;:::-;25334:74;;25417:93;25506:3;25417:93;:::i;:::-;25535:2;25530:3;25526:12;25519:19;;25178:366;;;:::o;25550:419::-;25716:4;25754:2;25743:9;25739:18;25731:26;;25803:9;25797:4;25793:20;25789:1;25778:9;25774:17;25767:47;25831:131;25957:4;25831:131;:::i;:::-;25823:139;;25550:419;;;:::o

Swarm Source

ipfs://767c5e82407afef0a1387ee96bb649a14ea6b6a0ca7e4286c28a31c0bd8e3646
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.