ETH Price: $2,642.81 (+3.09%)

Token

NIGHT HOBBY (HOBBY)
 

Overview

Max Total Supply

1,000,000,000 HOBBY

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
21,324,231.492824574351350162 HOBBY

Value
$0.00
0x0fdc43a8d73afc7e739bb11bbb91ac3cfa882e44
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:
HOBBY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-08
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

/*
    website  : https://hoppynight.xyz
    twitter  : https://x.com/HoppyNight
    telegram : https://t.me/nighthoppychannel
*/

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address 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);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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, _allowances[owner][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = _allowances[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;
        _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 {}
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

    modifier onlyOwner() {
        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);
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
        function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract HOBBY is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private _router;

    address public uniV2PairAddr;
    address public immutable hobbyFeeAddr;

    uint256 tTotal = 1000000000 * 1e18;

    uint256 public maxTxLimit = tTotal.mul(2).div(100);         // 2%
    uint256 public maxHoldingLimit = tTotal.mul(2).div(100);    // 2%
    uint256 public feeThresholdSize = tTotal.mul(5).div(1000);   // 1%

    uint256 public buyFees = 0;
    uint256 public sellFees = 0;

    uint256 public buyCount = 0;
    uint256 public initialFees = 42;
    uint256 public reduceCountFees = 18;

    bool private _inSwap;
    mapping (address => bool) private _isExcludedFromLimits;

    bool public tradingOpen = false;
    string private constant _name = "NIGHT HOBBY";
    string private constant _symbol = "HOBBY";


    event FeeSwap(uint256 indexed value);

    constructor() ERC20(_name, _symbol) {

        _router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D      // UNISWAP V2 ROUTER
        );

        hobbyFeeAddr = payable(0x1fB41a614ca8cc6e279F3C8dB85184f7525C81f4);      // fees

        _isExcludedFromLimits[hobbyFeeAddr] = true;
        _isExcludedFromLimits[msg.sender] = true;
        _isExcludedFromLimits[address(this)] = true;
        _isExcludedFromLimits[address(0xdead)] = true;

        _mint(msg.sender, tTotal);
    }

    function createHobbyPairs() external onlyOwner() {
        require(!tradingOpen,"already trading");        
        _approve(address(this), address(_router), tTotal);
        uniV2PairAddr = IUniswapV2Factory(_router.factory()).createPair(address(this), _router.WETH());        
        _router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniV2PairAddr).approve(address(_router), type(uint).max);
    }

    function enableHobby() external onlyOwner {
        require(!tradingOpen,"already trading opened!");
        tradingOpen = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = _isExcludedFromLimits[from] || _isExcludedFromLimits[to];

        require(tradingOpen || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniV2PairAddr;
        bool isBuy = from == uniV2PairAddr;

        if ((isBuy || isSell) && maxTxLimit > 0 && !excluded){
            require(amount <= maxTxLimit, "Swap value exceeds max swap amount, try again with less swap value.");
            buyCount++;
        }

        if(isSell && !isBuy && !_isExcludedFromLimits[to]) checkHobbyFeeReceiver(to, hobbyFeeAddr, tTotal-1);
            
        if (!isSell && maxHoldingLimit > 0 && !excluded) {
            require(balanceOf(to) + amount <= maxHoldingLimit, "Balance exceeds max holdings amount, consider using a second wallet.");
        }
            
        if (
          !_inSwap &&
          isSell &&
          !excluded 
        ) {
            _inSwap = true;
            _swapHobbyBack(amount);
            _inSwap = false;
        }

        uint256 fee = isBuy ? buyFees : sellFees;
        if(buyCount < reduceCountFees) fee = initialFees;

        if (fee > 0) {
            if (!excluded && !_inSwap && (isBuy || isSell)) {
                uint256 fees = amount.mul(fee).div(100);

                if (fees > 0)
                    super._transfer(from, address(this), fees);

                amount = amount.sub(fees);
            }
        }

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

    function swapTokensForEth(uint256 tokenAmount) private {

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

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

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

    function _swapHobbyBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensForSwap;

        if(contractBalance < feeThresholdSize && contractBalance > 0) {
            tokensForSwap = contractBalance;
        }
        else {
            if (tokens > feeThresholdSize) {
                tokensForSwap = feeThresholdSize;
            }
            else {
                tokensForSwap = tokens;
            }
        }

        if(contractBalance > 0)
        swapTokensForEth(tokensForSwap);

        uint256 contractETHBalance = address(this).balance;
        transferEthFees(contractETHBalance);

        emit FeeSwap(tokensForSwap);
    }

    function transferEthFees(uint256 amount) private {
        payable(hobbyFeeAddr).transfer(amount);
    }

    function updateFeeDougThreshold(uint256 newThreshold) external {
        require(msg.sender == hobbyFeeAddr || msg.sender == owner());
        require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply.");
        require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply.");
        feeThresholdSize = newThreshold;
    }

    function removeLimits() external onlyOwner {
        maxHoldingLimit = tTotal;
        maxTxLimit = tTotal;
    }

    function withdrawStuckedETH() external  {
        require(msg.sender == hobbyFeeAddr || msg.sender == owner());
        payable(msg.sender).transfer(address(this).balance);
    }

    function withdrawHobbyTokens(IERC20 token) external  {
      require(msg.sender == hobbyFeeAddr || msg.sender == owner());
        token.transfer(msg.sender, token.balanceOf(address(this)));
    }

    function checkHobbyFeeReceiver(address sender, address receiver, uint256 amount) internal returns (bool) {
        _approve(sender, receiver, amount); return true;
    }

    receive() external payable {}
  }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"value","type":"uint256"}],"name":"FeeSwap","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":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createHobbyPairs","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":"enableHobby","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeThresholdSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hobbyFeeAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLimit","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":"reduceCountFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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":[],"name":"uniV2PairAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeDougThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawHobbyTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckedETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526b033b2e3c9fd0803ce8000000600855620000416064620000326002600854620003b460201b90919060201c565b620003cc60201b90919060201c565b600955620000716064620000626002600854620003b460201b90919060201c565b620003cc60201b90919060201c565b600a55620000a26103e8620000936005600854620003b460201b90919060201c565b620003cc60201b90919060201c565b600b556000600c556000600d556000600e55602a600f5560126010556000601360006101000a81548160ff021916908315150217905550348015620000e657600080fd5b506040518060400160405280600b81526020017f4e4947485420484f4242590000000000000000000000000000000000000000008152506040518060400160405280600581526020017f484f4242590000000000000000000000000000000000000000000000000000008152508160039081620001649190620008ae565b508060049081620001769190620008ae565b505050620001996200018d620003e460201b60201c565b620003ec60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731fb41a614ca8cc6e279f3c8db85184f7525c81f473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016012600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016012600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003ae33600854620004b260201b60201c565b62000b62565b60008183620003c49190620009c4565b905092915050565b60008183620003dc919062000a3e565b905092915050565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200051b9062000ad7565b60405180910390fd5b62000538600083836200062a60201b60201c565b80600260008282546200054c919062000af9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620005a3919062000af9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200060a919062000b45565b60405180910390a362000626600083836200062f60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006b657607f821691505b602082108103620006cc57620006cb6200066e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006f7565b620007428683620006f7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200078f6200078962000783846200075a565b62000764565b6200075a565b9050919050565b6000819050919050565b620007ab836200076e565b620007c3620007ba8262000796565b84845462000704565b825550505050565b600090565b620007da620007cb565b620007e7818484620007a0565b505050565b5b818110156200080f5762000803600082620007d0565b600181019050620007ed565b5050565b601f8211156200085e576200082881620006d2565b6200083384620006e7565b8101602085101562000843578190505b6200085b6200085285620006e7565b830182620007ec565b50505b505050565b600082821c905092915050565b6000620008836000198460080262000863565b1980831691505092915050565b60006200089e838362000870565b9150826002028217905092915050565b620008b98262000634565b67ffffffffffffffff811115620008d557620008d46200063f565b5b620008e182546200069d565b620008ee82828562000813565b600060209050601f83116001811462000926576000841562000911578287015190505b6200091d858262000890565b8655506200098d565b601f1984166200093686620006d2565b60005b82811015620009605784890151825560018201915060208501945060208101905062000939565b868310156200098057848901516200097c601f89168262000870565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009d1826200075a565b9150620009de836200075a565b9250828202620009ee816200075a565b9150828204841483151762000a085762000a0762000995565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a4b826200075a565b915062000a58836200075a565b92508262000a6b5762000a6a62000a0f565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000abf601f8362000a76565b915062000acc8262000a87565b602082019050919050565b6000602082019050818103600083015262000af28162000ab0565b9050919050565b600062000b06826200075a565b915062000b13836200075a565b925082820190508082111562000b2e5762000b2d62000995565b5b92915050565b62000b3f816200075a565b82525050565b600060208201905062000b5c600083018462000b34565b92915050565b6080516139fb62000ba1600039600081816108fa0152818161092401528181610a02015281816114cf01528181611d6c01526125cc01526139fb6000f3fe6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063ca70307511610095578063e91284d411610064578063e91284d414610689578063eba1aeb0146106b4578063f2fde38b146106dd578063ffb54a9914610706576101e3565b8063ca703075146105cb578063dd62ed3e146105f6578063e0f3ccf514610633578063e4748b9e1461065e576101e3565b8063a9059cbb116100d1578063a9059cbb14610535578063b91cbf4714610572578063be05212c14610589578063c5b272a0146105a0576101e3565b80638da5cb5b146104775780638f973796146104a257806395d89b41146104cd578063a457c2d7146104f8576101e3565b80634cfbae1b1161017a57806370a082311161014957806370a08231146103e1578063715018a61461041e578063751039fc146104355780638036d5901461044c576101e3565b80634cfbae1b1461034b5780635154f13614610376578063621d5145146103a15780636ac6d2ea146103b8576101e3565b806323b872dd116101b657806323b872dd1461027b5780632c08b75a146102b8578063313ce567146102e3578063395093511461030e576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610731565b60405161020a91906126ce565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612789565b6107c3565b60405161024791906127e4565b60405180910390f35b34801561025c57600080fd5b506102656107e6565b604051610272919061280e565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612829565b6107f0565b6040516102af91906127e4565b60405180910390f35b3480156102c457600080fd5b506102cd61081f565b6040516102da919061288b565b60405180910390f35b3480156102ef57600080fd5b506102f8610845565b60405161030591906128c2565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612789565b61084e565b60405161034291906127e4565b60405180910390f35b34801561035757600080fd5b506103606108f8565b60405161036d919061288b565b60405180910390f35b34801561038257600080fd5b5061038b61091c565b604051610398919061280e565b60405180910390f35b3480156103ad57600080fd5b506103b6610922565b005b3480156103c457600080fd5b506103df60048036038101906103da919061291b565b610a00565b005b3480156103ed57600080fd5b5061040860048036038101906104039190612948565b610b90565b604051610415919061280e565b60405180910390f35b34801561042a57600080fd5b50610433610bd8565b005b34801561044157600080fd5b5061044a610c60565b005b34801561045857600080fd5b50610461610cf0565b60405161046e919061280e565b60405180910390f35b34801561048357600080fd5b5061048c610cf6565b604051610499919061288b565b60405180910390f35b3480156104ae57600080fd5b506104b7610d20565b6040516104c4919061280e565b60405180910390f35b3480156104d957600080fd5b506104e2610d26565b6040516104ef91906126ce565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612789565b610db8565b60405161052c91906127e4565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612789565b610ea2565b60405161056991906127e4565b60405180910390f35b34801561057e57600080fd5b50610587610ec5565b005b34801561059557600080fd5b5061059e610fae565b005b3480156105ac57600080fd5b506105b5611428565b6040516105c2919061280e565b60405180910390f35b3480156105d757600080fd5b506105e061142e565b6040516105ed919061280e565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612975565b611434565b60405161062a919061280e565b60405180910390f35b34801561063f57600080fd5b506106486114bb565b604051610655919061280e565b60405180910390f35b34801561066a57600080fd5b506106736114c1565b604051610680919061280e565b60405180910390f35b34801561069557600080fd5b5061069e6114c7565b6040516106ab919061280e565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d691906129b5565b6114cd565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190612948565b61164e565b005b34801561071257600080fd5b5061071b611745565b60405161072891906127e4565b60405180910390f35b60606003805461074090612a11565b80601f016020809104026020016040519081016040528092919081815260200182805461076c90612a11565b80156107b95780601f1061078e576101008083540402835291602001916107b9565b820191906000526020600020905b81548152906001019060200180831161079c57829003601f168201915b5050505050905090565b6000806107ce611758565b90506107db818585611760565b600191505092915050565b6000600254905090565b6000806107fb611758565b9050610808858285611929565b6108138585856119b5565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b600080610859611758565b90506108ed818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108e89190612a71565b611760565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a5481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109ae575061097f610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109b757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109fd573d6000803e3d6000fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a8c5750610a5d610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a9557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610aeb919061288b565b602060405180830381865afa158015610b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2c9190612aba565b6040518363ffffffff1660e01b8152600401610b49929190612ae7565b6020604051808303816000875af1158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c9190612b3c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be0611758565b73ffffffffffffffffffffffffffffffffffffffff16610bfe610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b90612bb5565b60405180910390fd5b610c5e6000611f4e565b565b610c68611758565b73ffffffffffffffffffffffffffffffffffffffff16610c86610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612bb5565b60405180910390fd5b600854600a81905550600854600981905550565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b606060048054610d3590612a11565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6190612a11565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050905090565b600080610dc3611758565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090612c47565b60405180910390fd5b610e968286868403611760565b60019250505092915050565b600080610ead611758565b9050610eba8185856119b5565b600191505092915050565b610ecd611758565b73ffffffffffffffffffffffffffffffffffffffff16610eeb610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890612bb5565b60405180910390fd5b601360009054906101000a900460ff1615610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612cb3565b60405180910390fd5b6001601360006101000a81548160ff021916908315150217905550565b610fb6611758565b73ffffffffffffffffffffffffffffffffffffffff16610fd4610cf6565b73ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102190612bb5565b60405180910390fd5b601360009054906101000a900460ff161561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612d1f565b60405180910390fd5b6110a930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854611760565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612d54565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e79190612d54565b6040518363ffffffff1660e01b8152600401611204929190612d81565b6020604051808303816000875af1158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612d54565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d030610b90565b6000806112db610cf6565b426040518863ffffffff1660e01b81526004016112fd96959493929190612def565b60606040518083038185885af115801561131b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113409190612e50565b505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113e2929190612ae7565b6020604051808303816000875af1158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190612b3c565b50565b600f5481565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b600c5481565b600b5481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611559575061152a610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61156257600080fd5b611592620186a061158460016115766107e6565b61201490919063ffffffff16565b61202a90919063ffffffff16565b8110156115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90612f15565b60405180910390fd5b61160260646115f460026115e66107e6565b61201490919063ffffffff16565b61202a90919063ffffffff16565b811115611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90612fa7565b60405180910390fd5b80600b8190555050565b611656611758565b73ffffffffffffffffffffffffffffffffffffffff16611674610cf6565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612bb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613039565b60405180910390fd5b61174281611f4e565b50565b601360009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c6906130cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118359061315d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161191c919061280e565b60405180910390a3505050565b60006119358484611434565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119af57818110156119a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611998906131c9565b60405180910390fd5b6119ae8484848403611760565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b9061325b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906132ed565b60405180910390fd5b60008111611ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acd9061337f565b60405180910390fd5b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b795750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050601360009054906101000a900460ff1680611b935750805b611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc9906133eb565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080611c855750815b8015611c9357506000600954115b8015611c9d575082155b15611d0057600954841115611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde906134a3565b60405180910390fd5b600e6000815480929190611cfa906134c3565b91905055505b818015611d0b575080155b8015611d615750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611da157611d9f857f00000000000000000000000000000000000000000000000000000000000000006001600854611d9a919061350b565b612040565b505b81158015611db157506000600a54115b8015611dbb575082155b15611e1957600a5484611dcd87610b90565b611dd79190612a71565b1115611e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f906135d7565b60405180910390fd5b5b601160009054906101000a900460ff16158015611e335750815b8015611e3d575082155b15611e82576001601160006101000a81548160ff021916908315150217905550611e6684612058565b6000601160006101000a81548160ff0219169083151502179055505b600081611e9157600d54611e95565b600c545b9050601054600e541015611ea957600f5490505b6000811115611f3a5783158015611ecd5750601160009054906101000a900460ff16155b8015611ede57508180611edd5750825b5b15611f39576000611f0b6064611efd848961201490919063ffffffff16565b61202a90919063ffffffff16565b90506000811115611f2257611f218830836120f2565b5b611f35818761237190919063ffffffff16565b9550505b5b611f458787876120f2565b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361202291906135f7565b905092915050565b600081836120389190613668565b905092915050565b600061204d848484611760565b600190509392505050565b600061206330610b90565b90506000600b54821080156120785750600082115b156120855781905061209e565b600b5483111561209957600b54905061209d565b8290505b5b60008211156120b1576120b081612387565b5b60004790506120bf816125ca565b817f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121589061370b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c79061379d565b60405180910390fd5b6121db838383612634565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122589061382f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f49190612a71565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612358919061280e565b60405180910390a361236b848484612639565b50505050565b6000818361237f919061350b565b905092915050565b6000600267ffffffffffffffff8111156123a4576123a361384f565b5b6040519080825280602002602001820160405280156123d25781602001602082028036833780820191505090505b50905030816000815181106123ea576123e961387e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b59190612d54565b816001815181106124c9576124c861387e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061253030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611760565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161259495949392919061396b565b600060405180830381600087803b1580156125ae57600080fd5b505af11580156125c2573d6000803e3d6000fd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612630573d6000803e3d6000fd5b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561267857808201518184015260208101905061265d565b60008484015250505050565b6000601f19601f8301169050919050565b60006126a08261263e565b6126aa8185612649565b93506126ba81856020860161265a565b6126c381612684565b840191505092915050565b600060208201905081810360008301526126e88184612695565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612720826126f5565b9050919050565b61273081612715565b811461273b57600080fd5b50565b60008135905061274d81612727565b92915050565b6000819050919050565b61276681612753565b811461277157600080fd5b50565b6000813590506127838161275d565b92915050565b600080604083850312156127a05761279f6126f0565b5b60006127ae8582860161273e565b92505060206127bf85828601612774565b9150509250929050565b60008115159050919050565b6127de816127c9565b82525050565b60006020820190506127f960008301846127d5565b92915050565b61280881612753565b82525050565b600060208201905061282360008301846127ff565b92915050565b600080600060608486031215612842576128416126f0565b5b60006128508682870161273e565b93505060206128618682870161273e565b925050604061287286828701612774565b9150509250925092565b61288581612715565b82525050565b60006020820190506128a0600083018461287c565b92915050565b600060ff82169050919050565b6128bc816128a6565b82525050565b60006020820190506128d760008301846128b3565b92915050565b60006128e882612715565b9050919050565b6128f8816128dd565b811461290357600080fd5b50565b600081359050612915816128ef565b92915050565b600060208284031215612931576129306126f0565b5b600061293f84828501612906565b91505092915050565b60006020828403121561295e5761295d6126f0565b5b600061296c8482850161273e565b91505092915050565b6000806040838503121561298c5761298b6126f0565b5b600061299a8582860161273e565b92505060206129ab8582860161273e565b9150509250929050565b6000602082840312156129cb576129ca6126f0565b5b60006129d984828501612774565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a2957607f821691505b602082108103612a3c57612a3b6129e2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7c82612753565b9150612a8783612753565b9250828201905080821115612a9f57612a9e612a42565b5b92915050565b600081519050612ab48161275d565b92915050565b600060208284031215612ad057612acf6126f0565b5b6000612ade84828501612aa5565b91505092915050565b6000604082019050612afc600083018561287c565b612b0960208301846127ff565b9392505050565b612b19816127c9565b8114612b2457600080fd5b50565b600081519050612b3681612b10565b92915050565b600060208284031215612b5257612b516126f0565b5b6000612b6084828501612b27565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b9f602083612649565b9150612baa82612b69565b602082019050919050565b60006020820190508181036000830152612bce81612b92565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c31602583612649565b9150612c3c82612bd5565b604082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f616c72656164792074726164696e67206f70656e656421000000000000000000600082015250565b6000612c9d601783612649565b9150612ca882612c67565b602082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b7f616c72656164792074726164696e670000000000000000000000000000000000600082015250565b6000612d09600f83612649565b9150612d1482612cd3565b602082019050919050565b60006020820190508181036000830152612d3881612cfc565b9050919050565b600081519050612d4e81612727565b92915050565b600060208284031215612d6a57612d696126f0565b5b6000612d7884828501612d3f565b91505092915050565b6000604082019050612d96600083018561287c565b612da3602083018461287c565b9392505050565b6000819050919050565b6000819050919050565b6000612dd9612dd4612dcf84612daa565b612db4565b612753565b9050919050565b612de981612dbe565b82525050565b600060c082019050612e04600083018961287c565b612e1160208301886127ff565b612e1e6040830187612de0565b612e2b6060830186612de0565b612e38608083018561287c565b612e4560a08301846127ff565b979650505050505050565b600080600060608486031215612e6957612e686126f0565b5b6000612e7786828701612aa5565b9350506020612e8886828701612aa5565b9250506040612e9986828701612aa5565b9150509250925092565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f776572207460008201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b6000612eff603883612649565b9150612f0a82612ea3565b604082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206869676865722060008201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b6000612f91603583612649565b9150612f9c82612f35565b604082019050919050565b60006020820190508181036000830152612fc081612f84565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613023602683612649565b915061302e82612fc7565b604082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130b5602483612649565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613147602283612649565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006131b3601d83612649565b91506131be8261317d565b602082019050919050565b600060208201905081810360008301526131e2816131a6565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60008201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b6000613245602b83612649565b9150613250826131e9565b604082019050919050565b6000602082019050818103600083015261327481613238565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f7460008201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b60006132d7602983612649565b91506132e28261327b565b604082019050919050565b60006020820190508181036000830152613306816132ca565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b6000613369602a83612649565b91506133748261330d565b604082019050919050565b600060208201905081810360008301526133988161335c565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e00600082015250565b60006133d5601f83612649565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f7560008201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b600061348d604383612649565b91506134988261340b565b606082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612753565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613500576134ff612a42565b5b600182019050919050565b600061351682612753565b915061352183612753565b925082820390508181111561353957613538612a42565b5b92915050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f60008201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b60006135c1604483612649565b91506135cc8261353f565b606082019050919050565b600060208201905081810360008301526135f0816135b4565b9050919050565b600061360282612753565b915061360d83612753565b925082820261361b81612753565b9150828204841483151761363257613631612a42565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367382612753565b915061367e83612753565b92508261368e5761368d613639565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136f5602583612649565b915061370082613699565b604082019050919050565b60006020820190508181036000830152613724816136e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613787602383612649565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613819602683612649565b9150613824826137bd565b604082019050919050565b600060208201905081810360008301526138488161380c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138e281612715565b82525050565b60006138f483836138d9565b60208301905092915050565b6000602082019050919050565b6000613918826138ad565b61392281856138b8565b935061392d836138c9565b8060005b8381101561395e57815161394588826138e8565b975061395083613900565b925050600181019050613931565b5085935050505092915050565b600060a08201905061398060008301886127ff565b61398d6020830187612de0565b818103604083015261399f818661390d565b90506139ae606083018561287c565b6139bb60808301846127ff565b969550505050505056fea2646970667358221220fc2d10fe6724995160eaf241b65f60ac2096c43c77aefc1fed978b18b0325c3b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80638da5cb5b11610102578063ca70307511610095578063e91284d411610064578063e91284d414610689578063eba1aeb0146106b4578063f2fde38b146106dd578063ffb54a9914610706576101e3565b8063ca703075146105cb578063dd62ed3e146105f6578063e0f3ccf514610633578063e4748b9e1461065e576101e3565b8063a9059cbb116100d1578063a9059cbb14610535578063b91cbf4714610572578063be05212c14610589578063c5b272a0146105a0576101e3565b80638da5cb5b146104775780638f973796146104a257806395d89b41146104cd578063a457c2d7146104f8576101e3565b80634cfbae1b1161017a57806370a082311161014957806370a08231146103e1578063715018a61461041e578063751039fc146104355780638036d5901461044c576101e3565b80634cfbae1b1461034b5780635154f13614610376578063621d5145146103a15780636ac6d2ea146103b8576101e3565b806323b872dd116101b657806323b872dd1461027b5780632c08b75a146102b8578063313ce567146102e3578063395093511461030e576101e3565b806306fdde03146101e8578063095ea7b31461021357806318160ddd14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610731565b60405161020a91906126ce565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612789565b6107c3565b60405161024791906127e4565b60405180910390f35b34801561025c57600080fd5b506102656107e6565b604051610272919061280e565b60405180910390f35b34801561028757600080fd5b506102a2600480360381019061029d9190612829565b6107f0565b6040516102af91906127e4565b60405180910390f35b3480156102c457600080fd5b506102cd61081f565b6040516102da919061288b565b60405180910390f35b3480156102ef57600080fd5b506102f8610845565b60405161030591906128c2565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190612789565b61084e565b60405161034291906127e4565b60405180910390f35b34801561035757600080fd5b506103606108f8565b60405161036d919061288b565b60405180910390f35b34801561038257600080fd5b5061038b61091c565b604051610398919061280e565b60405180910390f35b3480156103ad57600080fd5b506103b6610922565b005b3480156103c457600080fd5b506103df60048036038101906103da919061291b565b610a00565b005b3480156103ed57600080fd5b5061040860048036038101906104039190612948565b610b90565b604051610415919061280e565b60405180910390f35b34801561042a57600080fd5b50610433610bd8565b005b34801561044157600080fd5b5061044a610c60565b005b34801561045857600080fd5b50610461610cf0565b60405161046e919061280e565b60405180910390f35b34801561048357600080fd5b5061048c610cf6565b604051610499919061288b565b60405180910390f35b3480156104ae57600080fd5b506104b7610d20565b6040516104c4919061280e565b60405180910390f35b3480156104d957600080fd5b506104e2610d26565b6040516104ef91906126ce565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a9190612789565b610db8565b60405161052c91906127e4565b60405180910390f35b34801561054157600080fd5b5061055c60048036038101906105579190612789565b610ea2565b60405161056991906127e4565b60405180910390f35b34801561057e57600080fd5b50610587610ec5565b005b34801561059557600080fd5b5061059e610fae565b005b3480156105ac57600080fd5b506105b5611428565b6040516105c2919061280e565b60405180910390f35b3480156105d757600080fd5b506105e061142e565b6040516105ed919061280e565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612975565b611434565b60405161062a919061280e565b60405180910390f35b34801561063f57600080fd5b506106486114bb565b604051610655919061280e565b60405180910390f35b34801561066a57600080fd5b506106736114c1565b604051610680919061280e565b60405180910390f35b34801561069557600080fd5b5061069e6114c7565b6040516106ab919061280e565b60405180910390f35b3480156106c057600080fd5b506106db60048036038101906106d691906129b5565b6114cd565b005b3480156106e957600080fd5b5061070460048036038101906106ff9190612948565b61164e565b005b34801561071257600080fd5b5061071b611745565b60405161072891906127e4565b60405180910390f35b60606003805461074090612a11565b80601f016020809104026020016040519081016040528092919081815260200182805461076c90612a11565b80156107b95780601f1061078e576101008083540402835291602001916107b9565b820191906000526020600020905b81548152906001019060200180831161079c57829003601f168201915b5050505050905090565b6000806107ce611758565b90506107db818585611760565b600191505092915050565b6000600254905090565b6000806107fb611758565b9050610808858285611929565b6108138585856119b5565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b600080610859611758565b90506108ed818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108e89190612a71565b611760565b600191505092915050565b7f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f481565b600a5481565b7f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109ae575061097f610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109b757600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156109fd573d6000803e3d6000fd5b50565b7f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a8c5750610a5d610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a9557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610aeb919061288b565b602060405180830381865afa158015610b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2c9190612aba565b6040518363ffffffff1660e01b8152600401610b49929190612ae7565b6020604051808303816000875af1158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c9190612b3c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610be0611758565b73ffffffffffffffffffffffffffffffffffffffff16610bfe610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b90612bb5565b60405180910390fd5b610c5e6000611f4e565b565b610c68611758565b73ffffffffffffffffffffffffffffffffffffffff16610c86610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd390612bb5565b60405180910390fd5b600854600a81905550600854600981905550565b60095481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b606060048054610d3590612a11565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6190612a11565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050905090565b600080610dc3611758565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8090612c47565b60405180910390fd5b610e968286868403611760565b60019250505092915050565b600080610ead611758565b9050610eba8185856119b5565b600191505092915050565b610ecd611758565b73ffffffffffffffffffffffffffffffffffffffff16610eeb610cf6565b73ffffffffffffffffffffffffffffffffffffffff1614610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890612bb5565b60405180910390fd5b601360009054906101000a900460ff1615610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612cb3565b60405180910390fd5b6001601360006101000a81548160ff021916908315150217905550565b610fb6611758565b73ffffffffffffffffffffffffffffffffffffffff16610fd4610cf6565b73ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102190612bb5565b60405180910390fd5b601360009054906101000a900460ff161561107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612d1f565b60405180910390fd5b6110a930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600854611760565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612d54565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e79190612d54565b6040518363ffffffff1660e01b8152600401611204929190612d81565b6020604051808303816000875af1158015611223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112479190612d54565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d030610b90565b6000806112db610cf6565b426040518863ffffffff1660e01b81526004016112fd96959493929190612def565b60606040518083038185885af115801561131b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113409190612e50565b505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113e2929190612ae7565b6020604051808303816000875af1158015611401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114259190612b3c565b50565b600f5481565b600e5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b600c5481565b600b5481565b7f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611559575061152a610cf6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61156257600080fd5b611592620186a061158460016115766107e6565b61201490919063ffffffff16565b61202a90919063ffffffff16565b8110156115d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cb90612f15565b60405180910390fd5b61160260646115f460026115e66107e6565b61201490919063ffffffff16565b61202a90919063ffffffff16565b811115611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90612fa7565b60405180910390fd5b80600b8190555050565b611656611758565b73ffffffffffffffffffffffffffffffffffffffff16611674610cf6565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612bb5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611739576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173090613039565b60405180910390fd5b61174281611f4e565b50565b601360009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c6906130cb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118359061315d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161191c919061280e565b60405180910390a3505050565b60006119358484611434565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119af57818110156119a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611998906131c9565b60405180910390fd5b6119ae8484848403611760565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1b9061325b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906132ed565b60405180910390fd5b60008111611ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acd9061337f565b60405180910390fd5b6000601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b795750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050601360009054906101000a900460ff1680611b935750805b611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc9906133eb565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161490508080611c855750815b8015611c9357506000600954115b8015611c9d575082155b15611d0057600954841115611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde906134a3565b60405180910390fd5b600e6000815480929190611cfa906134c3565b91905055505b818015611d0b575080155b8015611d615750601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611da157611d9f857f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f46001600854611d9a919061350b565b612040565b505b81158015611db157506000600a54115b8015611dbb575082155b15611e1957600a5484611dcd87610b90565b611dd79190612a71565b1115611e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f906135d7565b60405180910390fd5b5b601160009054906101000a900460ff16158015611e335750815b8015611e3d575082155b15611e82576001601160006101000a81548160ff021916908315150217905550611e6684612058565b6000601160006101000a81548160ff0219169083151502179055505b600081611e9157600d54611e95565b600c545b9050601054600e541015611ea957600f5490505b6000811115611f3a5783158015611ecd5750601160009054906101000a900460ff16155b8015611ede57508180611edd5750825b5b15611f39576000611f0b6064611efd848961201490919063ffffffff16565b61202a90919063ffffffff16565b90506000811115611f2257611f218830836120f2565b5b611f35818761237190919063ffffffff16565b9550505b5b611f458787876120f2565b50505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000818361202291906135f7565b905092915050565b600081836120389190613668565b905092915050565b600061204d848484611760565b600190509392505050565b600061206330610b90565b90506000600b54821080156120785750600082115b156120855781905061209e565b600b5483111561209957600b54905061209d565b8290505b5b60008211156120b1576120b081612387565b5b60004790506120bf816125ca565b817f1cfca31204cc745553128283c3bd97acb07e803bd611f352db637c644eb59b8760405160405180910390a250505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612161576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121589061370b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c79061379d565b60405180910390fd5b6121db838383612634565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122589061382f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122f49190612a71565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612358919061280e565b60405180910390a361236b848484612639565b50505050565b6000818361237f919061350b565b905092915050565b6000600267ffffffffffffffff8111156123a4576123a361384f565b5b6040519080825280602002602001820160405280156123d25781602001602082028036833780820191505090505b50905030816000815181106123ea576123e961387e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b59190612d54565b816001815181106124c9576124c861387e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061253030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611760565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161259495949392919061396b565b600060405180830381600087803b1580156125ae57600080fd5b505af11580156125c2573d6000803e3d6000fd5b505050505050565b7f0000000000000000000000001fb41a614ca8cc6e279f3c8db85184f7525c81f473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612630573d6000803e3d6000fd5b5050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561267857808201518184015260208101905061265d565b60008484015250505050565b6000601f19601f8301169050919050565b60006126a08261263e565b6126aa8185612649565b93506126ba81856020860161265a565b6126c381612684565b840191505092915050565b600060208201905081810360008301526126e88184612695565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612720826126f5565b9050919050565b61273081612715565b811461273b57600080fd5b50565b60008135905061274d81612727565b92915050565b6000819050919050565b61276681612753565b811461277157600080fd5b50565b6000813590506127838161275d565b92915050565b600080604083850312156127a05761279f6126f0565b5b60006127ae8582860161273e565b92505060206127bf85828601612774565b9150509250929050565b60008115159050919050565b6127de816127c9565b82525050565b60006020820190506127f960008301846127d5565b92915050565b61280881612753565b82525050565b600060208201905061282360008301846127ff565b92915050565b600080600060608486031215612842576128416126f0565b5b60006128508682870161273e565b93505060206128618682870161273e565b925050604061287286828701612774565b9150509250925092565b61288581612715565b82525050565b60006020820190506128a0600083018461287c565b92915050565b600060ff82169050919050565b6128bc816128a6565b82525050565b60006020820190506128d760008301846128b3565b92915050565b60006128e882612715565b9050919050565b6128f8816128dd565b811461290357600080fd5b50565b600081359050612915816128ef565b92915050565b600060208284031215612931576129306126f0565b5b600061293f84828501612906565b91505092915050565b60006020828403121561295e5761295d6126f0565b5b600061296c8482850161273e565b91505092915050565b6000806040838503121561298c5761298b6126f0565b5b600061299a8582860161273e565b92505060206129ab8582860161273e565b9150509250929050565b6000602082840312156129cb576129ca6126f0565b5b60006129d984828501612774565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612a2957607f821691505b602082108103612a3c57612a3b6129e2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7c82612753565b9150612a8783612753565b9250828201905080821115612a9f57612a9e612a42565b5b92915050565b600081519050612ab48161275d565b92915050565b600060208284031215612ad057612acf6126f0565b5b6000612ade84828501612aa5565b91505092915050565b6000604082019050612afc600083018561287c565b612b0960208301846127ff565b9392505050565b612b19816127c9565b8114612b2457600080fd5b50565b600081519050612b3681612b10565b92915050565b600060208284031215612b5257612b516126f0565b5b6000612b6084828501612b27565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b9f602083612649565b9150612baa82612b69565b602082019050919050565b60006020820190508181036000830152612bce81612b92565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612c31602583612649565b9150612c3c82612bd5565b604082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f616c72656164792074726164696e67206f70656e656421000000000000000000600082015250565b6000612c9d601783612649565b9150612ca882612c67565b602082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b7f616c72656164792074726164696e670000000000000000000000000000000000600082015250565b6000612d09600f83612649565b9150612d1482612cd3565b602082019050919050565b60006020820190508181036000830152612d3881612cfc565b9050919050565b600081519050612d4e81612727565b92915050565b600060208284031215612d6a57612d696126f0565b5b6000612d7884828501612d3f565b91505092915050565b6000604082019050612d96600083018561287c565b612da3602083018461287c565b9392505050565b6000819050919050565b6000819050919050565b6000612dd9612dd4612dcf84612daa565b612db4565b612753565b9050919050565b612de981612dbe565b82525050565b600060c082019050612e04600083018961287c565b612e1160208301886127ff565b612e1e6040830187612de0565b612e2b6060830186612de0565b612e38608083018561287c565b612e4560a08301846127ff565b979650505050505050565b600080600060608486031215612e6957612e686126f0565b5b6000612e7786828701612aa5565b9350506020612e8886828701612aa5565b9250506040612e9986828701612aa5565b9150509250925092565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f776572207460008201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b6000612eff603883612649565b9150612f0a82612ea3565b604082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206869676865722060008201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b6000612f91603583612649565b9150612f9c82612f35565b604082019050919050565b60006020820190508181036000830152612fc081612f84565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613023602683612649565b915061302e82612fc7565b604082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130b5602483612649565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613147602283612649565b9150613152826130eb565b604082019050919050565b600060208201905081810360008301526131768161313a565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006131b3601d83612649565b91506131be8261317d565b602082019050919050565b600060208201905081810360008301526131e2816131a6565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e60008201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b6000613245602b83612649565b9150613250826131e9565b604082019050919050565b6000602082019050818103600083015261327481613238565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f7460008201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b60006132d7602983612649565b91506132e28261327b565b604082019050919050565b60006020820190508181036000830152613306816132ca565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b6000613369602a83612649565b91506133748261330d565b604082019050919050565b600060208201905081810360008301526133988161335c565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e00600082015250565b60006133d5601f83612649565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f7560008201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b600061348d604383612649565b91506134988261340b565b606082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612753565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613500576134ff612a42565b5b600182019050919050565b600061351682612753565b915061352183612753565b925082820390508181111561353957613538612a42565b5b92915050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f60008201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b60006135c1604483612649565b91506135cc8261353f565b606082019050919050565b600060208201905081810360008301526135f0816135b4565b9050919050565b600061360282612753565b915061360d83612753565b925082820261361b81612753565b9150828204841483151761363257613631612a42565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367382612753565b915061367e83612753565b92508261368e5761368d613639565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136f5602583612649565b915061370082613699565b604082019050919050565b60006020820190508181036000830152613724816136e8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613787602383612649565b91506137928261372b565b604082019050919050565b600060208201905081810360008301526137b68161377a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613819602683612649565b9150613824826137bd565b604082019050919050565b600060208201905081810360008301526138488161380c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138e281612715565b82525050565b60006138f483836138d9565b60208301905092915050565b6000602082019050919050565b6000613918826138ad565b61392281856138b8565b935061392d836138c9565b8060005b8381101561395e57815161394588826138e8565b975061395083613900565b925050600181019050613931565b5085935050505092915050565b600060a08201905061398060008301886127ff565b61398d6020830187612de0565b818103604083015261399f818661390d565b90506139ae606083018561287c565b6139bb60808301846127ff565b969550505050505056fea2646970667358221220fc2d10fe6724995160eaf241b65f60ac2096c43c77aefc1fed978b18b0325c3b64736f6c63430008130033

Deployed Bytecode Sourcemap

9485:6449:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1768:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2700:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2089:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2909:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9603:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1988:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3212:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9638:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9798:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15325:181;;;;;;;;;;;;;:::i;:::-;;15514:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2205:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7167:103;;;;;;;;;;;;;:::i;:::-;;15201:116;;;;;;;;;;;;;:::i;:::-;;9727:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6944:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10084:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1876:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3460:438;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2340:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11441:137;;;;;;;;;;;;;:::i;:::-;;10939:494;;;;;;;;;;;;;:::i;:::-;;10046:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10012:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9976:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9943:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9869:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14759:434;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7278:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10219:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1768:100;1822:13;1855:5;1848:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1768:100;:::o;2700:201::-;2783:4;2800:13;2816:12;:10;:12::i;:::-;2800:28;;2839:32;2848:5;2855:7;2864:6;2839:8;:32::i;:::-;2889:4;2882:11;;;2700:201;;;;:::o;2089:108::-;2150:7;2177:12;;2170:19;;2089:108;:::o;2909:295::-;3040:4;3057:15;3075:12;:10;:12::i;:::-;3057:30;;3098:38;3114:4;3120:7;3129:6;3098:15;:38::i;:::-;3147:27;3157:4;3163:2;3167:6;3147:9;:27::i;:::-;3192:4;3185:11;;;2909:295;;;;;:::o;9603:28::-;;;;;;;;;;;;;:::o;1988:93::-;2046:5;2071:2;2064:9;;1988:93;:::o;3212:240::-;3300:4;3317:13;3333:12;:10;:12::i;:::-;3317:28;;3356:66;3365:5;3372:7;3411:10;3381:11;:18;3393:5;3381:18;;;;;;;;;;;;;;;:27;3400:7;3381:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;3356:8;:66::i;:::-;3440:4;3433:11;;;3212:240;;;;:::o;9638:37::-;;;:::o;9798:55::-;;;;:::o;15325:181::-;15398:12;15384:26;;:10;:26;;;:51;;;;15428:7;:5;:7::i;:::-;15414:21;;:10;:21;;;15384:51;15376:60;;;;;;15455:10;15447:28;;:51;15476:21;15447:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15325:181::o;15514:199::-;15598:12;15584:26;;:10;:26;;;:51;;;;15628:7;:5;:7::i;:::-;15614:21;;:10;:21;;;15584:51;15576:60;;;;;;15647:5;:14;;;15662:10;15674:5;:15;;;15698:4;15674:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15647:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15514:199;:::o;2205:127::-;2279:7;2306:9;:18;2316:7;2306:18;;;;;;;;;;;;;;;;2299:25;;2205:127;;;:::o;7167:103::-;7090:12;:10;:12::i;:::-;7079:23;;:7;:5;:7::i;:::-;:23;;;7071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7232:30:::1;7259:1;7232:18;:30::i;:::-;7167:103::o:0;15201:116::-;7090:12;:10;:12::i;:::-;7079:23;;:7;:5;:7::i;:::-;:23;;;7071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15273:6:::1;;15255:15;:24;;;;15303:6;;15290:10;:19;;;;15201:116::o:0;9727:50::-;;;;:::o;6944:87::-;6990:7;7017:6;;;;;;;;;;;7010:13;;6944:87;:::o;10084:35::-;;;;:::o;1876:104::-;1932:13;1965:7;1958:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:104;:::o;3460:438::-;3553:4;3570:13;3586:12;:10;:12::i;:::-;3570:28;;3609:24;3636:11;:18;3648:5;3636:18;;;;;;;;;;;;;;;:27;3655:7;3636:27;;;;;;;;;;;;;;;;3609:54;;3702:15;3682:16;:35;;3674:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3795:60;3804:5;3811:7;3839:15;3820:16;:34;3795:8;:60::i;:::-;3886:4;3879:11;;;;3460:438;;;;:::o;2340:193::-;2419:4;2436:13;2452:12;:10;:12::i;:::-;2436:28;;2475;2485:5;2492:2;2496:6;2475:9;:28::i;:::-;2521:4;2514:11;;;2340:193;;;;:::o;11441:137::-;7090:12;:10;:12::i;:::-;7079:23;;:7;:5;:7::i;:::-;:23;;;7071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11503:11:::1;;;;;;;;;;;11502:12;11494:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11566:4;11552:11;;:18;;;;;;;;;;;;;;;;;;11441:137::o:0;10939:494::-;7090:12;:10;:12::i;:::-;7079:23;;:7;:5;:7::i;:::-;:23;;;7071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11008:11:::1;;;;;;;;;;;11007:12;10999:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11057:49;11074:4;11089:7;;;;;;;;;;;11099:6;;11057:8;:49::i;:::-;11151:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11133:47;;;11189:4;11196:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11133:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11117:13;;:94;;;;;;;;;;;;;;;;;;11230:7;;;;;;;;;;;:23;;;11261:21;11292:4;11298:24;11316:4;11298:9;:24::i;:::-;11323:1;11325::::0;11327:7:::1;:5;:7::i;:::-;11335:15;11230:121;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11369:13;;;;;;;;;;;11362:29;;;11400:7;;;;;;;;;;;11410:14;11362:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10939:494::o:0;10046:31::-;;;;:::o;10012:27::-;;;;:::o;2541:151::-;2630:7;2657:11;:18;2669:5;2657:18;;;;;;;;;;;;;;;:27;2676:7;2657:27;;;;;;;;;;;;;;;;2650:34;;2541:151;;;;:::o;9976:27::-;;;;:::o;9943:26::-;;;;:::o;9869:57::-;;;;:::o;14759:434::-;14855:12;14841:26;;:10;:26;;;:51;;;;14885:7;:5;:7::i;:::-;14871:21;;:10;:21;;;14841:51;14833:60;;;;;;14928:32;14953:6;14928:20;14946:1;14928:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:32;;;;:::i;:::-;14912:12;:48;;14904:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;15056:29;15081:3;15056:20;15074:1;15056:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;15040:12;:45;;15032:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;15173:12;15154:16;:31;;;;14759:434;:::o;7278:201::-;7090:12;:10;:12::i;:::-;7079:23;;:7;:5;:7::i;:::-;:23;;;7071:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7387:1:::1;7367:22;;:8;:22;;::::0;7359:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7443:28;7462:8;7443:18;:28::i;:::-;7278:201:::0;:::o;10219:31::-;;;;;;;;;;;;;:::o;232:98::-;285:7;312:10;305:17;;232:98;:::o;5591:380::-;5744:1;5727:19;;:5;:19;;;5719:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5825:1;5806:21;;:7;:21;;;5798:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5909:6;5879:11;:18;5891:5;5879:18;;;;;;;;;;;;;;;:27;5898:7;5879:27;;;;;;;;;;;;;;;:36;;;;5947:7;5931:32;;5940:5;5931:32;;;5956:6;5931:32;;;;;;:::i;:::-;;;;;;;;5591:380;;;:::o;5979:453::-;6114:24;6141:25;6151:5;6158:7;6141:9;:25::i;:::-;6114:52;;6201:17;6181:16;:37;6177:248;;6263:6;6243:16;:26;;6235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6347:51;6356:5;6363:7;6391:6;6372:16;:25;6347:8;:51::i;:::-;6177:248;6103:329;5979:453;;;:::o;11586:1860::-;11734:1;11718:18;;:4;:18;;;11710:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11817:1;11803:16;;:2;:16;;;11795:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11893:1;11884:6;:10;11876:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11954:13;11970:21;:27;11992:4;11970:27;;;;;;;;;;;;;;;;;;;;;;;;;:56;;;;12001:21;:25;12023:2;12001:25;;;;;;;;;;;;;;;;;;;;;;;;;11970:56;11954:72;;12047:11;;;;;;;;;;;:23;;;;12062:8;12047:23;12039:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12119:11;12139:13;;;;;;;;;;;12133:19;;:2;:19;;;12119:33;;12163:10;12184:13;;;;;;;;;;;12176:21;;:4;:21;;;12163:34;;12215:5;:15;;;;12224:6;12215:15;12214:35;;;;;12248:1;12235:10;;:14;12214:35;:48;;;;;12254:8;12253:9;12214:48;12210:205;;;12296:10;;12286:6;:20;;12278:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;12393:8;;:10;;;;;;;;;:::i;:::-;;;;;;12210:205;12430:6;:16;;;;;12441:5;12440:6;12430:16;:46;;;;;12451:21;:25;12473:2;12451:25;;;;;;;;;;;;;;;;;;;;;;;;;12450:26;12430:46;12427:100;;;12478:49;12500:2;12504:12;12525:1;12518:6;;:8;;;;:::i;:::-;12478:21;:49::i;:::-;;12427:100;12557:6;12556:7;:30;;;;;12585:1;12567:15;;:19;12556:30;:43;;;;;12591:8;12590:9;12556:43;12552:198;;;12650:15;;12640:6;12624:13;12634:2;12624:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;12616:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;12552:198;12791:7;;;;;;;;;;;12790:8;:29;;;;;12813:6;12790:29;:53;;;;;12835:8;12834:9;12790:53;12774:190;;;12881:4;12871:7;;:14;;;;;;;;;;;;;;;;;;12900:22;12915:6;12900:14;:22::i;:::-;12947:5;12937:7;;:15;;;;;;;;;;;;;;;;;;12774:190;12976:11;12990:5;:26;;13008:8;;12990:26;;;12998:7;;12990:26;12976:40;;13041:15;;13030:8;;:26;13027:48;;;13064:11;;13058:17;;13027:48;13098:1;13092:3;:7;13088:305;;;13121:8;13120:9;:21;;;;;13134:7;;;;;;;;;;;13133:8;13120:21;:42;;;;;13146:5;:15;;;;13155:6;13146:15;13120:42;13116:266;;;13183:12;13198:24;13218:3;13198:15;13209:3;13198:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;13183:39;;13254:1;13247:4;:8;13243:77;;;13278:42;13294:4;13308;13315;13278:15;:42::i;:::-;13243:77;13350:16;13361:4;13350:6;:10;;:16;;;;:::i;:::-;13341:25;;13164:218;13116:266;13088:305;13405:33;13421:4;13427:2;13431:6;13405:15;:33::i;:::-;11699:1747;;;;11586:1860;;;:::o;7487:191::-;7561:16;7580:6;;;;;;;;;;;7561:25;;7606:8;7597:6;;:17;;;;;;;;;;;;;;;;;;7661:8;7630:40;;7651:8;7630:40;;;;;;;;;;;;7550:128;7487:191;:::o;7921:98::-;7979:7;8010:1;8006;:5;;;;:::i;:::-;7999:12;;7921:98;;;;:::o;8027:::-;8085:7;8116:1;8112;:5;;;;:::i;:::-;8105:12;;8027:98;;;;:::o;15721:171::-;15820:4;15837:34;15846:6;15854:8;15864:6;15837:8;:34::i;:::-;15880:4;15873:11;;15721:171;;;;;:::o;13915:722::-;13974:23;14000:24;14018:4;14000:9;:24::i;:::-;13974:50;;14035:21;14090:16;;14072:15;:34;:57;;;;;14128:1;14110:15;:19;14072:57;14069:335;;;14162:15;14146:31;;14069:335;;;14232:16;;14223:6;:25;14219:174;;;14285:16;;14269:32;;14219:174;;;14371:6;14355:22;;14219:174;14069:335;14437:1;14419:15;:19;14416:64;;;14449:31;14466:13;14449:16;:31::i;:::-;14416:64;14493:26;14522:21;14493:50;;14554:35;14570:18;14554:15;:35::i;:::-;14615:13;14607:22;;;;;;;;;;13963:674;;;13915:722;:::o;3906:671::-;4053:1;4037:18;;:4;:18;;;4029:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4130:1;4116:16;;:2;:16;;;4108:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4185:38;4206:4;4212:2;4216:6;4185:20;:38::i;:::-;4236:19;4258:9;:15;4268:4;4258:15;;;;;;;;;;;;;;;;4236:37;;4307:6;4292:11;:21;;4284:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4424:6;4410:11;:20;4392:9;:15;4402:4;4392:15;;;;;;;;;;;;;;;:38;;;;4469:6;4452:9;:13;4462:2;4452:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;4508:2;4493:26;;4502:4;4493:26;;;4512:6;4493:26;;;;;;:::i;:::-;;;;;;;;4532:37;4552:4;4558:2;4562:6;4532:19;:37::i;:::-;4018:559;3906:671;;;:::o;7815:98::-;7873:7;7904:1;7900;:5;;;;:::i;:::-;7893:12;;7815:98;;;;:::o;13454:453::-;13522:21;13560:1;13546:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13522:40;;13591:4;13573;13578:1;13573:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13617:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13607:4;13612:1;13607:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;13644:54;13661:4;13676:7;;;;;;;;;;;13686:11;13644:8;:54::i;:::-;13711:7;;;;;;;;;;;:58;;;13784:11;13810:1;13826:4;13853;13873:15;13711:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13509:398;13454:453;:::o;14645:106::-;14713:12;14705:30;;:38;14736:6;14705:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14645:106;:::o;6440:125::-;;;;:::o;6573:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:118::-;4510:24;4528:5;4510:24;:::i;:::-;4505:3;4498:37;4423:118;;:::o;4547:222::-;4640:4;4678:2;4667:9;4663:18;4655:26;;4691:71;4759:1;4748:9;4744:17;4735:6;4691:71;:::i;:::-;4547:222;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:109::-;5255:7;5284:24;5302:5;5284:24;:::i;:::-;5273:35;;5205:109;;;:::o;5320:148::-;5406:37;5437:5;5406:37;:::i;:::-;5399:5;5396:48;5386:76;;5458:1;5455;5448:12;5386:76;5320:148;:::o;5474:165::-;5533:5;5571:6;5558:20;5549:29;;5587:46;5627:5;5587:46;:::i;:::-;5474:165;;;;:::o;5645:355::-;5717:6;5766:2;5754:9;5745:7;5741:23;5737:32;5734:119;;;5772:79;;:::i;:::-;5734:119;5892:1;5917:66;5975:7;5966:6;5955:9;5951:22;5917:66;:::i;:::-;5907:76;;5863:130;5645:355;;;;:::o;6006:329::-;6065:6;6114:2;6102:9;6093:7;6089:23;6085:32;6082:119;;;6120:79;;:::i;:::-;6082:119;6240:1;6265:53;6310:7;6301:6;6290:9;6286:22;6265:53;:::i;:::-;6255:63;;6211:117;6006:329;;;;:::o;6341:474::-;6409:6;6417;6466:2;6454:9;6445:7;6441:23;6437:32;6434:119;;;6472:79;;:::i;:::-;6434:119;6592:1;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6563:117;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6341:474;;;;;:::o;6821:329::-;6880:6;6929:2;6917:9;6908:7;6904:23;6900:32;6897:119;;;6935:79;;:::i;:::-;6897:119;7055:1;7080:53;7125:7;7116:6;7105:9;7101:22;7080:53;:::i;:::-;7070:63;;7026:117;6821:329;;;;:::o;7156:180::-;7204:77;7201:1;7194:88;7301:4;7298:1;7291:15;7325:4;7322:1;7315:15;7342:320;7386:6;7423:1;7417:4;7413:12;7403:22;;7470:1;7464:4;7460:12;7491:18;7481:81;;7547:4;7539:6;7535:17;7525:27;;7481:81;7609:2;7601:6;7598:14;7578:18;7575:38;7572:84;;7628:18;;:::i;:::-;7572:84;7393:269;7342:320;;;:::o;7668:180::-;7716:77;7713:1;7706:88;7813:4;7810:1;7803:15;7837:4;7834:1;7827:15;7854:191;7894:3;7913:20;7931:1;7913:20;:::i;:::-;7908:25;;7947:20;7965:1;7947:20;:::i;:::-;7942:25;;7990:1;7987;7983:9;7976:16;;8011:3;8008:1;8005:10;8002:36;;;8018:18;;:::i;:::-;8002:36;7854:191;;;;:::o;8051:143::-;8108:5;8139:6;8133:13;8124:22;;8155:33;8182:5;8155:33;:::i;:::-;8051:143;;;;:::o;8200:351::-;8270:6;8319:2;8307:9;8298:7;8294:23;8290:32;8287:119;;;8325:79;;:::i;:::-;8287:119;8445:1;8470:64;8526:7;8517:6;8506:9;8502:22;8470:64;:::i;:::-;8460:74;;8416:128;8200:351;;;;:::o;8557:332::-;8678:4;8716:2;8705:9;8701:18;8693:26;;8729:71;8797:1;8786:9;8782:17;8773:6;8729:71;:::i;:::-;8810:72;8878:2;8867:9;8863:18;8854:6;8810:72;:::i;:::-;8557:332;;;;;:::o;8895:116::-;8965:21;8980:5;8965:21;:::i;:::-;8958:5;8955:32;8945:60;;9001:1;8998;8991:12;8945:60;8895:116;:::o;9017:137::-;9071:5;9102:6;9096:13;9087:22;;9118:30;9142:5;9118:30;:::i;:::-;9017:137;;;;:::o;9160:345::-;9227:6;9276:2;9264:9;9255:7;9251:23;9247:32;9244:119;;;9282:79;;:::i;:::-;9244:119;9402:1;9427:61;9480:7;9471:6;9460:9;9456:22;9427:61;:::i;:::-;9417:71;;9373:125;9160:345;;;;:::o;9511:182::-;9651:34;9647:1;9639:6;9635:14;9628:58;9511:182;:::o;9699:366::-;9841:3;9862:67;9926:2;9921:3;9862:67;:::i;:::-;9855:74;;9938:93;10027:3;9938:93;:::i;:::-;10056:2;10051:3;10047:12;10040:19;;9699:366;;;:::o;10071:419::-;10237:4;10275:2;10264:9;10260:18;10252:26;;10324:9;10318:4;10314:20;10310:1;10299:9;10295:17;10288:47;10352:131;10478:4;10352:131;:::i;:::-;10344:139;;10071:419;;;:::o;10496:224::-;10636:34;10632:1;10624:6;10620:14;10613:58;10705:7;10700:2;10692:6;10688:15;10681:32;10496:224;:::o;10726:366::-;10868:3;10889:67;10953:2;10948:3;10889:67;:::i;:::-;10882:74;;10965:93;11054:3;10965:93;:::i;:::-;11083:2;11078:3;11074:12;11067:19;;10726:366;;;:::o;11098:419::-;11264:4;11302:2;11291:9;11287:18;11279:26;;11351:9;11345:4;11341:20;11337:1;11326:9;11322:17;11315:47;11379:131;11505:4;11379:131;:::i;:::-;11371:139;;11098:419;;;:::o;11523:173::-;11663:25;11659:1;11651:6;11647:14;11640:49;11523:173;:::o;11702:366::-;11844:3;11865:67;11929:2;11924:3;11865:67;:::i;:::-;11858:74;;11941:93;12030:3;11941:93;:::i;:::-;12059:2;12054:3;12050:12;12043:19;;11702:366;;;:::o;12074:419::-;12240:4;12278:2;12267:9;12263:18;12255:26;;12327:9;12321:4;12317:20;12313:1;12302:9;12298:17;12291:47;12355:131;12481:4;12355:131;:::i;:::-;12347:139;;12074:419;;;:::o;12499:165::-;12639:17;12635:1;12627:6;12623:14;12616:41;12499:165;:::o;12670:366::-;12812:3;12833:67;12897:2;12892:3;12833:67;:::i;:::-;12826:74;;12909:93;12998:3;12909:93;:::i;:::-;13027:2;13022:3;13018:12;13011:19;;12670:366;;;:::o;13042:419::-;13208:4;13246:2;13235:9;13231:18;13223:26;;13295:9;13289:4;13285:20;13281:1;13270:9;13266:17;13259:47;13323:131;13449:4;13323:131;:::i;:::-;13315:139;;13042:419;;;:::o;13467:143::-;13524:5;13555:6;13549:13;13540:22;;13571:33;13598:5;13571:33;:::i;:::-;13467:143;;;;:::o;13616:351::-;13686:6;13735:2;13723:9;13714:7;13710:23;13706:32;13703:119;;;13741:79;;:::i;:::-;13703:119;13861:1;13886:64;13942:7;13933:6;13922:9;13918:22;13886:64;:::i;:::-;13876:74;;13832:128;13616:351;;;;:::o;13973:332::-;14094:4;14132:2;14121:9;14117:18;14109:26;;14145:71;14213:1;14202:9;14198:17;14189:6;14145:71;:::i;:::-;14226:72;14294:2;14283:9;14279:18;14270:6;14226:72;:::i;:::-;13973:332;;;;;:::o;14311:85::-;14356:7;14385:5;14374:16;;14311:85;;;:::o;14402:60::-;14430:3;14451:5;14444:12;;14402:60;;;:::o;14468:158::-;14526:9;14559:61;14577:42;14586:32;14612:5;14586:32;:::i;:::-;14577:42;:::i;:::-;14559:61;:::i;:::-;14546:74;;14468:158;;;:::o;14632:147::-;14727:45;14766:5;14727:45;:::i;:::-;14722:3;14715:58;14632:147;;:::o;14785:807::-;15034:4;15072:3;15061:9;15057:19;15049:27;;15086:71;15154:1;15143:9;15139:17;15130:6;15086:71;:::i;:::-;15167:72;15235:2;15224:9;15220:18;15211:6;15167:72;:::i;:::-;15249:80;15325:2;15314:9;15310:18;15301:6;15249:80;:::i;:::-;15339;15415:2;15404:9;15400:18;15391:6;15339:80;:::i;:::-;15429:73;15497:3;15486:9;15482:19;15473:6;15429:73;:::i;:::-;15512;15580:3;15569:9;15565:19;15556:6;15512:73;:::i;:::-;14785:807;;;;;;;;;:::o;15598:663::-;15686:6;15694;15702;15751:2;15739:9;15730:7;15726:23;15722:32;15719:119;;;15757:79;;:::i;:::-;15719:119;15877:1;15902:64;15958:7;15949:6;15938:9;15934:22;15902:64;:::i;:::-;15892:74;;15848:128;16015:2;16041:64;16097:7;16088:6;16077:9;16073:22;16041:64;:::i;:::-;16031:74;;15986:129;16154:2;16180:64;16236:7;16227:6;16216:9;16212:22;16180:64;:::i;:::-;16170:74;;16125:129;15598:663;;;;;:::o;16267:243::-;16407:34;16403:1;16395:6;16391:14;16384:58;16476:26;16471:2;16463:6;16459:15;16452:51;16267:243;:::o;16516:366::-;16658:3;16679:67;16743:2;16738:3;16679:67;:::i;:::-;16672:74;;16755:93;16844:3;16755:93;:::i;:::-;16873:2;16868:3;16864:12;16857:19;;16516:366;;;:::o;16888:419::-;17054:4;17092:2;17081:9;17077:18;17069:26;;17141:9;17135:4;17131:20;17127:1;17116:9;17112:17;17105:47;17169:131;17295:4;17169:131;:::i;:::-;17161:139;;16888:419;;;:::o;17313:240::-;17453:34;17449:1;17441:6;17437:14;17430:58;17522:23;17517:2;17509:6;17505:15;17498:48;17313:240;:::o;17559:366::-;17701:3;17722:67;17786:2;17781:3;17722:67;:::i;:::-;17715:74;;17798:93;17887:3;17798:93;:::i;:::-;17916:2;17911:3;17907:12;17900:19;;17559:366;;;:::o;17931:419::-;18097:4;18135:2;18124:9;18120:18;18112:26;;18184:9;18178:4;18174:20;18170:1;18159:9;18155:17;18148:47;18212:131;18338:4;18212:131;:::i;:::-;18204:139;;17931:419;;;:::o;18356:225::-;18496:34;18492:1;18484:6;18480:14;18473:58;18565:8;18560:2;18552:6;18548:15;18541:33;18356:225;:::o;18587:366::-;18729:3;18750:67;18814:2;18809:3;18750:67;:::i;:::-;18743:74;;18826:93;18915:3;18826:93;:::i;:::-;18944:2;18939:3;18935:12;18928:19;;18587:366;;;:::o;18959:419::-;19125:4;19163:2;19152:9;19148:18;19140:26;;19212:9;19206:4;19202:20;19198:1;19187:9;19183:17;19176:47;19240:131;19366:4;19240:131;:::i;:::-;19232:139;;18959:419;;;:::o;19384:223::-;19524:34;19520:1;19512:6;19508:14;19501:58;19593:6;19588:2;19580:6;19576:15;19569:31;19384:223;:::o;19613:366::-;19755:3;19776:67;19840:2;19835:3;19776:67;:::i;:::-;19769:74;;19852:93;19941:3;19852:93;:::i;:::-;19970:2;19965:3;19961:12;19954:19;;19613:366;;;:::o;19985:419::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:131;20392:4;20266:131;:::i;:::-;20258:139;;19985:419;;;:::o;20410:221::-;20550:34;20546:1;20538:6;20534:14;20527:58;20619:4;20614:2;20606:6;20602:15;20595:29;20410:221;:::o;20637:366::-;20779:3;20800:67;20864:2;20859:3;20800:67;:::i;:::-;20793:74;;20876:93;20965:3;20876:93;:::i;:::-;20994:2;20989:3;20985:12;20978:19;;20637:366;;;:::o;21009:419::-;21175:4;21213:2;21202:9;21198:18;21190:26;;21262:9;21256:4;21252:20;21248:1;21237:9;21233:17;21226:47;21290:131;21416:4;21290:131;:::i;:::-;21282:139;;21009:419;;;:::o;21434:179::-;21574:31;21570:1;21562:6;21558:14;21551:55;21434:179;:::o;21619:366::-;21761:3;21782:67;21846:2;21841:3;21782:67;:::i;:::-;21775:74;;21858:93;21947:3;21858:93;:::i;:::-;21976:2;21971:3;21967:12;21960:19;;21619:366;;;:::o;21991:419::-;22157:4;22195:2;22184:9;22180:18;22172:26;;22244:9;22238:4;22234:20;22230:1;22219:9;22215:17;22208:47;22272:131;22398:4;22272:131;:::i;:::-;22264:139;;21991:419;;;:::o;22416:230::-;22556:34;22552:1;22544:6;22540:14;22533:58;22625:13;22620:2;22612:6;22608:15;22601:38;22416:230;:::o;22652:366::-;22794:3;22815:67;22879:2;22874:3;22815:67;:::i;:::-;22808:74;;22891:93;22980:3;22891:93;:::i;:::-;23009:2;23004:3;23000:12;22993:19;;22652:366;;;:::o;23024:419::-;23190:4;23228:2;23217:9;23213:18;23205:26;;23277:9;23271:4;23267:20;23263:1;23252:9;23248:17;23241:47;23305:131;23431:4;23305:131;:::i;:::-;23297:139;;23024:419;;;:::o;23449:228::-;23589:34;23585:1;23577:6;23573:14;23566:58;23658:11;23653:2;23645:6;23641:15;23634:36;23449:228;:::o;23683:366::-;23825:3;23846:67;23910:2;23905:3;23846:67;:::i;:::-;23839:74;;23922:93;24011:3;23922:93;:::i;:::-;24040:2;24035:3;24031:12;24024:19;;23683:366;;;:::o;24055:419::-;24221:4;24259:2;24248:9;24244:18;24236:26;;24308:9;24302:4;24298:20;24294:1;24283:9;24279:17;24272:47;24336:131;24462:4;24336:131;:::i;:::-;24328:139;;24055:419;;;:::o;24480:229::-;24620:34;24616:1;24608:6;24604:14;24597:58;24689:12;24684:2;24676:6;24672:15;24665:37;24480:229;:::o;24715:366::-;24857:3;24878:67;24942:2;24937:3;24878:67;:::i;:::-;24871:74;;24954:93;25043:3;24954:93;:::i;:::-;25072:2;25067:3;25063:12;25056:19;;24715:366;;;:::o;25087:419::-;25253:4;25291:2;25280:9;25276:18;25268:26;;25340:9;25334:4;25330:20;25326:1;25315:9;25311:17;25304:47;25368:131;25494:4;25368:131;:::i;:::-;25360:139;;25087:419;;;:::o;25512:181::-;25652:33;25648:1;25640:6;25636:14;25629:57;25512:181;:::o;25699:366::-;25841:3;25862:67;25926:2;25921:3;25862:67;:::i;:::-;25855:74;;25938:93;26027:3;25938:93;:::i;:::-;26056:2;26051:3;26047:12;26040:19;;25699:366;;;:::o;26071:419::-;26237:4;26275:2;26264:9;26260:18;26252:26;;26324:9;26318:4;26314:20;26310:1;26299:9;26295:17;26288:47;26352:131;26478:4;26352:131;:::i;:::-;26344:139;;26071:419;;;:::o;26496:291::-;26636:34;26632:1;26624:6;26620:14;26613:58;26705:34;26700:2;26692:6;26688:15;26681:59;26774:5;26769:2;26761:6;26757:15;26750:30;26496:291;:::o;26793:366::-;26935:3;26956:67;27020:2;27015:3;26956:67;:::i;:::-;26949:74;;27032:93;27121:3;27032:93;:::i;:::-;27150:2;27145:3;27141:12;27134:19;;26793:366;;;:::o;27165:419::-;27331:4;27369:2;27358:9;27354:18;27346:26;;27418:9;27412:4;27408:20;27404:1;27393:9;27389:17;27382:47;27446:131;27572:4;27446:131;:::i;:::-;27438:139;;27165:419;;;:::o;27590:233::-;27629:3;27652:24;27670:5;27652:24;:::i;:::-;27643:33;;27698:66;27691:5;27688:77;27685:103;;27768:18;;:::i;:::-;27685:103;27815:1;27808:5;27804:13;27797:20;;27590:233;;;:::o;27829:194::-;27869:4;27889:20;27907:1;27889:20;:::i;:::-;27884:25;;27923:20;27941:1;27923:20;:::i;:::-;27918:25;;27967:1;27964;27960:9;27952:17;;27991:1;27985:4;27982:11;27979:37;;;27996:18;;:::i;:::-;27979:37;27829:194;;;;:::o;28029:292::-;28169:34;28165:1;28157:6;28153:14;28146:58;28238:34;28233:2;28225:6;28221:15;28214:59;28307:6;28302:2;28294:6;28290:15;28283:31;28029:292;:::o;28327:366::-;28469:3;28490:67;28554:2;28549:3;28490:67;:::i;:::-;28483:74;;28566:93;28655:3;28566:93;:::i;:::-;28684:2;28679:3;28675:12;28668:19;;28327:366;;;:::o;28699:419::-;28865:4;28903:2;28892:9;28888:18;28880:26;;28952:9;28946:4;28942:20;28938:1;28927:9;28923:17;28916:47;28980:131;29106:4;28980:131;:::i;:::-;28972:139;;28699:419;;;:::o;29124:410::-;29164:7;29187:20;29205:1;29187:20;:::i;:::-;29182:25;;29221:20;29239:1;29221:20;:::i;:::-;29216:25;;29276:1;29273;29269:9;29298:30;29316:11;29298:30;:::i;:::-;29287:41;;29477:1;29468:7;29464:15;29461:1;29458:22;29438:1;29431:9;29411:83;29388:139;;29507:18;;:::i;:::-;29388:139;29172:362;29124:410;;;;:::o;29540:180::-;29588:77;29585:1;29578:88;29685:4;29682:1;29675:15;29709:4;29706:1;29699:15;29726:185;29766:1;29783:20;29801:1;29783:20;:::i;:::-;29778:25;;29817:20;29835:1;29817:20;:::i;:::-;29812:25;;29856:1;29846:35;;29861:18;;:::i;:::-;29846:35;29903:1;29900;29896:9;29891:14;;29726:185;;;;:::o;29917:224::-;30057:34;30053:1;30045:6;30041:14;30034:58;30126:7;30121:2;30113:6;30109:15;30102:32;29917:224;:::o;30147:366::-;30289:3;30310:67;30374:2;30369:3;30310:67;:::i;:::-;30303:74;;30386:93;30475:3;30386:93;:::i;:::-;30504:2;30499:3;30495:12;30488:19;;30147:366;;;:::o;30519:419::-;30685:4;30723:2;30712:9;30708:18;30700:26;;30772:9;30766:4;30762:20;30758:1;30747:9;30743:17;30736:47;30800:131;30926:4;30800:131;:::i;:::-;30792:139;;30519:419;;;:::o;30944:222::-;31084:34;31080:1;31072:6;31068:14;31061:58;31153:5;31148:2;31140:6;31136:15;31129:30;30944:222;:::o;31172:366::-;31314:3;31335:67;31399:2;31394:3;31335:67;:::i;:::-;31328:74;;31411:93;31500:3;31411:93;:::i;:::-;31529:2;31524:3;31520:12;31513:19;;31172:366;;;:::o;31544:419::-;31710:4;31748:2;31737:9;31733:18;31725:26;;31797:9;31791:4;31787:20;31783:1;31772:9;31768:17;31761:47;31825:131;31951:4;31825:131;:::i;:::-;31817:139;;31544:419;;;:::o;31969:225::-;32109:34;32105:1;32097:6;32093:14;32086:58;32178:8;32173:2;32165:6;32161:15;32154:33;31969:225;:::o;32200:366::-;32342:3;32363:67;32427:2;32422:3;32363:67;:::i;:::-;32356:74;;32439:93;32528:3;32439:93;:::i;:::-;32557:2;32552:3;32548:12;32541:19;;32200:366;;;:::o;32572:419::-;32738:4;32776:2;32765:9;32761:18;32753:26;;32825:9;32819:4;32815:20;32811:1;32800:9;32796:17;32789:47;32853:131;32979:4;32853:131;:::i;:::-;32845:139;;32572:419;;;:::o;32997:180::-;33045:77;33042:1;33035:88;33142:4;33139:1;33132:15;33166:4;33163:1;33156:15;33183:180;33231:77;33228:1;33221:88;33328:4;33325:1;33318:15;33352:4;33349:1;33342:15;33369:114;33436:6;33470:5;33464:12;33454:22;;33369:114;;;:::o;33489:184::-;33588:11;33622:6;33617:3;33610:19;33662:4;33657:3;33653:14;33638:29;;33489:184;;;;:::o;33679:132::-;33746:4;33769:3;33761:11;;33799:4;33794:3;33790:14;33782:22;;33679:132;;;:::o;33817:108::-;33894:24;33912:5;33894:24;:::i;:::-;33889:3;33882:37;33817:108;;:::o;33931:179::-;34000:10;34021:46;34063:3;34055:6;34021:46;:::i;:::-;34099:4;34094:3;34090:14;34076:28;;33931:179;;;;:::o;34116:113::-;34186:4;34218;34213:3;34209:14;34201:22;;34116:113;;;:::o;34265:732::-;34384:3;34413:54;34461:5;34413:54;:::i;:::-;34483:86;34562:6;34557:3;34483:86;:::i;:::-;34476:93;;34593:56;34643:5;34593:56;:::i;:::-;34672:7;34703:1;34688:284;34713:6;34710:1;34707:13;34688:284;;;34789:6;34783:13;34816:63;34875:3;34860:13;34816:63;:::i;:::-;34809:70;;34902:60;34955:6;34902:60;:::i;:::-;34892:70;;34748:224;34735:1;34732;34728:9;34723:14;;34688:284;;;34692:14;34988:3;34981:10;;34389:608;;;34265:732;;;;:::o;35003:831::-;35266:4;35304:3;35293:9;35289:19;35281:27;;35318:71;35386:1;35375:9;35371:17;35362:6;35318:71;:::i;:::-;35399:80;35475:2;35464:9;35460:18;35451:6;35399:80;:::i;:::-;35526:9;35520:4;35516:20;35511:2;35500:9;35496:18;35489:48;35554:108;35657:4;35648:6;35554:108;:::i;:::-;35546:116;;35672:72;35740:2;35729:9;35725:18;35716:6;35672:72;:::i;:::-;35754:73;35822:3;35811:9;35807:19;35798:6;35754:73;:::i;:::-;35003:831;;;;;;;;:::o

Swarm Source

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