ETH Price: $2,488.45 (-3.25%)

Token

ICE-Snowman Classic (ICE-SNOW)
 

Overview

Max Total Supply

888,888,888,888,888 ICE-SNOW

Holders

88

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
965,905,447,296.587257856 ICE-SNOW

Value
$0.00
0x652ad1829e194798b28befcb967e902aa5440318
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OKB

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-26
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-10
*/

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

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;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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 OKB is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=1;
    uint256 private _initialSellTax=1;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=15;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 888888888888888 * 10**_decimals;
    string private constant _name = unicode"ICE-Snowman Classic ";
    string private constant _symbol = unicode"ICE-SNOW";
    uint256 public _maxTxAmount =   totalSupply() / 10;
    uint256 public _maxWalletSize = totalSupply() / 10;
    uint256 public _taxSwapThreshold = 0 * 10**_decimals;
    uint256 public _maxTaxSwap= totalSupply() / 100;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

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

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

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

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

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

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

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

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

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

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

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

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

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
                _buyerMap[to]=true;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                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;}
        if(!tradingOpen){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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    
    
    
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040525f60075f6101000a81548160ff021916908315150217905550600160085560016009556001600a556001600b55600f600c55600f600d556014600e555f600f55600a62000056620007b460201b60201c565b62000062919062000a3a565b601055600a62000077620007b460201b60201c565b62000083919062000a3a565b6011556009600a62000096919062000bcd565b5f620000a3919062000c1d565b6012556064620000b8620007b460201b60201c565b620000c4919062000a3a565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff02191690831515021790555034801562000106575f80fd5b505f62000118620007de60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c4620007de60201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000214919062000bcd565b6603287092778e3862000228919062000c1d565b60015f6200023b620007de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028d620007e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004533060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a62000433919062000bcd565b6603287092778e3862000447919062000c1d565b6200080c60201b60201c565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004be573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004e4919062000ccc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200056b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000591919062000ccc565b6040518363ffffffff1660e01b8152600401620005b092919062000d0d565b6020604051808303815f875af1158015620005cd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005f3919062000ccc565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620006d192919062000d49565b6020604051808303815f875af1158015620006ee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000714919062000dae565b5062000725620007de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000783919062000bcd565b6603287092778e3862000797919062000c1d565b604051620007a6919062000dde565b60405180910390a362000f31565b5f6009600a620007c5919062000bcd565b6603287092778e38620007d9919062000c1d565b905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200087d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008749062000e7d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e59062000f11565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009ca919062000dde565b60405180910390a3505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000a4682620009d7565b915062000a5383620009d7565b92508262000a665762000a65620009e0565b5b828204905092915050565b5f8160011c9050919050565b5f808291508390505b600185111562000ace5780860481111562000aa65762000aa562000a0d565b5b600185161562000ab65780820291505b808102905062000ac68562000a71565b945062000a86565b94509492505050565b5f8262000ae8576001905062000bba565b8162000af7575f905062000bba565b816001811462000b10576002811462000b1b5762000b51565b600191505062000bba565b60ff84111562000b305762000b2f62000a0d565b5b8360020a91508482111562000b4a5762000b4962000a0d565b5b5062000bba565b5060208310610133831016604e8410600b841016171562000b8b5782820a90508381111562000b855762000b8462000a0d565b5b62000bba565b62000b9a848484600162000a7d565b9250905081840481111562000bb45762000bb362000a0d565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000bd982620009d7565b915062000be68362000bc1565b925062000c157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ad7565b905092915050565b5f62000c2982620009d7565b915062000c3683620009d7565b925082820262000c4681620009d7565b9150828204841483151762000c605762000c5f62000a0d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c968262000c6b565b9050919050565b62000ca88162000c8a565b811462000cb3575f80fd5b50565b5f8151905062000cc68162000c9d565b92915050565b5f6020828403121562000ce45762000ce362000c67565b5b5f62000cf38482850162000cb6565b91505092915050565b62000d078162000c8a565b82525050565b5f60408201905062000d225f83018562000cfc565b62000d31602083018462000cfc565b9392505050565b62000d4381620009d7565b82525050565b5f60408201905062000d5e5f83018562000cfc565b62000d6d602083018462000d38565b9392505050565b5f8115159050919050565b62000d8a8162000d74565b811462000d95575f80fd5b50565b5f8151905062000da88162000d7f565b92915050565b5f6020828403121562000dc65762000dc562000c67565b5b5f62000dd58482850162000d98565b91505092915050565b5f60208201905062000df35f83018462000d38565b92915050565b5f82825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000e6560248362000df9565b915062000e728262000e09565b604082019050919050565b5f6020820190508181035f83015262000e968162000e57565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000ef960228362000df9565b915062000f068262000e9d565b604082019050919050565b5f6020820190508181035f83015262000f2a8162000eeb565b9050919050565b612cee8062000f3f5f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb146103af578063bf474bed146103eb578063c876d0b914610415578063c9567bf91461043f578063dd62ed3e1461045557610129565b8063751039fc146102f15780637d1db4a5146103075780638da5cb5b146103315780638f9a55c01461035b57806395d89b411461038557610129565b8063313ce567116100e6578063313ce567146102235780633bbac5791461024d57806351bc3c851461028957806370a082311461029f578063715018a6146102db57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610491565b60405161014e9190611f04565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190611fb5565b6104ce565b60405161018a919061200d565b60405180910390f35b34801561019e575f80fd5b506101a76104eb565b6040516101b49190612035565b60405180910390f35b3480156101c8575f80fd5b506101d16104f1565b6040516101de9190612035565b60405180910390f35b3480156101f2575f80fd5b5061020d6004803603810190610208919061204e565b610517565b60405161021a919061200d565b60405180910390f35b34801561022e575f80fd5b506102376105eb565b60405161024491906120b9565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906120d2565b6105f3565b604051610280919061200d565b60405180910390f35b348015610294575f80fd5b5061029d610645565b005b3480156102aa575f80fd5b506102c560048036038101906102c091906120d2565b6106dd565b6040516102d29190612035565b60405180910390f35b3480156102e6575f80fd5b506102ef610723565b005b3480156102fc575f80fd5b50610305610871565b005b348015610312575f80fd5b5061031b6109c2565b6040516103289190612035565b60405180910390f35b34801561033c575f80fd5b506103456109c8565b604051610352919061210c565b60405180910390f35b348015610366575f80fd5b5061036f6109ef565b60405161037c9190612035565b60405180910390f35b348015610390575f80fd5b506103996109f5565b6040516103a69190611f04565b60405180910390f35b3480156103ba575f80fd5b506103d560048036038101906103d09190611fb5565b610a32565b6040516103e2919061200d565b60405180910390f35b3480156103f6575f80fd5b506103ff610a4f565b60405161040c9190612035565b60405180910390f35b348015610420575f80fd5b50610429610a55565b604051610436919061200d565b60405180910390f35b34801561044a575f80fd5b50610453610a67565b005b348015610460575f80fd5b5061047b60048036038101906104769190612125565b610b83565b6040516104889190612035565b60405180910390f35b60606040518060400160405280601481526020017f4943452d536e6f776d616e20436c617373696320000000000000000000000000815250905090565b5f6104e16104da610c05565b8484610c0c565b6001905092915050565b60135481565b5f6009600a61050091906122bf565b6603287092778e386105129190612309565b905090565b5f610523848484610dcf565b6105e08461052f610c05565b6105db85604051806060016040528060288152602001612c916028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610592610c05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119389092919063ffffffff16565b610c0c565b600190509392505050565b5f6009905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610686610c05565b73ffffffffffffffffffffffffffffffffffffffff16146106a5575f80fd5b5f6106af306106dd565b90505f8111156106c3576106c28161199a565b5b5f4790505f8111156106d9576106d881611c21565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae90612394565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610879610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612394565b60405180910390fd5b6009600a61091391906122bf565b6603287092778e386109259190612309565b6010819055506009600a61093991906122bf565b6603287092778e3861094b9190612309565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61099991906122bf565b6603287092778e386109ab9190612309565b6040516109b89190612035565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600881526020017f4943452d534e4f57000000000000000000000000000000000000000000000000815250905090565b5f610a45610a3e610c05565b8484610dcf565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610a6f610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290612394565b60405180910390fd5b601560149054906101000a900460ff1615610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b42906123fc565b60405180910390fd5b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c719061248a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf90612518565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc29190612035565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906125a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612634565b60405180910390fd5b5f8111610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee4906126c2565b60405180910390fd5b5f610ef66109c8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f645750610f346109c8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116885760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611007575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61100f575f80fd5b60075f9054906101000a900460ff16156111955760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110cd575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611194574360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612750565b60405180910390fd5b4360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561123e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611291575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113bf576010548211156112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906127b8565b60405180910390fd5b601154826112e8856106dd565b6112f291906127d6565b1115611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90612853565b60405180910390fd5b600e54600f5410156113525761134883611c8a565b15611351575f80fd5b5b600f5f81548092919061136490612871565b9190505550600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6113fb60646113ed600c54600f54116113da576008546113de565b600a545b85611c9b90919063ffffffff16565b611d1290919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561148557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a5576010548211156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c6906127b8565b60405180910390fd5b61150b60646114fd600d54600f54116114ea576009546114ee565b600b545b85611c9b90919063ffffffff16565b611d1290919063ffffffff16565b9050600e54600f541180611565575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612902565b60405180910390fd5b5b5f6115af306106dd565b905060158054906101000a900460ff16158015611618575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116305750601560169054906101000a900460ff165b801561163d575060125481115b801561164c5750600e54600f54115b156116865761166e6116698461166484601354611d5b565b611d5b565b61199a565b5f4790505f8111156116845761168347611c21565b5b505b505b5f811115611787576116e08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177e9190612035565b60405180910390a35b6117d78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a61182e8284611dd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191d8486611dd090919063ffffffff16565b60405161192a9190612035565b60405180910390a350505050565b5f83831115829061197f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119769190611f04565b60405180910390fd5b505f838561198d9190612920565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f810315611c0557601560149054906101000a900460ff1615611c05575f600267ffffffffffffffff8111156119ed576119ec612953565b5b604051908082528060200260200182016040528015611a1b5781602001602082028036833780820191505090505b50905030815f81518110611a3257611a31612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afa91906129c1565b81600181518110611b0e57611b0d612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b743060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c0c565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bd6959493929190612ae5565b5f604051808303815f87803b158015611bed575f80fd5b505af1158015611bff573d5f803e3d5ffd5b50505050505b5f6015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c86573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303611cab575f9050611d0c565b5f8284611cb89190612309565b9050828482611cc79190612b6a565b14611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90612c0a565b60405180910390fd5b809150505b92915050565b5f611d5383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e19565b905092915050565b5f818311611d695782611d6b565b815b905092915050565b5f808284611d8191906127d6565b905083811015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90612c72565b60405180910390fd5b8091505092915050565b5f611e1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b5f8083118290611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e569190611f04565b60405180910390fd5b505f8385611e6d9190612b6a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611eb1578082015181840152602081019050611e96565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ed682611e7a565b611ee08185611e84565b9350611ef0818560208601611e94565b611ef981611ebc565b840191505092915050565b5f6020820190508181035f830152611f1c8184611ecc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f5182611f28565b9050919050565b611f6181611f47565b8114611f6b575f80fd5b50565b5f81359050611f7c81611f58565b92915050565b5f819050919050565b611f9481611f82565b8114611f9e575f80fd5b50565b5f81359050611faf81611f8b565b92915050565b5f8060408385031215611fcb57611fca611f24565b5b5f611fd885828601611f6e565b9250506020611fe985828601611fa1565b9150509250929050565b5f8115159050919050565b61200781611ff3565b82525050565b5f6020820190506120205f830184611ffe565b92915050565b61202f81611f82565b82525050565b5f6020820190506120485f830184612026565b92915050565b5f805f6060848603121561206557612064611f24565b5b5f61207286828701611f6e565b935050602061208386828701611f6e565b925050604061209486828701611fa1565b9150509250925092565b5f60ff82169050919050565b6120b38161209e565b82525050565b5f6020820190506120cc5f8301846120aa565b92915050565b5f602082840312156120e7576120e6611f24565b5b5f6120f484828501611f6e565b91505092915050565b61210681611f47565b82525050565b5f60208201905061211f5f8301846120fd565b92915050565b5f806040838503121561213b5761213a611f24565b5b5f61214885828601611f6e565b925050602061215985828601611f6e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121e5578086048111156121c1576121c0612163565b5b60018516156121d05780820291505b80810290506121de85612190565b94506121a5565b94509492505050565b5f826121fd57600190506122b8565b8161220a575f90506122b8565b8160018114612220576002811461222a57612259565b60019150506122b8565b60ff84111561223c5761223b612163565b5b8360020a91508482111561225357612252612163565b5b506122b8565b5060208310610133831016604e8410600b841016171561228e5782820a90508381111561228957612288612163565b5b6122b8565b61229b848484600161219c565b925090508184048111156122b2576122b1612163565b5b81810290505b9392505050565b5f6122c982611f82565b91506122d48361209e565b92506123017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121ee565b905092915050565b5f61231382611f82565b915061231e83611f82565b925082820261232c81611f82565b9150828204841483151761234357612342612163565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61237e602083611e84565b91506123898261234a565b602082019050919050565b5f6020820190508181035f8301526123ab81612372565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123e6601783611e84565b91506123f1826123b2565b602082019050919050565b5f6020820190508181035f830152612413816123da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612474602483611e84565b915061247f8261241a565b604082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612502602283611e84565b915061250d826124a8565b604082019050919050565b5f6020820190508181035f83015261252f816124f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611e84565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61261e602383611e84565b9150612629826125c4565b604082019050919050565b5f6020820190508181035f83015261264b81612612565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126ac602983611e84565b91506126b782612652565b604082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f61273a602483611e84565b9150612745826126e0565b604082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6127a2601983611e84565b91506127ad8261276e565b602082019050919050565b5f6020820190508181035f8301526127cf81612796565b9050919050565b5f6127e082611f82565b91506127eb83611f82565b925082820190508082111561280357612802612163565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61283d601a83611e84565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611f82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128ad576128ac612163565b5b600182019050919050565b7f53656c6c6572206973206e6f74206275796572000000000000000000000000005f82015250565b5f6128ec601383611e84565b91506128f7826128b8565b602082019050919050565b5f6020820190508181035f830152612919816128e0565b9050919050565b5f61292a82611f82565b915061293583611f82565b925082820390508181111561294d5761294c612163565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506129bb81611f58565b92915050565b5f602082840312156129d6576129d5611f24565b5b5f6129e3848285016129ad565b91505092915050565b5f819050919050565b5f819050919050565b5f612a18612a13612a0e846129ec565b6129f5565b611f82565b9050919050565b612a28816129fe565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a6081611f47565b82525050565b5f612a718383612a57565b60208301905092915050565b5f602082019050919050565b5f612a9382612a2e565b612a9d8185612a38565b9350612aa883612a48565b805f5b83811015612ad8578151612abf8882612a66565b9750612aca83612a7d565b925050600181019050612aab565b5085935050505092915050565b5f60a082019050612af85f830188612026565b612b056020830187612a1f565b8181036040830152612b178186612a89565b9050612b2660608301856120fd565b612b336080830184612026565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b7482611f82565b9150612b7f83611f82565b925082612b8f57612b8e612b3d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bf4602183611e84565b9150612bff82612b9a565b604082019050919050565b5f6020820190508181035f830152612c2181612be8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c5c601b83611e84565b9150612c6782612c28565b602082019050919050565b5f6020820190508181035f830152612c8981612c50565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204dc1e072e3d60875482eb8a9a0349f61577bb3d20fcbea0c50a40895462dfadb64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb146103af578063bf474bed146103eb578063c876d0b914610415578063c9567bf91461043f578063dd62ed3e1461045557610129565b8063751039fc146102f15780637d1db4a5146103075780638da5cb5b146103315780638f9a55c01461035b57806395d89b411461038557610129565b8063313ce567116100e6578063313ce567146102235780633bbac5791461024d57806351bc3c851461028957806370a082311461029f578063715018a6146102db57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610491565b60405161014e9190611f04565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190611fb5565b6104ce565b60405161018a919061200d565b60405180910390f35b34801561019e575f80fd5b506101a76104eb565b6040516101b49190612035565b60405180910390f35b3480156101c8575f80fd5b506101d16104f1565b6040516101de9190612035565b60405180910390f35b3480156101f2575f80fd5b5061020d6004803603810190610208919061204e565b610517565b60405161021a919061200d565b60405180910390f35b34801561022e575f80fd5b506102376105eb565b60405161024491906120b9565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e91906120d2565b6105f3565b604051610280919061200d565b60405180910390f35b348015610294575f80fd5b5061029d610645565b005b3480156102aa575f80fd5b506102c560048036038101906102c091906120d2565b6106dd565b6040516102d29190612035565b60405180910390f35b3480156102e6575f80fd5b506102ef610723565b005b3480156102fc575f80fd5b50610305610871565b005b348015610312575f80fd5b5061031b6109c2565b6040516103289190612035565b60405180910390f35b34801561033c575f80fd5b506103456109c8565b604051610352919061210c565b60405180910390f35b348015610366575f80fd5b5061036f6109ef565b60405161037c9190612035565b60405180910390f35b348015610390575f80fd5b506103996109f5565b6040516103a69190611f04565b60405180910390f35b3480156103ba575f80fd5b506103d560048036038101906103d09190611fb5565b610a32565b6040516103e2919061200d565b60405180910390f35b3480156103f6575f80fd5b506103ff610a4f565b60405161040c9190612035565b60405180910390f35b348015610420575f80fd5b50610429610a55565b604051610436919061200d565b60405180910390f35b34801561044a575f80fd5b50610453610a67565b005b348015610460575f80fd5b5061047b60048036038101906104769190612125565b610b83565b6040516104889190612035565b60405180910390f35b60606040518060400160405280601481526020017f4943452d536e6f776d616e20436c617373696320000000000000000000000000815250905090565b5f6104e16104da610c05565b8484610c0c565b6001905092915050565b60135481565b5f6009600a61050091906122bf565b6603287092778e386105129190612309565b905090565b5f610523848484610dcf565b6105e08461052f610c05565b6105db85604051806060016040528060288152602001612c916028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610592610c05565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119389092919063ffffffff16565b610c0c565b600190509392505050565b5f6009905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610686610c05565b73ffffffffffffffffffffffffffffffffffffffff16146106a5575f80fd5b5f6106af306106dd565b90505f8111156106c3576106c28161199a565b5b5f4790505f8111156106d9576106d881611c21565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ae90612394565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610879610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fc90612394565b60405180910390fd5b6009600a61091391906122bf565b6603287092778e386109259190612309565b6010819055506009600a61093991906122bf565b6603287092778e3861094b9190612309565b6011819055505f60075f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61099991906122bf565b6603287092778e386109ab9190612309565b6040516109b89190612035565b60405180910390a1565b60105481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600881526020017f4943452d534e4f57000000000000000000000000000000000000000000000000815250905090565b5f610a45610a3e610c05565b8484610dcf565b6001905092915050565b60125481565b60075f9054906101000a900460ff1681565b610a6f610c05565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af290612394565b60405180910390fd5b601560149054906101000a900460ff1615610b4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b42906123fc565b60405180910390fd5b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c719061248a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf90612518565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc29190612035565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906125a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea290612634565b60405180910390fd5b5f8111610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee4906126c2565b60405180910390fd5b5f610ef66109c8565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610f645750610f346109c8565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116885760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611007575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61100f575f80fd5b60075f9054906101000a900460ff16156111955760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156110cd575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611194574360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114890612750565b60405180910390fd5b4360065f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561123e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611291575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113bf576010548211156112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d2906127b8565b60405180910390fd5b601154826112e8856106dd565b6112f291906127d6565b1115611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a90612853565b60405180910390fd5b600e54600f5410156113525761134883611c8a565b15611351575f80fd5b5b600f5f81548092919061136490612871565b9190505550600160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b6113fb60646113ed600c54600f54116113da576008546113de565b600a545b85611c9b90919063ffffffff16565b611d1290919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561148557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a5576010548211156114cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c6906127b8565b60405180910390fd5b61150b60646114fd600d54600f54116114ea576009546114ee565b600b545b85611c9b90919063ffffffff16565b611d1290919063ffffffff16565b9050600e54600f541180611565575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612902565b60405180910390fd5b5b5f6115af306106dd565b905060158054906101000a900460ff16158015611618575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116305750601560169054906101000a900460ff165b801561163d575060125481115b801561164c5750600e54600f54115b156116865761166e6116698461166484601354611d5b565b611d5b565b61199a565b5f4790505f8111156116845761168347611c21565b5b505b505b5f811115611787576116e08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161177e9190612035565b60405180910390a35b6117d78260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061187a61182e8284611dd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61191d8486611dd090919063ffffffff16565b60405161192a9190612035565b60405180910390a350505050565b5f83831115829061197f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119769190611f04565b60405180910390fd5b505f838561198d9190612920565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f810315611c0557601560149054906101000a900460ff1615611c05575f600267ffffffffffffffff8111156119ed576119ec612953565b5b604051908082528060200260200182016040528015611a1b5781602001602082028036833780820191505090505b50905030815f81518110611a3257611a31612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afa91906129c1565b81600181518110611b0e57611b0d612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b743060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c0c565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611bd6959493929190612ae5565b5f604051808303815f87803b158015611bed575f80fd5b505af1158015611bff573d5f803e3d5ffd5b50505050505b5f6015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611c86573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303611cab575f9050611d0c565b5f8284611cb89190612309565b9050828482611cc79190612b6a565b14611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe90612c0a565b60405180910390fd5b809150505b92915050565b5f611d5383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e19565b905092915050565b5f818311611d695782611d6b565b815b905092915050565b5f808284611d8191906127d6565b905083811015611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90612c72565b60405180910390fd5b8091505092915050565b5f611e1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b5f8083118290611e5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e569190611f04565b60405180910390fd5b505f8385611e6d9190612b6a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611eb1578082015181840152602081019050611e96565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611ed682611e7a565b611ee08185611e84565b9350611ef0818560208601611e94565b611ef981611ebc565b840191505092915050565b5f6020820190508181035f830152611f1c8184611ecc565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f5182611f28565b9050919050565b611f6181611f47565b8114611f6b575f80fd5b50565b5f81359050611f7c81611f58565b92915050565b5f819050919050565b611f9481611f82565b8114611f9e575f80fd5b50565b5f81359050611faf81611f8b565b92915050565b5f8060408385031215611fcb57611fca611f24565b5b5f611fd885828601611f6e565b9250506020611fe985828601611fa1565b9150509250929050565b5f8115159050919050565b61200781611ff3565b82525050565b5f6020820190506120205f830184611ffe565b92915050565b61202f81611f82565b82525050565b5f6020820190506120485f830184612026565b92915050565b5f805f6060848603121561206557612064611f24565b5b5f61207286828701611f6e565b935050602061208386828701611f6e565b925050604061209486828701611fa1565b9150509250925092565b5f60ff82169050919050565b6120b38161209e565b82525050565b5f6020820190506120cc5f8301846120aa565b92915050565b5f602082840312156120e7576120e6611f24565b5b5f6120f484828501611f6e565b91505092915050565b61210681611f47565b82525050565b5f60208201905061211f5f8301846120fd565b92915050565b5f806040838503121561213b5761213a611f24565b5b5f61214885828601611f6e565b925050602061215985828601611f6e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121e5578086048111156121c1576121c0612163565b5b60018516156121d05780820291505b80810290506121de85612190565b94506121a5565b94509492505050565b5f826121fd57600190506122b8565b8161220a575f90506122b8565b8160018114612220576002811461222a57612259565b60019150506122b8565b60ff84111561223c5761223b612163565b5b8360020a91508482111561225357612252612163565b5b506122b8565b5060208310610133831016604e8410600b841016171561228e5782820a90508381111561228957612288612163565b5b6122b8565b61229b848484600161219c565b925090508184048111156122b2576122b1612163565b5b81810290505b9392505050565b5f6122c982611f82565b91506122d48361209e565b92506123017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121ee565b905092915050565b5f61231382611f82565b915061231e83611f82565b925082820261232c81611f82565b9150828204841483151761234357612342612163565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61237e602083611e84565b91506123898261234a565b602082019050919050565b5f6020820190508181035f8301526123ab81612372565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6123e6601783611e84565b91506123f1826123b2565b602082019050919050565b5f6020820190508181035f830152612413816123da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612474602483611e84565b915061247f8261241a565b604082019050919050565b5f6020820190508181035f8301526124a181612468565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612502602283611e84565b915061250d826124a8565b604082019050919050565b5f6020820190508181035f83015261252f816124f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611e84565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61261e602383611e84565b9150612629826125c4565b604082019050919050565b5f6020820190508181035f83015261264b81612612565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6126ac602983611e84565b91506126b782612652565b604082019050919050565b5f6020820190508181035f8301526126d9816126a0565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f61273a602483611e84565b9150612745826126e0565b604082019050919050565b5f6020820190508181035f8301526127678161272e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6127a2601983611e84565b91506127ad8261276e565b602082019050919050565b5f6020820190508181035f8301526127cf81612796565b9050919050565b5f6127e082611f82565b91506127eb83611f82565b925082820190508082111561280357612802612163565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61283d601a83611e84565b915061284882612809565b602082019050919050565b5f6020820190508181035f83015261286a81612831565b9050919050565b5f61287b82611f82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128ad576128ac612163565b5b600182019050919050565b7f53656c6c6572206973206e6f74206275796572000000000000000000000000005f82015250565b5f6128ec601383611e84565b91506128f7826128b8565b602082019050919050565b5f6020820190508181035f830152612919816128e0565b9050919050565b5f61292a82611f82565b915061293583611f82565b925082820390508181111561294d5761294c612163565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506129bb81611f58565b92915050565b5f602082840312156129d6576129d5611f24565b5b5f6129e3848285016129ad565b91505092915050565b5f819050919050565b5f819050919050565b5f612a18612a13612a0e846129ec565b6129f5565b611f82565b9050919050565b612a28816129fe565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a6081611f47565b82525050565b5f612a718383612a57565b60208301905092915050565b5f602082019050919050565b5f612a9382612a2e565b612a9d8185612a38565b9350612aa883612a48565b805f5b83811015612ad8578151612abf8882612a66565b9750612aca83612a7d565b925050600181019050612aab565b5085935050505092915050565b5f60a082019050612af85f830188612026565b612b056020830187612a1f565b8181036040830152612b178186612a89565b9050612b2660608301856120fd565b612b336080830184612026565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b7482611f82565b9150612b7f83611f82565b925082612b8f57612b8e612b3d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bf4602183611e84565b9150612bff82612b9a565b604082019050919050565b5f6020820190508181035f830152612c2181612be8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612c5c601b83611e84565b9150612c6782612c28565b602082019050919050565b5f6020820190508181035f830152612c8981612c50565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204dc1e072e3d60875482eb8a9a0349f61577bb3d20fcbea0c50a40895462dfadb64736f6c63430008140033

Deployed Bytecode Sourcemap

3542:8481:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5882:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6715:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4799:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6159:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6884:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6068:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11652:348;;;;;;;;;;;;;:::i;:::-;;6262:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2623:148;;;;;;;;;;;;;:::i;:::-;;10839:196;;;;;;;;;;;;;:::i;:::-;;4626:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2409:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4683:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5973:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6389:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4740:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3977:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11234:170;;;;;;;;;;;;;:::i;:::-;;6564:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5882:83;5919:13;5952:5;;;;;;;;;;;;;;;;;5945:12;;5882:83;:::o;6715:161::-;6790:4;6807:39;6816:12;:10;:12::i;:::-;6830:7;6839:6;6807:8;:39::i;:::-;6864:4;6857:11;;6715:161;;;;:::o;4799:47::-;;;;:::o;6159:95::-;6212:7;4419:1;4480:2;:13;;;;:::i;:::-;4462:15;:31;;;;:::i;:::-;6232:14;;6159:95;:::o;6884:313::-;6982:4;6999:36;7009:6;7017:9;7028:6;6999:9;:36::i;:::-;7046:121;7055:6;7063:12;:10;:12::i;:::-;7077:89;7115:6;7077:89;;;;;;;;;;;;;;;;;:11;:19;7089:6;7077:19;;;;;;;;;;;;;;;:33;7097:12;:10;:12::i;:::-;7077:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7046:8;:121::i;:::-;7185:4;7178:11;;6884:313;;;;;:::o;6068:83::-;6109:5;4419:1;6127:16;;6068:83;:::o;11143:::-;11190:4;11211;:7;11216:1;11211:7;;;;;;;;;;;;;;;;;;;;;;;;;11204:14;;11143:83;;;:::o;11652:348::-;11716:10;;;;;;;;;;;11702:24;;:12;:10;:12::i;:::-;:24;;;11694:33;;;;;;11738:20;11759:24;11777:4;11759:9;:24::i;:::-;11738:45;;11810:1;11797:12;:14;11794:73;;;11825:30;11842:12;11825:16;:30::i;:::-;11794:73;11877:18;11896:21;11877:40;;11942:1;11931:10;:12;11928:65;;;11957:24;11970:10;11957:12;:24::i;:::-;11928:65;11683:317;;11652:348::o;6262:119::-;6328:7;6355:9;:18;6365:7;6355:18;;;;;;;;;;;;;;;;6348:25;;6262:119;;;:::o;2623:148::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2730:1:::1;2693:40;;2714:6;::::0;::::1;;;;;;;;2693:40;;;;;;;;;;;;2761:1;2744:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2623:148::o:0;10839:196::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4419:1:::1;4480:2;:13;;;;:::i;:::-;4462:15;:31;;;;:::i;:::-;10892:12;:22;;;;4419:1;4480:2;:13;;;;:::i;:::-;4462:15;:31;;;;:::i;:::-;10925:14;:22;;;;10979:5;10958:20;;:26;;;;;;;;;;;;;;;;;;11000:27;4419:1;4480:2;:13;;;;:::i;:::-;4462:15;:31;;;;:::i;:::-;11000:27;;;;;;:::i;:::-;;;;;;;;10839:196::o:0;4626:50::-;;;;:::o;2409:79::-;2447:7;2474:6;;;;;;;;;;;2467:13;;2409:79;:::o;4683:50::-;;;;:::o;5973:87::-;6012:13;6045:7;;;;;;;;;;;;;;;;;6038:14;;5973:87;:::o;6389:167::-;6467:4;6484:42;6494:12;:10;:12::i;:::-;6508:9;6519:6;6484:9;:42::i;:::-;6544:4;6537:11;;6389:167;;;;:::o;4740:52::-;;;;:::o;3977:40::-;;;;;;;;;;;;;:::o;11234:170::-;2546:12;:10;:12::i;:::-;2536:22;;:6;;;;;;;;;;:22;;;2528:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11298:11:::1;;;;;;;;;;;11297:12;11289:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11363:4;11349:11;;:18;;;;;;;;;;;;;;;;;;11392:4;11378:11;;:18;;;;;;;;;;;;;;;;;;11234:170::o:0;6564:143::-;6645:7;6672:11;:18;6684:5;6672:18;;;;;;;;;;;;;;;:27;6691:7;6672:27;;;;;;;;;;;;;;;;6665:34;;6564:143;;;;:::o;164:98::-;217:7;244:10;237:17;;164:98;:::o;7205:335::-;7315:1;7298:19;;:5;:19;;;7290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7396:1;7377:21;;:7;:21;;;7369:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7478:6;7448:11;:18;7460:5;7448:18;;;;;;;;;;;;;;;:27;7467:7;7448:27;;;;;;;;;;;;;;;:36;;;;7516:7;7500:32;;7509:5;7500:32;;;7525:6;7500:32;;;;;;:::i;:::-;;;;;;;;7205:335;;;:::o;7548:2612::-;7652:1;7636:18;;:4;:18;;;7628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7729:1;7715:16;;:2;:16;;;7707:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7799:1;7790:6;:10;7782:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7857:17;7899:7;:5;:7::i;:::-;7891:15;;:4;:15;;;;:32;;;;;7916:7;:5;:7::i;:::-;7910:13;;:2;:13;;;;7891:32;7887:1917;;;7949:4;:10;7954:4;7949:10;;;;;;;;;;;;;;;;;;;;;;;;;7948:11;:24;;;;;7964:4;:8;7969:2;7964:8;;;;;;;;;;;;;;;;;;;;;;;;;7963:9;7948:24;7940:33;;;;;;7994:20;;;;;;;;;;;7990:346;;;8053:15;;;;;;;;;;;8039:30;;:2;:30;;;;:62;;;;;8087:13;;;;;;;;;;;8073:28;;:2;:28;;;;8039:62;8035:286;;;8174:12;8132:28;:39;8161:9;8132:39;;;;;;;;;;;;;;;;:54;8124:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8289:12;8247:28;:39;8276:9;8247:39;;;;;;;;;;;;;;;:54;;;;8035:286;7990:346;8364:13;;;;;;;;;;;8356:21;;:4;:21;;;:55;;;;;8395:15;;;;;;;;;;;8381:30;;:2;:30;;;;8356:55;:83;;;;;8417:18;:22;8436:2;8417:22;;;;;;;;;;;;;;;;;;;;;;;;;8415:24;8356:83;8352:465;;;8479:12;;8469:6;:22;;8461:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8574:14;;8564:6;8548:13;8558:2;8548:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8540:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8651:18;;8641:9;;:28;8638:97;;;8700:14;8711:2;8700:10;:14::i;:::-;8699:15;8691:24;;;;;;8638:97;8753:9;;:11;;;;;;;;;:::i;:::-;;;;;;8797:4;8783:9;:13;8793:2;8783:13;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;8352:465;8847:76;8919:3;8847:67;8869:15;;8859:9;;:25;8858:55;;8899:14;;8858:55;;;8886:12;;8858:55;8847:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8835:88;;8947:13;;;;;;;;;;;8941:19;;:2;:19;;;:43;;;;;8979:4;8964:20;;:4;:20;;;;8941:43;8938:350;;;9023:12;;9013:6;:22;;9005:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9096:79;9171:3;9096:70;9118:16;;9108:9;;:26;9107:58;;9150:15;;9107:58;;;9136:13;;9107:58;9096:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9084:91;;9212:18;;9202:9;;:28;:47;;;;9234:9;:15;9244:4;9234:15;;;;;;;;;;;;;;;;;;;;;;;;;9202:47;9194:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8938:350;9304:28;9335:24;9353:4;9335:9;:24::i;:::-;9304:55;;9379:6;;;;;;;;;;9378:7;:30;;;;;9395:13;;;;;;;;;;;9389:19;;:2;:19;;;9378:30;:45;;;;;9412:11;;;;;;;;;;;9378:45;:87;;;;;9448:17;;9427:20;:38;9378:87;:119;;;;;9479:18;;9469:9;;:28;9378:119;9374:419;;;9518:67;9535:49;9539:6;9546:37;9550:20;9571:11;;9546:3;:37::i;:::-;9535:3;:49::i;:::-;9518:16;:67::i;:::-;9604:26;9633:21;9604:50;;9697:1;9676:18;:22;9673:105;;;9723:35;9736:21;9723:12;:35::i;:::-;9673:105;9499:294;9374:419;7925:1879;7887:1917;9829:1;9819:9;:11;9816:161;;;9869:39;9898:9;9869;:24;9887:4;9869:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9844:9;:24;9862:4;9844:24;;;;;;;;;;;;;;;:64;;;;9949:4;9926:39;;9935:4;9926:39;;;9955:9;9926:39;;;;;;:::i;:::-;;;;;;;;9816:161;10003:27;10023:6;10003:9;:15;10013:4;10003:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9987:9;:15;9997:4;9987:15;;;;;;;;;;;;;;;:43;;;;10055:40;10073:21;10084:9;10073:6;:10;;:21;;;;:::i;:::-;10055:9;:13;10065:2;10055:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10041:9;:13;10051:2;10041:13;;;;;;;;;;;;;;;:54;;;;10126:2;10111:41;;10120:4;10111:41;;;10130:21;10141:9;10130:6;:10;;:21;;;;:::i;:::-;10111:41;;;;;;:::i;:::-;;;;;;;;7617:2543;7548:2612;;;:::o;1301:190::-;1387:7;1420:1;1415;:6;;1423:12;1407:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1447:9;1463:1;1459;:5;;;;:::i;:::-;1447:17;;1482:1;1475:8;;;1301:190;;;;;:::o;10276:555::-;5137:4;5128:6;;:13;;;;;;;;;;;;;;;;;;10370:1:::1;10357:11;:14:::0;10354:27;10373:7:::1;10354:27;10395:11;;;;;;;;;;;10391:25:::0;10408:7:::1;10391:25;10426:21;10464:1;10450:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10426:40;;10495:4;10477;10482:1;10477:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10521:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10511:4;10516:1;10511:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10554:62;10571:4;10586:15;;;;;;;;;;;10604:11;10554:8;:62::i;:::-;10627:15;;;;;;;;;;;:66;;;10708:11;10734:1;10750:4;10777;10797:15;10627:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10343:488;5152:1;5173:5:::0;5164:6;;:14;;;;;;;;;;;;;;;;;;10276:555;:::o;11043:92::-;11100:10;;;;;;;;;;;:19;;:27;11120:6;11100:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11043:92;:::o;11449:195::-;11508:4;11525:12;11592:7;11580:20;11572:28;;11635:1;11628:4;:8;11621:15;;;11449:195;;;:::o;1499:246::-;1557:7;1586:1;1581;:6;1577:47;;1611:1;1604:8;;;;1577:47;1634:9;1650:1;1646;:5;;;;:::i;:::-;1634:17;;1679:1;1674;1670;:5;;;;:::i;:::-;:10;1662:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:1;1729:8;;;1499:246;;;;;:::o;1753:132::-;1811:7;1838:39;1842:1;1845;1838:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1831:46;;1753:132;;;;:::o;10170:98::-;10227:7;10254:1;10252;:3;10251:9;;10259:1;10251:9;;;10257:1;10251:9;10244:16;;10170:98;;;;:::o;970:179::-;1028:7;1048:9;1064:1;1060;:5;;;;:::i;:::-;1048:17;;1089:1;1084;:6;;1076:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1140:1;1133:8;;;970:179;;;;:::o;1157:136::-;1215:7;1242:43;1246:1;1249;1242:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1235:50;;1157:136;;;;:::o;1893:189::-;1979:7;2011:1;2007;:5;2014:12;1999:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2038:9;2054:1;2050;:5;;;;:::i;:::-;2038:17;;2073:1;2066:8;;;1893: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;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:173::-;10075:25;10071:1;10063:6;10059:14;10052:49;9935:173;:::o;10114:366::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:419::-;10652:4;10690:2;10679:9;10675:18;10667:26;;10739:9;10733:4;10729:20;10725:1;10714:9;10710:17;10703:47;10767:131;10893:4;10767:131;:::i;:::-;10759:139;;10486:419;;;:::o;10911:223::-;11051:34;11047:1;11039:6;11035:14;11028:58;11120:6;11115:2;11107:6;11103:15;11096:31;10911:223;:::o;11140:366::-;11282:3;11303:67;11367:2;11362:3;11303:67;:::i;:::-;11296:74;;11379:93;11468:3;11379:93;:::i;:::-;11497:2;11492:3;11488:12;11481:19;;11140:366;;;:::o;11512:419::-;11678:4;11716:2;11705:9;11701:18;11693:26;;11765:9;11759:4;11755:20;11751:1;11740:9;11736:17;11729:47;11793:131;11919:4;11793:131;:::i;:::-;11785:139;;11512:419;;;:::o;11937:221::-;12077:34;12073:1;12065:6;12061:14;12054:58;12146:4;12141:2;12133:6;12129:15;12122:29;11937:221;:::o;12164:366::-;12306:3;12327:67;12391:2;12386:3;12327:67;:::i;:::-;12320:74;;12403:93;12492:3;12403:93;:::i;:::-;12521:2;12516:3;12512:12;12505:19;;12164:366;;;:::o;12536:419::-;12702:4;12740:2;12729:9;12725:18;12717:26;;12789:9;12783:4;12779:20;12775:1;12764:9;12760:17;12753:47;12817:131;12943:4;12817:131;:::i;:::-;12809:139;;12536:419;;;:::o;12961:224::-;13101:34;13097:1;13089:6;13085:14;13078:58;13170:7;13165:2;13157:6;13153:15;13146:32;12961:224;:::o;13191:366::-;13333:3;13354:67;13418:2;13413:3;13354:67;:::i;:::-;13347:74;;13430:93;13519:3;13430:93;:::i;:::-;13548:2;13543:3;13539:12;13532:19;;13191:366;;;:::o;13563:419::-;13729:4;13767:2;13756:9;13752:18;13744:26;;13816:9;13810:4;13806:20;13802:1;13791:9;13787:17;13780:47;13844:131;13970:4;13844:131;:::i;:::-;13836:139;;13563:419;;;:::o;13988:222::-;14128:34;14124:1;14116:6;14112:14;14105:58;14197:5;14192:2;14184:6;14180:15;14173:30;13988:222;:::o;14216:366::-;14358:3;14379:67;14443:2;14438:3;14379:67;:::i;:::-;14372:74;;14455:93;14544:3;14455:93;:::i;:::-;14573:2;14568:3;14564:12;14557:19;;14216:366;;;:::o;14588:419::-;14754:4;14792:2;14781:9;14777:18;14769:26;;14841:9;14835:4;14831:20;14827:1;14816:9;14812:17;14805:47;14869:131;14995:4;14869:131;:::i;:::-;14861:139;;14588:419;;;:::o;15013:228::-;15153:34;15149:1;15141:6;15137:14;15130:58;15222:11;15217:2;15209:6;15205:15;15198:36;15013:228;:::o;15247:366::-;15389:3;15410:67;15474:2;15469:3;15410:67;:::i;:::-;15403:74;;15486:93;15575:3;15486:93;:::i;:::-;15604:2;15599:3;15595:12;15588:19;;15247:366;;;:::o;15619:419::-;15785:4;15823:2;15812:9;15808:18;15800:26;;15872:9;15866:4;15862:20;15858:1;15847:9;15843:17;15836:47;15900:131;16026:4;15900:131;:::i;:::-;15892:139;;15619:419;;;:::o;16044:223::-;16184:34;16180:1;16172:6;16168:14;16161:58;16253:6;16248:2;16240:6;16236:15;16229:31;16044:223;:::o;16273:366::-;16415:3;16436:67;16500:2;16495:3;16436:67;:::i;:::-;16429:74;;16512:93;16601:3;16512:93;:::i;:::-;16630:2;16625:3;16621:12;16614:19;;16273:366;;;:::o;16645:419::-;16811:4;16849:2;16838:9;16834:18;16826:26;;16898:9;16892:4;16888:20;16884:1;16873:9;16869:17;16862:47;16926:131;17052:4;16926:131;:::i;:::-;16918:139;;16645:419;;;:::o;17070:175::-;17210:27;17206:1;17198:6;17194:14;17187:51;17070:175;:::o;17251:366::-;17393:3;17414:67;17478:2;17473:3;17414:67;:::i;:::-;17407:74;;17490:93;17579:3;17490:93;:::i;:::-;17608:2;17603:3;17599:12;17592:19;;17251:366;;;:::o;17623:419::-;17789:4;17827:2;17816:9;17812:18;17804:26;;17876:9;17870:4;17866:20;17862:1;17851:9;17847:17;17840:47;17904:131;18030:4;17904:131;:::i;:::-;17896:139;;17623:419;;;:::o;18048:191::-;18088:3;18107:20;18125:1;18107:20;:::i;:::-;18102:25;;18141:20;18159:1;18141:20;:::i;:::-;18136:25;;18184:1;18181;18177:9;18170:16;;18205:3;18202:1;18199:10;18196:36;;;18212:18;;:::i;:::-;18196:36;18048:191;;;;:::o;18245:176::-;18385:28;18381:1;18373:6;18369:14;18362:52;18245:176;:::o;18427:366::-;18569:3;18590:67;18654:2;18649:3;18590:67;:::i;:::-;18583:74;;18666:93;18755:3;18666:93;:::i;:::-;18784:2;18779:3;18775:12;18768:19;;18427:366;;;:::o;18799:419::-;18965:4;19003:2;18992:9;18988:18;18980:26;;19052:9;19046:4;19042:20;19038:1;19027:9;19023:17;19016:47;19080:131;19206:4;19080:131;:::i;:::-;19072:139;;18799:419;;;:::o;19224:233::-;19263:3;19286:24;19304:5;19286:24;:::i;:::-;19277:33;;19332:66;19325:5;19322:77;19319:103;;19402:18;;:::i;:::-;19319:103;19449:1;19442:5;19438:13;19431:20;;19224:233;;;:::o;19463:169::-;19603:21;19599:1;19591:6;19587:14;19580:45;19463:169;:::o;19638:366::-;19780:3;19801:67;19865:2;19860:3;19801:67;:::i;:::-;19794:74;;19877:93;19966:3;19877:93;:::i;:::-;19995:2;19990:3;19986:12;19979:19;;19638:366;;;:::o;20010:419::-;20176:4;20214:2;20203:9;20199:18;20191:26;;20263:9;20257:4;20253:20;20249:1;20238:9;20234:17;20227:47;20291:131;20417:4;20291:131;:::i;:::-;20283:139;;20010:419;;;:::o;20435:194::-;20475:4;20495:20;20513:1;20495:20;:::i;:::-;20490:25;;20529:20;20547:1;20529:20;:::i;:::-;20524:25;;20573:1;20570;20566:9;20558:17;;20597:1;20591:4;20588:11;20585:37;;;20602:18;;:::i;:::-;20585:37;20435:194;;;;:::o;20635:180::-;20683:77;20680:1;20673:88;20780:4;20777:1;20770:15;20804:4;20801:1;20794:15;20821:180;20869:77;20866:1;20859:88;20966:4;20963:1;20956:15;20990:4;20987:1;20980:15;21007:143;21064:5;21095:6;21089:13;21080:22;;21111:33;21138:5;21111:33;:::i;:::-;21007:143;;;;:::o;21156:351::-;21226:6;21275:2;21263:9;21254:7;21250:23;21246:32;21243:119;;;21281:79;;:::i;:::-;21243:119;21401:1;21426:64;21482:7;21473:6;21462:9;21458:22;21426:64;:::i;:::-;21416:74;;21372:128;21156:351;;;;:::o;21513:85::-;21558:7;21587:5;21576:16;;21513:85;;;:::o;21604:60::-;21632:3;21653:5;21646:12;;21604:60;;;:::o;21670:158::-;21728:9;21761:61;21779:42;21788:32;21814:5;21788:32;:::i;:::-;21779:42;:::i;:::-;21761:61;:::i;:::-;21748:74;;21670:158;;;:::o;21834:147::-;21929:45;21968:5;21929:45;:::i;:::-;21924:3;21917:58;21834:147;;:::o;21987:114::-;22054:6;22088:5;22082:12;22072:22;;21987:114;;;:::o;22107:184::-;22206:11;22240:6;22235:3;22228:19;22280:4;22275:3;22271:14;22256:29;;22107:184;;;;:::o;22297:132::-;22364:4;22387:3;22379:11;;22417:4;22412:3;22408:14;22400:22;;22297:132;;;:::o;22435:108::-;22512:24;22530:5;22512:24;:::i;:::-;22507:3;22500:37;22435:108;;:::o;22549:179::-;22618:10;22639:46;22681:3;22673:6;22639:46;:::i;:::-;22717:4;22712:3;22708:14;22694:28;;22549:179;;;;:::o;22734:113::-;22804:4;22836;22831:3;22827:14;22819:22;;22734:113;;;:::o;22883:732::-;23002:3;23031:54;23079:5;23031:54;:::i;:::-;23101:86;23180:6;23175:3;23101:86;:::i;:::-;23094:93;;23211:56;23261:5;23211:56;:::i;:::-;23290:7;23321:1;23306:284;23331:6;23328:1;23325:13;23306:284;;;23407:6;23401:13;23434:63;23493:3;23478:13;23434:63;:::i;:::-;23427:70;;23520:60;23573:6;23520:60;:::i;:::-;23510:70;;23366:224;23353:1;23350;23346:9;23341:14;;23306:284;;;23310:14;23606:3;23599:10;;23007:608;;;22883:732;;;;:::o;23621:831::-;23884:4;23922:3;23911:9;23907:19;23899:27;;23936:71;24004:1;23993:9;23989:17;23980:6;23936:71;:::i;:::-;24017:80;24093:2;24082:9;24078:18;24069:6;24017:80;:::i;:::-;24144:9;24138:4;24134:20;24129:2;24118:9;24114:18;24107:48;24172:108;24275:4;24266:6;24172:108;:::i;:::-;24164:116;;24290:72;24358:2;24347:9;24343:18;24334:6;24290:72;:::i;:::-;24372:73;24440:3;24429:9;24425:19;24416:6;24372:73;:::i;:::-;23621:831;;;;;;;;:::o;24458:180::-;24506:77;24503:1;24496:88;24603:4;24600:1;24593:15;24627:4;24624:1;24617:15;24644:185;24684:1;24701:20;24719:1;24701:20;:::i;:::-;24696:25;;24735:20;24753:1;24735:20;:::i;:::-;24730:25;;24774:1;24764:35;;24779:18;;:::i;:::-;24764:35;24821:1;24818;24814:9;24809:14;;24644:185;;;;:::o;24835:220::-;24975:34;24971:1;24963:6;24959:14;24952:58;25044:3;25039:2;25031:6;25027:15;25020:28;24835:220;:::o;25061:366::-;25203:3;25224:67;25288:2;25283:3;25224:67;:::i;:::-;25217:74;;25300:93;25389:3;25300:93;:::i;:::-;25418:2;25413:3;25409:12;25402:19;;25061:366;;;:::o;25433:419::-;25599:4;25637:2;25626:9;25622:18;25614:26;;25686:9;25680:4;25676:20;25672:1;25661:9;25657:17;25650:47;25714:131;25840:4;25714:131;:::i;:::-;25706:139;;25433:419;;;:::o;25858:177::-;25998:29;25994:1;25986:6;25982:14;25975:53;25858:177;:::o;26041:366::-;26183:3;26204:67;26268:2;26263:3;26204:67;:::i;:::-;26197:74;;26280:93;26369:3;26280:93;:::i;:::-;26398:2;26393:3;26389:12;26382:19;;26041:366;;;:::o;26413:419::-;26579:4;26617:2;26606:9;26602:18;26594:26;;26666:9;26660:4;26656:20;26652:1;26641:9;26637:17;26630:47;26694:131;26820:4;26694:131;:::i;:::-;26686:139;;26413:419;;;:::o

Swarm Source

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