ETH Price: $3,265.24 (-0.44%)
 

Overview

Max Total Supply

50,000,000,000,000 JDO

Holders

367

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
684,153,017.241379309 JDO

Value
$0.00
0xd84d9640369cbc48c0bf5dd51941d1dc4484e9a6
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:
Jindo

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-18
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

}

abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract Jindo is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 50000000000000 * 10**_decimals; 
    string private constant _name = unicode"JINDO";  
    string private constant _symbol = unicode"JDO"; 
    uint256 public _taxSwapThreshold= 100000000 * 10**_decimals;

    uint256 public _taxesOnBuys = 5; 
    uint256 public _taxesOnSells = 10;

    address payable public _jindoTaxWallet = payable(0xc8F3c999b271023c4AbeD8D0699c648c17615917);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = true;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    event TaxWalletPaymentRevert(address indexed taxWallet, uint256 amount);


    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
      //  IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // test router address
        
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_jindoTaxWallet] = true;

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_taxesOnBuys).div(100);
            }


            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_taxesOnSells).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        (bool callSuccess, ) = payable(_jindoTaxWallet).call{value: amount}("");

        if (!callSuccess) {
        // Log the failure but do not revert the transaction
        emit TaxWalletPaymentRevert(_jindoTaxWallet, amount);
    }

    }


    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_jindoTaxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function updateFeeAccount(address payable newWallet) external onlyOwner {
        _jindoTaxWallet = newWallet;
    }

    function whiteListFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function modifyTaxes(uint256 buyFee, uint256 sellFee) public onlyOwner {
        require(buyFee <= 25, "Tax too high");
        require(sellFee <= 25, "Tax too high");
        _taxesOnBuys = buyFee;
        _taxesOnSells = sellFee;
    }
    
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"taxWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxWalletPaymentRevert","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":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_jindoTaxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxesOnBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxesOnSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"modifyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"updateFeeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a6100129190610758565b6305f5e10061002191906107a2565b60045560058055600a60065573c8f3c999b271023c4abed8d0699c648c1761591760075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600960146101000a81548160ff0219169083151502179055506001600960156101000a81548160ff0219169083151502179055503480156100c1575f80fd5b506100de6100d36104f860201b60201c565b6104ff60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561013f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101639190610841565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ec9190610841565b6040518363ffffffff1660e01b815260040161020992919061087b565b6020604051808303815f875af1158015610225573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102499190610841565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6102d69190610758565b652d79883d20006102e791906107a2565b60015f6102f86104f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6103486105c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104706104f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6104cc9190610758565b652d79883d20006104dd91906107a2565b6040516104ea91906108b1565b60405180910390a3506108ca565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561066957808604811115610645576106446105e7565b5b60018516156106545780820291505b808102905061066285610614565b9450610629565b94509492505050565b5f82610681576001905061073c565b8161068e575f905061073c565b81600181146106a457600281146106ae576106dd565b600191505061073c565b60ff8411156106c0576106bf6105e7565b5b8360020a9150848211156106d7576106d66105e7565b5b5061073c565b5060208310610133831016604e8410600b84101617156107125782820a90508381111561070d5761070c6105e7565b5b61073c565b61071f8484846001610620565b92509050818404811115610736576107356105e7565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61076282610743565b915061076d8361074c565b925061079a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610672565b905092915050565b5f6107ac82610743565b91506107b783610743565b92508282026107c581610743565b915082820484148315176107dc576107db6105e7565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610810826107e7565b9050919050565b61082081610806565b811461082a575f80fd5b50565b5f8151905061083b81610817565b92915050565b5f60208284031215610856576108556107e3565b5b5f6108638482850161082d565b91505092915050565b61087581610806565b82525050565b5f60408201905061088e5f83018561086c565b61089b602083018461086c565b9392505050565b6108ab81610743565b82525050565b5f6020820190506108c45f8301846108a2565b92915050565b612805806108d75f395ff3fe608060405260043610610138575f3560e01c806371ad5a54116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063bf474bed1461043b578063dd62ed3e14610465578063ea2f0b37146104a1578063f2fde38b146104c9578063fff13ee7146104f15761013f565b806371ad5a541461031d578063768dc710146103475780638da5cb5b1461038357806395913d17146103ad57806395d89b41146103d55761013f565b8063376a01f1116100fc578063376a01f114610239578063508f6dfb1461026357806351bc3c851461028b5780636bf47e8d146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063313ce5671461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190611a8d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b3e565b610556565b6040516101a09190611b96565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190611bbe565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190611bd7565b610598565b6040516102069190611b96565b60405180910390f35b34801561021a575f80fd5b5061022361066c565b6040516102309190611c42565b60405180910390f35b348015610244575f80fd5b5061024d610674565b60405161025a9190611bbe565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190611c5b565b61067a565b005b348015610296575f80fd5b5061029f6106da565b005b3480156102ac575f80fd5b506102b5610771565b6040516102c29190611bbe565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190611c5b565b610777565b6040516102fe9190611bbe565b60405180910390f35b348015610312575f80fd5b5061031b6107bd565b005b348015610328575f80fd5b506103316107d0565b60405161033e9190611ca6565b60405180910390f35b348015610352575f80fd5b5061036d60048036038101906103689190611c5b565b6107f5565b60405161037a9190611b96565b60405180910390f35b34801561038e575f80fd5b50610397610812565b6040516103a49190611cce565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190611ce7565b610839565b005b3480156103e0575f80fd5b506103e96108db565b6040516103f69190611a8d565b60405180910390f35b34801561040a575f80fd5b5061042560048036038101906104209190611b3e565b610918565b6040516104329190611b96565b60405180910390f35b348015610446575f80fd5b5061044f610935565b60405161045c9190611bbe565b60405180910390f35b348015610470575f80fd5b5061048b60048036038101906104869190611d25565b61093b565b6040516104989190611bbe565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190611c5b565b6109bd565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190611c5b565b610a1c565b005b3480156104fc575f80fd5b5061051760048036038101906105129190611d8d565b610a9e565b005b60606040518060400160405280600581526020017f4a494e444f000000000000000000000000000000000000000000000000000000815250905090565b5f610569610562610ae9565b8484610af0565b6001905092915050565b5f6012600a6105829190611f14565b652d79883d20006105939190611f5e565b905090565b5f6105a4848484610cb3565b610661846105b0610ae9565b61065c856040518060600160405280602881526020016127a86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610613610ae9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461133f9092919063ffffffff16565b610af0565b600190509392505050565b5f6012905090565b60055481565b6106826113a1565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661071a610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610739575f80fd5b5f61074330610777565b90505f811115610757576107568161141f565b5b5f4790505f81111561076d5761076c81611693565b5b5050565b60065481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107c56113a1565b6107ce5f611795565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108416113a1565b6019821115610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90611fe9565b60405180910390fd5b60198111156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090611fe9565b60405180910390fd5b81600581905550806006819055505050565b60606040518060400160405280600381526020017f4a444f0000000000000000000000000000000000000000000000000000000000815250905090565b5f61092b610924610ae9565b8484610cb3565b6001905092915050565b60045481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109c56113a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a246113a1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612077565b60405180910390fd5b610a9b81611795565b50565b610aa66113a1565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612105565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390612193565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca69190611bbe565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890612221565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d86906122af565b60405180910390fd5b5f8111610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc89061233d565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e70575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561108f5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f1e575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f4e57610f4b6064610f3d6005548561185690919063ffffffff16565b6118cd90919063ffffffff16565b90505b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fcd57610fca6064610fbc6006548561185690919063ffffffff16565b6118cd90919063ffffffff16565b90505b5f610fd730610777565b9050600960149054906101000a900460ff16158015611042575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561105a5750600960159054906101000a900460ff165b8015611067575060045481115b1561108d576110758161141f565b5f4790505f81111561108b5761108a47611693565b5b505b505b5f81111561118e576110e78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111859190611bbe565b60405180910390a35b6111de8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611281611235828461197390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611324848661197390919063ffffffff16565b6040516113319190611bbe565b60405180910390a350505050565b5f838311158290611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d9190611a8d565b60405180910390fd5b505f8385611394919061235b565b9050809150509392505050565b6113a9610ae9565b73ffffffffffffffffffffffffffffffffffffffff166113c7610812565b73ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611414906123d8565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f810315611676575f600267ffffffffffffffff81111561145e5761145d6123f6565b5b60405190808252806020026020018201604052801561148c5781602001602082028036833780820191505090505b50905030815f815181106114a3576114a2612423565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611547573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156b9190612464565b8160018151811061157f5761157e612423565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e53060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610af0565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611647959493929190612588565b5f604051808303815f87803b15801561165e575f80fd5b505af1158015611670573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516116d99061260d565b5f6040518083038185875af1925050503d805f8114611713576040519150601f19603f3d011682016040523d82523d5f602084013e611718565b606091505b50509050806117915760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516117889190611bbe565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611866575f90506118c7565b5f82846118739190611f5e565b9050828482611882919061264e565b146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b9906126ee565b60405180910390fd5b809150505b92915050565b5f61190e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119bc565b905092915050565b5f808284611924919061270c565b905083811015611969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196090612789565b60405180910390fd5b8091505092915050565b5f6119b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061133f565b905092915050565b5f8083118290611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f99190611a8d565b60405180910390fd5b505f8385611a10919061264e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a5f82611a1d565b611a698185611a27565b9350611a79818560208601611a37565b611a8281611a45565b840191505092915050565b5f6020820190508181035f830152611aa58184611a55565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ada82611ab1565b9050919050565b611aea81611ad0565b8114611af4575f80fd5b50565b5f81359050611b0581611ae1565b92915050565b5f819050919050565b611b1d81611b0b565b8114611b27575f80fd5b50565b5f81359050611b3881611b14565b92915050565b5f8060408385031215611b5457611b53611aad565b5b5f611b6185828601611af7565b9250506020611b7285828601611b2a565b9150509250929050565b5f8115159050919050565b611b9081611b7c565b82525050565b5f602082019050611ba95f830184611b87565b92915050565b611bb881611b0b565b82525050565b5f602082019050611bd15f830184611baf565b92915050565b5f805f60608486031215611bee57611bed611aad565b5b5f611bfb86828701611af7565b9350506020611c0c86828701611af7565b9250506040611c1d86828701611b2a565b9150509250925092565b5f60ff82169050919050565b611c3c81611c27565b82525050565b5f602082019050611c555f830184611c33565b92915050565b5f60208284031215611c7057611c6f611aad565b5b5f611c7d84828501611af7565b91505092915050565b5f611c9082611ab1565b9050919050565b611ca081611c86565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611ad0565b82525050565b5f602082019050611ce15f830184611cbf565b92915050565b5f8060408385031215611cfd57611cfc611aad565b5b5f611d0a85828601611b2a565b9250506020611d1b85828601611b2a565b9150509250929050565b5f8060408385031215611d3b57611d3a611aad565b5b5f611d4885828601611af7565b9250506020611d5985828601611af7565b9150509250929050565b611d6c81611c86565b8114611d76575f80fd5b50565b5f81359050611d8781611d63565b92915050565b5f60208284031215611da257611da1611aad565b5b5f611daf84828501611d79565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611e3a57808604811115611e1657611e15611db8565b5b6001851615611e255780820291505b8081029050611e3385611de5565b9450611dfa565b94509492505050565b5f82611e525760019050611f0d565b81611e5f575f9050611f0d565b8160018114611e755760028114611e7f57611eae565b6001915050611f0d565b60ff841115611e9157611e90611db8565b5b8360020a915084821115611ea857611ea7611db8565b5b50611f0d565b5060208310610133831016604e8410600b8410161715611ee35782820a905083811115611ede57611edd611db8565b5b611f0d565b611ef08484846001611df1565b92509050818404811115611f0757611f06611db8565b5b81810290505b9392505050565b5f611f1e82611b0b565b9150611f2983611c27565b9250611f567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611e43565b905092915050565b5f611f6882611b0b565b9150611f7383611b0b565b9250828202611f8181611b0b565b91508282048414831517611f9857611f97611db8565b5b5092915050565b7f54617820746f6f206869676800000000000000000000000000000000000000005f82015250565b5f611fd3600c83611a27565b9150611fde82611f9f565b602082019050919050565b5f6020820190508181035f83015261200081611fc7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612061602683611a27565b915061206c82612007565b604082019050919050565b5f6020820190508181035f83015261208e81612055565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120ef602483611a27565b91506120fa82612095565b604082019050919050565b5f6020820190508181035f83015261211c816120e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61217d602283611a27565b915061218882612123565b604082019050919050565b5f6020820190508181035f8301526121aa81612171565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61220b602583611a27565b9150612216826121b1565b604082019050919050565b5f6020820190508181035f830152612238816121ff565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612299602383611a27565b91506122a48261223f565b604082019050919050565b5f6020820190508181035f8301526122c68161228d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612327602983611a27565b9150612332826122cd565b604082019050919050565b5f6020820190508181035f8301526123548161231b565b9050919050565b5f61236582611b0b565b915061237083611b0b565b925082820390508181111561238857612387611db8565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123c2602083611a27565b91506123cd8261238e565b602082019050919050565b5f6020820190508181035f8301526123ef816123b6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061245e81611ae1565b92915050565b5f6020828403121561247957612478611aad565b5b5f61248684828501612450565b91505092915050565b5f819050919050565b5f819050919050565b5f6124bb6124b66124b18461248f565b612498565b611b0b565b9050919050565b6124cb816124a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61250381611ad0565b82525050565b5f61251483836124fa565b60208301905092915050565b5f602082019050919050565b5f612536826124d1565b61254081856124db565b935061254b836124eb565b805f5b8381101561257b5781516125628882612509565b975061256d83612520565b92505060018101905061254e565b5085935050505092915050565b5f60a08201905061259b5f830188611baf565b6125a860208301876124c2565b81810360408301526125ba818661252c565b90506125c96060830185611cbf565b6125d66080830184611baf565b9695505050505050565b5f81905092915050565b50565b5f6125f85f836125e0565b9150612603826125ea565b5f82019050919050565b5f612617826125ed565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265882611b0b565b915061266383611b0b565b92508261267357612672612621565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d8602183611a27565b91506126e38261267e565b604082019050919050565b5f6020820190508181035f830152612705816126cc565b9050919050565b5f61271682611b0b565b915061272183611b0b565b925082820190508082111561273957612738611db8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612773601b83611a27565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d6ede428bcdd6baaf14583aae10c50af3f23d32da98dca61f6bd323c9737b6564736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610138575f3560e01c806371ad5a54116100aa578063a9059cbb1161006e578063a9059cbb146103ff578063bf474bed1461043b578063dd62ed3e14610465578063ea2f0b37146104a1578063f2fde38b146104c9578063fff13ee7146104f15761013f565b806371ad5a541461031d578063768dc710146103475780638da5cb5b1461038357806395913d17146103ad57806395d89b41146103d55761013f565b8063376a01f1116100fc578063376a01f114610239578063508f6dfb1461026357806351bc3c851461028b5780636bf47e8d146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d57806318160ddd146101a957806323b872dd146101d3578063313ce5671461020f5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190611a8d565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b3e565b610556565b6040516101a09190611b96565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190611bbe565b60405180910390f35b3480156101de575f80fd5b506101f960048036038101906101f49190611bd7565b610598565b6040516102069190611b96565b60405180910390f35b34801561021a575f80fd5b5061022361066c565b6040516102309190611c42565b60405180910390f35b348015610244575f80fd5b5061024d610674565b60405161025a9190611bbe565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190611c5b565b61067a565b005b348015610296575f80fd5b5061029f6106da565b005b3480156102ac575f80fd5b506102b5610771565b6040516102c29190611bbe565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190611c5b565b610777565b6040516102fe9190611bbe565b60405180910390f35b348015610312575f80fd5b5061031b6107bd565b005b348015610328575f80fd5b506103316107d0565b60405161033e9190611ca6565b60405180910390f35b348015610352575f80fd5b5061036d60048036038101906103689190611c5b565b6107f5565b60405161037a9190611b96565b60405180910390f35b34801561038e575f80fd5b50610397610812565b6040516103a49190611cce565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190611ce7565b610839565b005b3480156103e0575f80fd5b506103e96108db565b6040516103f69190611a8d565b60405180910390f35b34801561040a575f80fd5b5061042560048036038101906104209190611b3e565b610918565b6040516104329190611b96565b60405180910390f35b348015610446575f80fd5b5061044f610935565b60405161045c9190611bbe565b60405180910390f35b348015610470575f80fd5b5061048b60048036038101906104869190611d25565b61093b565b6040516104989190611bbe565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c29190611c5b565b6109bd565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190611c5b565b610a1c565b005b3480156104fc575f80fd5b5061051760048036038101906105129190611d8d565b610a9e565b005b60606040518060400160405280600581526020017f4a494e444f000000000000000000000000000000000000000000000000000000815250905090565b5f610569610562610ae9565b8484610af0565b6001905092915050565b5f6012600a6105829190611f14565b652d79883d20006105939190611f5e565b905090565b5f6105a4848484610cb3565b610661846105b0610ae9565b61065c856040518060600160405280602881526020016127a86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610613610ae9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461133f9092919063ffffffff16565b610af0565b600190509392505050565b5f6012905090565b60055481565b6106826113a1565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661071a610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610739575f80fd5b5f61074330610777565b90505f811115610757576107568161141f565b5b5f4790505f81111561076d5761076c81611693565b5b5050565b60065481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107c56113a1565b6107ce5f611795565b565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108416113a1565b6019821115610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90611fe9565b60405180910390fd5b60198111156108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090611fe9565b60405180910390fd5b81600581905550806006819055505050565b60606040518060400160405280600381526020017f4a444f0000000000000000000000000000000000000000000000000000000000815250905090565b5f61092b610924610ae9565b8484610cb3565b6001905092915050565b60045481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6109c56113a1565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610a246113a1565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612077565b60405180910390fd5b610a9b81611795565b50565b610aa66113a1565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590612105565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390612193565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ca69190611bbe565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1890612221565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d86906122af565b60405180910390fd5b5f8111610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc89061233d565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e70575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561108f5760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f1e575060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f4e57610f4b6064610f3d6005548561185690919063ffffffff16565b6118cd90919063ffffffff16565b90505b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fcd57610fca6064610fbc6006548561185690919063ffffffff16565b6118cd90919063ffffffff16565b90505b5f610fd730610777565b9050600960149054906101000a900460ff16158015611042575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561105a5750600960159054906101000a900460ff165b8015611067575060045481115b1561108d576110758161141f565b5f4790505f81111561108b5761108a47611693565b5b505b505b5f81111561118e576110e78160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191690919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111859190611bbe565b60405180910390a35b6111de8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461197390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611281611235828461197390919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461191690919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611324848661197390919063ffffffff16565b6040516113319190611bbe565b60405180910390a350505050565b5f838311158290611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d9190611a8d565b60405180910390fd5b505f8385611394919061235b565b9050809150509392505050565b6113a9610ae9565b73ffffffffffffffffffffffffffffffffffffffff166113c7610812565b73ffffffffffffffffffffffffffffffffffffffff161461141d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611414906123d8565b60405180910390fd5b565b6001600960146101000a81548160ff0219169083151502179055505f810315611676575f600267ffffffffffffffff81111561145e5761145d6123f6565b5b60405190808252806020026020018201604052801561148c5781602001602082028036833780820191505090505b50905030815f815181106114a3576114a2612423565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611547573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156b9190612464565b8160018151811061157f5761157e612423565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115e53060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610af0565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611647959493929190612588565b5f604051808303815f87803b15801561165e575f80fd5b505af1158015611670573d5f803e3d5ffd5b50505050505b5f600960146101000a81548160ff02191690831515021790555050565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516116d99061260d565b5f6040518083038185875af1925050503d805f8114611713576040519150601f19603f3d011682016040523d82523d5f602084013e611718565b606091505b50509050806117915760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0759dac7fa668d044a7de2b7fd31ccc6f577fdf83cd0441d6ebaba277754db57836040516117889190611bbe565b60405180910390a25b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611866575f90506118c7565b5f82846118739190611f5e565b9050828482611882919061264e565b146118c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b9906126ee565b60405180910390fd5b809150505b92915050565b5f61190e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119bc565b905092915050565b5f808284611924919061270c565b905083811015611969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196090612789565b60405180910390fd5b8091505092915050565b5f6119b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061133f565b905092915050565b5f8083118290611a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f99190611a8d565b60405180910390fd5b505f8385611a10919061264e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611a5f82611a1d565b611a698185611a27565b9350611a79818560208601611a37565b611a8281611a45565b840191505092915050565b5f6020820190508181035f830152611aa58184611a55565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ada82611ab1565b9050919050565b611aea81611ad0565b8114611af4575f80fd5b50565b5f81359050611b0581611ae1565b92915050565b5f819050919050565b611b1d81611b0b565b8114611b27575f80fd5b50565b5f81359050611b3881611b14565b92915050565b5f8060408385031215611b5457611b53611aad565b5b5f611b6185828601611af7565b9250506020611b7285828601611b2a565b9150509250929050565b5f8115159050919050565b611b9081611b7c565b82525050565b5f602082019050611ba95f830184611b87565b92915050565b611bb881611b0b565b82525050565b5f602082019050611bd15f830184611baf565b92915050565b5f805f60608486031215611bee57611bed611aad565b5b5f611bfb86828701611af7565b9350506020611c0c86828701611af7565b9250506040611c1d86828701611b2a565b9150509250925092565b5f60ff82169050919050565b611c3c81611c27565b82525050565b5f602082019050611c555f830184611c33565b92915050565b5f60208284031215611c7057611c6f611aad565b5b5f611c7d84828501611af7565b91505092915050565b5f611c9082611ab1565b9050919050565b611ca081611c86565b82525050565b5f602082019050611cb95f830184611c97565b92915050565b611cc881611ad0565b82525050565b5f602082019050611ce15f830184611cbf565b92915050565b5f8060408385031215611cfd57611cfc611aad565b5b5f611d0a85828601611b2a565b9250506020611d1b85828601611b2a565b9150509250929050565b5f8060408385031215611d3b57611d3a611aad565b5b5f611d4885828601611af7565b9250506020611d5985828601611af7565b9150509250929050565b611d6c81611c86565b8114611d76575f80fd5b50565b5f81359050611d8781611d63565b92915050565b5f60208284031215611da257611da1611aad565b5b5f611daf84828501611d79565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611e3a57808604811115611e1657611e15611db8565b5b6001851615611e255780820291505b8081029050611e3385611de5565b9450611dfa565b94509492505050565b5f82611e525760019050611f0d565b81611e5f575f9050611f0d565b8160018114611e755760028114611e7f57611eae565b6001915050611f0d565b60ff841115611e9157611e90611db8565b5b8360020a915084821115611ea857611ea7611db8565b5b50611f0d565b5060208310610133831016604e8410600b8410161715611ee35782820a905083811115611ede57611edd611db8565b5b611f0d565b611ef08484846001611df1565b92509050818404811115611f0757611f06611db8565b5b81810290505b9392505050565b5f611f1e82611b0b565b9150611f2983611c27565b9250611f567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611e43565b905092915050565b5f611f6882611b0b565b9150611f7383611b0b565b9250828202611f8181611b0b565b91508282048414831517611f9857611f97611db8565b5b5092915050565b7f54617820746f6f206869676800000000000000000000000000000000000000005f82015250565b5f611fd3600c83611a27565b9150611fde82611f9f565b602082019050919050565b5f6020820190508181035f83015261200081611fc7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612061602683611a27565b915061206c82612007565b604082019050919050565b5f6020820190508181035f83015261208e81612055565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6120ef602483611a27565b91506120fa82612095565b604082019050919050565b5f6020820190508181035f83015261211c816120e3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61217d602283611a27565b915061218882612123565b604082019050919050565b5f6020820190508181035f8301526121aa81612171565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61220b602583611a27565b9150612216826121b1565b604082019050919050565b5f6020820190508181035f830152612238816121ff565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612299602383611a27565b91506122a48261223f565b604082019050919050565b5f6020820190508181035f8301526122c68161228d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612327602983611a27565b9150612332826122cd565b604082019050919050565b5f6020820190508181035f8301526123548161231b565b9050919050565b5f61236582611b0b565b915061237083611b0b565b925082820390508181111561238857612387611db8565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6123c2602083611a27565b91506123cd8261238e565b602082019050919050565b5f6020820190508181035f8301526123ef816123b6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061245e81611ae1565b92915050565b5f6020828403121561247957612478611aad565b5b5f61248684828501612450565b91505092915050565b5f819050919050565b5f819050919050565b5f6124bb6124b66124b18461248f565b612498565b611b0b565b9050919050565b6124cb816124a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61250381611ad0565b82525050565b5f61251483836124fa565b60208301905092915050565b5f602082019050919050565b5f612536826124d1565b61254081856124db565b935061254b836124eb565b805f5b8381101561257b5781516125628882612509565b975061256d83612520565b92505060018101905061254e565b5085935050505092915050565b5f60a08201905061259b5f830188611baf565b6125a860208301876124c2565b81810360408301526125ba818661252c565b90506125c96060830185611cbf565b6125d66080830184611baf565b9695505050505050565b5f81905092915050565b50565b5f6125f85f836125e0565b9150612603826125ea565b5f82019050919050565b5f612617826125ed565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265882611b0b565b915061266383611b0b565b92508261267357612672612621565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126d8602183611a27565b91506126e38261267e565b604082019050919050565b5f6020820190508181035f830152612705816126cc565b9050919050565b5f61271682611b0b565b915061272183611b0b565b925082820190508082111561273957612738611db8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612773601b83611a27565b915061277e8261273f565b602082019050919050565b5f6020820190508181035f8301526127a081612767565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208d6ede428bcdd6baaf14583aae10c50af3f23d32da98dca61f6bd323c9737b6564736f6c634300081a0033

Deployed Bytecode Sourcemap

4810:7074:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6757:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7590:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7034:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7759:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6943:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5378:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11390:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10903:353;;;;;;;;;;;;;:::i;:::-;;5417:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7137:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:103;;;;;;;;;;;;;:::i;:::-;;5459:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5024:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2590:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11629:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6848:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7264:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5310:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7439:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3489:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11264:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6757:83;6794:13;6827:5;;;;;;;;;;;;;;;;;6820:12;;6757:83;:::o;7590:161::-;7665:4;7682:39;7691:12;:10;:12::i;:::-;7705:7;7714:6;7682:8;:39::i;:::-;7739:4;7732:11;;7590:161;;;;:::o;7034:95::-;7087:7;5119:2;5180;:13;;;;:::i;:::-;5163:14;:30;;;;:::i;:::-;7107:14;;7034:95;:::o;7759:313::-;7857:4;7874:36;7884:6;7892:9;7903:6;7874:9;:36::i;:::-;7921:121;7930:6;7938:12;:10;:12::i;:::-;7952:89;7990:6;7952:89;;;;;;;;;;;;;;;;;:11;:19;7964:6;7952:19;;;;;;;;;;;;;;;:33;7972:12;:10;:12::i;:::-;7952:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7921:8;:121::i;:::-;8060:4;8053:11;;7759:313;;;;;:::o;6943:83::-;6984:5;5119:2;7002:16;;6943:83;:::o;5378:31::-;;;;:::o;11390:113::-;2476:13;:11;:13::i;:::-;11491:4:::1;11461:18;:27;11480:7;11461:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11390:113:::0;:::o;10903:353::-;10967:15;;;;;;;;;;;10953:29;;:12;:10;:12::i;:::-;:29;;;10945:38;;;;;;10994:20;11015:24;11033:4;11015:9;:24::i;:::-;10994:45;;11066:1;11053:12;:14;11050:73;;;11081:30;11098:12;11081:16;:30::i;:::-;11050:73;11133:18;11152:21;11133:40;;11198:1;11187:10;:12;11184:65;;;11213:24;11226:10;11213:12;:24::i;:::-;11184:65;10934:322;;10903:353::o;5417:33::-;;;;:::o;7137:119::-;7203:7;7230:9;:18;7240:7;7230:18;;;;;;;;;;;;;;;;7223:25;;7137:119;;;:::o;3231:103::-;2476:13;:11;:13::i;:::-;3296:30:::1;3323:1;3296:18;:30::i;:::-;3231:103::o:0;5459:92::-;;;;;;;;;;;;;:::o;5024:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2590:87::-;2636:7;2663:6;;;;;;;;;;;2656:13;;2590:87;:::o;11629:242::-;2476:13;:11;:13::i;:::-;11729:2:::1;11719:6;:12;;11711:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;11778:2;11767:7;:13;;11759:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11823:6;11808:12;:21;;;;11856:7;11840:13;:23;;;;11629:242:::0;;:::o;6848:87::-;6887:13;6920:7;;;;;;;;;;;;;;;;;6913:14;;6848:87;:::o;7264:167::-;7342:4;7359:42;7369:12;:10;:12::i;:::-;7383:9;7394:6;7359:9;:42::i;:::-;7419:4;7412:11;;7264:167;;;;:::o;5310:59::-;;;;:::o;7439:143::-;7520:7;7547:11;:18;7559:5;7547:18;;;;;;;;;;;;;;;:27;7566:7;7547:27;;;;;;;;;;;;;;;;7540:34;;7439:143;;;;:::o;11511:110::-;2476:13;:11;:13::i;:::-;11608:5:::1;11578:18;:27;11597:7;11578:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11511:110:::0;:::o;3489:201::-;2476:13;:11;:13::i;:::-;3598:1:::1;3578:22;;:8;:22;;::::0;3570:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3654:28;3673:8;3654:18;:28::i;:::-;3489:201:::0;:::o;11264:118::-;2476:13;:11;:13::i;:::-;11365:9:::1;11347:15;;:27;;;;;;;;;;;;;;;;;;11264:118:::0;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8080:335::-;8190:1;8173:19;;:5;:19;;;8165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8271:1;8252:21;;:7;:21;;;8244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8353:6;8323:11;:18;8335:5;8323:18;;;;;;;;;;;;;;;:27;8342:7;8323:27;;;;;;;;;;;;;;;:36;;;;8391:7;8375:32;;8384:5;8375:32;;;8400:6;8375:32;;;;;;:::i;:::-;;;;;;;;8080:335;;;:::o;8423:1488::-;8527:1;8511:18;;:4;:18;;;8503:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:1;8590:16;;:2;:16;;;8582:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8674:1;8665:6;:10;8657:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8732:17;8767:18;:24;8786:4;8767:24;;;;;;;;;;;;;;;;;;;;;;;;;8766:25;:52;;;;;8796:18;:22;8815:2;8796:22;;;;;;;;;;;;;;;;;;;;;;;;;8795:23;8766:52;8762:793;;;8849:13;;;;;;;;;;;8841:21;;:4;:21;;;:55;;;;;8880:15;;;;;;;;;;;8866:30;;:2;:30;;;;8841:55;8837:141;;;8929:33;8958:3;8929:24;8940:12;;8929:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8917:45;;8837:141;9005:13;;;;;;;;;;;8999:19;;:2;:19;;;8996:104;;9050:34;9080:3;9050:25;9061:13;;9050:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;9038:46;;8996:104;9116:28;9147:24;9165:4;9147:9;:24::i;:::-;9116:55;;9191:6;;;;;;;;;;;9190:7;:30;;;;;9207:13;;;;;;;;;;;9201:19;;:2;:19;;;9190:30;:45;;;;;9224:11;;;;;;;;;;;9190:45;:87;;;;;9260:17;;9239:20;:38;9190:87;9186:358;;;9298:38;9315:20;9298:16;:38::i;:::-;9355:26;9384:21;9355:50;;9448:1;9427:18;:22;9424:105;;;9474:35;9487:21;9474:12;:35::i;:::-;9424:105;9279:265;9186:358;8820:735;8762:793;9580:1;9570:9;:11;9567:161;;;9620:39;9649:9;9620;:24;9638:4;9620:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9595:9;:24;9613:4;9595:24;;;;;;;;;;;;;;;:64;;;;9700:4;9677:39;;9686:4;9677:39;;;9706:9;9677:39;;;;;;:::i;:::-;;;;;;;;9567:161;9754:27;9774:6;9754:9;:15;9764:4;9754:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9738:9;:15;9748:4;9738:15;;;;;;;;;;;;;;;:43;;;;9806:40;9824:21;9835:9;9824:6;:10;;:21;;;;:::i;:::-;9806:9;:13;9816:2;9806:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9792:9;:13;9802:2;9792:13;;;;;;;;;;;;;;;:54;;;;9877:2;9862:41;;9871:4;9862:41;;;9881:21;9892:9;9881:6;:10;;:21;;;;:::i;:::-;9862:41;;;;;;:::i;:::-;;;;;;;;8492:1419;8423:1488;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;2755:132::-;2830:12;:10;:12::i;:::-;2819:23;;:7;:5;:7::i;:::-;:23;;;2811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2755:132::o;10027:520::-;5760:4;5751:6;;:13;;;;;;;;;;;;;;;;;;10121:1:::1;10108:11;:14:::0;10105:27;10124:7:::1;10105:27;10142:21;10180:1;10166:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10142:40;;10211:4;10193;10198:1;10193:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10237:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10227:4;10232:1;10227:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10270:62;10287:4;10302:15;;;;;;;;;;;10320:11;10270:8;:62::i;:::-;10343:15;;;;;;;;;;;:66;;;10424:11;10450:1;10466:4;10493;10513:15;10343:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10094:453;5775:1;5796:5:::0;5787:6;;:14;;;;;;;;;;;;;;;;;;10027:520;:::o;10555:301::-;10613:16;10643:15;;;;;;;;;;;10635:29;;10672:6;10635:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10612:71;;;10701:11;10696:151;;10815:15;;;;;;;;;;;10792:47;;;10832:6;10792:47;;;;;;:::i;:::-;;;;;;;;10696:151;10601:255;10555:301;:::o;3850:191::-;3924:16;3943:6;;;;;;;;;;;3924:25;;3969:8;3960:6;;:17;;;;;;;;;;;;;;;;;;4024:8;3993:40;;4014:8;3993:40;;;;;;;;;;;;3913:128;3850:191;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:104::-;5126:7;5155:24;5173:5;5155:24;:::i;:::-;5144:35;;5081:104;;;:::o;5191:142::-;5294:32;5320:5;5294:32;:::i;:::-;5289:3;5282:45;5191:142;;:::o;5339:254::-;5448:4;5486:2;5475:9;5471:18;5463:26;;5499:87;5583:1;5572:9;5568:17;5559:6;5499:87;:::i;:::-;5339:254;;;;:::o;5599:118::-;5686:24;5704:5;5686:24;:::i;:::-;5681:3;5674:37;5599:118;;:::o;5723:222::-;5816:4;5854:2;5843:9;5839:18;5831:26;;5867:71;5935:1;5924:9;5920:17;5911:6;5867:71;:::i;:::-;5723:222;;;;:::o;5951:474::-;6019:6;6027;6076:2;6064:9;6055:7;6051:23;6047:32;6044:119;;;6082:79;;:::i;:::-;6044:119;6202:1;6227:53;6272:7;6263:6;6252:9;6248:22;6227:53;:::i;:::-;6217:63;;6173:117;6329:2;6355:53;6400:7;6391:6;6380:9;6376:22;6355:53;:::i;:::-;6345:63;;6300:118;5951:474;;;;;:::o;6431:::-;6499:6;6507;6556:2;6544:9;6535:7;6531:23;6527:32;6524:119;;;6562:79;;:::i;:::-;6524:119;6682:1;6707:53;6752:7;6743:6;6732:9;6728:22;6707:53;:::i;:::-;6697:63;;6653:117;6809:2;6835:53;6880:7;6871:6;6860:9;6856:22;6835:53;:::i;:::-;6825:63;;6780:118;6431:474;;;;;:::o;6911:138::-;6992:32;7018:5;6992:32;:::i;:::-;6985:5;6982:43;6972:71;;7039:1;7036;7029:12;6972:71;6911:138;:::o;7055:155::-;7109:5;7147:6;7134:20;7125:29;;7163:41;7198:5;7163:41;:::i;:::-;7055:155;;;;:::o;7216:345::-;7283:6;7332:2;7320:9;7311:7;7307:23;7303:32;7300:119;;;7338:79;;:::i;:::-;7300:119;7458:1;7483:61;7536:7;7527:6;7516:9;7512:22;7483:61;:::i;:::-;7473:71;;7429:125;7216:345;;;;:::o;7567:180::-;7615:77;7612:1;7605:88;7712:4;7709:1;7702:15;7736:4;7733:1;7726:15;7753:102;7795:8;7842:5;7839:1;7835:13;7814:34;;7753:102;;;:::o;7861:848::-;7922:5;7929:4;7953:6;7944:15;;7977:5;7968:14;;7991:712;8012:1;8002:8;7999:15;7991:712;;;8107:4;8102:3;8098:14;8092:4;8089:24;8086:50;;;8116:18;;:::i;:::-;8086:50;8166:1;8156:8;8152:16;8149:451;;;8581:4;8574:5;8570:16;8561:25;;8149:451;8631:4;8625;8621:15;8613:23;;8661:32;8684:8;8661:32;:::i;:::-;8649:44;;7991:712;;;7861:848;;;;;;;:::o;8715:1073::-;8769:5;8960:8;8950:40;;8981:1;8972:10;;8983:5;;8950:40;9009:4;8999:36;;9026:1;9017:10;;9028:5;;8999:36;9095:4;9143:1;9138:27;;;;9179:1;9174:191;;;;9088:277;;9138:27;9156:1;9147:10;;9158:5;;;9174:191;9219:3;9209:8;9206:17;9203:43;;;9226:18;;:::i;:::-;9203:43;9275:8;9272:1;9268:16;9259:25;;9310:3;9303:5;9300:14;9297:40;;;9317:18;;:::i;:::-;9297:40;9350:5;;;9088:277;;9474:2;9464:8;9461:16;9455:3;9449:4;9446:13;9442:36;9424:2;9414:8;9411:16;9406:2;9400:4;9397:12;9393:35;9377:111;9374:246;;;9530:8;9524:4;9520:19;9511:28;;9565:3;9558:5;9555:14;9552:40;;;9572:18;;:::i;:::-;9552:40;9605:5;;9374:246;9645:42;9683:3;9673:8;9667:4;9664:1;9645:42;:::i;:::-;9630:57;;;;9719:4;9714:3;9710:14;9703:5;9700:25;9697:51;;;9728:18;;:::i;:::-;9697:51;9777:4;9770:5;9766:16;9757:25;;8715:1073;;;;;;:::o;9794:281::-;9852:5;9876:23;9894:4;9876:23;:::i;:::-;9868:31;;9920:25;9936:8;9920:25;:::i;:::-;9908:37;;9964:104;10001:66;9991:8;9985:4;9964:104;:::i;:::-;9955:113;;9794:281;;;;:::o;10081:410::-;10121:7;10144:20;10162:1;10144:20;:::i;:::-;10139:25;;10178:20;10196:1;10178:20;:::i;:::-;10173:25;;10233:1;10230;10226:9;10255:30;10273:11;10255:30;:::i;:::-;10244:41;;10434:1;10425:7;10421:15;10418:1;10415:22;10395:1;10388:9;10368:83;10345:139;;10464:18;;:::i;:::-;10345:139;10129:362;10081:410;;;;:::o;10497:162::-;10637:14;10633:1;10625:6;10621:14;10614:38;10497:162;:::o;10665:366::-;10807:3;10828:67;10892:2;10887:3;10828:67;:::i;:::-;10821:74;;10904:93;10993:3;10904:93;:::i;:::-;11022:2;11017:3;11013:12;11006:19;;10665:366;;;:::o;11037:419::-;11203:4;11241:2;11230:9;11226:18;11218:26;;11290:9;11284:4;11280:20;11276:1;11265:9;11261:17;11254:47;11318:131;11444:4;11318:131;:::i;:::-;11310:139;;11037:419;;;:::o;11462:225::-;11602:34;11598:1;11590:6;11586:14;11579:58;11671:8;11666:2;11658:6;11654:15;11647:33;11462:225;:::o;11693:366::-;11835:3;11856:67;11920:2;11915:3;11856:67;:::i;:::-;11849:74;;11932:93;12021:3;11932:93;:::i;:::-;12050:2;12045:3;12041:12;12034:19;;11693:366;;;:::o;12065:419::-;12231:4;12269:2;12258:9;12254:18;12246:26;;12318:9;12312:4;12308:20;12304:1;12293:9;12289:17;12282:47;12346:131;12472:4;12346:131;:::i;:::-;12338:139;;12065:419;;;:::o;12490:223::-;12630:34;12626:1;12618:6;12614:14;12607:58;12699:6;12694:2;12686:6;12682:15;12675:31;12490:223;:::o;12719:366::-;12861:3;12882:67;12946:2;12941:3;12882:67;:::i;:::-;12875:74;;12958:93;13047:3;12958:93;:::i;:::-;13076:2;13071:3;13067:12;13060:19;;12719:366;;;:::o;13091:419::-;13257:4;13295:2;13284:9;13280:18;13272:26;;13344:9;13338:4;13334:20;13330:1;13319:9;13315:17;13308:47;13372:131;13498:4;13372:131;:::i;:::-;13364:139;;13091:419;;;:::o;13516:221::-;13656:34;13652:1;13644:6;13640:14;13633:58;13725:4;13720:2;13712:6;13708:15;13701:29;13516:221;:::o;13743:366::-;13885:3;13906:67;13970:2;13965:3;13906:67;:::i;:::-;13899:74;;13982:93;14071:3;13982:93;:::i;:::-;14100:2;14095:3;14091:12;14084:19;;13743:366;;;:::o;14115:419::-;14281:4;14319:2;14308:9;14304:18;14296:26;;14368:9;14362:4;14358:20;14354:1;14343:9;14339:17;14332:47;14396:131;14522:4;14396:131;:::i;:::-;14388:139;;14115:419;;;:::o;14540:224::-;14680:34;14676:1;14668:6;14664:14;14657:58;14749:7;14744:2;14736:6;14732:15;14725:32;14540:224;:::o;14770:366::-;14912:3;14933:67;14997:2;14992:3;14933:67;:::i;:::-;14926:74;;15009:93;15098:3;15009:93;:::i;:::-;15127:2;15122:3;15118:12;15111:19;;14770:366;;;:::o;15142:419::-;15308:4;15346:2;15335:9;15331:18;15323:26;;15395:9;15389:4;15385:20;15381:1;15370:9;15366:17;15359:47;15423:131;15549:4;15423:131;:::i;:::-;15415:139;;15142:419;;;:::o;15567:222::-;15707:34;15703:1;15695:6;15691:14;15684:58;15776:5;15771:2;15763:6;15759:15;15752:30;15567:222;:::o;15795:366::-;15937:3;15958:67;16022:2;16017:3;15958:67;:::i;:::-;15951:74;;16034:93;16123:3;16034:93;:::i;:::-;16152:2;16147:3;16143:12;16136:19;;15795:366;;;:::o;16167:419::-;16333:4;16371:2;16360:9;16356:18;16348:26;;16420:9;16414:4;16410:20;16406:1;16395:9;16391:17;16384:47;16448:131;16574:4;16448:131;:::i;:::-;16440:139;;16167:419;;;:::o;16592:228::-;16732:34;16728:1;16720:6;16716:14;16709:58;16801:11;16796:2;16788:6;16784:15;16777:36;16592:228;:::o;16826:366::-;16968:3;16989:67;17053:2;17048:3;16989:67;:::i;:::-;16982:74;;17065:93;17154:3;17065:93;:::i;:::-;17183:2;17178:3;17174:12;17167:19;;16826:366;;;:::o;17198:419::-;17364:4;17402:2;17391:9;17387:18;17379:26;;17451:9;17445:4;17441:20;17437:1;17426:9;17422:17;17415:47;17479:131;17605:4;17479:131;:::i;:::-;17471:139;;17198:419;;;:::o;17623:194::-;17663:4;17683:20;17701:1;17683:20;:::i;:::-;17678:25;;17717:20;17735:1;17717:20;:::i;:::-;17712:25;;17761:1;17758;17754:9;17746:17;;17785:1;17779:4;17776:11;17773:37;;;17790:18;;:::i;:::-;17773:37;17623:194;;;;:::o;17823:182::-;17963:34;17959:1;17951:6;17947:14;17940:58;17823:182;:::o;18011:366::-;18153:3;18174:67;18238:2;18233:3;18174:67;:::i;:::-;18167:74;;18250:93;18339:3;18250:93;:::i;:::-;18368:2;18363:3;18359:12;18352:19;;18011:366;;;:::o;18383:419::-;18549:4;18587:2;18576:9;18572:18;18564:26;;18636:9;18630:4;18626:20;18622:1;18611:9;18607:17;18600:47;18664:131;18790:4;18664:131;:::i;:::-;18656:139;;18383:419;;;:::o;18808:180::-;18856:77;18853:1;18846:88;18953:4;18950:1;18943:15;18977:4;18974:1;18967:15;18994:180;19042:77;19039:1;19032:88;19139:4;19136:1;19129:15;19163:4;19160:1;19153:15;19180:143;19237:5;19268:6;19262:13;19253:22;;19284:33;19311:5;19284:33;:::i;:::-;19180:143;;;;:::o;19329:351::-;19399:6;19448:2;19436:9;19427:7;19423:23;19419:32;19416:119;;;19454:79;;:::i;:::-;19416:119;19574:1;19599:64;19655:7;19646:6;19635:9;19631:22;19599:64;:::i;:::-;19589:74;;19545:128;19329:351;;;;:::o;19686:85::-;19731:7;19760:5;19749:16;;19686:85;;;:::o;19777:60::-;19805:3;19826:5;19819:12;;19777:60;;;:::o;19843:158::-;19901:9;19934:61;19952:42;19961:32;19987:5;19961:32;:::i;:::-;19952:42;:::i;:::-;19934:61;:::i;:::-;19921:74;;19843:158;;;:::o;20007:147::-;20102:45;20141:5;20102:45;:::i;:::-;20097:3;20090:58;20007:147;;:::o;20160:114::-;20227:6;20261:5;20255:12;20245:22;;20160:114;;;:::o;20280:184::-;20379:11;20413:6;20408:3;20401:19;20453:4;20448:3;20444:14;20429:29;;20280:184;;;;:::o;20470:132::-;20537:4;20560:3;20552:11;;20590:4;20585:3;20581:14;20573:22;;20470:132;;;:::o;20608:108::-;20685:24;20703:5;20685:24;:::i;:::-;20680:3;20673:37;20608:108;;:::o;20722:179::-;20791:10;20812:46;20854:3;20846:6;20812:46;:::i;:::-;20890:4;20885:3;20881:14;20867:28;;20722:179;;;;:::o;20907:113::-;20977:4;21009;21004:3;21000:14;20992:22;;20907:113;;;:::o;21056:732::-;21175:3;21204:54;21252:5;21204:54;:::i;:::-;21274:86;21353:6;21348:3;21274:86;:::i;:::-;21267:93;;21384:56;21434:5;21384:56;:::i;:::-;21463:7;21494:1;21479:284;21504:6;21501:1;21498:13;21479:284;;;21580:6;21574:13;21607:63;21666:3;21651:13;21607:63;:::i;:::-;21600:70;;21693:60;21746:6;21693:60;:::i;:::-;21683:70;;21539:224;21526:1;21523;21519:9;21514:14;;21479:284;;;21483:14;21779:3;21772:10;;21180:608;;;21056:732;;;;:::o;21794:831::-;22057:4;22095:3;22084:9;22080:19;22072:27;;22109:71;22177:1;22166:9;22162:17;22153:6;22109:71;:::i;:::-;22190:80;22266:2;22255:9;22251:18;22242:6;22190:80;:::i;:::-;22317:9;22311:4;22307:20;22302:2;22291:9;22287:18;22280:48;22345:108;22448:4;22439:6;22345:108;:::i;:::-;22337:116;;22463:72;22531:2;22520:9;22516:18;22507:6;22463:72;:::i;:::-;22545:73;22613:3;22602:9;22598:19;22589:6;22545:73;:::i;:::-;21794:831;;;;;;;;:::o;22631:147::-;22732:11;22769:3;22754:18;;22631:147;;;;:::o;22784:114::-;;:::o;22904:398::-;23063:3;23084:83;23165:1;23160:3;23084:83;:::i;:::-;23077:90;;23176:93;23265:3;23176:93;:::i;:::-;23294:1;23289:3;23285:11;23278:18;;22904:398;;;:::o;23308:379::-;23492:3;23514:147;23657:3;23514:147;:::i;:::-;23507:154;;23678:3;23671:10;;23308:379;;;:::o;23693:180::-;23741:77;23738:1;23731:88;23838:4;23835:1;23828:15;23862:4;23859:1;23852:15;23879:185;23919:1;23936:20;23954:1;23936:20;:::i;:::-;23931:25;;23970:20;23988:1;23970:20;:::i;:::-;23965:25;;24009:1;23999:35;;24014:18;;:::i;:::-;23999:35;24056:1;24053;24049:9;24044:14;;23879:185;;;;:::o;24070:220::-;24210:34;24206:1;24198:6;24194:14;24187:58;24279:3;24274:2;24266:6;24262:15;24255:28;24070:220;:::o;24296:366::-;24438:3;24459:67;24523:2;24518:3;24459:67;:::i;:::-;24452:74;;24535:93;24624:3;24535:93;:::i;:::-;24653:2;24648:3;24644:12;24637:19;;24296:366;;;:::o;24668:419::-;24834:4;24872:2;24861:9;24857:18;24849:26;;24921:9;24915:4;24911:20;24907:1;24896:9;24892:17;24885:47;24949:131;25075:4;24949:131;:::i;:::-;24941:139;;24668:419;;;:::o;25093:191::-;25133:3;25152:20;25170:1;25152:20;:::i;:::-;25147:25;;25186:20;25204:1;25186:20;:::i;:::-;25181:25;;25229:1;25226;25222:9;25215:16;;25250:3;25247:1;25244:10;25241:36;;;25257:18;;:::i;:::-;25241:36;25093:191;;;;:::o;25290:177::-;25430:29;25426:1;25418:6;25414:14;25407:53;25290:177;:::o;25473:366::-;25615:3;25636:67;25700:2;25695:3;25636:67;:::i;:::-;25629:74;;25712:93;25801:3;25712:93;:::i;:::-;25830:2;25825:3;25821:12;25814:19;;25473:366;;;:::o;25845:419::-;26011:4;26049:2;26038:9;26034:18;26026:26;;26098:9;26092:4;26088:20;26084:1;26073:9;26069:17;26062:47;26126:131;26252:4;26126:131;:::i;:::-;26118:139;;25845:419;;;:::o

Swarm Source

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