ETH Price: $3,074.18 (+0.83%)
Gas: 4 Gwei

Token

春晚交易员卡皮巴拉 (capybara)
 

Overview

Max Total Supply

20,240,209 capybara

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
4206969420.eth
Balance
350,150.260863356364107561 capybara

Value
$0.00
0xde01dfafdafb2f6bfe4e1aaaddec8dfd69acecaf
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:
token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-09
*/

// SPDX-License-Identifier: NONE


//大家好,我是来自东北的卡皮巴拉,在这里给大伙拜年了啦!
// tg:https://t.me/capybaravip
// web:https://capybaraeth.vip/
// twitter:https://twitter.com/capybaraethvip


pragma solidity 0.8.19;

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 token 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 bots;
    address payable private _taxWallet;
    uint8 private _BuyTax=5;
    uint8 private _SellTax=5;

    uint256 private _totalSupply=20240209;
    uint8 private constant _decimals = 18;
    uint256 private _tTotal = _totalSupply * 10**_decimals;
    string private constant _name = unicode"春晚交易员卡皮巴拉";
    string private constant _symbol = unicode"capybara";
    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal;
    uint256 public _taxSwapThreshold=_tTotal.div(1000);
    uint256 public _maxTaxSwap=_tTotal.div(200);

    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;

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

    function setTax(uint8 _newBuyTax,uint8 _newSellTax) public onlyOwner{
        _SellTax=_newSellTax;
        _BuyTax=_newBuyTax;
    }

    function getTax() public view returns(uint8 Buytax,uint8 Selltax)
    {
        return (_BuyTax, _SellTax);
    }


    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 view 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 (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul(_BuyTax).div(100);
            }else if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_SellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                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 sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

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

    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _maxTxAmount = _tTotal.div(5);
        _maxWalletSize=_tTotal.div(5);
        emit MaxTxAmountUpdated(_tTotal);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    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);
        }
    }
    
    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"botCheck","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTax","outputs":[{"internalType":"uint8","name":"Buytax","type":"uint8"},{"internalType":"uint8","name":"Selltax","type":"uint8"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newBuyTax","type":"uint8"},{"internalType":"uint8","name":"_newSellTax","type":"uint8"}],"name":"setTax","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260058060146101000a81548160ff021916908360ff16021790555060058060156101000a81548160ff021916908360ff160217905550630134d7516006556012600a6200005291906200067d565b600654620000619190620006ce565b600755600754600855600754600955620000896103e8600754620003f860201b90919060201c565b600a55620000a460c8600754620003f860201b90919060201c565b600b556000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff021916908315150217905550348015620000ea57600080fd5b506000620000fd6200044a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ab6200044a60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460016000620002026200044a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002566200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003896200044a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600754604051620003ea91906200072a565b60405180910390a36200086c565b60006200044283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047b60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620004c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004bc9190620007e1565b60405180910390fd5b5060008385620004d6919062000834565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200057157808604811115620005495762000548620004e3565b5b6001851615620005595780820291505b8081029050620005698562000512565b945062000529565b94509492505050565b6000826200058c57600190506200065f565b816200059c57600090506200065f565b8160018114620005b55760028114620005c057620005f6565b60019150506200065f565b60ff841115620005d557620005d4620004e3565b5b8360020a915084821115620005ef57620005ee620004e3565b5b506200065f565b5060208310610133831016604e8410600b8410161715620006305782820a9050838111156200062a5762000629620004e3565b5b6200065f565b6200063f84848460016200051f565b92509050818404811115620006595762000658620004e3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200068a8262000666565b9150620006978362000670565b9250620006c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200057a565b905092915050565b6000620006db8262000666565b9150620006e88362000666565b9250828202620006f88162000666565b91508282048414831517620007125762000711620004e3565b5b5092915050565b620007248162000666565b82525050565b600060208201905062000741600083018462000719565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156200078357808201518184015260208101905062000766565b60008484015250505050565b6000601f19601f8301169050919050565b6000620007ad8262000747565b620007b9818562000752565b9350620007cb81856020860162000763565b620007d6816200078f565b840191505092915050565b60006020820190508181036000830152620007fd8184620007a0565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008418262000666565b91506200084e8362000666565b92508262000861576200086062000805565b5b828204905092915050565b61331f806200087c6000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9128ff01161006f578063a9128ff014610414578063bf474bed1461043d578063c7c4a4c914610468578063c9567bf9146104a5578063d34628cc146104bc578063dd62ed3e146104e557610140565b80637d1db4a51461032b5780638da5cb5b146103565780638f9a55c01461038157806395d89b41146103ac578063a9059cbb146103d757610140565b8063313ce567116100fd578063313ce5671461024057806331c2d8471461026b57806351bc3c851461029457806354b762a6146102ab57806370a08231146102d7578063715018a61461031457610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610522565b60405161016791906123c5565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061248f565b61055f565b6040516101a491906124ea565b60405180910390f35b3480156101b957600080fd5b506101c261057d565b6040516101cf9190612514565b60405180910390f35b3480156101e457600080fd5b506101ed610583565b6040516101fa9190612514565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061252f565b61058d565b60405161023791906124ea565b60405180910390f35b34801561024c57600080fd5b50610255610666565b604051610262919061259e565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612701565b61066f565b005b3480156102a057600080fd5b506102a9610799565b005b3480156102b757600080fd5b506102c0610835565b6040516102ce92919061274a565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612773565b610860565b60405161030b9190612514565b60405180910390f35b34801561032057600080fd5b506103296108a9565b005b34801561033757600080fd5b506103406109fc565b60405161034d9190612514565b60405180910390f35b34801561036257600080fd5b5061036b610a02565b60405161037891906127af565b60405180910390f35b34801561038d57600080fd5b50610396610a2b565b6040516103a39190612514565b60405180910390f35b3480156103b857600080fd5b506103c1610a31565b6040516103ce91906123c5565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f9919061248f565b610a6e565b60405161040b91906124ea565b60405180910390f35b34801561042057600080fd5b5061043b600480360381019061043691906127f6565b610a8c565b005b34801561044957600080fd5b50610452610b5b565b60405161045f9190612514565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190612773565b610b61565b60405161049c91906124ea565b60405180910390f35b3480156104b157600080fd5b506104ba610bb7565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612701565b611146565b005b3480156104f157600080fd5b5061050c60048036038101906105079190612836565b611270565b6040516105199190612514565b60405180910390f35b60606040518060400160405280601b81526020017fe698a5e6999ae4baa4e69893e59198e58da1e79aaee5b7b4e68b890000000000815250905090565b600061057361056c6112f7565b84846112ff565b6001905092915050565b600b5481565b6000600754905090565b600061059a8484846114c8565b61065b846105a66112f7565b610656856040518060600160405280602881526020016132c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061060c6112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de59092919063ffffffff16565b6112ff565b600190509392505050565b60006012905090565b6106776112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906128c2565b60405180910390fd5b60005b815181101561079557600060046000848481518110610729576107286128e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061078d90612940565b915050610707565b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107da6112f7565b73ffffffffffffffffffffffffffffffffffffffff16146107fa57600080fd5b600061080530610860565b9050600081106108195761081881611e49565b5b6000479050600081111561083157610830816120e1565b5b5050565b600080600560149054906101000a900460ff16600560159054906101000a900460ff16915091509091565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108b16112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610935906128c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600881526020017f6361707962617261000000000000000000000000000000000000000000000000815250905090565b6000610a82610a7b6112f7565b84846114c8565b6001905092915050565b610a946112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906128c2565b60405180910390fd5b80600560156101000a81548160ff021916908360ff16021790555081600560146101000a81548160ff021916908360ff1602179055505050565b600a5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bbf6112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c43906128c2565b60405180910390fd5b600d60149054906101000a900460ff1615610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c93906129d4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007546112ff565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db19190612a09565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612a09565b6040518363ffffffff1660e01b8152600401610e7b929190612a36565b6020604051808303816000875af1158015610e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebe9190612a09565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f4730610860565b600080610f52610a02565b426040518863ffffffff1660e01b8152600401610f7496959493929190612aa4565b60606040518083038185885af1158015610f92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb79190612b1a565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611059929190612b6d565b6020604051808303816000875af1158015611078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109c9190612bc2565b506110b3600560075461214d90919063ffffffff16565b6008819055506110cf600560075461214d90919063ffffffff16565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6007546040516111069190612514565b60405180910390a16001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b61114e6112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906128c2565b60405180910390fd5b60005b815181101561126c57600160046000848481518110611200576111ff6128e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061126490612940565b9150506111de565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590612c61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612cf3565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114bb9190612514565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90612d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d90612e17565b60405180910390fd5b600081116115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e090612ea9565b60405180910390fd5b60006115f3610a02565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116615750611631610a02565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b2857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561170a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61171357600080fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117be5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118145750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b75760085482111561185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590612f15565b60405180910390fd5b6009548261186b85610860565b6118759190612f35565b11156118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90612fb5565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561194057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119845761197d606461196f600560149054906101000a900460ff1660ff168561219790919063ffffffff16565b61214d90919063ffffffff16565b9050611a4e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a0d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a4d57611a4a6064611a3c600560159054906101000a900460ff1660ff168561219790919063ffffffff16565b61214d90919063ffffffff16565b90505b5b6000611a5930610860565b9050600d60159054906101000a900460ff16158015611ac55750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611add5750600d60169054906101000a900460ff165b8015611aea5750600a5481115b15611b2657611b0c611b0784611b0284600b54612211565b612211565b611e49565b60004790506000811115611b2457611b23476120e1565b5b505b505b6000811115611c2c57611b8381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c239190612514565b60405180910390a35b611c7e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d25611cd7828461228890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dca848661228890919063ffffffff16565b604051611dd79190612514565b60405180910390a350505050565b6000838311158290611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2491906123c5565b60405180910390fd5b5060008385611e3c9190612fd5565b9050809150509392505050565b6001600d60156101000a81548160ff02191690831515021790555060008103156120c357600d60149054906101000a900460ff16156120c3576000600267ffffffffffffffff811115611e9f57611e9e6125be565b5b604051908082528060200260200182016040528015611ecd5781602001602082028036833780820191505090505b5090503081600081518110611ee557611ee46128e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb09190612a09565b81600181518110611fc457611fc36128e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202b30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ff565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161208f9594939291906130c7565b600060405180830381600087803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b50505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612149573d6000803e3d6000fd5b5050565b600061218f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d2565b905092915050565b60008083036121a9576000905061220b565b600082846121b79190613121565b90508284826121c69190613192565b14612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd90613235565b60405180910390fd5b809150505b92915050565b60008183116122205782612222565b815b905092915050565b60008082846122399190612f35565b90508381101561227e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612275906132a1565b60405180910390fd5b8091505092915050565b60006122ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de5565b905092915050565b60008083118290612319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231091906123c5565b60405180910390fd5b50600083856123289190613192565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236f578082015181840152602081019050612354565b60008484015250505050565b6000601f19601f8301169050919050565b600061239782612335565b6123a18185612340565b93506123b1818560208601612351565b6123ba8161237b565b840191505092915050565b600060208201905081810360008301526123df818461238c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612426826123fb565b9050919050565b6124368161241b565b811461244157600080fd5b50565b6000813590506124538161242d565b92915050565b6000819050919050565b61246c81612459565b811461247757600080fd5b50565b60008135905061248981612463565b92915050565b600080604083850312156124a6576124a56123f1565b5b60006124b485828601612444565b92505060206124c58582860161247a565b9150509250929050565b60008115159050919050565b6124e4816124cf565b82525050565b60006020820190506124ff60008301846124db565b92915050565b61250e81612459565b82525050565b60006020820190506125296000830184612505565b92915050565b600080600060608486031215612548576125476123f1565b5b600061255686828701612444565b935050602061256786828701612444565b92505060406125788682870161247a565b9150509250925092565b600060ff82169050919050565b61259881612582565b82525050565b60006020820190506125b3600083018461258f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125f68261237b565b810181811067ffffffffffffffff82111715612615576126146125be565b5b80604052505050565b60006126286123e7565b905061263482826125ed565b919050565b600067ffffffffffffffff821115612654576126536125be565b5b602082029050602081019050919050565b600080fd5b600061267d61267884612639565b61261e565b905080838252602082019050602084028301858111156126a05761269f612665565b5b835b818110156126c957806126b58882612444565b8452602084019350506020810190506126a2565b5050509392505050565b600082601f8301126126e8576126e76125b9565b5b81356126f884826020860161266a565b91505092915050565b600060208284031215612717576127166123f1565b5b600082013567ffffffffffffffff811115612735576127346123f6565b5b612741848285016126d3565b91505092915050565b600060408201905061275f600083018561258f565b61276c602083018461258f565b9392505050565b600060208284031215612789576127886123f1565b5b600061279784828501612444565b91505092915050565b6127a98161241b565b82525050565b60006020820190506127c460008301846127a0565b92915050565b6127d381612582565b81146127de57600080fd5b50565b6000813590506127f0816127ca565b92915050565b6000806040838503121561280d5761280c6123f1565b5b600061281b858286016127e1565b925050602061282c858286016127e1565b9150509250929050565b6000806040838503121561284d5761284c6123f1565b5b600061285b85828601612444565b925050602061286c85828601612444565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ac602083612340565b91506128b782612876565b602082019050919050565b600060208201905081810360008301526128db8161289f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061294b82612459565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297d5761297c612911565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129be601783612340565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b600081519050612a038161242d565b92915050565b600060208284031215612a1f57612a1e6123f1565b5b6000612a2d848285016129f4565b91505092915050565b6000604082019050612a4b60008301856127a0565b612a5860208301846127a0565b9392505050565b6000819050919050565b6000819050919050565b6000612a8e612a89612a8484612a5f565b612a69565b612459565b9050919050565b612a9e81612a73565b82525050565b600060c082019050612ab960008301896127a0565b612ac66020830188612505565b612ad36040830187612a95565b612ae06060830186612a95565b612aed60808301856127a0565b612afa60a0830184612505565b979650505050505050565b600081519050612b1481612463565b92915050565b600080600060608486031215612b3357612b326123f1565b5b6000612b4186828701612b05565b9350506020612b5286828701612b05565b9250506040612b6386828701612b05565b9150509250925092565b6000604082019050612b8260008301856127a0565b612b8f6020830184612505565b9392505050565b612b9f816124cf565b8114612baa57600080fd5b50565b600081519050612bbc81612b96565b92915050565b600060208284031215612bd857612bd76123f1565b5b6000612be684828501612bad565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c4b602483612340565b9150612c5682612bef565b604082019050919050565b60006020820190508181036000830152612c7a81612c3e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdd602283612340565b9150612ce882612c81565b604082019050919050565b60006020820190508181036000830152612d0c81612cd0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d6f602583612340565b9150612d7a82612d13565b604082019050919050565b60006020820190508181036000830152612d9e81612d62565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e01602383612340565b9150612e0c82612da5565b604082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e93602983612340565b9150612e9e82612e37565b604082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eff601983612340565b9150612f0a82612ec9565b602082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b6000612f4082612459565b9150612f4b83612459565b9250828201905080821115612f6357612f62612911565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f9f601a83612340565b9150612faa82612f69565b602082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b6000612fe082612459565b9150612feb83612459565b925082820390508181111561300357613002612911565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61303e8161241b565b82525050565b60006130508383613035565b60208301905092915050565b6000602082019050919050565b600061307482613009565b61307e8185613014565b935061308983613025565b8060005b838110156130ba5781516130a18882613044565b97506130ac8361305c565b92505060018101905061308d565b5085935050505092915050565b600060a0820190506130dc6000830188612505565b6130e96020830187612a95565b81810360408301526130fb8186613069565b905061310a60608301856127a0565b6131176080830184612505565b9695505050505050565b600061312c82612459565b915061313783612459565b925082820261314581612459565b9150828204841483151761315c5761315b612911565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061319d82612459565b91506131a883612459565b9250826131b8576131b7613163565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061321f602183612340565b915061322a826131c3565b604082019050919050565b6000602082019050818103600083015261324e81613212565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061328b601b83612340565b915061329682613255565b602082019050919050565b600060208201905081810360008301526132ba8161327e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a711913fc2e3e19d693d8127c6ee554353031333ae2de19510c546a4dbe8d82d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a9128ff01161006f578063a9128ff014610414578063bf474bed1461043d578063c7c4a4c914610468578063c9567bf9146104a5578063d34628cc146104bc578063dd62ed3e146104e557610140565b80637d1db4a51461032b5780638da5cb5b146103565780638f9a55c01461038157806395d89b41146103ac578063a9059cbb146103d757610140565b8063313ce567116100fd578063313ce5671461024057806331c2d8471461026b57806351bc3c851461029457806354b762a6146102ab57806370a08231146102d7578063715018a61461031457610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610522565b60405161016791906123c5565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061248f565b61055f565b6040516101a491906124ea565b60405180910390f35b3480156101b957600080fd5b506101c261057d565b6040516101cf9190612514565b60405180910390f35b3480156101e457600080fd5b506101ed610583565b6040516101fa9190612514565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061252f565b61058d565b60405161023791906124ea565b60405180910390f35b34801561024c57600080fd5b50610255610666565b604051610262919061259e565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612701565b61066f565b005b3480156102a057600080fd5b506102a9610799565b005b3480156102b757600080fd5b506102c0610835565b6040516102ce92919061274a565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f99190612773565b610860565b60405161030b9190612514565b60405180910390f35b34801561032057600080fd5b506103296108a9565b005b34801561033757600080fd5b506103406109fc565b60405161034d9190612514565b60405180910390f35b34801561036257600080fd5b5061036b610a02565b60405161037891906127af565b60405180910390f35b34801561038d57600080fd5b50610396610a2b565b6040516103a39190612514565b60405180910390f35b3480156103b857600080fd5b506103c1610a31565b6040516103ce91906123c5565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f9919061248f565b610a6e565b60405161040b91906124ea565b60405180910390f35b34801561042057600080fd5b5061043b600480360381019061043691906127f6565b610a8c565b005b34801561044957600080fd5b50610452610b5b565b60405161045f9190612514565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a9190612773565b610b61565b60405161049c91906124ea565b60405180910390f35b3480156104b157600080fd5b506104ba610bb7565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612701565b611146565b005b3480156104f157600080fd5b5061050c60048036038101906105079190612836565b611270565b6040516105199190612514565b60405180910390f35b60606040518060400160405280601b81526020017fe698a5e6999ae4baa4e69893e59198e58da1e79aaee5b7b4e68b890000000000815250905090565b600061057361056c6112f7565b84846112ff565b6001905092915050565b600b5481565b6000600754905090565b600061059a8484846114c8565b61065b846105a66112f7565b610656856040518060600160405280602881526020016132c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061060c6112f7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de59092919063ffffffff16565b6112ff565b600190509392505050565b60006012905090565b6106776112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb906128c2565b60405180910390fd5b60005b815181101561079557600060046000848481518110610729576107286128e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061078d90612940565b915050610707565b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107da6112f7565b73ffffffffffffffffffffffffffffffffffffffff16146107fa57600080fd5b600061080530610860565b9050600081106108195761081881611e49565b5b6000479050600081111561083157610830816120e1565b5b5050565b600080600560149054906101000a900460ff16600560159054906101000a900460ff16915091509091565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108b16112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610935906128c2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600881526020017f6361707962617261000000000000000000000000000000000000000000000000815250905090565b6000610a82610a7b6112f7565b84846114c8565b6001905092915050565b610a946112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906128c2565b60405180910390fd5b80600560156101000a81548160ff021916908360ff16021790555081600560146101000a81548160ff021916908360ff1602179055505050565b600a5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bbf6112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c43906128c2565b60405180910390fd5b600d60149054906101000a900460ff1615610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c93906129d4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d2030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007546112ff565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db19190612a09565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190612a09565b6040518363ffffffff1660e01b8152600401610e7b929190612a36565b6020604051808303816000875af1158015610e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebe9190612a09565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f4730610860565b600080610f52610a02565b426040518863ffffffff1660e01b8152600401610f7496959493929190612aa4565b60606040518083038185885af1158015610f92573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fb79190612b1a565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611059929190612b6d565b6020604051808303816000875af1158015611078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109c9190612bc2565b506110b3600560075461214d90919063ffffffff16565b6008819055506110cf600560075461214d90919063ffffffff16565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6007546040516111069190612514565b60405180910390a16001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b61114e6112f7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d2906128c2565b60405180910390fd5b60005b815181101561126c57600160046000848481518110611200576111ff6128e2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061126490612940565b9150506111de565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590612c61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d490612cf3565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114bb9190612514565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152e90612d85565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d90612e17565b60405180910390fd5b600081116115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e090612ea9565b60405180910390fd5b60006115f3610a02565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116615750611631610a02565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b2857600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561170a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61171357600080fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117be5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118145750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118b75760085482111561185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590612f15565b60405180910390fd5b6009548261186b85610860565b6118759190612f35565b11156118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad90612fb5565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561194057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119845761197d606461196f600560149054906101000a900460ff1660ff168561219790919063ffffffff16565b61214d90919063ffffffff16565b9050611a4e565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a0d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a4d57611a4a6064611a3c600560159054906101000a900460ff1660ff168561219790919063ffffffff16565b61214d90919063ffffffff16565b90505b5b6000611a5930610860565b9050600d60159054906101000a900460ff16158015611ac55750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611add5750600d60169054906101000a900460ff165b8015611aea5750600a5481115b15611b2657611b0c611b0784611b0284600b54612211565b612211565b611e49565b60004790506000811115611b2457611b23476120e1565b5b505b505b6000811115611c2c57611b8381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c239190612514565b60405180910390a35b611c7e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d25611cd7828461228890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dca848661228890919063ffffffff16565b604051611dd79190612514565b60405180910390a350505050565b6000838311158290611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2491906123c5565b60405180910390fd5b5060008385611e3c9190612fd5565b9050809150509392505050565b6001600d60156101000a81548160ff02191690831515021790555060008103156120c357600d60149054906101000a900460ff16156120c3576000600267ffffffffffffffff811115611e9f57611e9e6125be565b5b604051908082528060200260200182016040528015611ecd5781602001602082028036833780820191505090505b5090503081600081518110611ee557611ee46128e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb09190612a09565b81600181518110611fc457611fc36128e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061202b30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ff565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161208f9594939291906130c7565b600060405180830381600087803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b50505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612149573d6000803e3d6000fd5b5050565b600061218f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d2565b905092915050565b60008083036121a9576000905061220b565b600082846121b79190613121565b90508284826121c69190613192565b14612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd90613235565b60405180910390fd5b809150505b92915050565b60008183116122205782612222565b815b905092915050565b60008082846122399190612f35565b90508381101561227e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612275906132a1565b60405180910390fd5b8091505092915050565b60006122ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de5565b905092915050565b60008083118290612319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231091906123c5565b60405180910390fd5b50600083856123289190613192565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561236f578082015181840152602081019050612354565b60008484015250505050565b6000601f19601f8301169050919050565b600061239782612335565b6123a18185612340565b93506123b1818560208601612351565b6123ba8161237b565b840191505092915050565b600060208201905081810360008301526123df818461238c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612426826123fb565b9050919050565b6124368161241b565b811461244157600080fd5b50565b6000813590506124538161242d565b92915050565b6000819050919050565b61246c81612459565b811461247757600080fd5b50565b60008135905061248981612463565b92915050565b600080604083850312156124a6576124a56123f1565b5b60006124b485828601612444565b92505060206124c58582860161247a565b9150509250929050565b60008115159050919050565b6124e4816124cf565b82525050565b60006020820190506124ff60008301846124db565b92915050565b61250e81612459565b82525050565b60006020820190506125296000830184612505565b92915050565b600080600060608486031215612548576125476123f1565b5b600061255686828701612444565b935050602061256786828701612444565b92505060406125788682870161247a565b9150509250925092565b600060ff82169050919050565b61259881612582565b82525050565b60006020820190506125b3600083018461258f565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125f68261237b565b810181811067ffffffffffffffff82111715612615576126146125be565b5b80604052505050565b60006126286123e7565b905061263482826125ed565b919050565b600067ffffffffffffffff821115612654576126536125be565b5b602082029050602081019050919050565b600080fd5b600061267d61267884612639565b61261e565b905080838252602082019050602084028301858111156126a05761269f612665565b5b835b818110156126c957806126b58882612444565b8452602084019350506020810190506126a2565b5050509392505050565b600082601f8301126126e8576126e76125b9565b5b81356126f884826020860161266a565b91505092915050565b600060208284031215612717576127166123f1565b5b600082013567ffffffffffffffff811115612735576127346123f6565b5b612741848285016126d3565b91505092915050565b600060408201905061275f600083018561258f565b61276c602083018461258f565b9392505050565b600060208284031215612789576127886123f1565b5b600061279784828501612444565b91505092915050565b6127a98161241b565b82525050565b60006020820190506127c460008301846127a0565b92915050565b6127d381612582565b81146127de57600080fd5b50565b6000813590506127f0816127ca565b92915050565b6000806040838503121561280d5761280c6123f1565b5b600061281b858286016127e1565b925050602061282c858286016127e1565b9150509250929050565b6000806040838503121561284d5761284c6123f1565b5b600061285b85828601612444565b925050602061286c85828601612444565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ac602083612340565b91506128b782612876565b602082019050919050565b600060208201905081810360008301526128db8161289f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061294b82612459565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297d5761297c612911565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129be601783612340565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b600081519050612a038161242d565b92915050565b600060208284031215612a1f57612a1e6123f1565b5b6000612a2d848285016129f4565b91505092915050565b6000604082019050612a4b60008301856127a0565b612a5860208301846127a0565b9392505050565b6000819050919050565b6000819050919050565b6000612a8e612a89612a8484612a5f565b612a69565b612459565b9050919050565b612a9e81612a73565b82525050565b600060c082019050612ab960008301896127a0565b612ac66020830188612505565b612ad36040830187612a95565b612ae06060830186612a95565b612aed60808301856127a0565b612afa60a0830184612505565b979650505050505050565b600081519050612b1481612463565b92915050565b600080600060608486031215612b3357612b326123f1565b5b6000612b4186828701612b05565b9350506020612b5286828701612b05565b9250506040612b6386828701612b05565b9150509250925092565b6000604082019050612b8260008301856127a0565b612b8f6020830184612505565b9392505050565b612b9f816124cf565b8114612baa57600080fd5b50565b600081519050612bbc81612b96565b92915050565b600060208284031215612bd857612bd76123f1565b5b6000612be684828501612bad565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c4b602483612340565b9150612c5682612bef565b604082019050919050565b60006020820190508181036000830152612c7a81612c3e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdd602283612340565b9150612ce882612c81565b604082019050919050565b60006020820190508181036000830152612d0c81612cd0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d6f602583612340565b9150612d7a82612d13565b604082019050919050565b60006020820190508181036000830152612d9e81612d62565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e01602383612340565b9150612e0c82612da5565b604082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e93602983612340565b9150612e9e82612e37565b604082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612eff601983612340565b9150612f0a82612ec9565b602082019050919050565b60006020820190508181036000830152612f2e81612ef2565b9050919050565b6000612f4082612459565b9150612f4b83612459565b9250828201905080821115612f6357612f62612911565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f9f601a83612340565b9150612faa82612f69565b602082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b6000612fe082612459565b9150612feb83612459565b925082820390508181111561300357613002612911565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61303e8161241b565b82525050565b60006130508383613035565b60208301905092915050565b6000602082019050919050565b600061307482613009565b61307e8185613014565b935061308983613025565b8060005b838110156130ba5781516130a18882613044565b97506130ac8361305c565b92505060018101905061308d565b5085935050505092915050565b600060a0820190506130dc6000830188612505565b6130e96020830187612a95565b81810360408301526130fb8186613069565b905061310a60608301856127a0565b6131176080830184612505565b9695505050505050565b600061312c82612459565b915061313783612459565b925082820261314581612459565b9150828204841483151761315c5761315b612911565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061319d82612459565b91506131a883612459565b9250826131b8576131b7613163565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061321f602183612340565b915061322a826131c3565b604082019050919050565b6000602082019050818103600083015261324e81613212565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061328b601b83612340565b915061329682613255565b602082019050919050565b600060208201905081810360008301526132ba8161327e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a711913fc2e3e19d693d8127c6ee554353031333ae2de19510c546a4dbe8d82d64736f6c63430008130033

Deployed Bytecode Sourcemap

3677:7754:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5512:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6345:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4526:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5789:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6514:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5698:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11260:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10727:349;;;;;;;;;;;;;:::i;:::-;;5386:116;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5892:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2758:148;;;;;;;;;;;;;:::i;:::-;;4379:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2544:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4423:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5603:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6019:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5242:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4469:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9788:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9888:794;;;;;;;;;;;;;:::i;:::-;;11088:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6194:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:83;5549:13;5582:5;;;;;;;;;;;;;;;;;5575:12;;5512:83;:::o;6345:161::-;6420:4;6437:39;6446:12;:10;:12::i;:::-;6460:7;6469:6;6437:8;:39::i;:::-;6494:4;6487:11;;6345:161;;;;:::o;4526:43::-;;;;:::o;5789:95::-;5842:7;5869;;5862:14;;5789:95;:::o;6514:313::-;6612:4;6629:36;6639:6;6647:9;6658:6;6629:9;:36::i;:::-;6676:121;6685:6;6693:12;:10;:12::i;:::-;6707:89;6745:6;6707:89;;;;;;;;;;;;;;;;;:11;:19;6719:6;6707:19;;;;;;;;;;;;;;;:33;6727:12;:10;:12::i;:::-;6707:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6676:8;:121::i;:::-;6815:4;6808:11;;6514:313;;;;;:::o;5698:83::-;5739:5;4176:2;5757:16;;5698:83;:::o;11260:162::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11333:6:::1;11328:87;11349:6;:13;11345:1;:17;11328:87;;;11400:5;11382:4;:15;11387:6;11394:1;11387:9;;;;;;;;:::i;:::-;;;;;;;;11382:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11364:3;;;;;:::i;:::-;;;;11328:87;;;;11260:162:::0;:::o;10727:349::-;10791:10;;;;;;;;;;;10777:24;;:12;:10;:12::i;:::-;:24;;;10769:33;;;;;;10813:20;10834:24;10852:4;10834:9;:24::i;:::-;10813:45;;10886:1;10872:12;:15;10869:74;;10901:30;10918:12;10901:16;:30::i;:::-;10869:74;10953:18;10972:21;10953:40;;11018:1;11007:10;:12;11004:65;;;11033:24;11046:10;11033:12;:24::i;:::-;11004:65;10758:318;;10727:349::o;5386:116::-;5424:12;5437:13;5476:7;;;;;;;;;;;5485:8;;;;;;;;;;;5468:26;;;;5386:116;;:::o;5892:119::-;5958:7;5985:9;:18;5995:7;5985:18;;;;;;;;;;;;;;;;5978:25;;5892:119;;;:::o;2758:148::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2865:1:::1;2828:40;;2849:6;::::0;::::1;;;;;;;;2828:40;;;;;;;;;;;;2896:1;2879:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2758:148::o:0;4379:37::-;;;;:::o;2544:79::-;2582:7;2609:6;;;;;;;;;;;2602:13;;2544:79;:::o;4423:39::-;;;;:::o;5603:87::-;5642:13;5675:7;;;;;;;;;;;;;;;;;5668:14;;5603:87;:::o;6019:167::-;6097:4;6114:42;6124:12;:10;:12::i;:::-;6138:9;6149:6;6114:9;:42::i;:::-;6174:4;6167:11;;6019:167;;;;:::o;5242:136::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5330:11:::1;5321:8;;:20;;;;;;;;;;;;;;;;;;5360:10;5352:7;;:18;;;;;;;;;;;;;;;;;;5242:136:::0;;:::o;4469:50::-;;;;:::o;9788:86::-;9838:4;9859;:7;9864:1;9859:7;;;;;;;;;;;;;;;;;;;;;;;;;9852:14;;9788:86;;;:::o;9888:794::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9952:11:::1;;;;;;;;;;;9951:12;9943:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10038:42;10001:15;;:80;;;;;;;;;;;;;;;;;;10092:58;10109:4;10124:15;;;;;;;;;;;10142:7;;10092:8;:58::i;:::-;10195:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10177:55;;;10241:4;10248:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10177:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10161:13;;:110;;;;;;;;;;;;;;;;;;10282:15;;;;;;;;;;;:31;;;10321:21;10352:4;10358:24;10376:4;10358:9;:24::i;:::-;10383:1;10385::::0;10387:7:::1;:5;:7::i;:::-;10395:15;10282:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10429:13;;;;;;;;;;;10422:29;;;10460:15;;;;;;;;;;;10478:14;10422:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10519:14;10531:1;10519:7;;:11;;:14;;;;:::i;:::-;10504:12;:29;;;;10559:14;10571:1;10559:7;;:11;;:14;;;;:::i;:::-;10544;:29;;;;10589:27;10608:7;;10589:27;;;;;;:::i;:::-;;;;;;;;10641:4;10627:11;;:18;;;;;;;;;;;;;;;;;;10670:4;10656:11;;:18;;;;;;;;;;;;;;;;;;9888:794::o:0;11088:164::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11162:6:::1;11157:88;11178:5;:12;11174:1;:16;11157:88;;;11229:4;11212;:14;11217:5;11223:1;11217:8;;;;;;;;:::i;:::-;;;;;;;;11212:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11192:3;;;;;:::i;:::-;;;;11157:88;;;;11088:164:::0;:::o;6194:143::-;6275:7;6302:11;:18;6314:5;6302:18;;;;;;;;;;;;;;;:27;6321:7;6302:27;;;;;;;;;;;;;;;;6295:34;;6194:143;;;;:::o;299:98::-;352:7;379:10;372:17;;299:98;:::o;6835:335::-;6945:1;6928:19;;:5;:19;;;6920:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7026:1;7007:21;;:7;:21;;;6999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7108:6;7078:11;:18;7090:5;7078:18;;;;;;;;;;;;;;;:27;7097:7;7078:27;;;;;;;;;;;;;;;:36;;;;7146:7;7130:32;;7139:5;7130:32;;;7155:6;7130:32;;;;;;:::i;:::-;;;;;;;;6835:335;;;:::o;7176:1833::-;7280:1;7264:18;;:4;:18;;;7256:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7357:1;7343:16;;:2;:16;;;7335:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7427:1;7418:6;:10;7410:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7485:17;7527:7;:5;:7::i;:::-;7519:15;;:4;:15;;;;:32;;;;;7544:7;:5;:7::i;:::-;7538:13;;:2;:13;;;;7519:32;7515:1138;;;7577:4;:10;7582:4;7577:10;;;;;;;;;;;;;;;;;;;;;;;;;7576:11;:24;;;;;7592:4;:8;7597:2;7592:8;;;;;;;;;;;;;;;;;;;;;;;;;7591:9;7576:24;7568:33;;;;;;7630:13;;;;;;;;;;;7622:21;;:4;:21;;;:55;;;;;7661:15;;;;;;;;;;;7647:30;;:2;:30;;;;7622:55;:83;;;;;7683:18;:22;7702:2;7683:22;;;;;;;;;;;;;;;;;;;;;;;;;7681:24;7622:83;7618:283;;;7745:12;;7735:6;:22;;7727:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7840:14;;7830:6;7814:13;7824:2;7814:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7806:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7618:283;7928:13;;;;;;;;;;;7920:21;;:4;:21;;;:43;;;;;7958:4;7945:18;;:2;:18;;;;7920:43;7917:252;;;7996:28;8020:3;7996:19;8007:7;;;;;;;;;;;7996:19;;:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7984:40;;7917:252;;;8054:13;;;;;;;;;;;8048:19;;:2;:19;;;:43;;;;;8086:4;8071:20;;:4;:20;;;;8048:43;8045:124;;;8124:29;8149:3;8124:20;8135:8;;;;;;;;;;;8124:20;;:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8112:41;;8045:124;7917:252;8185:28;8216:24;8234:4;8216:9;:24::i;:::-;8185:55;;8260:6;;;;;;;;;;;8259:7;:30;;;;;8276:13;;;;;;;;;;;8270:19;;:2;:19;;;8259:30;:45;;;;;8293:11;;;;;;;;;;;8259:45;:87;;;;;8329:17;;8308:20;:38;8259:87;8255:387;;;8367:67;8384:49;8388:6;8395:37;8399:20;8420:11;;8395:3;:37::i;:::-;8384:3;:49::i;:::-;8367:16;:67::i;:::-;8453:26;8482:21;8453:50;;8546:1;8525:18;:22;8522:105;;;8572:35;8585:21;8572:12;:35::i;:::-;8522:105;8348:294;8255:387;7553:1100;7515:1138;8678:1;8668:9;:11;8665:161;;;8718:39;8747:9;8718;:24;8736:4;8718:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8693:9;:24;8711:4;8693:24;;;;;;;;;;;;;;;:64;;;;8798:4;8775:39;;8784:4;8775:39;;;8804:9;8775:39;;;;;;:::i;:::-;;;;;;;;8665:161;8852:27;8872:6;8852:9;:15;8862:4;8852:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8836:9;:15;8846:4;8836:15;;;;;;;;;;;;;;;:43;;;;8904:40;8922:21;8933:9;8922:6;:10;;:21;;;;:::i;:::-;8904:9;:13;8914:2;8904:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8890:9;:13;8900:2;8890:13;;;;;;;;;;;;;;;:54;;;;8975:2;8960:41;;8969:4;8960:41;;;8979:21;8990:9;8979:6;:10;;:21;;;;:::i;:::-;8960:41;;;;;;:::i;:::-;;;;;;;;7245:1764;7176:1833;;;:::o;1436:190::-;1522:7;1555:1;1550;:6;;1558:12;1542:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1582:9;1598:1;1594;:5;;;;:::i;:::-;1582:17;;1617:1;1610:8;;;1436:190;;;;;:::o;9123:555::-;4860:4;4851:6;;:13;;;;;;;;;;;;;;;;;;9217:1:::1;9204:11;:14:::0;9201:27;9220:7:::1;9201:27;9242:11;;;;;;;;;;;9238:25:::0;9255:7:::1;9238:25;9273:21;9311:1;9297:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9273:40;;9342:4;9324;9329:1;9324:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9368:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9358:4;9363:1;9358:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9401:62;9418:4;9433:15;;;;;;;;;;;9451:11;9401:8;:62::i;:::-;9474:15;;;;;;;;;;;:66;;;9555:11;9581:1;9597:4;9624;9644:15;9474:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9190:488;4875:1;4896:5:::0;4887:6;;:14;;;;;;;;;;;;;;;;;;9123:555;:::o;9688:92::-;9745:10;;;;;;;;;;;:19;;:27;9765:6;9745:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9688:92;:::o;1888:132::-;1946:7;1973:39;1977:1;1980;1973:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1966:46;;1888:132;;;;:::o;1634:246::-;1692:7;1721:1;1716;:6;1712:47;;1746:1;1739:8;;;;1712:47;1769:9;1785:1;1781;:5;;;;:::i;:::-;1769:17;;1814:1;1809;1805;:5;;;;:::i;:::-;:10;1797:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1871:1;1864:8;;;1634:246;;;;;:::o;9017:98::-;9074:7;9101:1;9099;:3;9098:9;;9106:1;9098:9;;;9104:1;9098:9;9091:16;;9017:98;;;;:::o;1105:179::-;1163:7;1183:9;1199:1;1195;:5;;;;:::i;:::-;1183:17;;1224:1;1219;:6;;1211:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1275:1;1268:8;;;1105:179;;;;:::o;1292:136::-;1350:7;1377:43;1381:1;1384;1377:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1370:50;;1292:136;;;;:::o;2028:189::-;2114:7;2146:1;2142;:5;2149:12;2134:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2173:9;2189:1;2185;:5;;;;:::i;:::-;2173:17;;2208:1;2201:8;;;2028:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798: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:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:316::-;7808:4;7846:2;7835:9;7831:18;7823:26;;7859:67;7923:1;7912:9;7908:17;7899:6;7859:67;:::i;:::-;7936:68;8000:2;7989:9;7985:18;7976:6;7936:68;:::i;:::-;7695:316;;;;;:::o;8017:329::-;8076:6;8125:2;8113:9;8104:7;8100:23;8096:32;8093:119;;;8131:79;;:::i;:::-;8093:119;8251:1;8276:53;8321:7;8312:6;8301:9;8297:22;8276:53;:::i;:::-;8266:63;;8222:117;8017:329;;;;:::o;8352:118::-;8439:24;8457:5;8439:24;:::i;:::-;8434:3;8427:37;8352:118;;:::o;8476:222::-;8569:4;8607:2;8596:9;8592:18;8584:26;;8620:71;8688:1;8677:9;8673:17;8664:6;8620:71;:::i;:::-;8476:222;;;;:::o;8704:118::-;8775:22;8791:5;8775:22;:::i;:::-;8768:5;8765:33;8755:61;;8812:1;8809;8802:12;8755:61;8704:118;:::o;8828:135::-;8872:5;8910:6;8897:20;8888:29;;8926:31;8951:5;8926:31;:::i;:::-;8828:135;;;;:::o;8969:466::-;9033:6;9041;9090:2;9078:9;9069:7;9065:23;9061:32;9058:119;;;9096:79;;:::i;:::-;9058:119;9216:1;9241:51;9284:7;9275:6;9264:9;9260:22;9241:51;:::i;:::-;9231:61;;9187:115;9341:2;9367:51;9410:7;9401:6;9390:9;9386:22;9367:51;:::i;:::-;9357:61;;9312:116;8969:466;;;;;:::o;9441:474::-;9509:6;9517;9566:2;9554:9;9545:7;9541:23;9537:32;9534:119;;;9572:79;;:::i;:::-;9534:119;9692:1;9717:53;9762:7;9753:6;9742:9;9738:22;9717:53;:::i;:::-;9707:63;;9663:117;9819:2;9845:53;9890:7;9881:6;9870:9;9866:22;9845:53;:::i;:::-;9835:63;;9790:118;9441:474;;;;;:::o;9921:182::-;10061:34;10057:1;10049:6;10045:14;10038:58;9921:182;:::o;10109:366::-;10251:3;10272:67;10336:2;10331:3;10272:67;:::i;:::-;10265:74;;10348:93;10437:3;10348:93;:::i;:::-;10466:2;10461:3;10457:12;10450:19;;10109:366;;;:::o;10481:419::-;10647:4;10685:2;10674:9;10670:18;10662:26;;10734:9;10728:4;10724:20;10720:1;10709:9;10705:17;10698:47;10762:131;10888:4;10762:131;:::i;:::-;10754:139;;10481:419;;;:::o;10906:180::-;10954:77;10951:1;10944:88;11051:4;11048:1;11041:15;11075:4;11072:1;11065:15;11092:180;11140:77;11137:1;11130:88;11237:4;11234:1;11227:15;11261:4;11258:1;11251:15;11278:233;11317:3;11340:24;11358:5;11340:24;:::i;:::-;11331:33;;11386:66;11379:5;11376:77;11373:103;;11456:18;;:::i;:::-;11373:103;11503:1;11496:5;11492:13;11485:20;;11278:233;;;:::o;11517:173::-;11657:25;11653:1;11645:6;11641:14;11634:49;11517:173;:::o;11696:366::-;11838:3;11859:67;11923:2;11918:3;11859:67;:::i;:::-;11852:74;;11935:93;12024:3;11935:93;:::i;:::-;12053:2;12048:3;12044:12;12037:19;;11696:366;;;:::o;12068:419::-;12234:4;12272:2;12261:9;12257:18;12249:26;;12321:9;12315:4;12311:20;12307:1;12296:9;12292:17;12285:47;12349:131;12475:4;12349:131;:::i;:::-;12341:139;;12068:419;;;:::o;12493:143::-;12550:5;12581:6;12575:13;12566:22;;12597:33;12624:5;12597:33;:::i;:::-;12493:143;;;;:::o;12642:351::-;12712:6;12761:2;12749:9;12740:7;12736:23;12732:32;12729:119;;;12767:79;;:::i;:::-;12729:119;12887:1;12912:64;12968:7;12959:6;12948:9;12944:22;12912:64;:::i;:::-;12902:74;;12858:128;12642:351;;;;:::o;12999:332::-;13120:4;13158:2;13147:9;13143:18;13135:26;;13171:71;13239:1;13228:9;13224:17;13215:6;13171:71;:::i;:::-;13252:72;13320:2;13309:9;13305:18;13296:6;13252:72;:::i;:::-;12999:332;;;;;:::o;13337:85::-;13382:7;13411:5;13400:16;;13337:85;;;:::o;13428:60::-;13456:3;13477:5;13470:12;;13428:60;;;:::o;13494:158::-;13552:9;13585:61;13603:42;13612:32;13638:5;13612:32;:::i;:::-;13603:42;:::i;:::-;13585:61;:::i;:::-;13572:74;;13494:158;;;:::o;13658:147::-;13753:45;13792:5;13753:45;:::i;:::-;13748:3;13741:58;13658:147;;:::o;13811:807::-;14060:4;14098:3;14087:9;14083:19;14075:27;;14112:71;14180:1;14169:9;14165:17;14156:6;14112:71;:::i;:::-;14193:72;14261:2;14250:9;14246:18;14237:6;14193:72;:::i;:::-;14275:80;14351:2;14340:9;14336:18;14327:6;14275:80;:::i;:::-;14365;14441:2;14430:9;14426:18;14417:6;14365:80;:::i;:::-;14455:73;14523:3;14512:9;14508:19;14499:6;14455:73;:::i;:::-;14538;14606:3;14595:9;14591:19;14582:6;14538:73;:::i;:::-;13811:807;;;;;;;;;:::o;14624:143::-;14681:5;14712:6;14706:13;14697:22;;14728:33;14755:5;14728:33;:::i;:::-;14624:143;;;;:::o;14773:663::-;14861:6;14869;14877;14926:2;14914:9;14905:7;14901:23;14897:32;14894:119;;;14932:79;;:::i;:::-;14894:119;15052:1;15077:64;15133:7;15124:6;15113:9;15109:22;15077:64;:::i;:::-;15067:74;;15023:128;15190:2;15216:64;15272:7;15263:6;15252:9;15248:22;15216:64;:::i;:::-;15206:74;;15161:129;15329:2;15355:64;15411:7;15402:6;15391:9;15387:22;15355:64;:::i;:::-;15345:74;;15300:129;14773:663;;;;;:::o;15442:332::-;15563:4;15601:2;15590:9;15586:18;15578:26;;15614:71;15682:1;15671:9;15667:17;15658:6;15614:71;:::i;:::-;15695:72;15763:2;15752:9;15748:18;15739:6;15695:72;:::i;:::-;15442:332;;;;;:::o;15780:116::-;15850:21;15865:5;15850:21;:::i;:::-;15843:5;15840:32;15830:60;;15886:1;15883;15876:12;15830:60;15780:116;:::o;15902:137::-;15956:5;15987:6;15981:13;15972:22;;16003:30;16027:5;16003:30;:::i;:::-;15902:137;;;;:::o;16045:345::-;16112:6;16161:2;16149:9;16140:7;16136:23;16132:32;16129:119;;;16167:79;;:::i;:::-;16129:119;16287:1;16312:61;16365:7;16356:6;16345:9;16341:22;16312:61;:::i;:::-;16302:71;;16258:125;16045:345;;;;:::o;16396:223::-;16536:34;16532:1;16524:6;16520:14;16513:58;16605:6;16600:2;16592:6;16588:15;16581:31;16396:223;:::o;16625:366::-;16767:3;16788:67;16852:2;16847:3;16788:67;:::i;:::-;16781:74;;16864:93;16953:3;16864:93;:::i;:::-;16982:2;16977:3;16973:12;16966:19;;16625:366;;;:::o;16997:419::-;17163:4;17201:2;17190:9;17186:18;17178:26;;17250:9;17244:4;17240:20;17236:1;17225:9;17221:17;17214:47;17278:131;17404:4;17278:131;:::i;:::-;17270:139;;16997:419;;;:::o;17422:221::-;17562:34;17558:1;17550:6;17546:14;17539:58;17631:4;17626:2;17618:6;17614:15;17607:29;17422:221;:::o;17649:366::-;17791:3;17812:67;17876:2;17871:3;17812:67;:::i;:::-;17805:74;;17888:93;17977:3;17888:93;:::i;:::-;18006:2;18001:3;17997:12;17990:19;;17649:366;;;:::o;18021:419::-;18187:4;18225:2;18214:9;18210:18;18202:26;;18274:9;18268:4;18264:20;18260:1;18249:9;18245:17;18238:47;18302:131;18428:4;18302:131;:::i;:::-;18294:139;;18021:419;;;:::o;18446:224::-;18586:34;18582:1;18574:6;18570:14;18563:58;18655:7;18650:2;18642:6;18638:15;18631:32;18446:224;:::o;18676:366::-;18818:3;18839:67;18903:2;18898:3;18839:67;:::i;:::-;18832:74;;18915:93;19004:3;18915:93;:::i;:::-;19033:2;19028:3;19024:12;19017:19;;18676:366;;;:::o;19048:419::-;19214:4;19252:2;19241:9;19237:18;19229:26;;19301:9;19295:4;19291:20;19287:1;19276:9;19272:17;19265:47;19329:131;19455:4;19329:131;:::i;:::-;19321:139;;19048:419;;;:::o;19473:222::-;19613:34;19609:1;19601:6;19597:14;19590:58;19682:5;19677:2;19669:6;19665:15;19658:30;19473:222;:::o;19701:366::-;19843:3;19864:67;19928:2;19923:3;19864:67;:::i;:::-;19857:74;;19940:93;20029:3;19940:93;:::i;:::-;20058:2;20053:3;20049:12;20042:19;;19701:366;;;:::o;20073:419::-;20239:4;20277:2;20266:9;20262:18;20254:26;;20326:9;20320:4;20316:20;20312:1;20301:9;20297:17;20290:47;20354:131;20480:4;20354:131;:::i;:::-;20346:139;;20073:419;;;:::o;20498:228::-;20638:34;20634:1;20626:6;20622:14;20615:58;20707:11;20702:2;20694:6;20690:15;20683:36;20498:228;:::o;20732:366::-;20874:3;20895:67;20959:2;20954:3;20895:67;:::i;:::-;20888:74;;20971:93;21060:3;20971:93;:::i;:::-;21089:2;21084:3;21080:12;21073:19;;20732:366;;;:::o;21104:419::-;21270:4;21308:2;21297:9;21293:18;21285:26;;21357:9;21351:4;21347:20;21343:1;21332:9;21328:17;21321:47;21385:131;21511:4;21385:131;:::i;:::-;21377:139;;21104:419;;;:::o;21529:175::-;21669:27;21665:1;21657:6;21653:14;21646:51;21529:175;:::o;21710:366::-;21852:3;21873:67;21937:2;21932:3;21873:67;:::i;:::-;21866:74;;21949:93;22038:3;21949:93;:::i;:::-;22067:2;22062:3;22058:12;22051:19;;21710:366;;;:::o;22082:419::-;22248:4;22286:2;22275:9;22271:18;22263:26;;22335:9;22329:4;22325:20;22321:1;22310:9;22306:17;22299:47;22363:131;22489:4;22363:131;:::i;:::-;22355:139;;22082:419;;;:::o;22507:191::-;22547:3;22566:20;22584:1;22566:20;:::i;:::-;22561:25;;22600:20;22618:1;22600:20;:::i;:::-;22595:25;;22643:1;22640;22636:9;22629:16;;22664:3;22661:1;22658:10;22655:36;;;22671:18;;:::i;:::-;22655:36;22507:191;;;;:::o;22704:176::-;22844:28;22840:1;22832:6;22828:14;22821:52;22704:176;:::o;22886:366::-;23028:3;23049:67;23113:2;23108:3;23049:67;:::i;:::-;23042:74;;23125:93;23214:3;23125:93;:::i;:::-;23243:2;23238:3;23234:12;23227:19;;22886:366;;;:::o;23258:419::-;23424:4;23462:2;23451:9;23447:18;23439:26;;23511:9;23505:4;23501:20;23497:1;23486:9;23482:17;23475:47;23539:131;23665:4;23539:131;:::i;:::-;23531:139;;23258:419;;;:::o;23683:194::-;23723:4;23743:20;23761:1;23743:20;:::i;:::-;23738:25;;23777:20;23795:1;23777:20;:::i;:::-;23772:25;;23821:1;23818;23814:9;23806:17;;23845:1;23839:4;23836:11;23833:37;;;23850:18;;:::i;:::-;23833:37;23683:194;;;;:::o;23883:114::-;23950:6;23984:5;23978:12;23968:22;;23883:114;;;:::o;24003:184::-;24102:11;24136:6;24131:3;24124:19;24176:4;24171:3;24167:14;24152:29;;24003:184;;;;:::o;24193:132::-;24260:4;24283:3;24275:11;;24313:4;24308:3;24304:14;24296:22;;24193:132;;;:::o;24331:108::-;24408:24;24426:5;24408:24;:::i;:::-;24403:3;24396:37;24331:108;;:::o;24445:179::-;24514:10;24535:46;24577:3;24569:6;24535:46;:::i;:::-;24613:4;24608:3;24604:14;24590:28;;24445:179;;;;:::o;24630:113::-;24700:4;24732;24727:3;24723:14;24715:22;;24630:113;;;:::o;24779:732::-;24898:3;24927:54;24975:5;24927:54;:::i;:::-;24997:86;25076:6;25071:3;24997:86;:::i;:::-;24990:93;;25107:56;25157:5;25107:56;:::i;:::-;25186:7;25217:1;25202:284;25227:6;25224:1;25221:13;25202:284;;;25303:6;25297:13;25330:63;25389:3;25374:13;25330:63;:::i;:::-;25323:70;;25416:60;25469:6;25416:60;:::i;:::-;25406:70;;25262:224;25249:1;25246;25242:9;25237:14;;25202:284;;;25206:14;25502:3;25495:10;;24903:608;;;24779:732;;;;:::o;25517:831::-;25780:4;25818:3;25807:9;25803:19;25795:27;;25832:71;25900:1;25889:9;25885:17;25876:6;25832:71;:::i;:::-;25913:80;25989:2;25978:9;25974:18;25965:6;25913:80;:::i;:::-;26040:9;26034:4;26030:20;26025:2;26014:9;26010:18;26003:48;26068:108;26171:4;26162:6;26068:108;:::i;:::-;26060:116;;26186:72;26254:2;26243:9;26239:18;26230:6;26186:72;:::i;:::-;26268:73;26336:3;26325:9;26321:19;26312:6;26268:73;:::i;:::-;25517:831;;;;;;;;:::o;26354:410::-;26394:7;26417:20;26435:1;26417:20;:::i;:::-;26412:25;;26451:20;26469:1;26451:20;:::i;:::-;26446:25;;26506:1;26503;26499:9;26528:30;26546:11;26528:30;:::i;:::-;26517:41;;26707:1;26698:7;26694:15;26691:1;26688:22;26668:1;26661:9;26641:83;26618:139;;26737:18;;:::i;:::-;26618:139;26402:362;26354:410;;;;:::o;26770:180::-;26818:77;26815:1;26808:88;26915:4;26912:1;26905:15;26939:4;26936:1;26929:15;26956:185;26996:1;27013:20;27031:1;27013:20;:::i;:::-;27008:25;;27047:20;27065:1;27047:20;:::i;:::-;27042:25;;27086:1;27076:35;;27091:18;;:::i;:::-;27076:35;27133:1;27130;27126:9;27121:14;;26956:185;;;;:::o;27147:220::-;27287:34;27283:1;27275:6;27271:14;27264:58;27356:3;27351:2;27343:6;27339:15;27332:28;27147:220;:::o;27373:366::-;27515:3;27536:67;27600:2;27595:3;27536:67;:::i;:::-;27529:74;;27612:93;27701:3;27612:93;:::i;:::-;27730:2;27725:3;27721:12;27714:19;;27373:366;;;:::o;27745:419::-;27911:4;27949:2;27938:9;27934:18;27926:26;;27998:9;27992:4;27988:20;27984:1;27973:9;27969:17;27962:47;28026:131;28152:4;28026:131;:::i;:::-;28018:139;;27745:419;;;:::o;28170:177::-;28310:29;28306:1;28298:6;28294:14;28287:53;28170:177;:::o;28353:366::-;28495:3;28516:67;28580:2;28575:3;28516:67;:::i;:::-;28509:74;;28592:93;28681:3;28592:93;:::i;:::-;28710:2;28705:3;28701:12;28694:19;;28353:366;;;:::o;28725:419::-;28891:4;28929:2;28918:9;28914:18;28906:26;;28978:9;28972:4;28968:20;28964:1;28953:9;28949:17;28942:47;29006:131;29132:4;29006:131;:::i;:::-;28998:139;;28725:419;;;:::o

Swarm Source

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