ETH Price: $2,356.51 (+3.61%)

Token

Valentine ($VAL)
 

Overview

Max Total Supply

10,000,000 $VAL

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 $VAL

Value
$0.00
0x932Fba281dD1a9d1D3312BbC84D48eB78968Ec31
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:
Valentine

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-12
*/

// SPDX-License-Identifier: MIT

// Twitter: https://x.com/val_on_eth_/
// Telegram: https://t.me/VAL_ON_ETH
// Website: https://www.myval.xyz/airdrop 


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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

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

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    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;
}


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

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract Valentine is ERC20, Ownable{
    using Address for address payable;
        
    mapping (address user => bool status) private isExcludedFromFees;
    mapping (address user => bool status) private isBlacklisted;
    mapping (address user => uint256 timestamp) public lastTrade;
    
    IRouter public router;
    address public pair;
    address private marketingWallet = 0x16476eb731B48efC593Ed3eCC0db26291d338aba;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    
    uint256 public swapThreshold = 5273 * 10**9;
    uint256 public maxWallet = 10000000 * 10**9;
    uint256 public maxTx = 10000000 * 10**9;
    uint256 public delay;
    
    struct Taxes {
        uint256 buy;
        uint256 sell;
        uint256 transfer;
    }

    Taxes public taxes = Taxes(10,30,0);

    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
  
    constructor(address _router) ERC20("Valentine", "$VAL") {
        _mint(msg.sender, 10000000 * 10 ** 9);

        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());


        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[msg.sender] = true;
        isExcludedFromFees[marketingWallet] = true;

        _approve(address(this), address(router), type(uint256).max);
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) {
            super._transfer(sender, recipient, amount);
            return;
        }

        else{
            require(tradingEnabled, "Trading not enabled");
            require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
            if(sender != pair) {
                require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[sender] = block.timestamp;
            }
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded");
                require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[recipient] = block.timestamp;
            }
        }
        
        uint256 fees;

        if(recipient == pair) fees = amount * taxes.sell / 100;
        else if(sender == pair) fees = amount * taxes.buy / 100;
        else fees = amount * taxes.transfer / 100; 

        if (swapEnabled && sender != pair && !swapping) swapFees();

        super._transfer(sender, recipient, amount - fees);
        if(fees > 0){
            super._transfer(sender, address(this), fees);
        }
    }

function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(swapThreshold);
            uint256 deltaBalance = address(this).balance - initialBalance;
            payable(marketingWallet).sendValue(deltaBalance);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function setSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function setSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
    
    function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner {
        require(_buyTax <= 69 && _sellTax <= 69 && _transferTax <= 69, "Taxes too high");
        taxes = Taxes (_buyTax, _sellTax, _transferTax); 
    }
    
    function setRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
    
    function valentine() external onlyOwner{
        tradingEnabled = true;
        swapEnabled = true;
        taxes.transfer = 0;
    }
 
    function removeLimits() external onlyOwner{
        maxTx = totalSupply();
        maxWallet = totalSupply();
        taxes.transfer = 0;
    }

    function setDelay(uint256 time) external onlyOwner{
        delay = time;
    }

    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        maxTx = _maxTx * 10**9;
        maxWallet = _maxWallet * 10**9;
    }
    
    function updateToken(address newwallet) external onlyOwner{
        marketingWallet = newwallet;
    }

    function setIsExcludedFromFees(address _address, bool state) external onlyOwner {
        isExcludedFromFees[_address] = state;
    }
    
    function bulkIsExcludedFromFees(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isExcludedFromFees[accounts[i]] = state;
        }
    }

    function setBlacklist(address[] memory accounts, bool status) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isBlacklisted[accounts[i]] = status;
        }
    }

    function rescueETH(uint256 weiAmount) external{
        payable(marketingWallet).sendValue(weiAmount);
    }
    
    function rescueERC20(address tokenAdd, uint256 amount) external{
        IERC20(tokenAdd).transfer(marketingWallet, amount);
    }

    // fallbacks
    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newwallet","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"valentine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040527316476eb731b48efc593ed3ecc0db26291d338aba600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506504cbb74aba00600c55662386f26fc10000600d55662386f26fc10000600e556040518060600160405280600a8152602001601e8152602001600081525060106000820151816000015560208201518160010155604082015181600201555050348015620000c657600080fd5b506040516200476c3803806200476c8339818101604052810190620000ec9190620009e7565b6040518060400160405280600981526020017f56616c656e74696e6500000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f2456414c00000000000000000000000000000000000000000000000000000000815250816003908162000169919062000c93565b5080600490816200017b919062000c93565b5050506200019e620001926200056760201b60201c565b6200056f60201b60201c565b620001b733662386f26fc100006200063560201b60201c565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c9190620009e7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000316573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033c9190620009e7565b6040518363ffffffff1660e01b81526004016200035b92919062000d8b565b6020604051808303816000875af11580156200037b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a19190620009e7565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200056030600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007a260201b60201c565b5062001003565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069e9062000e19565b60405180910390fd5b620006bb600083836200097360201b60201c565b8060026000828254620006cf919062000e6a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000782919062000eb6565b60405180910390a36200079e600083836200097860201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000814576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200080b9062000f49565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000886576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200087d9062000fe1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000966919062000eb6565b60405180910390a3505050565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009af8262000982565b9050919050565b620009c181620009a2565b8114620009cd57600080fd5b50565b600081519050620009e181620009b6565b92915050565b60006020828403121562000a0057620009ff6200097d565b5b600062000a1084828501620009d0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9b57607f821691505b60208210810362000ab15762000ab062000a53565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000adc565b62000b27868362000adc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b7462000b6e62000b688462000b3f565b62000b49565b62000b3f565b9050919050565b6000819050919050565b62000b908362000b53565b62000ba862000b9f8262000b7b565b84845462000ae9565b825550505050565b600090565b62000bbf62000bb0565b62000bcc81848462000b85565b505050565b5b8181101562000bf45762000be860008262000bb5565b60018101905062000bd2565b5050565b601f82111562000c435762000c0d8162000ab7565b62000c188462000acc565b8101602085101562000c28578190505b62000c4062000c378562000acc565b83018262000bd1565b50505b505050565b600082821c905092915050565b600062000c686000198460080262000c48565b1980831691505092915050565b600062000c83838362000c55565b9150826002028217905092915050565b62000c9e8262000a19565b67ffffffffffffffff81111562000cba5762000cb962000a24565b5b62000cc6825462000a82565b62000cd382828562000bf8565b600060209050601f83116001811462000d0b576000841562000cf6578287015190505b62000d02858262000c75565b86555062000d72565b601f19841662000d1b8662000ab7565b60005b8281101562000d455784890151825560018201915060208501945060208101905062000d1e565b8683101562000d65578489015162000d61601f89168262000c55565b8355505b6001600288020188555050505b505050505050565b62000d8581620009a2565b82525050565b600060408201905062000da2600083018562000d7a565b62000db1602083018462000d7a565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e01601f8362000db8565b915062000e0e8262000dc9565b602082019050919050565b6000602082019050818103600083015262000e348162000df2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e778262000b3f565b915062000e848362000b3f565b925082820190508082111562000e9f5762000e9e62000e3b565b5b92915050565b62000eb08162000b3f565b82525050565b600060208201905062000ecd600083018462000ea5565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000f3160248362000db8565b915062000f3e8262000ed3565b604082019050919050565b6000602082019050818103600083015262000f648162000f22565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000fc960228362000db8565b915062000fd68262000f6b565b604082019050919050565b6000602082019050818103600083015262000ffc8162000fba565b9050919050565b61375980620010136000396000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063c26d7be0116100ab578063e9dae5ed1161006f578063e9dae5ed14610814578063efb95cd11461083d578063f2fde38b14610854578063f887ea401461087d578063f8b45b05146108a857610230565b8063c26d7be01461071f578063c4590d3f1461075c578063dd62ed3e14610785578063e01af92c146107c2578063e177246e146107eb57610230565b8063a8aa1b31116100f2578063a8aa1b311461063c578063a8f43a6014610667578063a9059cbb14610690578063adf18693146106cd578063b5d7ab9a146106f657610230565b80638da5cb5b1461058057806395d89b41146105ab5780639e252f00146105d6578063a457c2d7146105ff57610230565b80634ada218b116101b1578063728f8eea11610175578063728f8eea146104bf5780637437681e146104ec578063751039fc146105175780637ad3def21461052e5780638cd4426d1461055757610230565b80634ada218b146103ea5780636a42b8f8146104155780636ddd17131461044057806370a082311461046b578063715018a6146104a857610230565b806318160ddd116101f857806318160ddd146102f157806323b872dd1461031c578063255f40b614610359578063313ce5671461038257806339509351146103ad57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780630e85d1e3146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b604051610257919061239b565b60405180910390f35b34801561026c57600080fd5b506102756108d9565b6040516102829190612446565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612506565b61096b565b6040516102bf9190612561565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906126f0565b61098e565b005b3480156102fd57600080fd5b50610306610a2b565b604051610313919061239b565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e919061274c565b610a35565b6040516103509190612561565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b919061279f565b610a64565b005b34801561038e57600080fd5b50610397610b1d565b6040516103a491906127fb565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190612506565b610b26565b6040516103e19190612561565b60405180910390f35b3480156103f657600080fd5b506103ff610b5d565b60405161040c9190612561565b60405180910390f35b34801561042157600080fd5b5061042a610b70565b604051610437919061239b565b60405180910390f35b34801561044c57600080fd5b50610455610b76565b6040516104629190612561565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612816565b610b89565b60405161049f919061239b565b60405180910390f35b3480156104b457600080fd5b506104bd610bd1565b005b3480156104cb57600080fd5b506104d4610be5565b6040516104e393929190612843565b60405180910390f35b3480156104f857600080fd5b50610501610bfd565b60405161050e919061239b565b60405180910390f35b34801561052357600080fd5b5061052c610c03565b005b34801561053a57600080fd5b5061055560048036038101906105509190612816565b610c34565b005b34801561056357600080fd5b5061057e60048036038101906105799190612506565b610c80565b005b34801561058c57600080fd5b50610595610d25565b6040516105a29190612889565b60405180910390f35b3480156105b757600080fd5b506105c0610d4f565b6040516105cd9190612446565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f891906128a4565b610de1565b005b34801561060b57600080fd5b5061062660048036038101906106219190612506565b610e2f565b6040516106339190612561565b60405180910390f35b34801561064857600080fd5b50610651610ea6565b60405161065e9190612889565b60405180910390f35b34801561067357600080fd5b5061068e600480360381019061068991906126f0565b610ecc565b005b34801561069c57600080fd5b506106b760048036038101906106b29190612506565b610f69565b6040516106c49190612561565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef91906128d1565b610f8c565b005b34801561070257600080fd5b5061071d600480360381019061071891906128a4565b610fef565b005b34801561072b57600080fd5b5061074660048036038101906107419190612816565b611010565b604051610753919061239b565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e9190612911565b611028565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061279f565b611060565b6040516107b9919061239b565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190612951565b6110e7565b005b3480156107f757600080fd5b50610812600480360381019061080d91906128a4565b61110c565b005b34801561082057600080fd5b5061083b6004803603810190610836919061297e565b61111e565b005b34801561084957600080fd5b506108526111c7565b005b34801561086057600080fd5b5061087b60048036038101906108769190612816565b611212565b005b34801561088957600080fd5b50610892611295565b60405161089f9190612a30565b60405180910390f35b3480156108b457600080fd5b506108bd6112bb565b6040516108ca919061239b565b60405180910390f35b600c5481565b6060600380546108e890612a7a565b80601f016020809104026020016040519081016040528092919081815260200182805461091490612a7a565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b6000806109766112c1565b90506109838185856112c9565b600191505092915050565b610996611492565b60005b8251811015610a265781600760008584815181106109ba576109b9612aab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1e90612b09565b915050610999565b505050565b6000600254905090565b600080610a406112c1565b9050610a4d858285611510565b610a5885858561159c565b60019150509392505050565b610a6c611492565b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6112c9565b5050565b60006009905090565b600080610b316112c1565b9050610b52818585610b438589611060565b610b4d9190612b51565b6112c9565b600191505092915050565b600b60169054906101000a900460ff1681565b600f5481565b600b60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd9611492565b610be36000611c60565b565b60108060000154908060010154908060020154905083565b600e5481565b610c0b611492565b610c13610a2b565b600e81905550610c21610a2b565b600d819055506000601060020181905550565b610c3c611492565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cdd929190612b85565b6020604051808303816000875af1158015610cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d209190612bc3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d5e90612a7a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8a90612a7a565b8015610dd75780601f10610dac57610100808354040283529160200191610dd7565b820191906000526020600020905b815481529060010190602001808311610dba57829003601f168201915b5050505050905090565b610e2c81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2690919063ffffffff16565b50565b600080610e3a6112c1565b90506000610e488286611060565b905083811015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490612c62565b60405180910390fd5b610e9a82868684036112c9565b60019250505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ed4611492565b60005b8251811015610f64578160066000858481518110610ef857610ef7612aab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5c90612b09565b915050610ed7565b505050565b600080610f746112c1565b9050610f8181858561159c565b600191505092915050565b610f94611492565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ff7611492565b633b9aca00816110079190612c82565b600c8190555050565b60086020528060005260406000206000915090505481565b611030611492565b633b9aca00826110409190612c82565b600e81905550633b9aca00816110569190612c82565b600d819055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110ef611492565b80600b60156101000a81548160ff02191690831515021790555050565b611114611492565b80600f8190555050565b611126611492565b60458311158015611138575060458211155b8015611145575060458111155b611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612d10565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6111cf611492565b6001600b60166101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff0219169083151502179055506000601060020181905550565b61121a611492565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612da2565b60405180910390fd5b61129281611c60565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612ec6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611485919061239b565b60405180910390a3505050565b61149a6112c1565b73ffffffffffffffffffffffffffffffffffffffff166114b8610d25565b73ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590612f32565b60405180910390fd5b565b600061151c8484611060565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115965781811015611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612f9e565b60405180910390fd5b61159584848484036112c9565b5b50505050565b600081116115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690613030565b60405180910390fd5b600b60149054906101000a900460ff16806116435750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116975750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ac576116a7838383611e1a565b611c5b565b600b60169054906101000a900460ff166116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29061309c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561179f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613108565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119075742600f54600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819190612b51565b11156118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990613174565b60405180910390fd5b42600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a8857600d548161196984610b89565b6119739190612b51565b11156119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131e0565b60405180910390fd5b42600f54600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a029190612b51565b1115611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613174565b60405180910390fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0357606460106001015483611af29190612c82565b611afc919061322f565b9050611b9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b7c57606460106000015483611b6b9190612c82565b611b75919061322f565b9050611b9c565b606460106002015483611b8f9190612c82565b611b99919061322f565b90505b5b600b60159054906101000a900460ff168015611c075750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c205750600b60149054906101000a900460ff16155b15611c2e57611c2d612090565b5b611c4484848385611c3f9190613260565b611e1a565b6000811115611c5957611c58843083611e1a565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d60906132e0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611d8f90613331565b60006040518083038185875af1925050503d8060008114611dcc576040519150601f19603f3d011682016040523d82523d6000602084013e611dd1565b606091505b5050905080611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906133b8565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e809061344a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef906134dc565b60405180910390fd5b611f03838383612162565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f809061356e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612077919061239b565b60405180910390a361208a848484612167565b50505050565b600b60149054906101000a900460ff16612160576001600b60146101000a81548160ff02191690831515021790555060006120ca30610b89565b9050600c5481106121435760004790506120e5600c5461216c565b600081476120f39190613260565b905061214081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2690919063ffffffff16565b50505b506000600b60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff81111561218957612188612581565b5b6040519080825280602002602001820160405280156121b75781602001602082028036833780820191505090505b50905030816000815181106121cf576121ce612aab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229a91906135a3565b816001815181106122ae576122ad612aab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161234c9594939291906136c9565b600060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050505050565b6000819050919050565b61239581612382565b82525050565b60006020820190506123b0600083018461238c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123f05780820151818401526020810190506123d5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612418826123b6565b61242281856123c1565b93506124328185602086016123d2565b61243b816123fc565b840191505092915050565b60006020820190508181036000830152612460818461240d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124a78261247c565b9050919050565b6124b78161249c565b81146124c257600080fd5b50565b6000813590506124d4816124ae565b92915050565b6124e381612382565b81146124ee57600080fd5b50565b600081359050612500816124da565b92915050565b6000806040838503121561251d5761251c612472565b5b600061252b858286016124c5565b925050602061253c858286016124f1565b9150509250929050565b60008115159050919050565b61255b81612546565b82525050565b60006020820190506125766000830184612552565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125b9826123fc565b810181811067ffffffffffffffff821117156125d8576125d7612581565b5b80604052505050565b60006125eb612468565b90506125f782826125b0565b919050565b600067ffffffffffffffff82111561261757612616612581565b5b602082029050602081019050919050565b600080fd5b600061264061263b846125fc565b6125e1565b9050808382526020820190506020840283018581111561266357612662612628565b5b835b8181101561268c578061267888826124c5565b845260208401935050602081019050612665565b5050509392505050565b600082601f8301126126ab576126aa61257c565b5b81356126bb84826020860161262d565b91505092915050565b6126cd81612546565b81146126d857600080fd5b50565b6000813590506126ea816126c4565b92915050565b6000806040838503121561270757612706612472565b5b600083013567ffffffffffffffff81111561272557612724612477565b5b61273185828601612696565b9250506020612742858286016126db565b9150509250929050565b60008060006060848603121561276557612764612472565b5b6000612773868287016124c5565b9350506020612784868287016124c5565b9250506040612795868287016124f1565b9150509250925092565b600080604083850312156127b6576127b5612472565b5b60006127c4858286016124c5565b92505060206127d5858286016124c5565b9150509250929050565b600060ff82169050919050565b6127f5816127df565b82525050565b600060208201905061281060008301846127ec565b92915050565b60006020828403121561282c5761282b612472565b5b600061283a848285016124c5565b91505092915050565b6000606082019050612858600083018661238c565b612865602083018561238c565b612872604083018461238c565b949350505050565b6128838161249c565b82525050565b600060208201905061289e600083018461287a565b92915050565b6000602082840312156128ba576128b9612472565b5b60006128c8848285016124f1565b91505092915050565b600080604083850312156128e8576128e7612472565b5b60006128f6858286016124c5565b9250506020612907858286016126db565b9150509250929050565b6000806040838503121561292857612927612472565b5b6000612936858286016124f1565b9250506020612947858286016124f1565b9150509250929050565b60006020828403121561296757612966612472565b5b6000612975848285016126db565b91505092915050565b60008060006060848603121561299757612996612472565b5b60006129a5868287016124f1565b93505060206129b6868287016124f1565b92505060406129c7868287016124f1565b9150509250925092565b6000819050919050565b60006129f66129f16129ec8461247c565b6129d1565b61247c565b9050919050565b6000612a08826129db565b9050919050565b6000612a1a826129fd565b9050919050565b612a2a81612a0f565b82525050565b6000602082019050612a456000830184612a21565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a9257607f821691505b602082108103612aa557612aa4612a4b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b1482612382565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b4657612b45612ada565b5b600182019050919050565b6000612b5c82612382565b9150612b6783612382565b9250828201905080821115612b7f57612b7e612ada565b5b92915050565b6000604082019050612b9a600083018561287a565b612ba7602083018461238c565b9392505050565b600081519050612bbd816126c4565b92915050565b600060208284031215612bd957612bd8612472565b5b6000612be784828501612bae565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c4c6025836123c1565b9150612c5782612bf0565b604082019050919050565b60006020820190508181036000830152612c7b81612c3f565b9050919050565b6000612c8d82612382565b9150612c9883612382565b9250828202612ca681612382565b91508282048414831517612cbd57612cbc612ada565b5b5092915050565b7f546178657320746f6f2068696768000000000000000000000000000000000000600082015250565b6000612cfa600e836123c1565b9150612d0582612cc4565b602082019050919050565b60006020820190508181036000830152612d2981612ced565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d8c6026836123c1565b9150612d9782612d30565b604082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e1e6024836123c1565b9150612e2982612dc2565b604082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb06022836123c1565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f1c6020836123c1565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f88601d836123c1565b9150612f9382612f52565b602082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061301a6029836123c1565b915061302582612fbe565b604082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006130866013836123c1565b915061309182613050565b602082019050919050565b600060208201905081810360008301526130b581613079565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006130f26013836123c1565b91506130fd826130bc565b602082019050919050565b60006020820190508181036000830152613121816130e5565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b600061315e600b836123c1565b915061316982613128565b602082019050919050565b6000602082019050818103600083015261318d81613151565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b60006131ca6015836123c1565b91506131d582613194565b602082019050919050565b600060208201905081810360008301526131f9816131bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323a82612382565b915061324583612382565b92508261325557613254613200565b5b828204905092915050565b600061326b82612382565b915061327683612382565b925082820390508181111561328e5761328d612ada565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006132ca601d836123c1565b91506132d582613294565b602082019050919050565b600060208201905081810360008301526132f9816132bd565b9050919050565b600081905092915050565b50565b600061331b600083613300565b91506133268261330b565b600082019050919050565b600061333c8261330e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006133a2603a836123c1565b91506133ad82613346565b604082019050919050565b600060208201905081810360008301526133d181613395565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134346025836123c1565b915061343f826133d8565b604082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c66023836123c1565b91506134d18261346a565b604082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006135586026836123c1565b9150613563826134fc565b604082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b60008151905061359d816124ae565b92915050565b6000602082840312156135b9576135b8612472565b5b60006135c78482850161358e565b91505092915050565b6000819050919050565b60006135f56135f06135eb846135d0565b6129d1565b612382565b9050919050565b613605816135da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136408161249c565b82525050565b60006136528383613637565b60208301905092915050565b6000602082019050919050565b60006136768261360b565b6136808185613616565b935061368b83613627565b8060005b838110156136bc5781516136a38882613646565b97506136ae8361365e565b92505060018101905061368f565b5085935050505092915050565b600060a0820190506136de600083018861238c565b6136eb60208301876135fc565b81810360408301526136fd818661366b565b905061370c606083018561287a565b613719608083018461238c565b969550505050505056fea2646970667358221220591676b32e3a82b3b2b008dc14ea8cc991630002dfb700282f53153ac521bcc764736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638da5cb5b11610123578063c26d7be0116100ab578063e9dae5ed1161006f578063e9dae5ed14610814578063efb95cd11461083d578063f2fde38b14610854578063f887ea401461087d578063f8b45b05146108a857610230565b8063c26d7be01461071f578063c4590d3f1461075c578063dd62ed3e14610785578063e01af92c146107c2578063e177246e146107eb57610230565b8063a8aa1b31116100f2578063a8aa1b311461063c578063a8f43a6014610667578063a9059cbb14610690578063adf18693146106cd578063b5d7ab9a146106f657610230565b80638da5cb5b1461058057806395d89b41146105ab5780639e252f00146105d6578063a457c2d7146105ff57610230565b80634ada218b116101b1578063728f8eea11610175578063728f8eea146104bf5780637437681e146104ec578063751039fc146105175780637ad3def21461052e5780638cd4426d1461055757610230565b80634ada218b146103ea5780636a42b8f8146104155780636ddd17131461044057806370a082311461046b578063715018a6146104a857610230565b806318160ddd116101f857806318160ddd146102f157806323b872dd1461031c578063255f40b614610359578063313ce5671461038257806339509351146103ad57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780630e85d1e3146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d3565b604051610257919061239b565b60405180910390f35b34801561026c57600080fd5b506102756108d9565b6040516102829190612446565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612506565b61096b565b6040516102bf9190612561565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906126f0565b61098e565b005b3480156102fd57600080fd5b50610306610a2b565b604051610313919061239b565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e919061274c565b610a35565b6040516103509190612561565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b919061279f565b610a64565b005b34801561038e57600080fd5b50610397610b1d565b6040516103a491906127fb565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190612506565b610b26565b6040516103e19190612561565b60405180910390f35b3480156103f657600080fd5b506103ff610b5d565b60405161040c9190612561565b60405180910390f35b34801561042157600080fd5b5061042a610b70565b604051610437919061239b565b60405180910390f35b34801561044c57600080fd5b50610455610b76565b6040516104629190612561565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612816565b610b89565b60405161049f919061239b565b60405180910390f35b3480156104b457600080fd5b506104bd610bd1565b005b3480156104cb57600080fd5b506104d4610be5565b6040516104e393929190612843565b60405180910390f35b3480156104f857600080fd5b50610501610bfd565b60405161050e919061239b565b60405180910390f35b34801561052357600080fd5b5061052c610c03565b005b34801561053a57600080fd5b5061055560048036038101906105509190612816565b610c34565b005b34801561056357600080fd5b5061057e60048036038101906105799190612506565b610c80565b005b34801561058c57600080fd5b50610595610d25565b6040516105a29190612889565b60405180910390f35b3480156105b757600080fd5b506105c0610d4f565b6040516105cd9190612446565b60405180910390f35b3480156105e257600080fd5b506105fd60048036038101906105f891906128a4565b610de1565b005b34801561060b57600080fd5b5061062660048036038101906106219190612506565b610e2f565b6040516106339190612561565b60405180910390f35b34801561064857600080fd5b50610651610ea6565b60405161065e9190612889565b60405180910390f35b34801561067357600080fd5b5061068e600480360381019061068991906126f0565b610ecc565b005b34801561069c57600080fd5b506106b760048036038101906106b29190612506565b610f69565b6040516106c49190612561565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef91906128d1565b610f8c565b005b34801561070257600080fd5b5061071d600480360381019061071891906128a4565b610fef565b005b34801561072b57600080fd5b5061074660048036038101906107419190612816565b611010565b604051610753919061239b565b60405180910390f35b34801561076857600080fd5b50610783600480360381019061077e9190612911565b611028565b005b34801561079157600080fd5b506107ac60048036038101906107a7919061279f565b611060565b6040516107b9919061239b565b60405180910390f35b3480156107ce57600080fd5b506107e960048036038101906107e49190612951565b6110e7565b005b3480156107f757600080fd5b50610812600480360381019061080d91906128a4565b61110c565b005b34801561082057600080fd5b5061083b6004803603810190610836919061297e565b61111e565b005b34801561084957600080fd5b506108526111c7565b005b34801561086057600080fd5b5061087b60048036038101906108769190612816565b611212565b005b34801561088957600080fd5b50610892611295565b60405161089f9190612a30565b60405180910390f35b3480156108b457600080fd5b506108bd6112bb565b6040516108ca919061239b565b60405180910390f35b600c5481565b6060600380546108e890612a7a565b80601f016020809104026020016040519081016040528092919081815260200182805461091490612a7a565b80156109615780601f1061093657610100808354040283529160200191610961565b820191906000526020600020905b81548152906001019060200180831161094457829003601f168201915b5050505050905090565b6000806109766112c1565b90506109838185856112c9565b600191505092915050565b610996611492565b60005b8251811015610a265781600760008584815181106109ba576109b9612aab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1e90612b09565b915050610999565b505050565b6000600254905090565b600080610a406112c1565b9050610a4d858285611510565b610a5885858561159c565b60019150509392505050565b610a6c611492565b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b1930837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6112c9565b5050565b60006009905090565b600080610b316112c1565b9050610b52818585610b438589611060565b610b4d9190612b51565b6112c9565b600191505092915050565b600b60169054906101000a900460ff1681565b600f5481565b600b60159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bd9611492565b610be36000611c60565b565b60108060000154908060010154908060020154905083565b600e5481565b610c0b611492565b610c13610a2b565b600e81905550610c21610a2b565b600d819055506000601060020181905550565b610c3c611492565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610cdd929190612b85565b6020604051808303816000875af1158015610cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d209190612bc3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610d5e90612a7a565b80601f0160208091040260200160405190810160405280929190818152602001828054610d8a90612a7a565b8015610dd75780601f10610dac57610100808354040283529160200191610dd7565b820191906000526020600020905b815481529060010190602001808311610dba57829003601f168201915b5050505050905090565b610e2c81600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2690919063ffffffff16565b50565b600080610e3a6112c1565b90506000610e488286611060565b905083811015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8490612c62565b60405180910390fd5b610e9a82868684036112c9565b60019250505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ed4611492565b60005b8251811015610f64578160066000858481518110610ef857610ef7612aab565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5c90612b09565b915050610ed7565b505050565b600080610f746112c1565b9050610f8181858561159c565b600191505092915050565b610f94611492565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ff7611492565b633b9aca00816110079190612c82565b600c8190555050565b60086020528060005260406000206000915090505481565b611030611492565b633b9aca00826110409190612c82565b600e81905550633b9aca00816110569190612c82565b600d819055505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110ef611492565b80600b60156101000a81548160ff02191690831515021790555050565b611114611492565b80600f8190555050565b611126611492565b60458311158015611138575060458211155b8015611145575060458111155b611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612d10565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506010600082015181600001556020820151816001015560408201518160020155905050505050565b6111cf611492565b6001600b60166101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff0219169083151502179055506000601060020181905550565b61121a611492565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612da2565b60405180910390fd5b61129281611c60565b50565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132f90612e34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139e90612ec6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611485919061239b565b60405180910390a3505050565b61149a6112c1565b73ffffffffffffffffffffffffffffffffffffffff166114b8610d25565b73ffffffffffffffffffffffffffffffffffffffff161461150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590612f32565b60405180910390fd5b565b600061151c8484611060565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115965781811015611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90612f9e565b60405180910390fd5b61159584848484036112c9565b5b50505050565b600081116115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690613030565b60405180910390fd5b600b60149054906101000a900460ff16806116435750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116975750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116ac576116a7838383611e1a565b611c5b565b600b60169054906101000a900460ff166116fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29061309c565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561179f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613108565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119075742600f54600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118819190612b51565b11156118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b990613174565b60405180910390fd5b42600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a8857600d548161196984610b89565b6119739190612b51565b11156119b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ab906131e0565b60405180910390fd5b42600f54600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a029190612b51565b1115611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a90613174565b60405180910390fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0357606460106001015483611af29190612c82565b611afc919061322f565b9050611b9d565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b7c57606460106000015483611b6b9190612c82565b611b75919061322f565b9050611b9c565b606460106002015483611b8f9190612c82565b611b99919061322f565b90505b5b600b60159054906101000a900460ff168015611c075750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c205750600b60149054906101000a900460ff16155b15611c2e57611c2d612090565b5b611c4484848385611c3f9190613260565b611e1a565b6000811115611c5957611c58843083611e1a565b5b505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80471015611d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d60906132e0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611d8f90613331565b60006040518083038185875af1925050503d8060008114611dcc576040519150601f19603f3d011682016040523d82523d6000602084013e611dd1565b606091505b5050905080611e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0c906133b8565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e809061344a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eef906134dc565b60405180910390fd5b611f03838383612162565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f809061356e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612077919061239b565b60405180910390a361208a848484612167565b50505050565b600b60149054906101000a900460ff16612160576001600b60146101000a81548160ff02191690831515021790555060006120ca30610b89565b9050600c5481106121435760004790506120e5600c5461216c565b600081476120f39190613260565b905061214081600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d2690919063ffffffff16565b50505b506000600b60146101000a81548160ff0219169083151502179055505b565b505050565b505050565b6000600267ffffffffffffffff81111561218957612188612581565b5b6040519080825280602002602001820160405280156121b75781602001602082028036833780820191505090505b50905030816000815181106121cf576121ce612aab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229a91906135a3565b816001815181106122ae576122ad612aab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161234c9594939291906136c9565b600060405180830381600087803b15801561236657600080fd5b505af115801561237a573d6000803e3d6000fd5b505050505050565b6000819050919050565b61239581612382565b82525050565b60006020820190506123b0600083018461238c565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123f05780820151818401526020810190506123d5565b60008484015250505050565b6000601f19601f8301169050919050565b6000612418826123b6565b61242281856123c1565b93506124328185602086016123d2565b61243b816123fc565b840191505092915050565b60006020820190508181036000830152612460818461240d565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124a78261247c565b9050919050565b6124b78161249c565b81146124c257600080fd5b50565b6000813590506124d4816124ae565b92915050565b6124e381612382565b81146124ee57600080fd5b50565b600081359050612500816124da565b92915050565b6000806040838503121561251d5761251c612472565b5b600061252b858286016124c5565b925050602061253c858286016124f1565b9150509250929050565b60008115159050919050565b61255b81612546565b82525050565b60006020820190506125766000830184612552565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125b9826123fc565b810181811067ffffffffffffffff821117156125d8576125d7612581565b5b80604052505050565b60006125eb612468565b90506125f782826125b0565b919050565b600067ffffffffffffffff82111561261757612616612581565b5b602082029050602081019050919050565b600080fd5b600061264061263b846125fc565b6125e1565b9050808382526020820190506020840283018581111561266357612662612628565b5b835b8181101561268c578061267888826124c5565b845260208401935050602081019050612665565b5050509392505050565b600082601f8301126126ab576126aa61257c565b5b81356126bb84826020860161262d565b91505092915050565b6126cd81612546565b81146126d857600080fd5b50565b6000813590506126ea816126c4565b92915050565b6000806040838503121561270757612706612472565b5b600083013567ffffffffffffffff81111561272557612724612477565b5b61273185828601612696565b9250506020612742858286016126db565b9150509250929050565b60008060006060848603121561276557612764612472565b5b6000612773868287016124c5565b9350506020612784868287016124c5565b9250506040612795868287016124f1565b9150509250925092565b600080604083850312156127b6576127b5612472565b5b60006127c4858286016124c5565b92505060206127d5858286016124c5565b9150509250929050565b600060ff82169050919050565b6127f5816127df565b82525050565b600060208201905061281060008301846127ec565b92915050565b60006020828403121561282c5761282b612472565b5b600061283a848285016124c5565b91505092915050565b6000606082019050612858600083018661238c565b612865602083018561238c565b612872604083018461238c565b949350505050565b6128838161249c565b82525050565b600060208201905061289e600083018461287a565b92915050565b6000602082840312156128ba576128b9612472565b5b60006128c8848285016124f1565b91505092915050565b600080604083850312156128e8576128e7612472565b5b60006128f6858286016124c5565b9250506020612907858286016126db565b9150509250929050565b6000806040838503121561292857612927612472565b5b6000612936858286016124f1565b9250506020612947858286016124f1565b9150509250929050565b60006020828403121561296757612966612472565b5b6000612975848285016126db565b91505092915050565b60008060006060848603121561299757612996612472565b5b60006129a5868287016124f1565b93505060206129b6868287016124f1565b92505060406129c7868287016124f1565b9150509250925092565b6000819050919050565b60006129f66129f16129ec8461247c565b6129d1565b61247c565b9050919050565b6000612a08826129db565b9050919050565b6000612a1a826129fd565b9050919050565b612a2a81612a0f565b82525050565b6000602082019050612a456000830184612a21565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a9257607f821691505b602082108103612aa557612aa4612a4b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b1482612382565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b4657612b45612ada565b5b600182019050919050565b6000612b5c82612382565b9150612b6783612382565b9250828201905080821115612b7f57612b7e612ada565b5b92915050565b6000604082019050612b9a600083018561287a565b612ba7602083018461238c565b9392505050565b600081519050612bbd816126c4565b92915050565b600060208284031215612bd957612bd8612472565b5b6000612be784828501612bae565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c4c6025836123c1565b9150612c5782612bf0565b604082019050919050565b60006020820190508181036000830152612c7b81612c3f565b9050919050565b6000612c8d82612382565b9150612c9883612382565b9250828202612ca681612382565b91508282048414831517612cbd57612cbc612ada565b5b5092915050565b7f546178657320746f6f2068696768000000000000000000000000000000000000600082015250565b6000612cfa600e836123c1565b9150612d0582612cc4565b602082019050919050565b60006020820190508181036000830152612d2981612ced565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d8c6026836123c1565b9150612d9782612d30565b604082019050919050565b60006020820190508181036000830152612dbb81612d7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e1e6024836123c1565b9150612e2982612dc2565b604082019050919050565b60006020820190508181036000830152612e4d81612e11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612eb06022836123c1565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f1c6020836123c1565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612f88601d836123c1565b9150612f9382612f52565b602082019050919050565b60006020820190508181036000830152612fb781612f7b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061301a6029836123c1565b915061302582612fbe565b604082019050919050565b600060208201905081810360008301526130498161300d565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006130866013836123c1565b915061309182613050565b602082019050919050565b600060208201905081810360008301526130b581613079565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b60006130f26013836123c1565b91506130fd826130bc565b602082019050919050565b60006020820190508181036000830152613121816130e5565b9050919050565b7f5741495420504c45415345000000000000000000000000000000000000000000600082015250565b600061315e600b836123c1565b915061316982613128565b602082019050919050565b6000602082019050818103600083015261318d81613151565b9050919050565b7f57616c6c6574206c696d69742065786365656465640000000000000000000000600082015250565b60006131ca6015836123c1565b91506131d582613194565b602082019050919050565b600060208201905081810360008301526131f9816131bd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323a82612382565b915061324583612382565b92508261325557613254613200565b5b828204905092915050565b600061326b82612382565b915061327683612382565b925082820390508181111561328e5761328d612ada565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006132ca601d836123c1565b91506132d582613294565b602082019050919050565b600060208201905081810360008301526132f9816132bd565b9050919050565b600081905092915050565b50565b600061331b600083613300565b91506133268261330b565b600082019050919050565b600061333c8261330e565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006133a2603a836123c1565b91506133ad82613346565b604082019050919050565b600060208201905081810360008301526133d181613395565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134346025836123c1565b915061343f826133d8565b604082019050919050565b6000602082019050818103600083015261346381613427565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c66023836123c1565b91506134d18261346a565b604082019050919050565b600060208201905081810360008301526134f5816134b9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006135586026836123c1565b9150613563826134fc565b604082019050919050565b600060208201905081810360008301526135878161354b565b9050919050565b60008151905061359d816124ae565b92915050565b6000602082840312156135b9576135b8612472565b5b60006135c78482850161358e565b91505092915050565b6000819050919050565b60006135f56135f06135eb846135d0565b6129d1565b612382565b9050919050565b613605816135da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136408161249c565b82525050565b60006136528383613637565b60208301905092915050565b6000602082019050919050565b60006136768261360b565b6136808185613616565b935061368b83613627565b8060005b838110156136bc5781516136a38882613646565b97506136ae8361365e565b92505060018101905061368f565b5085935050505092915050565b600060a0820190506136de600083018861238c565b6136eb60208301876135fc565b81810360408301526136fd818661366b565b905061370c606083018561287a565b613719608083018461238c565b969550505050505056fea2646970667358221220591676b32e3a82b3b2b008dc14ea8cc991630002dfb700282f53153ac521bcc764736f6c63430008120033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

8611:6083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9150:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2825:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3757:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14168:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3146:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3966:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12891:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10098:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4269:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9111:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9296:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9081:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3262:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;981:103;;;;;;;;;;;;;:::i;:::-;;9430:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;9250:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13273:147;;;;;;;;;;;;;:::i;:::-;;13684:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14502:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;746:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14380:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8942:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13943:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3397:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13796:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12505:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8841:60;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13517:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3598:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12402:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13428:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12627:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13127:137;;;;;;;;;;;;;:::i;:::-;;1092:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8914:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9200:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9150;;;;:::o;2825:100::-;2879:13;2912:5;2905:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2825:100;:::o;3757:201::-;3840:4;3857:13;3873:12;:10;:12::i;:::-;3857:28;;3896:32;3905:5;3912:7;3921:6;3896:8;:32::i;:::-;3946:4;3939:11;;;3757:201;;;;:::o;14168:204::-;705:13;:11;:13::i;:::-;14263:9:::1;14259:106;14282:8;:15;14278:1;:19;14259:106;;;14347:6;14318:13;:26;14332:8;14341:1;14332:11;;;;;;;;:::i;:::-;;;;;;;;14318:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14299:3;;;;;:::i;:::-;;;;14259:106;;;;14168:204:::0;;:::o;3146:108::-;3207:7;3234:12;;3227:19;;3146:108;:::o;3966:295::-;4097:4;4114:15;4132:12;:10;:12::i;:::-;4114:30;;4155:38;4171:4;4177:7;4186:6;4155:15;:38::i;:::-;4204:27;4214:4;4220:2;4224:6;4204:9;:27::i;:::-;4249:4;4242:11;;;3966:295;;;;;:::o;12891:224::-;705:13;:11;:13::i;:::-;12999:9:::1;12982:6;;:27;;;;;;;;;;;;;;;;;;13027:7;13020:4;;:14;;;;;;;;;;;;;;;;;;13045:62;13062:4;13077:9;13089:17;13045:8;:62::i;:::-;12891:224:::0;;:::o;10098:92::-;10156:5;10181:1;10174:8;;10098:92;:::o;4269:238::-;4357:4;4374:13;4390:12;:10;:12::i;:::-;4374:28;;4413:64;4422:5;4429:7;4466:10;4438:25;4448:5;4455:7;4438:9;:25::i;:::-;:38;;;;:::i;:::-;4413:8;:64::i;:::-;4495:4;4488:11;;;4269:238;;;;:::o;9111:26::-;;;;;;;;;;;;;:::o;9296:20::-;;;;:::o;9081:23::-;;;;;;;;;;;;;:::o;3262:127::-;3336:7;3363:9;:18;3373:7;3363:18;;;;;;;;;;;;;;;;3356:25;;3262:127;;;:::o;981:103::-;705:13;:11;:13::i;:::-;1046:30:::1;1073:1;1046:18;:30::i;:::-;981:103::o:0;9430:35::-;;;;;;;;;;;;;;;;;;;:::o;9250:39::-;;;;:::o;13273:147::-;705:13;:11;:13::i;:::-;13334::::1;:11;:13::i;:::-;13326:5;:21;;;;13370:13;:11;:13::i;:::-;13358:9;:25;;;;13411:1;13394:5;:14;;:18;;;;13273:147::o:0;13684:104::-;705:13;:11;:13::i;:::-;13771:9:::1;13753:15;;:27;;;;;;;;;;;;;;;;;;13684:104:::0;:::o;14502:132::-;14583:8;14576:25;;;14602:15;;;;;;;;;;;14619:6;14576:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14502:132;;:::o;746:87::-;792:7;819:6;;;;;;;;;;;812:13;;746:87;:::o;2933:104::-;2989:13;3022:7;3015:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2933:104;:::o;14380:110::-;14437:45;14472:9;14445:15;;;;;;;;;;;14437:34;;;;:45;;;;:::i;:::-;14380:110;:::o;4515:436::-;4608:4;4625:13;4641:12;:10;:12::i;:::-;4625:28;;4664:24;4691:25;4701:5;4708:7;4691:9;:25::i;:::-;4664:52;;4755:15;4735:16;:35;;4727:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4848:60;4857:5;4864:7;4892:15;4873:16;:34;4848:8;:60::i;:::-;4939:4;4932:11;;;;4515:436;;;;:::o;8942:19::-;;;;;;;;;;;;;:::o;13943:217::-;705:13;:11;:13::i;:::-;14047:9:::1;14043:110;14066:8;:15;14062:1;:19;14043:110;;;14136:5;14102:18;:31;14121:8;14130:1;14121:11;;;;;;;;:::i;:::-;;;;;;;;14102:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14083:3;;;;;:::i;:::-;;;;14043:110;;;;13943:217:::0;;:::o;3397:193::-;3476:4;3493:13;3509:12;:10;:12::i;:::-;3493:28;;3532;3542:5;3549:2;3553:6;3532:9;:28::i;:::-;3578:4;3571:11;;;3397:193;;;;:::o;13796:135::-;705:13;:11;:13::i;:::-;13918:5:::1;13887:18;:28;13906:8;13887:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13796:135:::0;;:::o;12505:110::-;705:13;:11;:13::i;:::-;12602:5:::1;12593:6;:14;;;;:::i;:::-;12577:13;:30;;;;12505:110:::0;:::o;8841:60::-;;;;;;;;;;;;;;;;;:::o;13517:155::-;705:13;:11;:13::i;:::-;13618:5:::1;13609:6;:14;;;;:::i;:::-;13601:5;:22;;;;13659:5;13646:10;:18;;;;:::i;:::-;13634:9;:30;;;;13517:155:::0;;:::o;3598:151::-;3687:7;3714:11;:18;3726:5;3714:18;;;;;;;;;;;;;;;:27;3733:7;3714:27;;;;;;;;;;;;;;;;3707:34;;3598:151;;;;:::o;12402:95::-;705:13;:11;:13::i;:::-;12483:6:::1;12469:11;;:20;;;;;;;;;;;;;;;;;;12402:95:::0;:::o;13428:81::-;705:13;:11;:13::i;:::-;13497:4:::1;13489:5;:12;;;;13428:81:::0;:::o;12627:252::-;705:13;:11;:13::i;:::-;12751:2:::1;12740:7;:13;;:31;;;;;12769:2;12757:8;:14;;12740:31;:53;;;;;12791:2;12775:12;:18;;12740:53;12732:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;12831:39;;;;;;;;12838:7;12831:39;;;;12847:8;12831:39;;;;12857:12;12831:39;;::::0;12823:5:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;12627:252:::0;;;:::o;13127:137::-;705:13;:11;:13::i;:::-;13194:4:::1;13177:14;;:21;;;;;;;;;;;;;;;;;;13223:4;13209:11;;:18;;;;;;;;;;;;;;;;;;13255:1;13238:5;:14;;:18;;;;13127:137::o:0;1092:201::-;705:13;:11;:13::i;:::-;1201:1:::1;1181:22;;:8;:22;;::::0;1173:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1257:28;1276:8;1257:18;:28::i;:::-;1092:201:::0;:::o;8914:21::-;;;;;;;;;;;;;:::o;9200:43::-;;;;:::o;219:98::-;272:7;299:10;292:17;;219:98;:::o;6688:380::-;6841:1;6824:19;;:5;:19;;;6816:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6922:1;6903:21;;:7;:21;;;6895:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7006:6;6976:11;:18;6988:5;6976:18;;;;;;;;;;;;;;;:27;6995:7;6976:27;;;;;;;;;;;;;;;:36;;;;7044:7;7028:32;;7037:5;7028:32;;;7053:6;7028:32;;;;;;:::i;:::-;;;;;;;;6688:380;;;:::o;841:132::-;916:12;:10;:12::i;:::-;905:23;;:7;:5;:7::i;:::-;:23;;;897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;841:132::o;7076:453::-;7211:24;7238:25;7248:5;7255:7;7238:9;:25::i;:::-;7211:52;;7298:17;7278:16;:37;7274:248;;7360:6;7340:16;:26;;7332:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7444:51;7453:5;7460:7;7488:6;7469:16;:25;7444:8;:51::i;:::-;7274:248;7200:329;7076:453;;;:::o;10198:1465::-;10314:1;10305:6;:10;10297:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10378:8;;;;;;;;;;;:38;;;;10390:18;:26;10409:6;10390:26;;;;;;;;;;;;;;;;;;;;;;;;;10378:38;:71;;;;10420:18;:29;10439:9;10420:29;;;;;;;;;;;;;;;;;;;;;;;;;10378:71;10374:837;;;10466:42;10482:6;10490:9;10501:6;10466:15;:42::i;:::-;10523:7;;10374:837;10580:14;;;;;;;;;;;10572:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10642:13;:21;10656:6;10642:21;;;;;;;;;;;;;;;;;;;;;;;;;10641:22;:51;;;;;10668:13;:24;10682:9;10668:24;;;;;;;;;;;;;;;;;;;;;;;;;10667:25;10641:51;10633:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;10744:4;;;;;;;;;;;10734:14;;:6;:14;;;10731:176;;10806:15;10797:5;;10777:9;:17;10787:6;10777:17;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;:44;;10769:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10876:15;10856:9;:17;10866:6;10856:17;;;;;;;;;;;;;;;:35;;;;10731:176;10937:4;;;;;;;;;;;10924:17;;:9;:17;;;10921:279;;11002:9;;10992:6;10969:20;10979:9;10969;:20::i;:::-;:29;;;;:::i;:::-;:42;;10961:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;11096:15;11087:5;;11064:9;:20;11074:9;11064:20;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;:47;;11056:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11169:15;11146:9;:20;11156:9;11146:20;;;;;;;;;;;;;;;:38;;;;10921:279;11231:12;11272:4;;;;;;;;;;;11259:17;;:9;:17;;;11256:172;;11307:3;11294:5;:10;;;11285:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;11278:32;;11256:172;;;11339:4;;;;;;;;;;;11329:14;;:6;:14;;;11326:102;;11373:3;11361:5;:9;;;11352:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11345:31;;11326:102;;;11425:3;11408:5;:14;;;11399:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11392:36;;11326:102;11256:172;11446:11;;;;;;;;;;;:29;;;;;11471:4;;;;;;;;;;;11461:14;;:6;:14;;;;11446:29;:42;;;;;11480:8;;;;;;;;;;;11479:9;11446:42;11442:58;;;11490:10;:8;:10::i;:::-;11442:58;11513:49;11529:6;11537:9;11557:4;11548:6;:13;;;;:::i;:::-;11513:15;:49::i;:::-;11583:1;11576:4;:8;11573:83;;;11600:44;11616:6;11632:4;11639;11600:15;:44::i;:::-;11573:83;10286:1377;10198:1465;;;;:::o;1301:191::-;1375:16;1394:6;;;;;;;;;;;1375:25;;1420:8;1411:6;;:17;;;;;;;;;;;;;;;;;;1475:8;1444:40;;1465:8;1444:40;;;;;;;;;;;;1364:128;1301:191;:::o;8287:317::-;8402:6;8377:21;:31;;8369:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8456:12;8474:9;:14;;8496:6;8474:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8455:52;;;8526:7;8518:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8358:246;8287:317;;:::o;4959:675::-;5106:1;5090:18;;:4;:18;;;5082:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5183:1;5169:16;;:2;:16;;;5161:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5238:38;5259:4;5265:2;5269:6;5238:20;:38::i;:::-;5289:19;5311:9;:15;5321:4;5311:15;;;;;;;;;;;;;;;;5289:37;;5360:6;5345:11;:21;;5337:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5477:6;5463:11;:20;5445:9;:15;5455:4;5445:15;;;;;;;;;;;;;;;:38;;;;5515:6;5498:9;:13;5508:2;5498:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;5565:2;5550:26;;5559:4;5550:26;;;5569:6;5550:26;;;;;;:::i;:::-;;;;;;;;5589:37;5609:4;5615:2;5619:6;5589:19;:37::i;:::-;5071:563;4959:675;;;:::o;11667:413::-;9511:8;;;;;;;;;;;9506:104;;9547:4;9536:8;;:15;;;;;;;;;;;;;;;;;;11716:23:::1;11742:24;11760:4;11742:9;:24::i;:::-;11716:50;;11800:13;;11781:15;:32;11777:296;;11830:22;11855:21;11830:46;;11891:31;11908:13;;11891:16;:31::i;:::-;11937:20;11984:14;11960:21;:38;;;;:::i;:::-;11937:61;;12013:48;12048:12;12021:15;;;;;;;;;;;12013:34;;;;:48;;;;:::i;:::-;11815:258;;11777:296;11705:375;9593:5:::0;9582:8;;:16;;;;;;;;;;;;;;;;;;9506:104;11667:413::o;7537:125::-;;;;:::o;7668:124::-;;;;:::o;12088:306::-;12154:21;12192:1;12178:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12154:40;;12223:4;12205;12210:1;12205:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12249:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12239:4;12244:1;12239:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12275:6;;;;;;;;;;;:57;;;12333:11;12346:1;12349:4;12363;12370:15;12275:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12143:251;12088:306;:::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:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:678::-;6446:6;6454;6503:2;6491:9;6482:7;6478:23;6474:32;6471:119;;;6509:79;;:::i;:::-;6471:119;6657:1;6646:9;6642:17;6629:31;6687:18;6679:6;6676:30;6673:117;;;6709:79;;:::i;:::-;6673:117;6814:78;6884:7;6875:6;6864:9;6860:22;6814:78;:::i;:::-;6804:88;;6600:302;6941:2;6967:50;7009:7;7000:6;6989:9;6985:22;6967:50;:::i;:::-;6957:60;;6912:115;6356:678;;;;;:::o;7040:619::-;7117:6;7125;7133;7182:2;7170:9;7161:7;7157:23;7153:32;7150:119;;;7188:79;;:::i;:::-;7150:119;7308:1;7333:53;7378:7;7369:6;7358:9;7354:22;7333:53;:::i;:::-;7323:63;;7279:117;7435:2;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7406:118;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7040:619;;;;;:::o;7665:474::-;7733:6;7741;7790:2;7778:9;7769:7;7765:23;7761:32;7758:119;;;7796:79;;:::i;:::-;7758:119;7916:1;7941:53;7986:7;7977:6;7966:9;7962:22;7941:53;:::i;:::-;7931:63;;7887:117;8043:2;8069:53;8114:7;8105:6;8094:9;8090:22;8069:53;:::i;:::-;8059:63;;8014:118;7665:474;;;;;:::o;8145:86::-;8180:7;8220:4;8213:5;8209:16;8198:27;;8145:86;;;:::o;8237:112::-;8320:22;8336:5;8320:22;:::i;:::-;8315:3;8308:35;8237:112;;:::o;8355:214::-;8444:4;8482:2;8471:9;8467:18;8459:26;;8495:67;8559:1;8548:9;8544:17;8535:6;8495:67;:::i;:::-;8355:214;;;;:::o;8575:329::-;8634:6;8683:2;8671:9;8662:7;8658:23;8654:32;8651:119;;;8689:79;;:::i;:::-;8651:119;8809:1;8834:53;8879:7;8870:6;8859:9;8855:22;8834:53;:::i;:::-;8824:63;;8780:117;8575:329;;;;:::o;8910:442::-;9059:4;9097:2;9086:9;9082:18;9074:26;;9110:71;9178:1;9167:9;9163:17;9154:6;9110:71;:::i;:::-;9191:72;9259:2;9248:9;9244:18;9235:6;9191:72;:::i;:::-;9273;9341:2;9330:9;9326:18;9317:6;9273:72;:::i;:::-;8910:442;;;;;;:::o;9358:118::-;9445:24;9463:5;9445:24;:::i;:::-;9440:3;9433:37;9358:118;;:::o;9482:222::-;9575:4;9613:2;9602:9;9598:18;9590:26;;9626:71;9694:1;9683:9;9679:17;9670:6;9626:71;:::i;:::-;9482:222;;;;:::o;9710:329::-;9769:6;9818:2;9806:9;9797:7;9793:23;9789:32;9786:119;;;9824:79;;:::i;:::-;9786:119;9944:1;9969:53;10014:7;10005:6;9994:9;9990:22;9969:53;:::i;:::-;9959:63;;9915:117;9710:329;;;;:::o;10045:468::-;10110:6;10118;10167:2;10155:9;10146:7;10142:23;10138:32;10135:119;;;10173:79;;:::i;:::-;10135:119;10293:1;10318:53;10363:7;10354:6;10343:9;10339:22;10318:53;:::i;:::-;10308:63;;10264:117;10420:2;10446:50;10488:7;10479:6;10468:9;10464:22;10446:50;:::i;:::-;10436:60;;10391:115;10045:468;;;;;:::o;10519:474::-;10587:6;10595;10644:2;10632:9;10623:7;10619:23;10615:32;10612:119;;;10650:79;;:::i;:::-;10612:119;10770:1;10795:53;10840:7;10831:6;10820:9;10816:22;10795:53;:::i;:::-;10785:63;;10741:117;10897:2;10923:53;10968:7;10959:6;10948:9;10944:22;10923:53;:::i;:::-;10913:63;;10868:118;10519:474;;;;;:::o;10999:323::-;11055:6;11104:2;11092:9;11083:7;11079:23;11075:32;11072:119;;;11110:79;;:::i;:::-;11072:119;11230:1;11255:50;11297:7;11288:6;11277:9;11273:22;11255:50;:::i;:::-;11245:60;;11201:114;10999:323;;;;:::o;11328:619::-;11405:6;11413;11421;11470:2;11458:9;11449:7;11445:23;11441:32;11438:119;;;11476:79;;:::i;:::-;11438:119;11596:1;11621:53;11666:7;11657:6;11646:9;11642:22;11621:53;:::i;:::-;11611:63;;11567:117;11723:2;11749:53;11794:7;11785:6;11774:9;11770:22;11749:53;:::i;:::-;11739:63;;11694:118;11851:2;11877:53;11922:7;11913:6;11902:9;11898:22;11877:53;:::i;:::-;11867:63;;11822:118;11328:619;;;;;:::o;11953:60::-;11981:3;12002:5;11995:12;;11953:60;;;:::o;12019:142::-;12069:9;12102:53;12120:34;12129:24;12147:5;12129:24;:::i;:::-;12120:34;:::i;:::-;12102:53;:::i;:::-;12089:66;;12019:142;;;:::o;12167:126::-;12217:9;12250:37;12281:5;12250:37;:::i;:::-;12237:50;;12167:126;;;:::o;12299:141::-;12364:9;12397:37;12428:5;12397:37;:::i;:::-;12384:50;;12299:141;;;:::o;12446:161::-;12548:52;12594:5;12548:52;:::i;:::-;12543:3;12536:65;12446:161;;:::o;12613:252::-;12721:4;12759:2;12748:9;12744:18;12736:26;;12772:86;12855:1;12844:9;12840:17;12831:6;12772:86;:::i;:::-;12613:252;;;;:::o;12871:180::-;12919:77;12916:1;12909:88;13016:4;13013:1;13006:15;13040:4;13037:1;13030:15;13057:320;13101:6;13138:1;13132:4;13128:12;13118:22;;13185:1;13179:4;13175:12;13206:18;13196:81;;13262:4;13254:6;13250:17;13240:27;;13196:81;13324:2;13316:6;13313:14;13293:18;13290:38;13287:84;;13343:18;;:::i;:::-;13287:84;13108:269;13057:320;;;:::o;13383:180::-;13431:77;13428:1;13421:88;13528:4;13525:1;13518:15;13552:4;13549:1;13542:15;13569:180;13617:77;13614:1;13607:88;13714:4;13711:1;13704:15;13738:4;13735:1;13728:15;13755:233;13794:3;13817:24;13835:5;13817:24;:::i;:::-;13808:33;;13863:66;13856:5;13853:77;13850:103;;13933:18;;:::i;:::-;13850:103;13980:1;13973:5;13969:13;13962:20;;13755:233;;;:::o;13994:191::-;14034:3;14053:20;14071:1;14053:20;:::i;:::-;14048:25;;14087:20;14105:1;14087:20;:::i;:::-;14082:25;;14130:1;14127;14123:9;14116:16;;14151:3;14148:1;14145:10;14142:36;;;14158:18;;:::i;:::-;14142:36;13994:191;;;;:::o;14191:332::-;14312:4;14350:2;14339:9;14335:18;14327:26;;14363:71;14431:1;14420:9;14416:17;14407:6;14363:71;:::i;:::-;14444:72;14512:2;14501:9;14497:18;14488:6;14444:72;:::i;:::-;14191:332;;;;;:::o;14529:137::-;14583:5;14614:6;14608:13;14599:22;;14630:30;14654:5;14630:30;:::i;:::-;14529:137;;;;:::o;14672:345::-;14739:6;14788:2;14776:9;14767:7;14763:23;14759:32;14756:119;;;14794:79;;:::i;:::-;14756:119;14914:1;14939:61;14992:7;14983:6;14972:9;14968:22;14939:61;:::i;:::-;14929:71;;14885:125;14672:345;;;;:::o;15023:224::-;15163:34;15159:1;15151:6;15147:14;15140:58;15232:7;15227:2;15219:6;15215:15;15208:32;15023:224;:::o;15253:366::-;15395:3;15416:67;15480:2;15475:3;15416:67;:::i;:::-;15409:74;;15492:93;15581:3;15492:93;:::i;:::-;15610:2;15605:3;15601:12;15594:19;;15253:366;;;:::o;15625:419::-;15791:4;15829:2;15818:9;15814:18;15806:26;;15878:9;15872:4;15868:20;15864:1;15853:9;15849:17;15842:47;15906:131;16032:4;15906:131;:::i;:::-;15898:139;;15625:419;;;:::o;16050:410::-;16090:7;16113:20;16131:1;16113:20;:::i;:::-;16108:25;;16147:20;16165:1;16147:20;:::i;:::-;16142:25;;16202:1;16199;16195:9;16224:30;16242:11;16224:30;:::i;:::-;16213:41;;16403:1;16394:7;16390:15;16387:1;16384:22;16364:1;16357:9;16337:83;16314:139;;16433:18;;:::i;:::-;16314:139;16098:362;16050:410;;;;:::o;16466:164::-;16606:16;16602:1;16594:6;16590:14;16583:40;16466:164;:::o;16636:366::-;16778:3;16799:67;16863:2;16858:3;16799:67;:::i;:::-;16792:74;;16875:93;16964:3;16875:93;:::i;:::-;16993:2;16988:3;16984:12;16977:19;;16636:366;;;:::o;17008:419::-;17174:4;17212:2;17201:9;17197:18;17189:26;;17261:9;17255:4;17251:20;17247:1;17236:9;17232:17;17225:47;17289:131;17415:4;17289:131;:::i;:::-;17281:139;;17008:419;;;:::o;17433:225::-;17573:34;17569:1;17561:6;17557:14;17550:58;17642:8;17637:2;17629:6;17625:15;17618:33;17433:225;:::o;17664:366::-;17806:3;17827:67;17891:2;17886:3;17827:67;:::i;:::-;17820:74;;17903:93;17992:3;17903:93;:::i;:::-;18021:2;18016:3;18012:12;18005:19;;17664:366;;;:::o;18036:419::-;18202:4;18240:2;18229:9;18225:18;18217:26;;18289:9;18283:4;18279:20;18275:1;18264:9;18260:17;18253:47;18317:131;18443:4;18317:131;:::i;:::-;18309:139;;18036:419;;;:::o;18461:223::-;18601:34;18597:1;18589:6;18585:14;18578:58;18670:6;18665:2;18657:6;18653:15;18646:31;18461:223;:::o;18690:366::-;18832:3;18853:67;18917:2;18912:3;18853:67;:::i;:::-;18846:74;;18929:93;19018:3;18929:93;:::i;:::-;19047:2;19042:3;19038:12;19031:19;;18690:366;;;:::o;19062:419::-;19228:4;19266:2;19255:9;19251:18;19243:26;;19315:9;19309:4;19305:20;19301:1;19290:9;19286:17;19279:47;19343:131;19469:4;19343:131;:::i;:::-;19335:139;;19062:419;;;:::o;19487:221::-;19627:34;19623:1;19615:6;19611:14;19604:58;19696:4;19691:2;19683:6;19679:15;19672:29;19487:221;:::o;19714:366::-;19856:3;19877:67;19941:2;19936:3;19877:67;:::i;:::-;19870:74;;19953:93;20042:3;19953:93;:::i;:::-;20071:2;20066:3;20062:12;20055:19;;19714:366;;;:::o;20086:419::-;20252:4;20290:2;20279:9;20275:18;20267:26;;20339:9;20333:4;20329:20;20325:1;20314:9;20310:17;20303:47;20367:131;20493:4;20367:131;:::i;:::-;20359:139;;20086:419;;;:::o;20511:182::-;20651:34;20647:1;20639:6;20635:14;20628:58;20511:182;:::o;20699:366::-;20841:3;20862:67;20926:2;20921:3;20862:67;:::i;:::-;20855:74;;20938:93;21027:3;20938:93;:::i;:::-;21056:2;21051:3;21047:12;21040:19;;20699:366;;;:::o;21071:419::-;21237:4;21275:2;21264:9;21260:18;21252:26;;21324:9;21318:4;21314:20;21310:1;21299:9;21295:17;21288:47;21352:131;21478:4;21352:131;:::i;:::-;21344:139;;21071:419;;;:::o;21496:179::-;21636:31;21632:1;21624:6;21620:14;21613:55;21496:179;:::o;21681:366::-;21823:3;21844:67;21908:2;21903:3;21844:67;:::i;:::-;21837:74;;21920:93;22009:3;21920:93;:::i;:::-;22038:2;22033:3;22029:12;22022:19;;21681:366;;;:::o;22053:419::-;22219:4;22257:2;22246:9;22242:18;22234:26;;22306:9;22300:4;22296:20;22292:1;22281:9;22277:17;22270:47;22334:131;22460:4;22334:131;:::i;:::-;22326:139;;22053:419;;;:::o;22478:228::-;22618:34;22614:1;22606:6;22602:14;22595:58;22687:11;22682:2;22674:6;22670:15;22663:36;22478:228;:::o;22712:366::-;22854:3;22875:67;22939:2;22934:3;22875:67;:::i;:::-;22868:74;;22951:93;23040:3;22951:93;:::i;:::-;23069:2;23064:3;23060:12;23053:19;;22712:366;;;:::o;23084:419::-;23250:4;23288:2;23277:9;23273:18;23265:26;;23337:9;23331:4;23327:20;23323:1;23312:9;23308:17;23301:47;23365:131;23491:4;23365:131;:::i;:::-;23357:139;;23084:419;;;:::o;23509:169::-;23649:21;23645:1;23637:6;23633:14;23626:45;23509:169;:::o;23684:366::-;23826:3;23847:67;23911:2;23906:3;23847:67;:::i;:::-;23840:74;;23923:93;24012:3;23923:93;:::i;:::-;24041:2;24036:3;24032:12;24025:19;;23684:366;;;:::o;24056:419::-;24222:4;24260:2;24249:9;24245:18;24237:26;;24309:9;24303:4;24299:20;24295:1;24284:9;24280:17;24273:47;24337:131;24463:4;24337:131;:::i;:::-;24329:139;;24056:419;;;:::o;24481:169::-;24621:21;24617:1;24609:6;24605:14;24598:45;24481:169;:::o;24656:366::-;24798:3;24819:67;24883:2;24878:3;24819:67;:::i;:::-;24812:74;;24895:93;24984:3;24895:93;:::i;:::-;25013:2;25008:3;25004:12;24997:19;;24656:366;;;:::o;25028:419::-;25194:4;25232:2;25221:9;25217:18;25209:26;;25281:9;25275:4;25271:20;25267:1;25256:9;25252:17;25245:47;25309:131;25435:4;25309:131;:::i;:::-;25301:139;;25028:419;;;:::o;25453:161::-;25593:13;25589:1;25581:6;25577:14;25570:37;25453:161;:::o;25620:366::-;25762:3;25783:67;25847:2;25842:3;25783:67;:::i;:::-;25776:74;;25859:93;25948:3;25859:93;:::i;:::-;25977:2;25972:3;25968:12;25961:19;;25620:366;;;:::o;25992:419::-;26158:4;26196:2;26185:9;26181:18;26173:26;;26245:9;26239:4;26235:20;26231:1;26220:9;26216:17;26209:47;26273:131;26399:4;26273:131;:::i;:::-;26265:139;;25992:419;;;:::o;26417:171::-;26557:23;26553:1;26545:6;26541:14;26534:47;26417:171;:::o;26594:366::-;26736:3;26757:67;26821:2;26816:3;26757:67;:::i;:::-;26750:74;;26833:93;26922:3;26833:93;:::i;:::-;26951:2;26946:3;26942:12;26935:19;;26594:366;;;:::o;26966:419::-;27132:4;27170:2;27159:9;27155:18;27147:26;;27219:9;27213:4;27209:20;27205:1;27194:9;27190:17;27183:47;27247:131;27373:4;27247:131;:::i;:::-;27239:139;;26966:419;;;:::o;27391:180::-;27439:77;27436:1;27429:88;27536:4;27533:1;27526:15;27560:4;27557:1;27550:15;27577:185;27617:1;27634:20;27652:1;27634:20;:::i;:::-;27629:25;;27668:20;27686:1;27668:20;:::i;:::-;27663:25;;27707:1;27697:35;;27712:18;;:::i;:::-;27697:35;27754:1;27751;27747:9;27742:14;;27577:185;;;;:::o;27768:194::-;27808:4;27828:20;27846:1;27828:20;:::i;:::-;27823:25;;27862:20;27880:1;27862:20;:::i;:::-;27857:25;;27906:1;27903;27899:9;27891:17;;27930:1;27924:4;27921:11;27918:37;;;27935:18;;:::i;:::-;27918:37;27768:194;;;;:::o;27968:179::-;28108:31;28104:1;28096:6;28092:14;28085:55;27968:179;:::o;28153:366::-;28295:3;28316:67;28380:2;28375:3;28316:67;:::i;:::-;28309:74;;28392:93;28481:3;28392:93;:::i;:::-;28510:2;28505:3;28501:12;28494:19;;28153:366;;;:::o;28525:419::-;28691:4;28729:2;28718:9;28714:18;28706:26;;28778:9;28772:4;28768:20;28764:1;28753:9;28749:17;28742:47;28806:131;28932:4;28806:131;:::i;:::-;28798:139;;28525:419;;;:::o;28950:147::-;29051:11;29088:3;29073:18;;28950:147;;;;:::o;29103:114::-;;:::o;29223:398::-;29382:3;29403:83;29484:1;29479:3;29403:83;:::i;:::-;29396:90;;29495:93;29584:3;29495:93;:::i;:::-;29613:1;29608:3;29604:11;29597:18;;29223:398;;;:::o;29627:379::-;29811:3;29833:147;29976:3;29833:147;:::i;:::-;29826:154;;29997:3;29990:10;;29627:379;;;:::o;30012:245::-;30152:34;30148:1;30140:6;30136:14;30129:58;30221:28;30216:2;30208:6;30204:15;30197:53;30012:245;:::o;30263:366::-;30405:3;30426:67;30490:2;30485:3;30426:67;:::i;:::-;30419:74;;30502:93;30591:3;30502:93;:::i;:::-;30620:2;30615:3;30611:12;30604:19;;30263:366;;;:::o;30635:419::-;30801:4;30839:2;30828:9;30824:18;30816:26;;30888:9;30882:4;30878:20;30874:1;30863:9;30859:17;30852:47;30916:131;31042:4;30916:131;:::i;:::-;30908:139;;30635:419;;;:::o;31060:224::-;31200:34;31196:1;31188:6;31184:14;31177:58;31269:7;31264:2;31256:6;31252:15;31245:32;31060:224;:::o;31290:366::-;31432:3;31453:67;31517:2;31512:3;31453:67;:::i;:::-;31446:74;;31529:93;31618:3;31529:93;:::i;:::-;31647:2;31642:3;31638:12;31631:19;;31290:366;;;:::o;31662:419::-;31828:4;31866:2;31855:9;31851:18;31843:26;;31915:9;31909:4;31905:20;31901:1;31890:9;31886:17;31879:47;31943:131;32069:4;31943:131;:::i;:::-;31935:139;;31662:419;;;:::o;32087:222::-;32227:34;32223:1;32215:6;32211:14;32204:58;32296:5;32291:2;32283:6;32279:15;32272:30;32087:222;:::o;32315:366::-;32457:3;32478:67;32542:2;32537:3;32478:67;:::i;:::-;32471:74;;32554:93;32643:3;32554:93;:::i;:::-;32672:2;32667:3;32663:12;32656:19;;32315:366;;;:::o;32687:419::-;32853:4;32891:2;32880:9;32876:18;32868:26;;32940:9;32934:4;32930:20;32926:1;32915:9;32911:17;32904:47;32968:131;33094:4;32968:131;:::i;:::-;32960:139;;32687:419;;;:::o;33112:225::-;33252:34;33248:1;33240:6;33236:14;33229:58;33321:8;33316:2;33308:6;33304:15;33297:33;33112:225;:::o;33343:366::-;33485:3;33506:67;33570:2;33565:3;33506:67;:::i;:::-;33499:74;;33582:93;33671:3;33582:93;:::i;:::-;33700:2;33695:3;33691:12;33684:19;;33343:366;;;:::o;33715:419::-;33881:4;33919:2;33908:9;33904:18;33896:26;;33968:9;33962:4;33958:20;33954:1;33943:9;33939:17;33932:47;33996:131;34122:4;33996:131;:::i;:::-;33988:139;;33715:419;;;:::o;34140:143::-;34197:5;34228:6;34222:13;34213:22;;34244:33;34271:5;34244:33;:::i;:::-;34140:143;;;;:::o;34289:351::-;34359:6;34408:2;34396:9;34387:7;34383:23;34379:32;34376:119;;;34414:79;;:::i;:::-;34376:119;34534:1;34559:64;34615:7;34606:6;34595:9;34591:22;34559:64;:::i;:::-;34549:74;;34505:128;34289:351;;;;:::o;34646:85::-;34691:7;34720:5;34709:16;;34646:85;;;:::o;34737:158::-;34795:9;34828:61;34846:42;34855:32;34881:5;34855:32;:::i;:::-;34846:42;:::i;:::-;34828:61;:::i;:::-;34815:74;;34737:158;;;:::o;34901:147::-;34996:45;35035:5;34996:45;:::i;:::-;34991:3;34984:58;34901:147;;:::o;35054:114::-;35121:6;35155:5;35149:12;35139:22;;35054:114;;;:::o;35174:184::-;35273:11;35307:6;35302:3;35295:19;35347:4;35342:3;35338:14;35323:29;;35174:184;;;;:::o;35364:132::-;35431:4;35454:3;35446:11;;35484:4;35479:3;35475:14;35467:22;;35364:132;;;:::o;35502:108::-;35579:24;35597:5;35579:24;:::i;:::-;35574:3;35567:37;35502:108;;:::o;35616:179::-;35685:10;35706:46;35748:3;35740:6;35706:46;:::i;:::-;35784:4;35779:3;35775:14;35761:28;;35616:179;;;;:::o;35801:113::-;35871:4;35903;35898:3;35894:14;35886:22;;35801:113;;;:::o;35950:732::-;36069:3;36098:54;36146:5;36098:54;:::i;:::-;36168:86;36247:6;36242:3;36168:86;:::i;:::-;36161:93;;36278:56;36328:5;36278:56;:::i;:::-;36357:7;36388:1;36373:284;36398:6;36395:1;36392:13;36373:284;;;36474:6;36468:13;36501:63;36560:3;36545:13;36501:63;:::i;:::-;36494:70;;36587:60;36640:6;36587:60;:::i;:::-;36577:70;;36433:224;36420:1;36417;36413:9;36408:14;;36373:284;;;36377:14;36673:3;36666:10;;36074:608;;;35950:732;;;;:::o;36688:831::-;36951:4;36989:3;36978:9;36974:19;36966:27;;37003:71;37071:1;37060:9;37056:17;37047:6;37003:71;:::i;:::-;37084:80;37160:2;37149:9;37145:18;37136:6;37084:80;:::i;:::-;37211:9;37205:4;37201:20;37196:2;37185:9;37181:18;37174:48;37239:108;37342:4;37333:6;37239:108;:::i;:::-;37231:116;;37357:72;37425:2;37414:9;37410:18;37401:6;37357:72;:::i;:::-;37439:73;37507:3;37496:9;37492:19;37483:6;37439:73;:::i;:::-;36688:831;;;;;;;;:::o

Swarm Source

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