ETH Price: $3,481.91 (+0.96%)

Token

PWNAO (PWNAO)
 

Overview

Max Total Supply

1,000,000 PWNAO

Holders

426

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.393385064308700915 PWNAO

Value
$0.00
0xc84921309f94da4fd20ce02a21d562d5744a6f00
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:
PWNAO

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 2023-10-12
*/

/**

PEACE WAS NEVER AN OPTION

https://knowyourmeme.com/memes/peace-was-never-an-option

Socials:

🌐 https://www.pwnao.com/
🐦 https://twitter.com/pwnaoERC20
💬 https://t.me/pwnao

1 Million Supply
Final 1/1 Tax

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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


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

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

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

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


pragma solidity ^0.8.0;

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, uint256 amount) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

pragma solidity ^0.8.0;

interface IERC20Metadata is IERC20 {
 
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

pragma solidity ^0.8.0;

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }


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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 {}
}

pragma solidity ^0.8.9;

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

pragma solidity ^0.8.9;

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

pragma solidity ^0.8.19;

contract PWNAO is ERC20, Ownable {
    uint256 public _maxTxAmount = 20000 * 10 ** decimals();
    uint256 public _maxWalletSize = 20000 * 10 ** decimals();
    uint256 public _swapTokensAtAmount = 10000 * 10 ** decimals();
    uint256 public _amountToSwap = 10000 * 10 ** decimals();

    uint256 private _taxFeeOnBuy = 1;
    uint256 private _taxFeeOnSell = 1;

    mapping(address => bool) private _isExcludedFromFee;

    address payable private constant _feeAddress =
        payable(0x2Ba97157aBe10B6b7C478759a91Ceaea9F0B1Cd3);

    IUniswapV2Router02 public constant uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniswapV2Pair;

    bool private inSwap = false;

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

    constructor() ERC20("PWNAO", "PWNAO") {
        _mint(msg.sender, 1000000 * 10 ** decimals());

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
        _isExcludedFromFee[_feeAddress] = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        if (from != owner() && to != owner()) {
            if (to != _feeAddress && from != _feeAddress) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            }

            if (
                to != uniswapV2Pair && to != _feeAddress && from != _feeAddress
            ) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            bool shouldSwap = contractTokenBalance >= _swapTokensAtAmount;

            if (contractTokenBalance >= _amountToSwap) {
                contractTokenBalance = _amountToSwap;
            }

            if (
                shouldSwap &&
                !inSwap &&
                from != uniswapV2Pair &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                swapTokensForEth(contractTokenBalance);

                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    _feeAddress.transfer(contractETHBalance);
                }
            }
        }

        //Transfer Tokens
        uint256 _taxFee = 0;
        if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
            _taxFee = _taxFeeOnBuy;
        }

        if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
            _taxFee = _taxFeeOnSell;
        }

        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            _taxFee = 0;
        }

        uint256 tTeam = (amount * _taxFee) / 100;
        uint256 tTransferAmount = amount - tTeam;
        if (tTeam > 0) {
            super._transfer(from, address(this), tTeam);
        }
        super._transfer(from, to, tTransferAmount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    // external onlyOwner

    function setSwapTokensAtAmount(
        uint256 swapTokensAtAmount
    ) external onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    function setAmountToSwap(uint256 amountToSwap) external onlyOwner {
        _amountToSwap = amountToSwap;
    }

    function excludeAccountsFromFees(
        address[] calldata accounts,
        bool excluded
    ) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function launchlimits()  external onlyOwner {
        _maxTxAmount = 20000 * 10 ** decimals();
	    _maxWalletSize = 20000 * 10 ** decimals();
	    _swapTokensAtAmount = 10000 * 10 ** decimals();
	    _amountToSwap = 9999 * 10 ** decimals();
	    _taxFeeOnBuy = 25;
	    _taxFeeOnSell = 25;
    }

    function launchlimits2()  external onlyOwner {
        _maxTxAmount = 20000 * 10 ** decimals();
	    _maxWalletSize = 20000 * 10 ** decimals();
	    _swapTokensAtAmount = 10000 * 10 ** decimals();
	    _amountToSwap = 9999 * 10 ** decimals();
	    _taxFeeOnBuy = 1;
	    _taxFeeOnSell = 15;
    }

        function finallimits()  external onlyOwner {
        _maxTxAmount = 1000000 * 10 ** decimals();
	    _maxWalletSize = 1000000 * 10 ** decimals();
	    _swapTokensAtAmount = 5000 * 10 ** decimals();
	    _amountToSwap = 4000 * 10 ** decimals();
	    _taxFeeOnBuy = 1;
	    _taxFeeOnSell = 1;
    }



    // Send the current ETH and token balance to the marketing address

    function cleanContract() external {
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            _feeAddress.transfer(contractETHBalance);
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        if (contractTokenBalance > 0) {
            _transfer(address(this), _feeAddress, contractTokenBalance);
        }
    }

    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":"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":[],"name":"_amountToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","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":"cleanContract","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finallimits","outputs":[],"stateMutability":"nonpayable","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":"launchlimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchlimits2","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"name":"setAmountToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000146200055260201b60201c565b600a62000022919062000964565b614e20620000319190620009b5565b600655620000446200055260201b60201c565b600a62000052919062000964565b614e20620000619190620009b5565b600755620000746200055260201b60201c565b600a62000082919062000964565b612710620000919190620009b5565b600855620000a46200055260201b60201c565b600a620000b2919062000964565b612710620000c19190620009b5565b6009556001600a556001600b556000600d60146101000a81548160ff021916908315150217905550348015620000f657600080fd5b506040518060400160405280600581526020017f50574e414f0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f50574e414f000000000000000000000000000000000000000000000000000000815250816003908162000174919062000c70565b50806004908162000186919062000c70565b505050620001a96200019d6200055b60201b60201c565b6200056360201b60201c565b620001e833620001be6200055260201b60201c565b600a620001cc919062000964565b620f4240620001dc9190620009b5565b6200062960201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000248573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026e919062000dc1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000310919062000dc1565b6040518363ffffffff1660e01b81526004016200032f92919062000e04565b6020604051808303816000875af11580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000375919062000dc1565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000620003cb6200079660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000f1d565b60006012905090565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200069b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006929062000e92565b60405180910390fd5b620006af60008383620007c060201b60201c565b8060026000828254620006c3919062000eb4565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000776919062000f00565b60405180910390a36200079260008383620007c560201b60201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008585780860481111562000830576200082f620007ca565b5b6001851615620008405780820291505b80810290506200085085620007f9565b945062000810565b94509492505050565b60008262000873576001905062000946565b8162000883576000905062000946565b81600181146200089c5760028114620008a757620008dd565b600191505062000946565b60ff841115620008bc57620008bb620007ca565b5b8360020a915084821115620008d657620008d5620007ca565b5b5062000946565b5060208310610133831016604e8410600b8410161715620009175782820a905083811115620009115762000910620007ca565b5b62000946565b62000926848484600162000806565b9250905081840481111562000940576200093f620007ca565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000971826200094d565b91506200097e8362000957565b9250620009ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000861565b905092915050565b6000620009c2826200094d565b9150620009cf836200094d565b9250828202620009df816200094d565b91508282048414831517620009f957620009f8620007ca565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a8257607f821691505b60208210810362000a985762000a9762000a3a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ac3565b62000b0e868362000ac3565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b5162000b4b62000b45846200094d565b62000b26565b6200094d565b9050919050565b6000819050919050565b62000b6d8362000b30565b62000b8562000b7c8262000b58565b84845462000ad0565b825550505050565b600090565b62000b9c62000b8d565b62000ba981848462000b62565b505050565b5b8181101562000bd15762000bc560008262000b92565b60018101905062000baf565b5050565b601f82111562000c205762000bea8162000a9e565b62000bf58462000ab3565b8101602085101562000c05578190505b62000c1d62000c148562000ab3565b83018262000bae565b50505b505050565b600082821c905092915050565b600062000c456000198460080262000c25565b1980831691505092915050565b600062000c60838362000c32565b9150826002028217905092915050565b62000c7b8262000a00565b67ffffffffffffffff81111562000c975762000c9662000a0b565b5b62000ca3825462000a69565b62000cb082828562000bd5565b600060209050601f83116001811462000ce8576000841562000cd3578287015190505b62000cdf858262000c52565b86555062000d4f565b601f19841662000cf88662000a9e565b60005b8281101562000d225784890151825560018201915060208501945060208101905062000cfb565b8683101562000d42578489015162000d3e601f89168262000c32565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d898262000d5c565b9050919050565b62000d9b8162000d7c565b811462000da757600080fd5b50565b60008151905062000dbb8162000d90565b92915050565b60006020828403121562000dda5762000dd962000d57565b5b600062000dea8482850162000daa565b91505092915050565b62000dfe8162000d7c565b82525050565b600060408201905062000e1b600083018562000df3565b62000e2a602083018462000df3565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e7a601f8362000e31565b915062000e878262000e42565b602082019050919050565b6000602082019050818103600083015262000ead8162000e6b565b9050919050565b600062000ec1826200094d565b915062000ece836200094d565b925082820190508082111562000ee95762000ee8620007ca565b5b92915050565b62000efa816200094d565b82525050565b600060208201905062000f17600083018462000eef565b92915050565b612dfa8062000f2d6000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461057b578063afa4f3b2146105b8578063dd62ed3e146105e1578063f2fde38b1461061e576101a7565b806395d89b41146104ea578063a34efa3e14610515578063a457c2d71461053e576101a7565b80637d1db4a5116100c65780637d1db4a5146104405780638da5cb5b1461046b5780638f9a55c01461049657806390d2c93a146104c1576101a7565b8063715018a6146103fb57806374122daa146104125780637be842dd14610429576101a7565b806323b872dd11610159578063313ce56711610133578063313ce5671461032b578063395093511461035657806349bd5a5e1461039357806370a08231146103be576101a7565b806323b872dd146102ac57806326bb6d17146102e95780632fd689e314610300576101a7565b806301e7872a146101ac57806306fdde03146101c3578063095ea7b3146101ee5780631694505e1461022b57806318160ddd146102565780631c127eab14610281576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610647565b005b3480156101cf57600080fd5b506101d86106fd565b6040516101e59190611e85565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611f45565b61078f565b6040516102229190611fa0565b60405180910390f35b34801561023757600080fd5b506102406107b2565b60405161024d919061201a565b60405180910390f35b34801561026257600080fd5b5061026b6107ca565b6040516102789190612044565b60405180910390f35b34801561028d57600080fd5b506102966107d4565b6040516102a39190612044565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061205f565b6107da565b6040516102e09190611fa0565b60405180910390f35b3480156102f557600080fd5b506102fe610809565b005b34801561030c57600080fd5b506103156108bf565b6040516103229190612044565b60405180910390f35b34801561033757600080fd5b506103406108c5565b60405161034d91906120ce565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190611f45565b6108ce565b60405161038a9190611fa0565b60405180910390f35b34801561039f57600080fd5b506103a8610905565b6040516103b591906120f8565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e09190612113565b61092b565b6040516103f29190612044565b60405180910390f35b34801561040757600080fd5b50610410610973565b005b34801561041e57600080fd5b50610427610987565b005b34801561043557600080fd5b5061043e610a3f565b005b34801561044c57600080fd5b50610455610ae3565b6040516104629190612044565b60405180910390f35b34801561047757600080fd5b50610480610ae9565b60405161048d91906120f8565b60405180910390f35b3480156104a257600080fd5b506104ab610b13565b6040516104b89190612044565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e391906121d1565b610b19565b005b3480156104f657600080fd5b506104ff610bc6565b60405161050c9190611e85565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612231565b610c58565b005b34801561054a57600080fd5b5061056560048036038101906105609190611f45565b610c6a565b6040516105729190611fa0565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190611f45565b610ce1565b6040516105af9190611fa0565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612231565b610d04565b005b3480156105ed57600080fd5b506106086004803603810190610603919061225e565b610d16565b6040516106159190612044565b60405180910390f35b34801561062a57600080fd5b5061064560048036038101906106409190612113565b610d9d565b005b61064f610e20565b6106576108c5565b600a6106639190612400565b614e20610670919061244b565b60068190555061067e6108c5565b600a61068a9190612400565b614e20610697919061244b565b6007819055506106a56108c5565b600a6106b19190612400565b6127106106be919061244b565b6008819055506106cc6108c5565b600a6106d89190612400565b61270f6106e5919061244b565b6009819055506001600a81905550600f600b81905550565b60606003805461070c906124bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610738906124bc565b80156107855780601f1061075a57610100808354040283529160200191610785565b820191906000526020600020905b81548152906001019060200180831161076857829003601f168201915b5050505050905090565b60008061079a610e9e565b90506107a7818585610ea6565b600191505092915050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60095481565b6000806107e5610e9e565b90506107f285828561106f565b6107fd8585856110fb565b60019150509392505050565b610811610e20565b6108196108c5565b600a6108259190612400565b614e20610832919061244b565b6006819055506108406108c5565b600a61084c9190612400565b614e20610859919061244b565b6007819055506108676108c5565b600a6108739190612400565b612710610880919061244b565b60088190555061088e6108c5565b600a61089a9190612400565b61270f6108a7919061244b565b6009819055506019600a819055506019600b81905550565b60085481565b60006012905090565b6000806108d9610e9e565b90506108fa8185856108eb8589610d16565b6108f591906124ed565b610ea6565b600191505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097b610e20565b6109856000611860565b565b61098f610e20565b6109976108c5565b600a6109a39190612400565b620f42406109b1919061244b565b6006819055506109bf6108c5565b600a6109cb9190612400565b620f42406109d9919061244b565b6007819055506109e76108c5565b600a6109f39190612400565b611388610a00919061244b565b600881905550610a0e6108c5565b600a610a1a9190612400565b610fa0610a27919061244b565b6009819055506001600a819055506001600b81905550565b60004790506000811115610aa957732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aa7573d6000803e3d6000fd5b505b6000610ab43061092b565b90506000811115610adf57610ade30732ba97157abe10b6b7c478759a91ceaea9f0b1cd3836110fb565b5b5050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b610b21610e20565b60005b83839050811015610bc05781600c6000868685818110610b4757610b46612521565b5b9050602002016020810190610b5c9190612113565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bb890612550565b915050610b24565b50505050565b606060048054610bd5906124bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c01906124bc565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905090565b610c60610e20565b8060098190555050565b600080610c75610e9e565b90506000610c838286610d16565b905083811015610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf9061260a565b60405180910390fd5b610cd58286868403610ea6565b60019250505092915050565b600080610cec610e9e565b9050610cf98185856110fb565b600191505092915050565b610d0c610e20565b8060088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610da5610e20565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b9061269c565b60405180910390fd5b610e1d81611860565b50565b610e28610e9e565b73ffffffffffffffffffffffffffffffffffffffff16610e46610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390612708565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c9061279a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b9061282c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110629190612044565b60405180910390a3505050565b600061107b8484610d16565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110f557818110156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612898565b60405180910390fd5b6110f48484848403610ea6565b5b50505050565b611103610ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111715750611141610ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561155c57732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156112065750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561125157600654811115611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612904565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156112ef5750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561133b5750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611399576007548161134d8461092b565b61135791906124ed565b1115611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612996565b60405180910390fd5b5b60006113a43061092b565b90506000600854821015905060095482106113bf5760095491505b8080156113d95750600d60149054906101000a900460ff16155b80156114335750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114895750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114df5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611559576114ed82611926565b6000479050600081111561155757732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611555573d6000803e3d6000fd5b505b505b50505b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115fb5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561160657600a5490505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116a35750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116ae57600b5490505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061174f5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118025750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118015750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561180c57600090505b60006064828461181c919061244b565b61182691906129e5565b9050600081846118369190612a16565b9050600082111561184d5761184c863084611b75565b5b611858868683611b75565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561195e5761195d612a4a565b5b60405190808252806020026020018201604052801561198c5781602001602082028036833780820191505090505b50905030816000815181106119a4576119a3612521565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a619190612a8e565b81600181518110611a7557611a74612521565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ace30737a250d5630b4cf539739df2c5dacb4c659f2488d84610ea6565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b24959493929190612bb4565b600060405180830381600087803b158015611b3e57600080fd5b505af1158015611b52573d6000803e3d6000fd5b50505050506000600d60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90612c80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4a90612d12565b60405180910390fd5b611c5e838383611deb565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90612da4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dd29190612044565b60405180910390a3611de5848484611df0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e2f578082015181840152602081019050611e14565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5782611df5565b611e618185611e00565b9350611e71818560208601611e11565b611e7a81611e3b565b840191505092915050565b60006020820190508181036000830152611e9f8184611e4c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611edc82611eb1565b9050919050565b611eec81611ed1565b8114611ef757600080fd5b50565b600081359050611f0981611ee3565b92915050565b6000819050919050565b611f2281611f0f565b8114611f2d57600080fd5b50565b600081359050611f3f81611f19565b92915050565b60008060408385031215611f5c57611f5b611ea7565b5b6000611f6a85828601611efa565b9250506020611f7b85828601611f30565b9150509250929050565b60008115159050919050565b611f9a81611f85565b82525050565b6000602082019050611fb56000830184611f91565b92915050565b6000819050919050565b6000611fe0611fdb611fd684611eb1565b611fbb565b611eb1565b9050919050565b6000611ff282611fc5565b9050919050565b600061200482611fe7565b9050919050565b61201481611ff9565b82525050565b600060208201905061202f600083018461200b565b92915050565b61203e81611f0f565b82525050565b60006020820190506120596000830184612035565b92915050565b60008060006060848603121561207857612077611ea7565b5b600061208686828701611efa565b935050602061209786828701611efa565b92505060406120a886828701611f30565b9150509250925092565b600060ff82169050919050565b6120c8816120b2565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f281611ed1565b82525050565b600060208201905061210d60008301846120e9565b92915050565b60006020828403121561212957612128611ea7565b5b600061213784828501611efa565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261216557612164612140565b5b8235905067ffffffffffffffff81111561218257612181612145565b5b60208301915083602082028301111561219e5761219d61214a565b5b9250929050565b6121ae81611f85565b81146121b957600080fd5b50565b6000813590506121cb816121a5565b92915050565b6000806000604084860312156121ea576121e9611ea7565b5b600084013567ffffffffffffffff81111561220857612207611eac565b5b6122148682870161214f565b93509350506020612227868287016121bc565b9150509250925092565b60006020828403121561224757612246611ea7565b5b600061225584828501611f30565b91505092915050565b6000806040838503121561227557612274611ea7565b5b600061228385828601611efa565b925050602061229485828601611efa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561232457808604811115612300576122ff61229e565b5b600185161561230f5780820291505b808102905061231d856122cd565b94506122e4565b94509492505050565b60008261233d57600190506123f9565b8161234b57600090506123f9565b8160018114612361576002811461236b5761239a565b60019150506123f9565b60ff84111561237d5761237c61229e565b5b8360020a9150848211156123945761239361229e565b5b506123f9565b5060208310610133831016604e8410600b84101617156123cf5782820a9050838111156123ca576123c961229e565b5b6123f9565b6123dc84848460016122da565b925090508184048111156123f3576123f261229e565b5b81810290505b9392505050565b600061240b82611f0f565b9150612416836120b2565b92506124437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461232d565b905092915050565b600061245682611f0f565b915061246183611f0f565b925082820261246f81611f0f565b915082820484148315176124865761248561229e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124d457607f821691505b6020821081036124e7576124e661248d565b5b50919050565b60006124f882611f0f565b915061250383611f0f565b925082820190508082111561251b5761251a61229e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061255b82611f0f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361258d5761258c61229e565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602583611e00565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611e00565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126f2602083611e00565b91506126fd826126bc565b602082019050919050565b60006020820190508181036000830152612721816126e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612784602483611e00565b915061278f82612728565b604082019050919050565b600060208201905081810360008301526127b381612777565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612816602283611e00565b9150612821826127ba565b604082019050919050565b6000602082019050818103600083015261284581612809565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612882601d83611e00565b915061288d8261284c565b602082019050919050565b600060208201905081810360008301526128b181612875565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006128ee601c83611e00565b91506128f9826128b8565b602082019050919050565b6000602082019050818103600083015261291d816128e1565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612980602383611e00565b915061298b82612924565b604082019050919050565b600060208201905081810360008301526129af81612973565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129f082611f0f565b91506129fb83611f0f565b925082612a0b57612a0a6129b6565b5b828204905092915050565b6000612a2182611f0f565b9150612a2c83611f0f565b9250828203905081811115612a4457612a4361229e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612a8881611ee3565b92915050565b600060208284031215612aa457612aa3611ea7565b5b6000612ab284828501612a79565b91505092915050565b6000819050919050565b6000612ae0612adb612ad684612abb565b611fbb565b611f0f565b9050919050565b612af081612ac5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b2b81611ed1565b82525050565b6000612b3d8383612b22565b60208301905092915050565b6000602082019050919050565b6000612b6182612af6565b612b6b8185612b01565b9350612b7683612b12565b8060005b83811015612ba7578151612b8e8882612b31565b9750612b9983612b49565b925050600181019050612b7a565b5085935050505092915050565b600060a082019050612bc96000830188612035565b612bd66020830187612ae7565b8181036040830152612be88186612b56565b9050612bf760608301856120e9565b612c046080830184612035565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c6a602583611e00565b9150612c7582612c0e565b604082019050919050565b60006020820190508181036000830152612c9981612c5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfc602383611e00565b9150612d0782612ca0565b604082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d8e602683611e00565b9150612d9982612d32565b604082019050919050565b60006020820190508181036000830152612dbd81612d81565b905091905056fea2646970667358221220feabbf283ad7ba9615a1e98d5d5d7ad9cd453773912e46a5502bbe55a460bb8b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb1461057b578063afa4f3b2146105b8578063dd62ed3e146105e1578063f2fde38b1461061e576101a7565b806395d89b41146104ea578063a34efa3e14610515578063a457c2d71461053e576101a7565b80637d1db4a5116100c65780637d1db4a5146104405780638da5cb5b1461046b5780638f9a55c01461049657806390d2c93a146104c1576101a7565b8063715018a6146103fb57806374122daa146104125780637be842dd14610429576101a7565b806323b872dd11610159578063313ce56711610133578063313ce5671461032b578063395093511461035657806349bd5a5e1461039357806370a08231146103be576101a7565b806323b872dd146102ac57806326bb6d17146102e95780632fd689e314610300576101a7565b806301e7872a146101ac57806306fdde03146101c3578063095ea7b3146101ee5780631694505e1461022b57806318160ddd146102565780631c127eab14610281576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610647565b005b3480156101cf57600080fd5b506101d86106fd565b6040516101e59190611e85565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611f45565b61078f565b6040516102229190611fa0565b60405180910390f35b34801561023757600080fd5b506102406107b2565b60405161024d919061201a565b60405180910390f35b34801561026257600080fd5b5061026b6107ca565b6040516102789190612044565b60405180910390f35b34801561028d57600080fd5b506102966107d4565b6040516102a39190612044565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce919061205f565b6107da565b6040516102e09190611fa0565b60405180910390f35b3480156102f557600080fd5b506102fe610809565b005b34801561030c57600080fd5b506103156108bf565b6040516103229190612044565b60405180910390f35b34801561033757600080fd5b506103406108c5565b60405161034d91906120ce565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190611f45565b6108ce565b60405161038a9190611fa0565b60405180910390f35b34801561039f57600080fd5b506103a8610905565b6040516103b591906120f8565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e09190612113565b61092b565b6040516103f29190612044565b60405180910390f35b34801561040757600080fd5b50610410610973565b005b34801561041e57600080fd5b50610427610987565b005b34801561043557600080fd5b5061043e610a3f565b005b34801561044c57600080fd5b50610455610ae3565b6040516104629190612044565b60405180910390f35b34801561047757600080fd5b50610480610ae9565b60405161048d91906120f8565b60405180910390f35b3480156104a257600080fd5b506104ab610b13565b6040516104b89190612044565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e391906121d1565b610b19565b005b3480156104f657600080fd5b506104ff610bc6565b60405161050c9190611e85565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612231565b610c58565b005b34801561054a57600080fd5b5061056560048036038101906105609190611f45565b610c6a565b6040516105729190611fa0565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190611f45565b610ce1565b6040516105af9190611fa0565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da9190612231565b610d04565b005b3480156105ed57600080fd5b506106086004803603810190610603919061225e565b610d16565b6040516106159190612044565b60405180910390f35b34801561062a57600080fd5b5061064560048036038101906106409190612113565b610d9d565b005b61064f610e20565b6106576108c5565b600a6106639190612400565b614e20610670919061244b565b60068190555061067e6108c5565b600a61068a9190612400565b614e20610697919061244b565b6007819055506106a56108c5565b600a6106b19190612400565b6127106106be919061244b565b6008819055506106cc6108c5565b600a6106d89190612400565b61270f6106e5919061244b565b6009819055506001600a81905550600f600b81905550565b60606003805461070c906124bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610738906124bc565b80156107855780601f1061075a57610100808354040283529160200191610785565b820191906000526020600020905b81548152906001019060200180831161076857829003601f168201915b5050505050905090565b60008061079a610e9e565b90506107a7818585610ea6565b600191505092915050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b60095481565b6000806107e5610e9e565b90506107f285828561106f565b6107fd8585856110fb565b60019150509392505050565b610811610e20565b6108196108c5565b600a6108259190612400565b614e20610832919061244b565b6006819055506108406108c5565b600a61084c9190612400565b614e20610859919061244b565b6007819055506108676108c5565b600a6108739190612400565b612710610880919061244b565b60088190555061088e6108c5565b600a61089a9190612400565b61270f6108a7919061244b565b6009819055506019600a819055506019600b81905550565b60085481565b60006012905090565b6000806108d9610e9e565b90506108fa8185856108eb8589610d16565b6108f591906124ed565b610ea6565b600191505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61097b610e20565b6109856000611860565b565b61098f610e20565b6109976108c5565b600a6109a39190612400565b620f42406109b1919061244b565b6006819055506109bf6108c5565b600a6109cb9190612400565b620f42406109d9919061244b565b6007819055506109e76108c5565b600a6109f39190612400565b611388610a00919061244b565b600881905550610a0e6108c5565b600a610a1a9190612400565b610fa0610a27919061244b565b6009819055506001600a819055506001600b81905550565b60004790506000811115610aa957732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610aa7573d6000803e3d6000fd5b505b6000610ab43061092b565b90506000811115610adf57610ade30732ba97157abe10b6b7c478759a91ceaea9f0b1cd3836110fb565b5b5050565b60065481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b610b21610e20565b60005b83839050811015610bc05781600c6000868685818110610b4757610b46612521565b5b9050602002016020810190610b5c9190612113565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bb890612550565b915050610b24565b50505050565b606060048054610bd5906124bc565b80601f0160208091040260200160405190810160405280929190818152602001828054610c01906124bc565b8015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b5050505050905090565b610c60610e20565b8060098190555050565b600080610c75610e9e565b90506000610c838286610d16565b905083811015610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf9061260a565b60405180910390fd5b610cd58286868403610ea6565b60019250505092915050565b600080610cec610e9e565b9050610cf98185856110fb565b600191505092915050565b610d0c610e20565b8060088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610da5610e20565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b9061269c565b60405180910390fd5b610e1d81611860565b50565b610e28610e9e565b73ffffffffffffffffffffffffffffffffffffffff16610e46610ae9565b73ffffffffffffffffffffffffffffffffffffffff1614610e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9390612708565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c9061279a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b9061282c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110629190612044565b60405180910390a3505050565b600061107b8484610d16565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110f557818110156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612898565b60405180910390fd5b6110f48484848403610ea6565b5b50505050565b611103610ae9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111715750611141610ae9565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561155c57732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156112065750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561125157600654811115611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612904565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156112ef5750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561133b5750732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611399576007548161134d8461092b565b61135791906124ed565b1115611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612996565b60405180910390fd5b5b60006113a43061092b565b90506000600854821015905060095482106113bf5760095491505b8080156113d95750600d60149054906101000a900460ff16155b80156114335750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156114895750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114df5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611559576114ed82611926565b6000479050600081111561155757732ba97157abe10b6b7c478759a91ceaea9f0b1cd373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611555573d6000803e3d6000fd5b505b505b50505b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115fb5750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561160657600a5490505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116a35750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116ae57600b5490505b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061174f5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118025750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118015750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561180c57600090505b60006064828461181c919061244b565b61182691906129e5565b9050600081846118369190612a16565b9050600082111561184d5761184c863084611b75565b5b611858868683611b75565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561195e5761195d612a4a565b5b60405190808252806020026020018201604052801561198c5781602001602082028036833780820191505090505b50905030816000815181106119a4576119a3612521565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a619190612a8e565b81600181518110611a7557611a74612521565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ace30737a250d5630b4cf539739df2c5dacb4c659f2488d84610ea6565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b24959493929190612bb4565b600060405180830381600087803b158015611b3e57600080fd5b505af1158015611b52573d6000803e3d6000fd5b50505050506000600d60146101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb90612c80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4a90612d12565b60405180910390fd5b611c5e838383611deb565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90612da4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611dd29190612044565b60405180910390a3611de5848484611df0565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e2f578082015181840152602081019050611e14565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5782611df5565b611e618185611e00565b9350611e71818560208601611e11565b611e7a81611e3b565b840191505092915050565b60006020820190508181036000830152611e9f8184611e4c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611edc82611eb1565b9050919050565b611eec81611ed1565b8114611ef757600080fd5b50565b600081359050611f0981611ee3565b92915050565b6000819050919050565b611f2281611f0f565b8114611f2d57600080fd5b50565b600081359050611f3f81611f19565b92915050565b60008060408385031215611f5c57611f5b611ea7565b5b6000611f6a85828601611efa565b9250506020611f7b85828601611f30565b9150509250929050565b60008115159050919050565b611f9a81611f85565b82525050565b6000602082019050611fb56000830184611f91565b92915050565b6000819050919050565b6000611fe0611fdb611fd684611eb1565b611fbb565b611eb1565b9050919050565b6000611ff282611fc5565b9050919050565b600061200482611fe7565b9050919050565b61201481611ff9565b82525050565b600060208201905061202f600083018461200b565b92915050565b61203e81611f0f565b82525050565b60006020820190506120596000830184612035565b92915050565b60008060006060848603121561207857612077611ea7565b5b600061208686828701611efa565b935050602061209786828701611efa565b92505060406120a886828701611f30565b9150509250925092565b600060ff82169050919050565b6120c8816120b2565b82525050565b60006020820190506120e360008301846120bf565b92915050565b6120f281611ed1565b82525050565b600060208201905061210d60008301846120e9565b92915050565b60006020828403121561212957612128611ea7565b5b600061213784828501611efa565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261216557612164612140565b5b8235905067ffffffffffffffff81111561218257612181612145565b5b60208301915083602082028301111561219e5761219d61214a565b5b9250929050565b6121ae81611f85565b81146121b957600080fd5b50565b6000813590506121cb816121a5565b92915050565b6000806000604084860312156121ea576121e9611ea7565b5b600084013567ffffffffffffffff81111561220857612207611eac565b5b6122148682870161214f565b93509350506020612227868287016121bc565b9150509250925092565b60006020828403121561224757612246611ea7565b5b600061225584828501611f30565b91505092915050565b6000806040838503121561227557612274611ea7565b5b600061228385828601611efa565b925050602061229485828601611efa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561232457808604811115612300576122ff61229e565b5b600185161561230f5780820291505b808102905061231d856122cd565b94506122e4565b94509492505050565b60008261233d57600190506123f9565b8161234b57600090506123f9565b8160018114612361576002811461236b5761239a565b60019150506123f9565b60ff84111561237d5761237c61229e565b5b8360020a9150848211156123945761239361229e565b5b506123f9565b5060208310610133831016604e8410600b84101617156123cf5782820a9050838111156123ca576123c961229e565b5b6123f9565b6123dc84848460016122da565b925090508184048111156123f3576123f261229e565b5b81810290505b9392505050565b600061240b82611f0f565b9150612416836120b2565b92506124437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461232d565b905092915050565b600061245682611f0f565b915061246183611f0f565b925082820261246f81611f0f565b915082820484148315176124865761248561229e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124d457607f821691505b6020821081036124e7576124e661248d565b5b50919050565b60006124f882611f0f565b915061250383611f0f565b925082820190508082111561251b5761251a61229e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061255b82611f0f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361258d5761258c61229e565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006125f4602583611e00565b91506125ff82612598565b604082019050919050565b60006020820190508181036000830152612623816125e7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612686602683611e00565b91506126918261262a565b604082019050919050565b600060208201905081810360008301526126b581612679565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126f2602083611e00565b91506126fd826126bc565b602082019050919050565b60006020820190508181036000830152612721816126e5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612784602483611e00565b915061278f82612728565b604082019050919050565b600060208201905081810360008301526127b381612777565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612816602283611e00565b9150612821826127ba565b604082019050919050565b6000602082019050818103600083015261284581612809565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612882601d83611e00565b915061288d8261284c565b602082019050919050565b600060208201905081810360008301526128b181612875565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006128ee601c83611e00565b91506128f9826128b8565b602082019050919050565b6000602082019050818103600083015261291d816128e1565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612980602383611e00565b915061298b82612924565b604082019050919050565b600060208201905081810360008301526129af81612973565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129f082611f0f565b91506129fb83611f0f565b925082612a0b57612a0a6129b6565b5b828204905092915050565b6000612a2182611f0f565b9150612a2c83611f0f565b9250828203905081811115612a4457612a4361229e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612a8881611ee3565b92915050565b600060208284031215612aa457612aa3611ea7565b5b6000612ab284828501612a79565b91505092915050565b6000819050919050565b6000612ae0612adb612ad684612abb565b611fbb565b611f0f565b9050919050565b612af081612ac5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b2b81611ed1565b82525050565b6000612b3d8383612b22565b60208301905092915050565b6000602082019050919050565b6000612b6182612af6565b612b6b8185612b01565b9350612b7683612b12565b8060005b83811015612ba7578151612b8e8882612b31565b9750612b9983612b49565b925050600181019050612b7a565b5085935050505092915050565b600060a082019050612bc96000830188612035565b612bd66020830187612ae7565b8181036040830152612be88186612b56565b9050612bf760608301856120e9565b612c046080830184612035565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c6a602583611e00565b9150612c7582612c0e565b604082019050919050565b60006020820190508181036000830152612c9981612c5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612cfc602383611e00565b9150612d0782612ca0565b604082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612d8e602683611e00565b9150612d9982612d32565b604082019050919050565b60006020820190508181036000830152612dbd81612d81565b905091905056fea2646970667358221220feabbf283ad7ba9615a1e98d5d5d7ad9cd453773912e46a5502bbe55a460bb8b64736f6c63430008130033

Deployed Bytecode Sourcemap

9243:6039:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14138:303;;;;;;;;;;;;;:::i;:::-;;3195:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4193:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9796:124;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3516:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9475:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4427:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13827:303;;;;;;;;;;;;;:::i;:::-;;9407:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3415:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4730:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9929:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3632:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1153:103;;;;;;;;;;;;;:::i;:::-;;14453:303;;;;;;;;;;;;;:::i;:::-;;14842:400;;;;;;;;;;;;;:::i;:::-;;9283:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;916:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9344:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13565:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3303:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13444:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5001:498;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3783:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13283:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4009:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1264:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14138:303;875:13;:11;:13::i;:::-;14223:10:::1;:8;:10::i;:::-;14217:2;:16;;;;:::i;:::-;14209:5;:24;;;;:::i;:::-;14194:12;:39;;;;14272:10;:8;:10::i;:::-;14266:2;:16;;;;:::i;:::-;14258:5;:24;;;;:::i;:::-;14241:14;:41;;;;14326:10;:8;:10::i;:::-;14320:2;:16;;;;:::i;:::-;14312:5;:24;;;;:::i;:::-;14290:19;:46;;;;14373:10;:8;:10::i;:::-;14367:2;:16;;;;:::i;:::-;14360:4;:23;;;;:::i;:::-;14344:13;:39;;;;14406:1;14391:12;:16;;;;14431:2;14415:13;:18;;;;14138:303::o:0;3195:100::-;3249:13;3282:5;3275:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:100;:::o;4193:226::-;4301:4;4318:13;4334:12;:10;:12::i;:::-;4318:28;;4357:32;4366:5;4373:7;4382:6;4357:8;:32::i;:::-;4407:4;4400:11;;;4193:226;;;;:::o;9796:124::-;9877:42;9796:124;:::o;3516:108::-;3577:7;3604:12;;3597:19;;3516:108;:::o;9475:55::-;;;;:::o;4427:295::-;4558:4;4575:15;4593:12;:10;:12::i;:::-;4575:30;;4616:38;4632:4;4638:7;4647:6;4616:15;:38::i;:::-;4665:27;4675:4;4681:2;4685:6;4665:9;:27::i;:::-;4710:4;4703:11;;;4427:295;;;;;:::o;13827:303::-;875:13;:11;:13::i;:::-;13911:10:::1;:8;:10::i;:::-;13905:2;:16;;;;:::i;:::-;13897:5;:24;;;;:::i;:::-;13882:12;:39;;;;13960:10;:8;:10::i;:::-;13954:2;:16;;;;:::i;:::-;13946:5;:24;;;;:::i;:::-;13929:14;:41;;;;14014:10;:8;:10::i;:::-;14008:2;:16;;;;:::i;:::-;14000:5;:24;;;;:::i;:::-;13978:19;:46;;;;14061:10;:8;:10::i;:::-;14055:2;:16;;;;:::i;:::-;14048:4;:23;;;;:::i;:::-;14032:13;:39;;;;14094:2;14079:12;:17;;;;14120:2;14104:13;:18;;;;13827:303::o:0;9407:61::-;;;;:::o;3415:93::-;3473:5;3498:2;3491:9;;3415:93;:::o;4730:263::-;4843:4;4860:13;4876:12;:10;:12::i;:::-;4860:28;;4899:64;4908:5;4915:7;4952:10;4924:25;4934:5;4941:7;4924:9;:25::i;:::-;:38;;;;:::i;:::-;4899:8;:64::i;:::-;4981:4;4974:11;;;4730:263;;;;:::o;9929:28::-;;;;;;;;;;;;;:::o;3632:143::-;3722:7;3749:9;:18;3759:7;3749:18;;;;;;;;;;;;;;;;3742:25;;3632:143;;;:::o;1153:103::-;875:13;:11;:13::i;:::-;1218:30:::1;1245:1;1218:18;:30::i;:::-;1153:103::o:0;14453:303::-;875:13;:11;:13::i;:::-;14538:10:::1;:8;:10::i;:::-;14532:2;:16;;;;:::i;:::-;14522:7;:26;;;;:::i;:::-;14507:12;:41;;;;14589:10;:8;:10::i;:::-;14583:2;:16;;;;:::i;:::-;14573:7;:26;;;;:::i;:::-;14556:14;:43;;;;14642:10;:8;:10::i;:::-;14636:2;:16;;;;:::i;:::-;14629:4;:23;;;;:::i;:::-;14607:19;:45;;;;14689:10;:8;:10::i;:::-;14683:2;:16;;;;:::i;:::-;14676:4;:23;;;;:::i;:::-;14660:13;:39;;;;14722:1;14707:12;:16;;;;14747:1;14731:13;:17;;;;14453:303::o:0;14842:400::-;14887:26;14916:21;14887:50;;14973:1;14952:18;:22;14948:95;;;9744:42;14991:20;;:40;15012:18;14991:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14948:95;15053:28;15084:24;15102:4;15084:9;:24::i;:::-;15053:55;;15146:1;15123:20;:24;15119:116;;;15164:59;15182:4;9744:42;15202:20;15164:9;:59::i;:::-;15119:116;14876:366;;14842:400::o;9283:54::-;;;;:::o;916:87::-;962:7;989:6;;;;;;;;;;;982:13;;916:87;:::o;9344:56::-;;;;:::o;13565:254::-;875:13;:11;:13::i;:::-;13702:9:::1;13697:115;13721:8;;:15;;13717:1;:19;13697:115;;;13792:8;13758:18;:31;13777:8;;13786:1;13777:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13758:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;13738:3;;;;;:::i;:::-;;;;13697:115;;;;13565:254:::0;;;:::o;3303:104::-;3359:13;3392:7;3385:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3303:104;:::o;13444:113::-;875:13;:11;:13::i;:::-;13537:12:::1;13521:13;:28;;;;13444:113:::0;:::o;5001:498::-;5119:4;5136:13;5152:12;:10;:12::i;:::-;5136:28;;5175:24;5202:25;5212:5;5219:7;5202:9;:25::i;:::-;5175:52;;5280:15;5260:16;:35;;5238:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;5396:60;5405:5;5412:7;5440:15;5421:16;:34;5396:8;:60::i;:::-;5487:4;5480:11;;;;5001:498;;;;:::o;3783:218::-;3887:4;3904:13;3920:12;:10;:12::i;:::-;3904:28;;3943;3953:5;3960:2;3964:6;3943:9;:28::i;:::-;3989:4;3982:11;;;3783:218;;;;:::o;13283:153::-;875:13;:11;:13::i;:::-;13410:18:::1;13388:19;:40;;;;13283:153:::0;:::o;4009:176::-;4123:7;4150:11;:18;4162:5;4150:18;;;;;;;;;;;;;;;:27;4169:7;4150:27;;;;;;;;;;;;;;;;4143:34;;4009:176;;;;:::o;1264:238::-;875:13;:11;:13::i;:::-;1387:1:::1;1367:22;;:8;:22;;::::0;1345:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1466:28;1485:8;1466:18;:28::i;:::-;1264:238:::0;:::o;1013:132::-;1088:12;:10;:12::i;:::-;1077:23;;:7;:5;:7::i;:::-;:23;;;1069:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1013:132::o;337:98::-;390:7;417:10;410:17;;337:98;:::o;7472:380::-;7625:1;7608:19;;:5;:19;;;7600:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7706:1;7687:21;;:7;:21;;;7679:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7790:6;7760:11;:18;7772:5;7760:18;;;;;;;;;;;;;;;:27;7779:7;7760:27;;;;;;;;;;;;;;;:36;;;;7828:7;7812:32;;7821:5;7812:32;;;7837:6;7812:32;;;;;;:::i;:::-;;;;;;;;7472:380;;;:::o;7860:502::-;7995:24;8022:25;8032:5;8039:7;8022:9;:25::i;:::-;7995:52;;8082:17;8062:16;:37;8058:297;;8162:6;8142:16;:26;;8116:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;8277:51;8286:5;8293:7;8321:6;8302:16;:25;8277:8;:51::i;:::-;8058:297;7984:378;7860:502;;;:::o;10593:2162::-;10729:7;:5;:7::i;:::-;10721:15;;:4;:15;;;;:32;;;;;10746:7;:5;:7::i;:::-;10740:13;;:2;:13;;;;10721:32;10717:1282;;;9744:42;10774:17;;:2;:17;;;;:40;;;;;9744:42;10795:19;;:4;:19;;;;10774:40;10770:144;;;10853:12;;10843:6;:22;;10835:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10770:144;10958:13;;;;;;;;;;;10952:19;;:2;:19;;;;:40;;;;;9744:42;10975:17;;:2;:17;;;;10952:40;:63;;;;;9744:42;10996:19;;:4;:19;;;;10952:63;10930:285;;;11106:14;;11096:6;11080:13;11090:2;11080:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11050:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;10930:285;11229:28;11260:24;11278:4;11260:9;:24::i;:::-;11229:55;;11299:15;11341:19;;11317:20;:43;;11299:61;;11405:13;;11381:20;:37;11377:114;;11462:13;;11439:36;;11377:114;11529:10;:38;;;;;11561:6;;;;;;;;;;;11560:7;11529:38;:80;;;;;11596:13;;;;;;;;;;;11588:21;;:4;:21;;;;11529:80;:126;;;;;11631:18;:24;11650:4;11631:24;;;;;;;;;;;;;;;;;;;;;;;;;11630:25;11529:126;:170;;;;;11677:18;:22;11696:2;11677:22;;;;;;;;;;;;;;;;;;;;;;;;;11676:23;11529:170;11507:481;;;11734:38;11751:20;11734:16;:38::i;:::-;11793:26;11822:21;11793:50;;11887:1;11866:18;:22;11862:111;;;9744:42;11913:20;;:40;11934:18;11913:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11862:111;11715:273;11507:481;10755:1244;;10717:1282;12038:15;12080:13;;;;;;;;;;;12072:21;;:4;:21;;;:55;;;;;9877:42;12097:30;;:2;:30;;;;12072:55;12068:110;;;12154:12;;12144:22;;12068:110;12200:13;;;;;;;;;;;12194:19;;:2;:19;;;:55;;;;;9877:42;12217:32;;:4;:32;;;;12194:55;12190:111;;;12276:13;;12266:23;;12190:111;12332:18;:24;12351:4;12332:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12360:18;:22;12379:2;12360:22;;;;;;;;;;;;;;;;;;;;;;;;;12332:50;12331:115;;;;12409:13;;;;;;;;;;;12401:21;;:4;:21;;;;:44;;;;;12432:13;;;;;;;;;;;12426:19;;:2;:19;;;;12401:44;12331:115;12313:183;;;12483:1;12473:11;;12313:183;12508:13;12545:3;12534:7;12525:6;:16;;;;:::i;:::-;12524:24;;;;:::i;:::-;12508:40;;12559:23;12594:5;12585:6;:14;;;;:::i;:::-;12559:40;;12622:1;12614:5;:9;12610:85;;;12640:43;12656:4;12670;12677:5;12640:15;:43::i;:::-;12610:85;12705:42;12721:4;12727:2;12731:15;12705;:42::i;:::-;10706:2049;;;10593:2162;;;:::o;1510:191::-;1584:16;1603:6;;;;;;;;;;;1584:25;;1629:8;1620:6;;:17;;;;;;;;;;;;;;;;;;1684:8;1653:40;;1674:8;1653:40;;;;;;;;;;;;1573:128;1510:191;:::o;12763:483::-;10045:4;10036:6;;:13;;;;;;;;;;;;;;;;;;12841:21:::1;12879:1;12865:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12841:40;;12910:4;12892;12897:1;12892:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9877:42;12936:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12926:4;12931:1;12926:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12969:62;12986:4;9877:42;13019:11;12969:8;:62::i;:::-;9877:42;13042:66;;;13123:11;13149:1;13165:4;13192;13212:15;13042:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12830:416;10081:5:::0;10072:6;;:14;;;;;;;;;;;;;;;;;;12763:483;:::o;5507:714::-;5654:1;5638:18;;:4;:18;;;5630:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5731:1;5717:16;;:2;:16;;;5709:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5786:38;5807:4;5813:2;5817:6;5786:20;:38::i;:::-;5837:19;5859:9;:15;5869:4;5859:15;;;;;;;;;;;;;;;;5837:37;;5922:6;5907:11;:21;;5885:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;6062:6;6048:11;:20;6030:9;:15;6040:4;6030:15;;;;;;;;;;;;;;;:38;;;;6102:6;6085:9;:13;6095:2;6085:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;6152:2;6137:26;;6146:4;6137:26;;;6156:6;6137:26;;;;;;:::i;:::-;;;;;;;;6176:37;6196:4;6202:2;6206:6;6176:19;:37::i;:::-;5619:602;5507:714;;;:::o;8370:125::-;;;;:::o;8505: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;1553:117;1662:1;1659;1652: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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:117;6745:1;6742;6735:12;6759:117;6868:1;6865;6858:12;6899:568;6972:8;6982:6;7032:3;7025:4;7017:6;7013:17;7009:27;6999:122;;7040:79;;:::i;:::-;6999:122;7153:6;7140:20;7130:30;;7183:18;7175:6;7172:30;7169:117;;;7205:79;;:::i;:::-;7169:117;7319:4;7311:6;7307:17;7295:29;;7373:3;7365:4;7357:6;7353:17;7343:8;7339:32;7336:41;7333:128;;;7380:79;;:::i;:::-;7333:128;6899:568;;;;;:::o;7473:116::-;7543:21;7558:5;7543:21;:::i;:::-;7536:5;7533:32;7523:60;;7579:1;7576;7569:12;7523:60;7473:116;:::o;7595:133::-;7638:5;7676:6;7663:20;7654:29;;7692:30;7716:5;7692:30;:::i;:::-;7595:133;;;;:::o;7734:698::-;7826:6;7834;7842;7891:2;7879:9;7870:7;7866:23;7862:32;7859:119;;;7897:79;;:::i;:::-;7859:119;8045:1;8034:9;8030:17;8017:31;8075:18;8067:6;8064:30;8061:117;;;8097:79;;:::i;:::-;8061:117;8210:80;8282:7;8273:6;8262:9;8258:22;8210:80;:::i;:::-;8192:98;;;;7988:312;8339:2;8365:50;8407:7;8398:6;8387:9;8383:22;8365:50;:::i;:::-;8355:60;;8310:115;7734:698;;;;;:::o;8438:329::-;8497:6;8546:2;8534:9;8525:7;8521:23;8517:32;8514:119;;;8552:79;;:::i;:::-;8514:119;8672:1;8697:53;8742:7;8733:6;8722:9;8718:22;8697:53;:::i;:::-;8687:63;;8643:117;8438:329;;;;:::o;8773:474::-;8841:6;8849;8898:2;8886:9;8877:7;8873:23;8869:32;8866:119;;;8904:79;;:::i;:::-;8866:119;9024:1;9049:53;9094:7;9085:6;9074:9;9070:22;9049:53;:::i;:::-;9039:63;;8995:117;9151:2;9177:53;9222:7;9213:6;9202:9;9198:22;9177:53;:::i;:::-;9167:63;;9122:118;8773:474;;;;;:::o;9253:180::-;9301:77;9298:1;9291:88;9398:4;9395:1;9388:15;9422:4;9419:1;9412:15;9439:102;9481:8;9528:5;9525:1;9521:13;9500:34;;9439:102;;;:::o;9547:848::-;9608:5;9615:4;9639:6;9630:15;;9663:5;9654:14;;9677:712;9698:1;9688:8;9685:15;9677:712;;;9793:4;9788:3;9784:14;9778:4;9775:24;9772:50;;;9802:18;;:::i;:::-;9772:50;9852:1;9842:8;9838:16;9835:451;;;10267:4;10260:5;10256:16;10247:25;;9835:451;10317:4;10311;10307:15;10299:23;;10347:32;10370:8;10347:32;:::i;:::-;10335:44;;9677:712;;;9547:848;;;;;;;:::o;10401:1073::-;10455:5;10646:8;10636:40;;10667:1;10658:10;;10669:5;;10636:40;10695:4;10685:36;;10712:1;10703:10;;10714:5;;10685:36;10781:4;10829:1;10824:27;;;;10865:1;10860:191;;;;10774:277;;10824:27;10842:1;10833:10;;10844:5;;;10860:191;10905:3;10895:8;10892:17;10889:43;;;10912:18;;:::i;:::-;10889:43;10961:8;10958:1;10954:16;10945:25;;10996:3;10989:5;10986:14;10983:40;;;11003:18;;:::i;:::-;10983:40;11036:5;;;10774:277;;11160:2;11150:8;11147:16;11141:3;11135:4;11132:13;11128:36;11110:2;11100:8;11097:16;11092:2;11086:4;11083:12;11079:35;11063:111;11060:246;;;11216:8;11210:4;11206:19;11197:28;;11251:3;11244:5;11241:14;11238:40;;;11258:18;;:::i;:::-;11238:40;11291:5;;11060:246;11331:42;11369:3;11359:8;11353:4;11350:1;11331:42;:::i;:::-;11316:57;;;;11405:4;11400:3;11396:14;11389:5;11386:25;11383:51;;;11414:18;;:::i;:::-;11383:51;11463:4;11456:5;11452:16;11443:25;;10401:1073;;;;;;:::o;11480:281::-;11538:5;11562:23;11580:4;11562:23;:::i;:::-;11554:31;;11606:25;11622:8;11606:25;:::i;:::-;11594:37;;11650:104;11687:66;11677:8;11671:4;11650:104;:::i;:::-;11641:113;;11480:281;;;;:::o;11767:410::-;11807:7;11830:20;11848:1;11830:20;:::i;:::-;11825:25;;11864:20;11882:1;11864:20;:::i;:::-;11859:25;;11919:1;11916;11912:9;11941:30;11959:11;11941:30;:::i;:::-;11930:41;;12120:1;12111:7;12107:15;12104:1;12101:22;12081:1;12074:9;12054:83;12031:139;;12150:18;;:::i;:::-;12031:139;11815:362;11767:410;;;;:::o;12183:180::-;12231:77;12228:1;12221:88;12328:4;12325:1;12318:15;12352:4;12349:1;12342:15;12369:320;12413:6;12450:1;12444:4;12440:12;12430:22;;12497:1;12491:4;12487:12;12518:18;12508:81;;12574:4;12566:6;12562:17;12552:27;;12508:81;12636:2;12628:6;12625:14;12605:18;12602:38;12599:84;;12655:18;;:::i;:::-;12599:84;12420:269;12369:320;;;:::o;12695:191::-;12735:3;12754:20;12772:1;12754:20;:::i;:::-;12749:25;;12788:20;12806:1;12788:20;:::i;:::-;12783:25;;12831:1;12828;12824:9;12817:16;;12852:3;12849:1;12846:10;12843:36;;;12859:18;;:::i;:::-;12843:36;12695:191;;;;:::o;12892:180::-;12940:77;12937:1;12930:88;13037:4;13034:1;13027:15;13061:4;13058:1;13051:15;13078:233;13117:3;13140:24;13158:5;13140:24;:::i;:::-;13131:33;;13186:66;13179:5;13176:77;13173:103;;13256:18;;:::i;:::-;13173:103;13303:1;13296:5;13292:13;13285:20;;13078:233;;;:::o;13317:224::-;13457:34;13453:1;13445:6;13441:14;13434:58;13526:7;13521:2;13513:6;13509:15;13502:32;13317:224;:::o;13547:366::-;13689:3;13710:67;13774:2;13769:3;13710:67;:::i;:::-;13703:74;;13786:93;13875:3;13786:93;:::i;:::-;13904:2;13899:3;13895:12;13888:19;;13547:366;;;:::o;13919:419::-;14085:4;14123:2;14112:9;14108:18;14100:26;;14172:9;14166:4;14162:20;14158:1;14147:9;14143:17;14136:47;14200:131;14326:4;14200:131;:::i;:::-;14192:139;;13919:419;;;:::o;14344:225::-;14484:34;14480:1;14472:6;14468:14;14461:58;14553:8;14548:2;14540:6;14536:15;14529:33;14344:225;:::o;14575:366::-;14717:3;14738:67;14802:2;14797:3;14738:67;:::i;:::-;14731:74;;14814:93;14903:3;14814:93;:::i;:::-;14932:2;14927:3;14923:12;14916:19;;14575:366;;;:::o;14947:419::-;15113:4;15151:2;15140:9;15136:18;15128:26;;15200:9;15194:4;15190:20;15186:1;15175:9;15171:17;15164:47;15228:131;15354:4;15228:131;:::i;:::-;15220:139;;14947:419;;;:::o;15372:182::-;15512:34;15508:1;15500:6;15496:14;15489:58;15372:182;:::o;15560:366::-;15702:3;15723:67;15787:2;15782:3;15723:67;:::i;:::-;15716:74;;15799:93;15888:3;15799:93;:::i;:::-;15917:2;15912:3;15908:12;15901:19;;15560:366;;;:::o;15932:419::-;16098:4;16136:2;16125:9;16121:18;16113:26;;16185:9;16179:4;16175:20;16171:1;16160:9;16156:17;16149:47;16213:131;16339:4;16213:131;:::i;:::-;16205:139;;15932:419;;;:::o;16357:223::-;16497:34;16493:1;16485:6;16481:14;16474:58;16566:6;16561:2;16553:6;16549:15;16542:31;16357:223;:::o;16586:366::-;16728:3;16749:67;16813:2;16808:3;16749:67;:::i;:::-;16742:74;;16825:93;16914:3;16825:93;:::i;:::-;16943:2;16938:3;16934:12;16927:19;;16586:366;;;:::o;16958:419::-;17124:4;17162:2;17151:9;17147:18;17139:26;;17211:9;17205:4;17201:20;17197:1;17186:9;17182:17;17175:47;17239:131;17365:4;17239:131;:::i;:::-;17231:139;;16958:419;;;:::o;17383:221::-;17523:34;17519:1;17511:6;17507:14;17500:58;17592:4;17587:2;17579:6;17575:15;17568:29;17383:221;:::o;17610:366::-;17752:3;17773:67;17837:2;17832:3;17773:67;:::i;:::-;17766:74;;17849:93;17938:3;17849:93;:::i;:::-;17967:2;17962:3;17958:12;17951:19;;17610:366;;;:::o;17982:419::-;18148:4;18186:2;18175:9;18171:18;18163:26;;18235:9;18229:4;18225:20;18221:1;18210:9;18206:17;18199:47;18263:131;18389:4;18263:131;:::i;:::-;18255:139;;17982:419;;;:::o;18407:179::-;18547:31;18543:1;18535:6;18531:14;18524:55;18407:179;:::o;18592:366::-;18734:3;18755:67;18819:2;18814:3;18755:67;:::i;:::-;18748:74;;18831:93;18920:3;18831:93;:::i;:::-;18949:2;18944:3;18940:12;18933:19;;18592:366;;;:::o;18964:419::-;19130:4;19168:2;19157:9;19153:18;19145:26;;19217:9;19211:4;19207:20;19203:1;19192:9;19188:17;19181:47;19245:131;19371:4;19245:131;:::i;:::-;19237:139;;18964:419;;;:::o;19389:178::-;19529:30;19525:1;19517:6;19513:14;19506:54;19389:178;:::o;19573:366::-;19715:3;19736:67;19800:2;19795:3;19736:67;:::i;:::-;19729:74;;19812:93;19901:3;19812:93;:::i;:::-;19930:2;19925:3;19921:12;19914:19;;19573:366;;;:::o;19945:419::-;20111:4;20149:2;20138:9;20134:18;20126:26;;20198:9;20192:4;20188:20;20184:1;20173:9;20169:17;20162:47;20226:131;20352:4;20226:131;:::i;:::-;20218:139;;19945:419;;;:::o;20370:222::-;20510:34;20506:1;20498:6;20494:14;20487:58;20579:5;20574:2;20566:6;20562:15;20555:30;20370:222;:::o;20598:366::-;20740:3;20761:67;20825:2;20820:3;20761:67;:::i;:::-;20754:74;;20837:93;20926:3;20837:93;:::i;:::-;20955:2;20950:3;20946:12;20939:19;;20598:366;;;:::o;20970:419::-;21136:4;21174:2;21163:9;21159:18;21151:26;;21223:9;21217:4;21213:20;21209:1;21198:9;21194:17;21187:47;21251:131;21377:4;21251:131;:::i;:::-;21243:139;;20970:419;;;:::o;21395:180::-;21443:77;21440:1;21433:88;21540:4;21537:1;21530:15;21564:4;21561:1;21554:15;21581:185;21621:1;21638:20;21656:1;21638:20;:::i;:::-;21633:25;;21672:20;21690:1;21672:20;:::i;:::-;21667:25;;21711:1;21701:35;;21716:18;;:::i;:::-;21701:35;21758:1;21755;21751:9;21746:14;;21581:185;;;;:::o;21772:194::-;21812:4;21832:20;21850:1;21832:20;:::i;:::-;21827:25;;21866:20;21884:1;21866:20;:::i;:::-;21861:25;;21910:1;21907;21903:9;21895:17;;21934:1;21928:4;21925:11;21922:37;;;21939:18;;:::i;:::-;21922:37;21772:194;;;;:::o;21972:180::-;22020:77;22017:1;22010:88;22117:4;22114:1;22107:15;22141:4;22138:1;22131:15;22158:143;22215:5;22246:6;22240:13;22231:22;;22262:33;22289:5;22262:33;:::i;:::-;22158:143;;;;:::o;22307:351::-;22377:6;22426:2;22414:9;22405:7;22401:23;22397:32;22394:119;;;22432:79;;:::i;:::-;22394:119;22552:1;22577:64;22633:7;22624:6;22613:9;22609:22;22577:64;:::i;:::-;22567:74;;22523:128;22307:351;;;;:::o;22664:85::-;22709:7;22738:5;22727:16;;22664:85;;;:::o;22755:158::-;22813:9;22846:61;22864:42;22873:32;22899:5;22873:32;:::i;:::-;22864:42;:::i;:::-;22846:61;:::i;:::-;22833:74;;22755:158;;;:::o;22919:147::-;23014:45;23053:5;23014:45;:::i;:::-;23009:3;23002:58;22919:147;;:::o;23072:114::-;23139:6;23173:5;23167:12;23157:22;;23072:114;;;:::o;23192:184::-;23291:11;23325:6;23320:3;23313:19;23365:4;23360:3;23356:14;23341:29;;23192:184;;;;:::o;23382:132::-;23449:4;23472:3;23464:11;;23502:4;23497:3;23493:14;23485:22;;23382:132;;;:::o;23520:108::-;23597:24;23615:5;23597:24;:::i;:::-;23592:3;23585:37;23520:108;;:::o;23634:179::-;23703:10;23724:46;23766:3;23758:6;23724:46;:::i;:::-;23802:4;23797:3;23793:14;23779:28;;23634:179;;;;:::o;23819:113::-;23889:4;23921;23916:3;23912:14;23904:22;;23819:113;;;:::o;23968:732::-;24087:3;24116:54;24164:5;24116:54;:::i;:::-;24186:86;24265:6;24260:3;24186:86;:::i;:::-;24179:93;;24296:56;24346:5;24296:56;:::i;:::-;24375:7;24406:1;24391:284;24416:6;24413:1;24410:13;24391:284;;;24492:6;24486:13;24519:63;24578:3;24563:13;24519:63;:::i;:::-;24512:70;;24605:60;24658:6;24605:60;:::i;:::-;24595:70;;24451:224;24438:1;24435;24431:9;24426:14;;24391:284;;;24395:14;24691:3;24684:10;;24092:608;;;23968:732;;;;:::o;24706:831::-;24969:4;25007:3;24996:9;24992:19;24984:27;;25021:71;25089:1;25078:9;25074:17;25065:6;25021:71;:::i;:::-;25102:80;25178:2;25167:9;25163:18;25154:6;25102:80;:::i;:::-;25229:9;25223:4;25219:20;25214:2;25203:9;25199:18;25192:48;25257:108;25360:4;25351:6;25257:108;:::i;:::-;25249:116;;25375:72;25443:2;25432:9;25428:18;25419:6;25375:72;:::i;:::-;25457:73;25525:3;25514:9;25510:19;25501:6;25457:73;:::i;:::-;24706:831;;;;;;;;:::o;25543:224::-;25683:34;25679:1;25671:6;25667:14;25660:58;25752:7;25747:2;25739:6;25735:15;25728:32;25543:224;:::o;25773:366::-;25915:3;25936:67;26000:2;25995:3;25936:67;:::i;:::-;25929:74;;26012:93;26101:3;26012:93;:::i;:::-;26130:2;26125:3;26121:12;26114:19;;25773:366;;;:::o;26145:419::-;26311:4;26349:2;26338:9;26334:18;26326:26;;26398:9;26392:4;26388:20;26384:1;26373:9;26369:17;26362:47;26426:131;26552:4;26426:131;:::i;:::-;26418:139;;26145:419;;;:::o;26570:222::-;26710:34;26706:1;26698:6;26694:14;26687:58;26779:5;26774:2;26766:6;26762:15;26755:30;26570:222;:::o;26798:366::-;26940:3;26961:67;27025:2;27020:3;26961:67;:::i;:::-;26954:74;;27037:93;27126:3;27037:93;:::i;:::-;27155:2;27150:3;27146:12;27139:19;;26798:366;;;:::o;27170:419::-;27336:4;27374:2;27363:9;27359:18;27351:26;;27423:9;27417:4;27413:20;27409:1;27398:9;27394:17;27387:47;27451:131;27577:4;27451:131;:::i;:::-;27443:139;;27170:419;;;:::o;27595:225::-;27735:34;27731:1;27723:6;27719:14;27712:58;27804:8;27799:2;27791:6;27787:15;27780:33;27595:225;:::o;27826:366::-;27968:3;27989:67;28053:2;28048:3;27989:67;:::i;:::-;27982:74;;28065:93;28154:3;28065:93;:::i;:::-;28183:2;28178:3;28174:12;28167:19;;27826:366;;;:::o;28198:419::-;28364:4;28402:2;28391:9;28387:18;28379:26;;28451:9;28445:4;28441:20;28437:1;28426:9;28422:17;28415:47;28479:131;28605:4;28479:131;:::i;:::-;28471:139;;28198:419;;;:::o

Swarm Source

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