ETH Price: $2,888.08 (-4.69%)
Gas: 2 Gwei

Token

Euro Cup Inu (ECI)
 

Overview

Max Total Supply

1,000,000,000 ECI

Holders

1,896 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-8.78%)

Onchain Market Cap

$83,212.55

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
751,010.482413451913633769 ECI

Value
$62.49 ( ~0.02163723804561 Eth) [0.0751%]
0xb07c10e6ee6a4efbaf700912055034959c468f0a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

$ECI is the meme for Euro 2024. Users can hold, bet, play and win with $ECI.

Market

Volume (24H):$509.27
Market Capitalization:$0.00
Circulating Supply:0.00 ECI
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EuroCupInu

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-03
*/

/**
 *Submitted for verification at Etherscan.io on 2024-05-30
*/

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

/*                                                                                                     

Website: https://eurocupinu.com/


*/

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

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

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

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

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

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

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

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

}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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


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


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

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

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

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

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

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

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals; 
    string private constant _name = unicode"Euro Cup Inu";  
    string private constant _symbol = unicode"ECI"; 
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public antiWhaleLimit = 10000000 * 10 ** decimals();

    uint256 public _buyFee = 3; //Buy tax
    uint256 public _sellFee = 3; // Sell tax

    address payable public feeCollectorWallet = payable(0x35B5F19fad64B3988781A3FF7199589807B2A24E);

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

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

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= antiWhaleLimit, "Exceeds the antiWhaleLimit.");
            }

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

            if(_sellFee > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellFee).div(100);
            }
            }

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

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


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

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

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


    receive() external payable {}


    function changeAntiWhaleLimit(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        antiWhaleLimit = _maxLimit;
    }

    function changeBuyTaxes(uint256 _fee) public onlyOwner {
        _buyFee = _fee;
    }

    function changeSellTaxes(uint256 _fee) public onlyOwner {
        _sellFee = _fee;
    }

    function excludeFromFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function subjectToFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }

    function addToNaughtylist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = true;
        }
    }

    function removeFromNaughtylist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = false;
        }
    }
}

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":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"addToNaughtylist","outputs":[],"stateMutability":"nonpayable","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":[],"name":"antiWhaleLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeAntiWhaleLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeCollectorWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"removeFromNaughtylist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"subjectToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620007d3565b620f424062000024919062000823565b600555620000376200054a60201b60201c565b600a620000459190620007d3565b6298968062000055919062000823565b600655600360075560036008557335b5f19fad64b3988781a3ff7199589807b2a24e60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550348015620000f7575f80fd5b50620001186200010c6200055260201b60201c565b6200055960201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a09190620008d2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000206573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022c9190620008d2565b6040518363ffffffff1660e01b81526004016200024b92919062000913565b6020604051808303815f875af115801562000268573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028e9190620008d2565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200031d9190620007d3565b633b9aca006200032e919062000823565b60015f620003416200055260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620003936200061a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004bd6200055260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200051b9190620007d3565b633b9aca006200052c919062000823565b6040516200053b91906200094f565b60405180910390a3506200096a565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006cb57808604811115620006a357620006a262000641565b5b6001851615620006b35780820291505b8081029050620006c3856200066e565b945062000683565b94509492505050565b5f82620006e55760019050620007b7565b81620006f4575f9050620007b7565b81600181146200070d576002811462000718576200074e565b6001915050620007b7565b60ff8411156200072d576200072c62000641565b5b8360020a91508482111562000747576200074662000641565b5b50620007b7565b5060208310610133831016604e8410600b8410161715620007885782820a90508381111562000782576200078162000641565b5b620007b7565b6200079784848460016200067a565b92509050818404811115620007b157620007b062000641565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007df82620007be565b9150620007ec83620007c7565b92506200081b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006d4565b905092915050565b5f6200082f82620007be565b91506200083c83620007be565b92508282026200084c81620007be565b9150828204841483151762000866576200086562000641565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200089c8262000871565b9050919050565b620008ae8162000890565b8114620008b9575f80fd5b50565b5f81519050620008cc81620008a3565b92915050565b5f60208284031215620008ea57620008e96200086d565b5b5f620008f984828501620008bc565b91505092915050565b6200090d8162000890565b82525050565b5f604082019050620009285f83018562000902565b62000937602083018462000902565b9392505050565b6200094981620007be565b82525050565b5f602082019050620009645f8301846200093e565b92915050565b612d2980620009785f395ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063a3cdf02311610089578063bf474bed11610063578063bf474bed14610577578063d2a3af29146105a1578063dd62ed3e146105c9578063f2fde38b146106055761018b565b8063a3cdf023146104d7578063a9059cbb146104ff578063bbde5b251461053b5761018b565b8063715018a6146103e1578063768dc710146103f75780638da5cb5b1461043357806393114b1d1461045d57806393d89a0c1461048557806395d89b41146104ad5761018b565b806323b872dd1161013d578063437823ec11610117578063437823ec1461032b578063540538b614610353578063590f897e1461037b57806370a08231146103a55761018b565b806323b872dd1461029b578063313ce567146102d757806340b9a54b146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780631234f868146101f557806318160ddd1461021f5780631e0117bd146102495780631fafa8bc146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a361062d565b6040516101b09190611d7a565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611e38565b61066a565b6040516101ec9190611e90565b60405180910390f35b348015610200575f80fd5b50610209610687565b6040516102169190611eb8565b60405180910390f35b34801561022a575f80fd5b5061023361068d565b6040516102409190611eb8565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611ed1565b6106b0565b005b34801561027c575f80fd5b5061028561070f565b6040516102929190611f1c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190611f35565b610734565b6040516102ce9190611e90565b60405180910390f35b3480156102e2575f80fd5b506102eb610808565b6040516102f89190611fa0565b60405180910390f35b34801561030c575f80fd5b50610315610810565b6040516103229190611eb8565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611ed1565b610816565b005b34801561035e575f80fd5b50610379600480360381019061037491906120f9565b610876565b005b348015610386575f80fd5b5061038f610909565b60405161039c9190611eb8565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611ed1565b61090f565b6040516103d89190611eb8565b60405180910390f35b3480156103ec575f80fd5b506103f5610955565b005b348015610402575f80fd5b5061041d60048036038101906104189190611ed1565b610968565b60405161042a9190611e90565b60405180910390f35b34801561043e575f80fd5b50610447610985565b604051610454919061214f565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e9190612168565b6109ac565b005b348015610490575f80fd5b506104ab60048036038101906104a69190612168565b610a1a565b005b3480156104b8575f80fd5b506104c1610a2c565b6040516104ce9190611d7a565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190612168565b610a69565b005b34801561050a575f80fd5b5061052560048036038101906105209190611e38565b610a7b565b6040516105329190611e90565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190611ed1565b610a98565b60405161056e9190611e90565b60405180910390f35b348015610582575f80fd5b5061058b610ab5565b6040516105989190611eb8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906120f9565b610abb565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612193565b610b4d565b6040516105fc9190611eb8565b60405180910390f35b348015610610575f80fd5b5061062b60048036038101906106269190611ed1565b610bcf565b005b60606040518060400160405280600c81526020017f4575726f2043757020496e750000000000000000000000000000000000000000815250905090565b5f61067d610676610c51565b8484610c58565b6001905092915050565b60065481565b5f6012600a61069c919061232d565b633b9aca006106ab9190612377565b905090565b6106b8610e1b565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610740848484610e99565b6107fd8461074c610c51565b6107f885604051806060016040528060288152602001612ccc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107af610c51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116c59092919063ffffffff16565b610c58565b600190509392505050565b5f6012905090565b60075481565b61081e610e1b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61087e610e1b565b5f5b815181101561090557600160045f8484815181106108a1576108a06123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610880565b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095d610e1b565b6109665f611727565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b4610e1b565b6109cf60c86109c161068d565b6117e890919063ffffffff16565b8111610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a079061242f565b60405180910390fd5b8060068190555050565b610a22610e1b565b8060088190555050565b60606040518060400160405280600381526020017f4543490000000000000000000000000000000000000000000000000000000000815250905090565b610a71610e1b565b8060078190555050565b5f610a8e610a87610c51565b8484610e99565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610ac3610e1b565b5f5b8151811015610b49575f60045f848481518110610ae557610ae46123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac5565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd7610e1b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c906124bd565b60405180910390fd5b610c4e81611727565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061254b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906125d9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0e9190611eb8565b60405180910390a3505050565b610e23610c51565b73ffffffffffffffffffffffffffffffffffffffff16610e41610985565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612641565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906126cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c9061275d565b60405180910390fd5b5f8111610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae906127eb565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611055575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612853565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611133575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561141557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111e557600654826111998561090f565b6111a39190612871565b11156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128ee565b60405180910390fd5b5b5f60075411156112c957600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112985750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c8576112c560646112b76007548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f600854111561135357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113525761134f60646113416008548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f61135d3061090f565b9050600b60149054906101000a900460ff161580156113c85750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600b60159054906101000a900460ff165b80156113ed575060055481115b15611413576113fb816118a8565b5f4790505f8111156114115761141047611b1c565b5b505b505b5f8111156115145761146d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161150b9190611eb8565b60405180910390a35b6115648260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116076115bb8284611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116aa8486611c4690919063ffffffff16565b6040516116b79190611eb8565b60405180910390a350505050565b5f83831115829061170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117039190611d7a565b60405180910390fd5b505f838561171a919061290c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61182983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c8f565b905092915050565b5f808303611841575f90506118a2565b5f828461184e9190612377565b905082848261185d919061296c565b1461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612a0c565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611aff575f600267ffffffffffffffff8111156118e7576118e6611fbd565b5b6040519080825280602002602001820160405280156119155781602001602082028036833780820191505090505b50905030815f8151811061192c5761192b6123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f49190612a3e565b81600181518110611a0857611a076123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6e30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c58565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ad0959493929190612b62565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b6290612be7565b5f6040518083038185875af1925050503d805f8114611b9c576040519150601f19603f3d011682016040523d82523d5f602084013e611ba1565b606091505b5050905080611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c45565b60405180910390fd5b5050565b5f808284611bf79190612871565b905083811015611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390612cad565b60405180910390fd5b8091505092915050565b5f611c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116c5565b905092915050565b5f8083118290611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc9190611d7a565b60405180910390fd5b505f8385611ce3919061296c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d27578082015181840152602081019050611d0c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4c82611cf0565b611d568185611cfa565b9350611d66818560208601611d0a565b611d6f81611d32565b840191505092915050565b5f6020820190508181035f830152611d928184611d42565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd482611dab565b9050919050565b611de481611dca565b8114611dee575f80fd5b50565b5f81359050611dff81611ddb565b92915050565b5f819050919050565b611e1781611e05565b8114611e21575f80fd5b50565b5f81359050611e3281611e0e565b92915050565b5f8060408385031215611e4e57611e4d611da3565b5b5f611e5b85828601611df1565b9250506020611e6c85828601611e24565b9150509250929050565b5f8115159050919050565b611e8a81611e76565b82525050565b5f602082019050611ea35f830184611e81565b92915050565b611eb281611e05565b82525050565b5f602082019050611ecb5f830184611ea9565b92915050565b5f60208284031215611ee657611ee5611da3565b5b5f611ef384828501611df1565b91505092915050565b5f611f0682611dab565b9050919050565b611f1681611efc565b82525050565b5f602082019050611f2f5f830184611f0d565b92915050565b5f805f60608486031215611f4c57611f4b611da3565b5b5f611f5986828701611df1565b9350506020611f6a86828701611df1565b9250506040611f7b86828701611e24565b9150509250925092565b5f60ff82169050919050565b611f9a81611f85565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ff382611d32565b810181811067ffffffffffffffff8211171561201257612011611fbd565b5b80604052505050565b5f612024611d9a565b90506120308282611fea565b919050565b5f67ffffffffffffffff82111561204f5761204e611fbd565b5b602082029050602081019050919050565b5f80fd5b5f61207661207184612035565b61201b565b9050808382526020820190506020840283018581111561209957612098612060565b5b835b818110156120c257806120ae8882611df1565b84526020840193505060208101905061209b565b5050509392505050565b5f82601f8301126120e0576120df611fb9565b5b81356120f0848260208601612064565b91505092915050565b5f6020828403121561210e5761210d611da3565b5b5f82013567ffffffffffffffff81111561212b5761212a611da7565b5b612137848285016120cc565b91505092915050565b61214981611dca565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f6020828403121561217d5761217c611da3565b5b5f61218a84828501611e24565b91505092915050565b5f80604083850312156121a9576121a8611da3565b5b5f6121b685828601611df1565b92505060206121c785828601611df1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122535780860481111561222f5761222e6121d1565b5b600185161561223e5780820291505b808102905061224c856121fe565b9450612213565b94509492505050565b5f8261226b5760019050612326565b81612278575f9050612326565b816001811461228e5760028114612298576122c7565b6001915050612326565b60ff8411156122aa576122a96121d1565b5b8360020a9150848211156122c1576122c06121d1565b5b50612326565b5060208310610133831016604e8410600b84101617156122fc5782820a9050838111156122f7576122f66121d1565b5b612326565b612309848484600161220a565b925090508184048111156123205761231f6121d1565b5b81810290505b9392505050565b5f61233782611e05565b915061234283611f85565b925061236f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461225c565b905092915050565b5f61238182611e05565b915061238c83611e05565b925082820261239a81611e05565b915082820484148315176123b1576123b06121d1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612419600e83611cfa565b9150612424826123e5565b602082019050919050565b5f6020820190508181035f8301526124468161240d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6124a7602683611cfa565b91506124b28261244d565b604082019050919050565b5f6020820190508181035f8301526124d48161249b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612535602483611cfa565b9150612540826124db565b604082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125c3602283611cfa565b91506125ce82612569565b604082019050919050565b5f6020820190508181035f8301526125f0816125b7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262b602083611cfa565b9150612636826125f7565b602082019050919050565b5f6020820190508181035f8301526126588161261f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126b9602583611cfa565b91506126c48261265f565b604082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612747602383611cfa565b9150612752826126ed565b604082019050919050565b5f6020820190508181035f8301526127748161273b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127d5602983611cfa565b91506127e08261277b565b604082019050919050565b5f6020820190508181035f830152612802816127c9565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f61283d601f83611cfa565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611e05565b915061288683611e05565b925082820190508082111561289e5761289d6121d1565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6128d8601b83611cfa565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611e05565b915061292183611e05565b9250828203905081811115612939576129386121d1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297682611e05565b915061298183611e05565b9250826129915761299061293f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129f6602183611cfa565b9150612a018261299c565b604082019050919050565b5f6020820190508181035f830152612a23816129ea565b9050919050565b5f81519050612a3881611ddb565b92915050565b5f60208284031215612a5357612a52611da3565b5b5f612a6084828501612a2a565b91505092915050565b5f819050919050565b5f819050919050565b5f612a95612a90612a8b84612a69565b612a72565b611e05565b9050919050565b612aa581612a7b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612add81611dca565b82525050565b5f612aee8383612ad4565b60208301905092915050565b5f602082019050919050565b5f612b1082612aab565b612b1a8185612ab5565b9350612b2583612ac5565b805f5b83811015612b55578151612b3c8882612ae3565b9750612b4783612afa565b925050600181019050612b28565b5085935050505092915050565b5f60a082019050612b755f830188611ea9565b612b826020830187612a9c565b8181036040830152612b948186612b06565b9050612ba36060830185612140565b612bb06080830184611ea9565b9695505050505050565b5f81905092915050565b50565b5f612bd25f83612bba565b9150612bdd82612bc4565b5f82019050919050565b5f612bf182612bc7565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c2f600b83611cfa565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c97601b83611cfa565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fe8e8a944b1cd493d7d7051c1d458e53f7af49da78a5f1d9e46991adadd3833664736f6c63430008180033

Deployed Bytecode

0x608060405260043610610184575f3560e01c8063715018a6116100d0578063a3cdf02311610089578063bf474bed11610063578063bf474bed14610577578063d2a3af29146105a1578063dd62ed3e146105c9578063f2fde38b146106055761018b565b8063a3cdf023146104d7578063a9059cbb146104ff578063bbde5b251461053b5761018b565b8063715018a6146103e1578063768dc710146103f75780638da5cb5b1461043357806393114b1d1461045d57806393d89a0c1461048557806395d89b41146104ad5761018b565b806323b872dd1161013d578063437823ec11610117578063437823ec1461032b578063540538b614610353578063590f897e1461037b57806370a08231146103a55761018b565b806323b872dd1461029b578063313ce567146102d757806340b9a54b146103015761018b565b806306fdde031461018f578063095ea7b3146101b95780631234f868146101f557806318160ddd1461021f5780631e0117bd146102495780631fafa8bc146102715761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a361062d565b6040516101b09190611d7a565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611e38565b61066a565b6040516101ec9190611e90565b60405180910390f35b348015610200575f80fd5b50610209610687565b6040516102169190611eb8565b60405180910390f35b34801561022a575f80fd5b5061023361068d565b6040516102409190611eb8565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611ed1565b6106b0565b005b34801561027c575f80fd5b5061028561070f565b6040516102929190611f1c565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190611f35565b610734565b6040516102ce9190611e90565b60405180910390f35b3480156102e2575f80fd5b506102eb610808565b6040516102f89190611fa0565b60405180910390f35b34801561030c575f80fd5b50610315610810565b6040516103229190611eb8565b60405180910390f35b348015610336575f80fd5b50610351600480360381019061034c9190611ed1565b610816565b005b34801561035e575f80fd5b50610379600480360381019061037491906120f9565b610876565b005b348015610386575f80fd5b5061038f610909565b60405161039c9190611eb8565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611ed1565b61090f565b6040516103d89190611eb8565b60405180910390f35b3480156103ec575f80fd5b506103f5610955565b005b348015610402575f80fd5b5061041d60048036038101906104189190611ed1565b610968565b60405161042a9190611e90565b60405180910390f35b34801561043e575f80fd5b50610447610985565b604051610454919061214f565b60405180910390f35b348015610468575f80fd5b50610483600480360381019061047e9190612168565b6109ac565b005b348015610490575f80fd5b506104ab60048036038101906104a69190612168565b610a1a565b005b3480156104b8575f80fd5b506104c1610a2c565b6040516104ce9190611d7a565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190612168565b610a69565b005b34801561050a575f80fd5b5061052560048036038101906105209190611e38565b610a7b565b6040516105329190611e90565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190611ed1565b610a98565b60405161056e9190611e90565b60405180910390f35b348015610582575f80fd5b5061058b610ab5565b6040516105989190611eb8565b60405180910390f35b3480156105ac575f80fd5b506105c760048036038101906105c291906120f9565b610abb565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190612193565b610b4d565b6040516105fc9190611eb8565b60405180910390f35b348015610610575f80fd5b5061062b60048036038101906106269190611ed1565b610bcf565b005b60606040518060400160405280600c81526020017f4575726f2043757020496e750000000000000000000000000000000000000000815250905090565b5f61067d610676610c51565b8484610c58565b6001905092915050565b60065481565b5f6012600a61069c919061232d565b633b9aca006106ab9190612377565b905090565b6106b8610e1b565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610740848484610e99565b6107fd8461074c610c51565b6107f885604051806060016040528060288152602001612ccc6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107af610c51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116c59092919063ffffffff16565b610c58565b600190509392505050565b5f6012905090565b60075481565b61081e610e1b565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61087e610e1b565b5f5b815181101561090557600160045f8484815181106108a1576108a06123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610880565b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61095d610e1b565b6109665f611727565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b4610e1b565b6109cf60c86109c161068d565b6117e890919063ffffffff16565b8111610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a079061242f565b60405180910390fd5b8060068190555050565b610a22610e1b565b8060088190555050565b60606040518060400160405280600381526020017f4543490000000000000000000000000000000000000000000000000000000000815250905090565b610a71610e1b565b8060078190555050565b5f610a8e610a87610c51565b8484610e99565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b610ac3610e1b565b5f5b8151811015610b49575f60045f848481518110610ae557610ae46123b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610ac5565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd7610e1b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c906124bd565b60405180910390fd5b610c4e81611727565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061254b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2b906125d9565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e0e9190611eb8565b60405180910390a3505050565b610e23610c51565b73ffffffffffffffffffffffffffffffffffffffff16610e41610985565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90612641565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efe906126cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c9061275d565b60405180910390fd5b5f8111610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae906127eb565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611055575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612853565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611133575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561141557600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111e557600654826111998561090f565b6111a39190612871565b11156111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db906128ee565b60405180910390fd5b5b5f60075411156112c957600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112985750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c8576112c560646112b76007548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f600854111561135357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113525761134f60646113416008548561183190919063ffffffff16565b6117e890919063ffffffff16565b90505b5b5f61135d3061090f565b9050600b60149054906101000a900460ff161580156113c85750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600b60159054906101000a900460ff165b80156113ed575060055481115b15611413576113fb816118a8565b5f4790505f8111156114115761141047611b1c565b5b505b505b5f8111156115145761146d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161150b9190611eb8565b60405180910390a35b6115648260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116076115bb8284611c4690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611be990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116aa8486611c4690919063ffffffff16565b6040516116b79190611eb8565b60405180910390a350505050565b5f83831115829061170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117039190611d7a565b60405180910390fd5b505f838561171a919061290c565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f61182983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c8f565b905092915050565b5f808303611841575f90506118a2565b5f828461184e9190612377565b905082848261185d919061296c565b1461189d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189490612a0c565b60405180910390fd5b809150505b92915050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611aff575f600267ffffffffffffffff8111156118e7576118e6611fbd565b5b6040519080825280602002602001820160405280156119155781602001602082028036833780820191505090505b50905030815f8151811061192c5761192b6123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f49190612a3e565b81600181518110611a0857611a076123b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6e30600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c58565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ad0959493929190612b62565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611b6290612be7565b5f6040518083038185875af1925050503d805f8114611b9c576040519150601f19603f3d011682016040523d82523d5f602084013e611ba1565b606091505b5050905080611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612c45565b60405180910390fd5b5050565b5f808284611bf79190612871565b905083811015611c3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3390612cad565b60405180910390fd5b8091505092915050565b5f611c8783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116c5565b905092915050565b5f8083118290611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc9190611d7a565b60405180910390fd5b505f8385611ce3919061296c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d27578082015181840152602081019050611d0c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4c82611cf0565b611d568185611cfa565b9350611d66818560208601611d0a565b611d6f81611d32565b840191505092915050565b5f6020820190508181035f830152611d928184611d42565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dd482611dab565b9050919050565b611de481611dca565b8114611dee575f80fd5b50565b5f81359050611dff81611ddb565b92915050565b5f819050919050565b611e1781611e05565b8114611e21575f80fd5b50565b5f81359050611e3281611e0e565b92915050565b5f8060408385031215611e4e57611e4d611da3565b5b5f611e5b85828601611df1565b9250506020611e6c85828601611e24565b9150509250929050565b5f8115159050919050565b611e8a81611e76565b82525050565b5f602082019050611ea35f830184611e81565b92915050565b611eb281611e05565b82525050565b5f602082019050611ecb5f830184611ea9565b92915050565b5f60208284031215611ee657611ee5611da3565b5b5f611ef384828501611df1565b91505092915050565b5f611f0682611dab565b9050919050565b611f1681611efc565b82525050565b5f602082019050611f2f5f830184611f0d565b92915050565b5f805f60608486031215611f4c57611f4b611da3565b5b5f611f5986828701611df1565b9350506020611f6a86828701611df1565b9250506040611f7b86828701611e24565b9150509250925092565b5f60ff82169050919050565b611f9a81611f85565b82525050565b5f602082019050611fb35f830184611f91565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ff382611d32565b810181811067ffffffffffffffff8211171561201257612011611fbd565b5b80604052505050565b5f612024611d9a565b90506120308282611fea565b919050565b5f67ffffffffffffffff82111561204f5761204e611fbd565b5b602082029050602081019050919050565b5f80fd5b5f61207661207184612035565b61201b565b9050808382526020820190506020840283018581111561209957612098612060565b5b835b818110156120c257806120ae8882611df1565b84526020840193505060208101905061209b565b5050509392505050565b5f82601f8301126120e0576120df611fb9565b5b81356120f0848260208601612064565b91505092915050565b5f6020828403121561210e5761210d611da3565b5b5f82013567ffffffffffffffff81111561212b5761212a611da7565b5b612137848285016120cc565b91505092915050565b61214981611dca565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f6020828403121561217d5761217c611da3565b5b5f61218a84828501611e24565b91505092915050565b5f80604083850312156121a9576121a8611da3565b5b5f6121b685828601611df1565b92505060206121c785828601611df1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156122535780860481111561222f5761222e6121d1565b5b600185161561223e5780820291505b808102905061224c856121fe565b9450612213565b94509492505050565b5f8261226b5760019050612326565b81612278575f9050612326565b816001811461228e5760028114612298576122c7565b6001915050612326565b60ff8411156122aa576122a96121d1565b5b8360020a9150848211156122c1576122c06121d1565b5b50612326565b5060208310610133831016604e8410600b84101617156122fc5782820a9050838111156122f7576122f66121d1565b5b612326565b612309848484600161220a565b925090508184048111156123205761231f6121d1565b5b81810290505b9392505050565b5f61233782611e05565b915061234283611f85565b925061236f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461225c565b905092915050565b5f61238182611e05565b915061238c83611e05565b925082820261239a81611e05565b915082820484148315176123b1576123b06121d1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f612419600e83611cfa565b9150612424826123e5565b602082019050919050565b5f6020820190508181035f8301526124468161240d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6124a7602683611cfa565b91506124b28261244d565b604082019050919050565b5f6020820190508181035f8301526124d48161249b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612535602483611cfa565b9150612540826124db565b604082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125c3602283611cfa565b91506125ce82612569565b604082019050919050565b5f6020820190508181035f8301526125f0816125b7565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61262b602083611cfa565b9150612636826125f7565b602082019050919050565b5f6020820190508181035f8301526126588161261f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6126b9602583611cfa565b91506126c48261265f565b604082019050919050565b5f6020820190508181035f8301526126e6816126ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612747602383611cfa565b9150612752826126ed565b604082019050919050565b5f6020820190508181035f8301526127748161273b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6127d5602983611cfa565b91506127e08261277b565b604082019050919050565b5f6020820190508181035f830152612802816127c9565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f61283d601f83611cfa565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611e05565b915061288683611e05565b925082820190508082111561289e5761289d6121d1565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6128d8601b83611cfa565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f61291682611e05565b915061292183611e05565b9250828203905081811115612939576129386121d1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61297682611e05565b915061298183611e05565b9250826129915761299061293f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129f6602183611cfa565b9150612a018261299c565b604082019050919050565b5f6020820190508181035f830152612a23816129ea565b9050919050565b5f81519050612a3881611ddb565b92915050565b5f60208284031215612a5357612a52611da3565b5b5f612a6084828501612a2a565b91505092915050565b5f819050919050565b5f819050919050565b5f612a95612a90612a8b84612a69565b612a72565b611e05565b9050919050565b612aa581612a7b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612add81611dca565b82525050565b5f612aee8383612ad4565b60208301905092915050565b5f602082019050919050565b5f612b1082612aab565b612b1a8185612ab5565b9350612b2583612ac5565b805f5b83811015612b55578151612b3c8882612ae3565b9750612b4783612afa565b925050600181019050612b28565b5085935050505092915050565b5f60a082019050612b755f830188611ea9565b612b826020830187612a9c565b8181036040830152612b948186612b06565b9050612ba36060830185612140565b612bb06080830184611ea9565b9695505050505050565b5f81905092915050565b50565b5f612bd25f83612bba565b9150612bdd82612bc4565b5f82019050919050565b5f612bf182612bc7565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c2f600b83611cfa565b9150612c3a82612bfb565b602082019050919050565b5f6020820190508181035f830152612c5c81612c23565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c97601b83611cfa565b9150612ca282612c63565b602082019050919050565b5f6020820190508181035f830152612cc481612c8b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fe8e8a944b1cd493d7d7051c1d458e53f7af49da78a5f1d9e46991adadd3833664736f6c63430008180033

Deployed Bytecode Sourcemap

4074:7167:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5879:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6712:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4697:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6156:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10736:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4856:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6881:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6065:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4765:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10619:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10852:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4808:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6259:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2792:103;;;;;;;;;;;;;:::i;:::-;;4293:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2555:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10236:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10521:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5970:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10425:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6386:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4351:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4633:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11046:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6561:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2905:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5879:83;5916:13;5949:5;;;;;;;;;;;;;;;;;5942:12;;5879:83;:::o;6712:161::-;6787:4;6804:39;6813:12;:10;:12::i;:::-;6827:7;6836:6;6804:8;:39::i;:::-;6861:4;6854:11;;6712:161;;;;:::o;4697:59::-;;;;:::o;6156:95::-;6209:7;4439:2;4496;:13;;;;:::i;:::-;4483:10;:26;;;;:::i;:::-;6229:14;;6156:95;:::o;10736:108::-;2514:13;:11;:13::i;:::-;10831:5:::1;10802:18;:26;10821:6;10802:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10736:108:::0;:::o;4856:95::-;;;;;;;;;;;;;:::o;6881:313::-;6979:4;6996:36;7006:6;7014:9;7025:6;6996:9;:36::i;:::-;7043:121;7052:6;7060:12;:10;:12::i;:::-;7074:89;7112:6;7074:89;;;;;;;;;;;;;;;;;:11;:19;7086:6;7074:19;;;;;;;;;;;;;;;:33;7094:12;:10;:12::i;:::-;7074:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7043:8;:121::i;:::-;7182:4;7175:11;;6881:313;;;;;:::o;6065:83::-;6106:5;4439:2;6124:16;;6065:83;:::o;4765:26::-;;;;:::o;10619:109::-;2514:13;:11;:13::i;:::-;10716:4:::1;10687:18;:26;10706:6;10687:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10619:109:::0;:::o;10852:186::-;2514:13;:11;:13::i;:::-;10936:6:::1;10932:99;10952:8;:15;10948:1;:19;10932:99;;;11015:4;10988:11;:24;11000:8;11009:1;11000:11;;;;;;;;:::i;:::-;;;;;;;;10988:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10969:3;;;;;;;10932:99;;;;10852:186:::0;:::o;4808:27::-;;;;:::o;6259:119::-;6325:7;6352:9;:18;6362:7;6352:18;;;;;;;;;;;;;;;;6345:25;;6259:119;;;:::o;2792:103::-;2514:13;:11;:13::i;:::-;2857:30:::1;2884:1;2857:18;:30::i;:::-;2792:103::o:0;4293:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;2555:87::-;2601:7;2628:6;;;;;;;;;;;2621:13;;2555:87;:::o;10236:181::-;2514:13;:11;:13::i;:::-;10332:22:::1;10350:3;10332:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;10320:9;:34;10312:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10400:9;10383:14;:26;;;;10236:181:::0;:::o;10521:90::-;2514:13;:11;:13::i;:::-;10599:4:::1;10588:8;:15;;;;10521:90:::0;:::o;5970:87::-;6009:13;6042:7;;;;;;;;;;;;;;;;;6035:14;;5970:87;:::o;10425:88::-;2514:13;:11;:13::i;:::-;10501:4:::1;10491:7;:14;;;;10425:88:::0;:::o;6386:167::-;6464:4;6481:42;6491:12;:10;:12::i;:::-;6505:9;6516:6;6481:9;:42::i;:::-;6541:4;6534:11;;6386:167;;;;:::o;4351:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;4633:57::-;;;;:::o;11046:192::-;2514:13;:11;:13::i;:::-;11135:6:::1;11131:100;11151:8;:15;11147:1;:19;11131:100;;;11214:5;11187:11;:24;11199:8;11208:1;11199:11;;;;;;;;:::i;:::-;;;;;;;;11187:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11168:3;;;;;;;11131:100;;;;11046:192:::0;:::o;6561:143::-;6642:7;6669:11;:18;6681:5;6669:18;;;;;;;;;;;;;;;:27;6688:7;6669:27;;;;;;;;;;;;;;;;6662:34;;6561:143;;;;:::o;2905:201::-;2514:13;:11;:13::i;:::-;3014:1:::1;2994:22;;:8;:22;;::::0;2986:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3070:28;3089:8;3070:18;:28::i;:::-;2905:201:::0;:::o;315:98::-;368:7;395:10;388:17;;315:98;:::o;7202:335::-;7312:1;7295:19;;:5;:19;;;7287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7393:1;7374:21;;:7;:21;;;7366:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7475:6;7445:11;:18;7457:5;7445:18;;;;;;;;;;;;;;;:27;7464:7;7445:27;;;;;;;;;;;;;;;:36;;;;7513:7;7497:32;;7506:5;7497:32;;;7522:6;7497:32;;;;;;:::i;:::-;;;;;;;;7202:335;;;:::o;2650:132::-;2725:12;:10;:12::i;:::-;2714:23;;:7;:5;:7::i;:::-;:23;;;2706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2650:132::o;7545:1814::-;7649:1;7633:18;;:4;:18;;;7625:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7726:1;7712:16;;:2;:16;;;7704:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7796:1;7787:6;:10;7779:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7863:11;:17;7875:4;7863:17;;;;;;;;;;;;;;;;;;;;;;;;;7862:18;:38;;;;;7885:11;:15;7897:2;7885:15;;;;;;;;;;;;;;;;;;;;;;;;;7884:16;7862:38;7854:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;7946:17;7981:18;:24;8000:4;7981:24;;;;;;;;;;;;;;;;;;;;;;;;;7980:25;:52;;;;;8010:18;:22;8029:2;8010:22;;;;;;;;;;;;;;;;;;;;;;;;;8009:23;7980:52;7976:1027;;;8060:13;;;;;;;;;;;8054:19;;:2;:19;;;8051:137;;8126:14;;8116:6;8100:13;8110:2;8100:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8092:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:137;8217:1;8207:7;;:11;8204:182;;;8247:13;;;;;;;;;;;8239:21;;:4;:21;;;:55;;;;;8278:15;;;;;;;;;;;8264:30;;:2;:30;;;;8239:55;8235:136;;;8327:28;8351:3;8327:19;8338:7;;8327:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8315:40;;8235:136;8204:182;8416:1;8405:8;;:12;8402:146;;;8443:13;;;;;;;;;;;8437:19;;:2;:19;;;8434:99;;8488:29;8513:3;8488:20;8499:8;;8488:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8476:41;;8434:99;8402:146;8564:28;8595:24;8613:4;8595:9;:24::i;:::-;8564:55;;8639:6;;;;;;;;;;;8638:7;:30;;;;;8655:13;;;;;;;;;;;8649:19;;:2;:19;;;8638:30;:45;;;;;8672:11;;;;;;;;;;;8638:45;:87;;;;;8708:17;;8687:20;:38;8638:87;8634:358;;;8746:38;8763:20;8746:16;:38::i;:::-;8803:26;8832:21;8803:50;;8896:1;8875:18;:22;8872:105;;;8922:35;8935:21;8922:12;:35::i;:::-;8872:105;8727:265;8634:358;8034:969;7976:1027;9028:1;9018:9;:11;9015:161;;;9068:39;9097:9;9068;:24;9086:4;9068:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9043:9;:24;9061:4;9043:24;;;;;;;;;;;;;;;:64;;;;9148:4;9125:39;;9134:4;9125:39;;;9154:9;9125:39;;;;;;:::i;:::-;;;;;;;;9015:161;9202:27;9222:6;9202:9;:15;9212:4;9202:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9186:9;:15;9196:4;9186:15;;;;;;;;;;;;;;;:43;;;;9254:40;9272:21;9283:9;9272:6;:10;;:21;;;;:::i;:::-;9254:9;:13;9264:2;9254:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9240:9;:13;9250:2;9240:13;;;;;;;;;;;;;;;:54;;;;9325:2;9310:41;;9319:4;9310:41;;;9329:21;9340:9;9329:6;:10;;:21;;;;:::i;:::-;9310:41;;;;;;:::i;:::-;;;;;;;;7614:1745;7545:1814;;;:::o;1452:190::-;1538:7;1571:1;1566;:6;;1574:12;1558:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1598:9;1614:1;1610;:5;;;;:::i;:::-;1598:17;;1633:1;1626:8;;;1452:190;;;;;:::o;3114:191::-;3188:16;3207:6;;;;;;;;;;;3188:25;;3233:8;3224:6;;:17;;;;;;;;;;;;;;;;;;3288:8;3257:40;;3278:8;3257:40;;;;;;;;;;;;3177:128;3114:191;:::o;1904:132::-;1962:7;1989:39;1993:1;1996;1989:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1982:46;;1904:132;;;;:::o;1650:246::-;1708:7;1737:1;1732;:6;1728:47;;1762:1;1755:8;;;;1728:47;1785:9;1801:1;1797;:5;;;;:::i;:::-;1785:17;;1830:1;1825;1821;:5;;;;:::i;:::-;:10;1813:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1887:1;1880:8;;;1650:246;;;;;:::o;9475:520::-;5160:4;5151:6;;:13;;;;;;;;;;;;;;;;;;9569:1:::1;9556:11;:14:::0;9553:27;9572:7:::1;9553:27;9590:21;9628:1;9614:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9590:40;;9659:4;9641;9646:1;9641:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9685:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9675:4;9680:1;9675:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9718:62;9735:4;9750:15;;;;;;;;;;;9768:11;9718:8;:62::i;:::-;9791:15;;;;;;;;;;;:66;;;9872:11;9898:1;9914:4;9941;9961:15;9791:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9542:453;5175:1;5196:5:::0;5187:6;;:14;;;;;;;;;;;;;;;;;;9475:520;:::o;10003:184::-;10060:16;10090:18;;;;;;;;;;;10082:32;;10122:6;10082:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10059:74;;;10152:11;10144:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10049:138;10003:184;:::o;1121:179::-;1179:7;1199:9;1215:1;1211;:5;;;;:::i;:::-;1199:17;;1240:1;1235;:6;;1227:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1291:1;1284:8;;;1121:179;;;;:::o;1308:136::-;1366:7;1393:43;1397:1;1400;1393:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1386:50;;1308:136;;;;:::o;2044:189::-;2130:7;2162:1;2158;:5;2165:12;2150:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2189:9;2205:1;2201;:5;;;;:::i;:::-;2189:17;;2224:1;2217:8;;;2044:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:104::-;4178:7;4207:24;4225:5;4207:24;:::i;:::-;4196:35;;4133:104;;;:::o;4243:142::-;4346:32;4372:5;4346:32;:::i;:::-;4341:3;4334:45;4243:142;;:::o;4391:254::-;4500:4;4538:2;4527:9;4523:18;4515:26;;4551:87;4635:1;4624:9;4620:17;4611:6;4551:87;:::i;:::-;4391:254;;;;:::o;4651:619::-;4728:6;4736;4744;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:53;4989:7;4980:6;4969:9;4965:22;4944:53;:::i;:::-;4934:63;;4890:117;5046:2;5072:53;5117:7;5108:6;5097:9;5093:22;5072:53;:::i;:::-;5062:63;;5017:118;5174:2;5200:53;5245:7;5236:6;5225:9;5221:22;5200:53;:::i;:::-;5190:63;;5145:118;4651:619;;;;;:::o;5276:86::-;5311:7;5351:4;5344:5;5340:16;5329:27;;5276:86;;;:::o;5368:112::-;5451:22;5467:5;5451:22;:::i;:::-;5446:3;5439:35;5368:112;;:::o;5486:214::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:67;5690:1;5679:9;5675:17;5666:6;5626:67;:::i;:::-;5486:214;;;;:::o;5706:117::-;5815:1;5812;5805:12;5829:180;5877:77;5874:1;5867:88;5974:4;5971:1;5964:15;5998:4;5995:1;5988:15;6015:281;6098:27;6120:4;6098:27;:::i;:::-;6090:6;6086:40;6228:6;6216:10;6213:22;6192:18;6180:10;6177:34;6174:62;6171:88;;;6239:18;;:::i;:::-;6171:88;6279:10;6275:2;6268:22;6058:238;6015:281;;:::o;6302:129::-;6336:6;6363:20;;:::i;:::-;6353:30;;6392:33;6420:4;6412:6;6392:33;:::i;:::-;6302:129;;;:::o;6437:311::-;6514:4;6604:18;6596:6;6593:30;6590:56;;;6626:18;;:::i;:::-;6590:56;6676:4;6668:6;6664:17;6656:25;;6736:4;6730;6726:15;6718:23;;6437:311;;;:::o;6754:117::-;6863:1;6860;6853:12;6894:710;6990:5;7015:81;7031:64;7088:6;7031:64;:::i;:::-;7015:81;:::i;:::-;7006:90;;7116:5;7145:6;7138:5;7131:21;7179:4;7172:5;7168:16;7161:23;;7232:4;7224:6;7220:17;7212:6;7208:30;7261:3;7253:6;7250:15;7247:122;;;7280:79;;:::i;:::-;7247:122;7395:6;7378:220;7412:6;7407:3;7404:15;7378:220;;;7487:3;7516:37;7549:3;7537:10;7516:37;:::i;:::-;7511:3;7504:50;7583:4;7578:3;7574:14;7567:21;;7454:144;7438:4;7433:3;7429:14;7422:21;;7378:220;;;7382:21;6996:608;;6894:710;;;;;:::o;7627:370::-;7698:5;7747:3;7740:4;7732:6;7728:17;7724:27;7714:122;;7755:79;;:::i;:::-;7714:122;7872:6;7859:20;7897:94;7987:3;7979:6;7972:4;7964:6;7960:17;7897:94;:::i;:::-;7888:103;;7704:293;7627:370;;;;:::o;8003:539::-;8087:6;8136:2;8124:9;8115:7;8111:23;8107:32;8104:119;;;8142:79;;:::i;:::-;8104:119;8290:1;8279:9;8275:17;8262:31;8320:18;8312:6;8309:30;8306:117;;;8342:79;;:::i;:::-;8306:117;8447:78;8517:7;8508:6;8497:9;8493:22;8447:78;:::i;:::-;8437:88;;8233:302;8003:539;;;;:::o;8548:118::-;8635:24;8653:5;8635:24;:::i;:::-;8630:3;8623:37;8548:118;;:::o;8672:222::-;8765:4;8803:2;8792:9;8788:18;8780:26;;8816:71;8884:1;8873:9;8869:17;8860:6;8816:71;:::i;:::-;8672:222;;;;:::o;8900:329::-;8959:6;9008:2;8996:9;8987:7;8983:23;8979:32;8976:119;;;9014:79;;:::i;:::-;8976:119;9134:1;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9105:117;8900:329;;;;:::o;9235:474::-;9303:6;9311;9360:2;9348:9;9339:7;9335:23;9331:32;9328:119;;;9366:79;;:::i;:::-;9328:119;9486:1;9511:53;9556:7;9547:6;9536:9;9532:22;9511:53;:::i;:::-;9501:63;;9457:117;9613:2;9639:53;9684:7;9675:6;9664:9;9660:22;9639:53;:::i;:::-;9629:63;;9584:118;9235:474;;;;;:::o;9715:180::-;9763:77;9760:1;9753:88;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9901:102;9943:8;9990:5;9987:1;9983:13;9962:34;;9901:102;;;:::o;10009:848::-;10070:5;10077:4;10101:6;10092:15;;10125:5;10116:14;;10139:712;10160:1;10150:8;10147:15;10139:712;;;10255:4;10250:3;10246:14;10240:4;10237:24;10234:50;;;10264:18;;:::i;:::-;10234:50;10314:1;10304:8;10300:16;10297:451;;;10729:4;10722:5;10718:16;10709:25;;10297:451;10779:4;10773;10769:15;10761:23;;10809:32;10832:8;10809:32;:::i;:::-;10797:44;;10139:712;;;10009:848;;;;;;;:::o;10863:1073::-;10917:5;11108:8;11098:40;;11129:1;11120:10;;11131:5;;11098:40;11157:4;11147:36;;11174:1;11165:10;;11176:5;;11147:36;11243:4;11291:1;11286:27;;;;11327:1;11322:191;;;;11236:277;;11286:27;11304:1;11295:10;;11306:5;;;11322:191;11367:3;11357:8;11354:17;11351:43;;;11374:18;;:::i;:::-;11351:43;11423:8;11420:1;11416:16;11407:25;;11458:3;11451:5;11448:14;11445:40;;;11465:18;;:::i;:::-;11445:40;11498:5;;;11236:277;;11622:2;11612:8;11609:16;11603:3;11597:4;11594:13;11590:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11525:111;11522:246;;;11678:8;11672:4;11668:19;11659:28;;11713:3;11706:5;11703:14;11700:40;;;11720:18;;:::i;:::-;11700:40;11753:5;;11522:246;11793:42;11831:3;11821:8;11815:4;11812:1;11793:42;:::i;:::-;11778:57;;;;11867:4;11862:3;11858:14;11851:5;11848:25;11845:51;;;11876:18;;:::i;:::-;11845:51;11925:4;11918:5;11914:16;11905:25;;10863:1073;;;;;;:::o;11942:281::-;12000:5;12024:23;12042:4;12024:23;:::i;:::-;12016:31;;12068:25;12084:8;12068:25;:::i;:::-;12056:37;;12112:104;12149:66;12139:8;12133:4;12112:104;:::i;:::-;12103:113;;11942:281;;;;:::o;12229:410::-;12269:7;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12326:20;12344:1;12326:20;:::i;:::-;12321:25;;12381:1;12378;12374:9;12403:30;12421:11;12403:30;:::i;:::-;12392:41;;12582:1;12573:7;12569:15;12566:1;12563:22;12543:1;12536:9;12516:83;12493:139;;12612:18;;:::i;:::-;12493:139;12277:362;12229:410;;;;:::o;12645:180::-;12693:77;12690:1;12683:88;12790:4;12787:1;12780:15;12814:4;12811:1;12804:15;12831:164;12971:16;12967:1;12959:6;12955:14;12948:40;12831:164;:::o;13001:366::-;13143:3;13164:67;13228:2;13223:3;13164:67;:::i;:::-;13157:74;;13240:93;13329:3;13240:93;:::i;:::-;13358:2;13353:3;13349:12;13342:19;;13001:366;;;:::o;13373:419::-;13539:4;13577:2;13566:9;13562:18;13554:26;;13626:9;13620:4;13616:20;13612:1;13601:9;13597:17;13590:47;13654:131;13780:4;13654:131;:::i;:::-;13646:139;;13373:419;;;:::o;13798:225::-;13938:34;13934:1;13926:6;13922:14;13915:58;14007:8;14002:2;13994:6;13990:15;13983:33;13798:225;:::o;14029:366::-;14171:3;14192:67;14256:2;14251:3;14192:67;:::i;:::-;14185:74;;14268:93;14357:3;14268:93;:::i;:::-;14386:2;14381:3;14377:12;14370:19;;14029:366;;;:::o;14401:419::-;14567:4;14605:2;14594:9;14590:18;14582:26;;14654:9;14648:4;14644:20;14640:1;14629:9;14625:17;14618:47;14682:131;14808:4;14682:131;:::i;:::-;14674:139;;14401:419;;;:::o;14826:223::-;14966:34;14962:1;14954:6;14950:14;14943:58;15035:6;15030:2;15022:6;15018:15;15011:31;14826:223;:::o;15055:366::-;15197:3;15218:67;15282:2;15277:3;15218:67;:::i;:::-;15211:74;;15294:93;15383:3;15294:93;:::i;:::-;15412:2;15407:3;15403:12;15396:19;;15055:366;;;:::o;15427:419::-;15593:4;15631:2;15620:9;15616:18;15608:26;;15680:9;15674:4;15670:20;15666:1;15655:9;15651:17;15644:47;15708:131;15834:4;15708:131;:::i;:::-;15700:139;;15427:419;;;:::o;15852:221::-;15992:34;15988:1;15980:6;15976:14;15969:58;16061:4;16056:2;16048:6;16044:15;16037:29;15852:221;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:182::-;17016:34;17012:1;17004:6;17000:14;16993:58;16876:182;:::o;17064:366::-;17206:3;17227:67;17291:2;17286:3;17227:67;:::i;:::-;17220:74;;17303:93;17392:3;17303:93;:::i;:::-;17421:2;17416:3;17412:12;17405:19;;17064:366;;;:::o;17436:419::-;17602:4;17640:2;17629:9;17625:18;17617:26;;17689:9;17683:4;17679:20;17675:1;17664:9;17660:17;17653:47;17717:131;17843:4;17717:131;:::i;:::-;17709:139;;17436:419;;;:::o;17861:224::-;18001:34;17997:1;17989:6;17985:14;17978:58;18070:7;18065:2;18057:6;18053:15;18046:32;17861:224;:::o;18091:366::-;18233:3;18254:67;18318:2;18313:3;18254:67;:::i;:::-;18247:74;;18330:93;18419:3;18330:93;:::i;:::-;18448:2;18443:3;18439:12;18432:19;;18091:366;;;:::o;18463:419::-;18629:4;18667:2;18656:9;18652:18;18644:26;;18716:9;18710:4;18706:20;18702:1;18691:9;18687:17;18680:47;18744:131;18870:4;18744:131;:::i;:::-;18736:139;;18463:419;;;:::o;18888:222::-;19028:34;19024:1;19016:6;19012:14;19005:58;19097:5;19092:2;19084:6;19080:15;19073:30;18888:222;:::o;19116:366::-;19258:3;19279:67;19343:2;19338:3;19279:67;:::i;:::-;19272:74;;19355:93;19444:3;19355:93;:::i;:::-;19473:2;19468:3;19464:12;19457:19;;19116:366;;;:::o;19488:419::-;19654:4;19692:2;19681:9;19677:18;19669:26;;19741:9;19735:4;19731:20;19727:1;19716:9;19712:17;19705:47;19769:131;19895:4;19769:131;:::i;:::-;19761:139;;19488:419;;;:::o;19913:228::-;20053:34;20049:1;20041:6;20037:14;20030:58;20122:11;20117:2;20109:6;20105:15;20098:36;19913:228;:::o;20147:366::-;20289:3;20310:67;20374:2;20369:3;20310:67;:::i;:::-;20303:74;;20386:93;20475:3;20386:93;:::i;:::-;20504:2;20499:3;20495:12;20488:19;;20147:366;;;:::o;20519:419::-;20685:4;20723:2;20712:9;20708:18;20700:26;;20772:9;20766:4;20762:20;20758:1;20747:9;20743:17;20736:47;20800:131;20926:4;20800:131;:::i;:::-;20792:139;;20519:419;;;:::o;20944:181::-;21084:33;21080:1;21072:6;21068:14;21061:57;20944:181;:::o;21131:366::-;21273:3;21294:67;21358:2;21353:3;21294:67;:::i;:::-;21287:74;;21370:93;21459:3;21370:93;:::i;:::-;21488:2;21483:3;21479:12;21472:19;;21131:366;;;:::o;21503:419::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21756:9;21750:4;21746:20;21742:1;21731:9;21727:17;21720:47;21784:131;21910:4;21784:131;:::i;:::-;21776:139;;21503:419;;;:::o;21928:191::-;21968:3;21987:20;22005:1;21987:20;:::i;:::-;21982:25;;22021:20;22039:1;22021:20;:::i;:::-;22016:25;;22064:1;22061;22057:9;22050:16;;22085:3;22082:1;22079:10;22076:36;;;22092:18;;:::i;:::-;22076:36;21928:191;;;;:::o;22125:177::-;22265:29;22261:1;22253:6;22249:14;22242:53;22125:177;:::o;22308:366::-;22450:3;22471:67;22535:2;22530:3;22471:67;:::i;:::-;22464:74;;22547:93;22636:3;22547:93;:::i;:::-;22665:2;22660:3;22656:12;22649:19;;22308:366;;;:::o;22680:419::-;22846:4;22884:2;22873:9;22869:18;22861:26;;22933:9;22927:4;22923:20;22919:1;22908:9;22904:17;22897:47;22961:131;23087:4;22961:131;:::i;:::-;22953:139;;22680:419;;;:::o;23105:194::-;23145:4;23165:20;23183:1;23165:20;:::i;:::-;23160:25;;23199:20;23217:1;23199:20;:::i;:::-;23194:25;;23243:1;23240;23236:9;23228:17;;23267:1;23261:4;23258:11;23255:37;;;23272:18;;:::i;:::-;23255:37;23105:194;;;;:::o;23305:180::-;23353:77;23350:1;23343:88;23450:4;23447:1;23440:15;23474:4;23471:1;23464:15;23491:185;23531:1;23548:20;23566:1;23548:20;:::i;:::-;23543:25;;23582:20;23600:1;23582:20;:::i;:::-;23577:25;;23621:1;23611:35;;23626:18;;:::i;:::-;23611:35;23668:1;23665;23661:9;23656:14;;23491:185;;;;:::o;23682:220::-;23822:34;23818:1;23810:6;23806:14;23799:58;23891:3;23886:2;23878:6;23874:15;23867:28;23682:220;:::o;23908:366::-;24050:3;24071:67;24135:2;24130:3;24071:67;:::i;:::-;24064:74;;24147:93;24236:3;24147:93;:::i;:::-;24265:2;24260:3;24256:12;24249:19;;23908:366;;;:::o;24280:419::-;24446:4;24484:2;24473:9;24469:18;24461:26;;24533:9;24527:4;24523:20;24519:1;24508:9;24504:17;24497:47;24561:131;24687:4;24561:131;:::i;:::-;24553:139;;24280:419;;;:::o;24705:143::-;24762:5;24793:6;24787:13;24778:22;;24809:33;24836:5;24809:33;:::i;:::-;24705:143;;;;:::o;24854:351::-;24924:6;24973:2;24961:9;24952:7;24948:23;24944:32;24941:119;;;24979:79;;:::i;:::-;24941:119;25099:1;25124:64;25180:7;25171:6;25160:9;25156:22;25124:64;:::i;:::-;25114:74;;25070:128;24854:351;;;;:::o;25211:85::-;25256:7;25285:5;25274:16;;25211:85;;;:::o;25302:60::-;25330:3;25351:5;25344:12;;25302:60;;;:::o;25368:158::-;25426:9;25459:61;25477:42;25486:32;25512:5;25486:32;:::i;:::-;25477:42;:::i;:::-;25459:61;:::i;:::-;25446:74;;25368:158;;;:::o;25532:147::-;25627:45;25666:5;25627:45;:::i;:::-;25622:3;25615:58;25532:147;;:::o;25685:114::-;25752:6;25786:5;25780:12;25770:22;;25685:114;;;:::o;25805:184::-;25904:11;25938:6;25933:3;25926:19;25978:4;25973:3;25969:14;25954:29;;25805:184;;;;:::o;25995:132::-;26062:4;26085:3;26077:11;;26115:4;26110:3;26106:14;26098:22;;25995:132;;;:::o;26133:108::-;26210:24;26228:5;26210:24;:::i;:::-;26205:3;26198:37;26133:108;;:::o;26247:179::-;26316:10;26337:46;26379:3;26371:6;26337:46;:::i;:::-;26415:4;26410:3;26406:14;26392:28;;26247:179;;;;:::o;26432:113::-;26502:4;26534;26529:3;26525:14;26517:22;;26432:113;;;:::o;26581:732::-;26700:3;26729:54;26777:5;26729:54;:::i;:::-;26799:86;26878:6;26873:3;26799:86;:::i;:::-;26792:93;;26909:56;26959:5;26909:56;:::i;:::-;26988:7;27019:1;27004:284;27029:6;27026:1;27023:13;27004:284;;;27105:6;27099:13;27132:63;27191:3;27176:13;27132:63;:::i;:::-;27125:70;;27218:60;27271:6;27218:60;:::i;:::-;27208:70;;27064:224;27051:1;27048;27044:9;27039:14;;27004:284;;;27008:14;27304:3;27297:10;;26705:608;;;26581:732;;;;:::o;27319:831::-;27582:4;27620:3;27609:9;27605:19;27597:27;;27634:71;27702:1;27691:9;27687:17;27678:6;27634:71;:::i;:::-;27715:80;27791:2;27780:9;27776:18;27767:6;27715:80;:::i;:::-;27842:9;27836:4;27832:20;27827:2;27816:9;27812:18;27805:48;27870:108;27973:4;27964:6;27870:108;:::i;:::-;27862:116;;27988:72;28056:2;28045:9;28041:18;28032:6;27988:72;:::i;:::-;28070:73;28138:3;28127:9;28123:19;28114:6;28070:73;:::i;:::-;27319:831;;;;;;;;:::o;28156:147::-;28257:11;28294:3;28279:18;;28156:147;;;;:::o;28309:114::-;;:::o;28429:398::-;28588:3;28609:83;28690:1;28685:3;28609:83;:::i;:::-;28602:90;;28701:93;28790:3;28701:93;:::i;:::-;28819:1;28814:3;28810:11;28803:18;;28429:398;;;:::o;28833:379::-;29017:3;29039:147;29182:3;29039:147;:::i;:::-;29032:154;;29203:3;29196:10;;28833:379;;;:::o;29218:161::-;29358:13;29354:1;29346:6;29342:14;29335:37;29218:161;:::o;29385:366::-;29527:3;29548:67;29612:2;29607:3;29548:67;:::i;:::-;29541:74;;29624:93;29713:3;29624:93;:::i;:::-;29742:2;29737:3;29733:12;29726:19;;29385:366;;;:::o;29757:419::-;29923:4;29961:2;29950:9;29946:18;29938:26;;30010:9;30004:4;30000:20;29996:1;29985:9;29981:17;29974:47;30038:131;30164:4;30038:131;:::i;:::-;30030:139;;29757:419;;;:::o;30182:177::-;30322:29;30318:1;30310:6;30306:14;30299:53;30182:177;:::o;30365:366::-;30507:3;30528:67;30592:2;30587:3;30528:67;:::i;:::-;30521:74;;30604:93;30693:3;30604:93;:::i;:::-;30722:2;30717:3;30713:12;30706:19;;30365:366;;;:::o;30737:419::-;30903:4;30941:2;30930:9;30926:18;30918:26;;30990:9;30984:4;30980:20;30976:1;30965:9;30961:17;30954:47;31018:131;31144:4;31018:131;:::i;:::-;31010:139;;30737:419;;;:::o

Swarm Source

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