ETH Price: $2,428.51 (-9.19%)

Token

Immortal Trump (ITRUMP)
 

Overview

Max Total Supply

47,000,000 ITRUMP

Holders

184

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*这一次我一定要做聪明钱.eth
Balance
16,644.284745915 ITRUMP

Value
$0.00
0x3305e7808a822fb2dd64a266f95a5c61fa937d03
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:
iTrumpERC

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
/*

    Twitter  : https://x.com/itrumpeth

    Telegram : https://t.me/itrumpcommunity

    Website  : https://immortaltrump.xyz

*/
pragma solidity 0.8.25;
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 iTrumpERC 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;
    address payable public _taxWallet;

    uint256 private _buyTax=25;
    uint256 private _sellTax=25;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 47000000 * 10**_decimals;
    string private constant _name = unicode"Immortal Trump";
    string private constant _symbol = unicode"ITRUMP";
    uint256 public _maxTxAmount = 705000 * 10**_decimals;
    uint256 public _maxWalletSize = 705000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100 * 10**_decimals;
    uint256 public _maxTaxSwap= 470000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    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 name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul(_buyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(_buyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        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 {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setFee(uint newBuyFee, uint newSellFee) external onlyOwner {
        _buyTax = newBuyFee;
        _sellTax = newSellFee;
    }

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

    function withdrawETH() external onlyOwner returns (bool) {
        (bool success, ) = owner().call{value: address(this).balance}("");
        return success;
    }

    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);
        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 manualSend() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019600555601960065560146007555f6008556009600a610025919061059b565b620ac1e861003391906105e5565b6009556009600a610044919061059b565b620ac1e861005291906105e5565b600a556009600a610063919061059b565b606461006f91906105e5565b600b556009600a610080919061059b565b62072bf061008e91906105e5565b600c555f600e60156101000a81548160ff0219169083151502179055505f600e60166101000a81548160ff0219169083151502179055505f600f555f6010553480156100d8575f80fd5b505f6100e86103fc60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101926103fc60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101df919061059b565b6302cd29c06101ee91906105e5565b60015f6101ff6103fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61024f61040360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103776103fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d3919061059b565b6302cd29c06103e291906105e5565b6040516103ef9190610635565b60405180910390a361064e565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104ac578086048111156104885761048761042a565b5b60018516156104975780820291505b80810290506104a585610457565b945061046c565b94509492505050565b5f826104c4576001905061057f565b816104d1575f905061057f565b81600181146104e757600281146104f157610520565b600191505061057f565b60ff8411156105035761050261042a565b5b8360020a91508482111561051a5761051961042a565b5b5061057f565b5060208310610133831016604e8410600b84101617156105555782820a9050838111156105505761054f61042a565b5b61057f565b6105628484846001610463565b925090508184048111156105795761057861042a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a582610586565b91506105b08361058f565b92506105dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b5565b905092915050565b5f6105ef82610586565b91506105fa83610586565b925082820261060881610586565b9150828204841483151761061f5761061e61042a565b5b5092915050565b61062f81610586565b82525050565b5f6020820190506106485f830184610626565b92915050565b6131498061065b5f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103db578063bf474bed14610417578063c9567bf914610441578063dd62ed3e14610457578063e086e5ec14610493578063f4293890146104bd5761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806352f7c988146102795780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d3565b60405161016491906121cf565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612280565b610510565b6040516101a091906122d8565b60405180910390f35b3480156101b4575f80fd5b506101bd61052d565b6040516101ca9190612300565b60405180910390f35b3480156101de575f80fd5b506101e7610533565b6040516101f49190612300565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612319565b610556565b60405161023091906122d8565b60405180910390f35b348015610244575f80fd5b5061024d61062a565b60405161025a9190612384565b60405180910390f35b34801561026e575f80fd5b50610277610632565b005b348015610284575f80fd5b5061029f600480360381019061029a919061239d565b6106c9565b005b3480156102ac575f80fd5b506102b561076f565b6040516102c291906123fb565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190612414565b610794565b6040516102fe9190612300565b60405180910390f35b348015610312575f80fd5b5061031b6107da565b005b348015610328575f80fd5b50610331610928565b005b34801561033e575f80fd5b50610347610a57565b6040516103549190612300565b60405180910390f35b348015610368575f80fd5b50610371610a5d565b60405161037e919061244e565b60405180910390f35b348015610392575f80fd5b5061039b610a84565b6040516103a89190612300565b60405180910390f35b3480156103bc575f80fd5b506103c5610a8a565b6040516103d291906121cf565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc9190612280565b610ac7565b60405161040e91906122d8565b60405180910390f35b348015610422575f80fd5b5061042b610ae4565b6040516104389190612300565b60405180910390f35b34801561044c575f80fd5b50610455610aea565b005b348015610462575f80fd5b5061047d60048036038101906104789190612467565b61100c565b60405161048a9190612300565b60405180910390f35b34801561049e575f80fd5b506104a761108e565b6040516104b491906122d8565b60405180910390f35b3480156104c8575f80fd5b506104d1611199565b005b60606040518060400160405280600e81526020017f496d6d6f7274616c205472756d70000000000000000000000000000000000000815250905090565b5f61052361051c611211565b8484611218565b6001905092915050565b600c5481565b5f6009600a6105429190612601565b6302cd29c0610551919061264b565b905090565b5f6105628484846113db565b61061f8461056e611211565b61061a856040518060600160405280602881526020016130ec6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d1611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4b9092919063ffffffff16565b611218565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610672611211565b73ffffffffffffffffffffffffffffffffffffffff1614610691575f80fd5b5f61069b30610794565b90505f8111156106af576106ae81611cad565b5b5f4790505f8111156106c5576106c481611f18565b5b5050565b6106d1611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906126d6565b60405180910390fd5b81600581905550806006819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e2611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610865906126d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610930611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906126d6565b60405180910390fd5b6009600a6109ca9190612601565b6302cd29c06109d9919061264b565b6009819055506009600a6109ed9190612601565b6302cd29c06109fc919061264b565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a319190612601565b6302cd29c0610a40919061264b565b604051610a4d9190612300565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600681526020017f495452554d500000000000000000000000000000000000000000000000000000815250905090565b5f610ada610ad3611211565b84846113db565b6001905092915050565b600b5481565b610af2611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b75906126d6565b60405180910390fd5b600e60149054906101000a900460ff1615610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061273e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6a30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c569190612601565b6302cd29c0610c65919061264b565b611218565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf89190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da29190612770565b6040518363ffffffff1660e01b8152600401610dbf92919061279b565b6020604051808303815f875af1158015610ddb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dff9190612770565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8630610794565b5f80610e90610a5d565b426040518863ffffffff1660e01b8152600401610eb296959493929190612804565b60606040518083038185885af1158015610ece573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef39190612877565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f939291906128c7565b6020604051808303815f875af1158015610faf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190612918565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f611097611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906126d6565b60405180910390fd5b5f61112c610a5d565b73ffffffffffffffffffffffffffffffffffffffff164760405161114f90612970565b5f6040518083038185875af1925050503d805f8114611189576040519150601f19603f3d011682016040523d82523d5f602084013e61118e565b606091505b505090508091505090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d9611211565b73ffffffffffffffffffffffffffffffffffffffff16146111f8575f80fd5b5f4790505f81111561120e5761120d81611f18565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612a82565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ce9190612300565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612b10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90612b9e565b60405180910390fd5b5f81116114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612c2c565b60405180910390fd5b5f611502610a5d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115705750611540610a5d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561199b575f600854036115a9576115a6606461159860055485611f8090919063ffffffff16565b611ff790919063ffffffff16565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116525750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611789576009548211156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e690612c94565b60405180910390fd5b600a54826116fc85610794565b6117069190612cb2565b1115611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612d2f565b60405180910390fd5b61176f606461176160055485611f8090919063ffffffff16565b611ff790919063ffffffff16565b905060085f81548092919061178390612d4d565b91905055505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118415761183e606461183060065485611f8090919063ffffffff16565b611ff790919063ffffffff16565b90505b5f61184b30610794565b9050600e60159054906101000a900460ff161580156118b65750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118ce5750600e60169054906101000a900460ff165b80156118db5750600b5481115b80156118ea5750600754600854115b1561199957601054431115611901575f600f819055505b6003600f5410611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612dde565b60405180910390fd5b61196361195e8461195984600c54612040565b612040565b611cad565b5f4790505f8111156119795761197847611f18565b5b600f5f81548092919061198b90612d4d565b919050555043601081905550505b505b5f811115611a9a576119f38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a919190612300565b60405180910390a35b611aea8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b8d611b4182846120b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c3084866120b590919063ffffffff16565b604051611c3d9190612300565b60405180910390a350505050565b5f838311158290611c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8991906121cf565b60405180910390fd5b505f8385611ca09190612dfc565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce457611ce3612e2f565b5b604051908082528060200260200182016040528015611d125781602001602082028036833780820191505090505b50905030815f81518110611d2957611d28612e5c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df19190612770565b81600181518110611e0557611e04612e5c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6b30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611218565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ecd959493929190612f40565b5f604051808303815f87803b158015611ee4575f80fd5b505af1158015611ef6573d5f803e3d5ffd5b50505050505f600e60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f7c573d5f803e3d5ffd5b5050565b5f808303611f90575f9050611ff1565b5f8284611f9d919061264b565b9050828482611fac9190612fc5565b14611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390613065565b60405180910390fd5b809150505b92915050565b5f61203883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120fe565b905092915050565b5f81831161204e5782612050565b815b905092915050565b5f8082846120669190612cb2565b9050838110156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a2906130cd565b60405180910390fd5b8091505092915050565b5f6120f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c4b565b905092915050565b5f8083118290612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b91906121cf565b60405180910390fd5b505f83856121529190612fc5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a18261215f565b6121ab8185612169565b93506121bb818560208601612179565b6121c481612187565b840191505092915050565b5f6020820190508181035f8301526121e78184612197565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61221c826121f3565b9050919050565b61222c81612212565b8114612236575f80fd5b50565b5f8135905061224781612223565b92915050565b5f819050919050565b61225f8161224d565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f8060408385031215612296576122956121ef565b5b5f6122a385828601612239565b92505060206122b48582860161226c565b9150509250929050565b5f8115159050919050565b6122d2816122be565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b6122fa8161224d565b82525050565b5f6020820190506123135f8301846122f1565b92915050565b5f805f606084860312156123305761232f6121ef565b5b5f61233d86828701612239565b935050602061234e86828701612239565b925050604061235f8682870161226c565b9150509250925092565b5f60ff82169050919050565b61237e81612369565b82525050565b5f6020820190506123975f830184612375565b92915050565b5f80604083850312156123b3576123b26121ef565b5b5f6123c08582860161226c565b92505060206123d18582860161226c565b9150509250929050565b5f6123e5826121f3565b9050919050565b6123f5816123db565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f60208284031215612429576124286121ef565b5b5f61243684828501612239565b91505092915050565b61244881612212565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c6121ef565b5b5f61248a85828601612239565b925050602061249b85828601612239565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252757808604811115612503576125026124a5565b5b60018516156125125780820291505b8081029050612520856124d2565b94506124e7565b94509492505050565b5f8261253f57600190506125fa565b8161254c575f90506125fa565b8160018114612562576002811461256c5761259b565b60019150506125fa565b60ff84111561257e5761257d6124a5565b5b8360020a915084821115612595576125946124a5565b5b506125fa565b5060208310610133831016604e8410600b84101617156125d05782820a9050838111156125cb576125ca6124a5565b5b6125fa565b6125dd84848460016124de565b925090508184048111156125f4576125f36124a5565b5b81810290505b9392505050565b5f61260b8261224d565b915061261683612369565b92506126437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612530565b905092915050565b5f6126558261224d565b91506126608361224d565b925082820261266e8161224d565b91508282048414831517612685576126846124a5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c0602083612169565b91506126cb8261268c565b602082019050919050565b5f6020820190508181035f8301526126ed816126b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612728601783612169565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a81612223565b92915050565b5f60208284031215612785576127846121ef565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b61224d565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b61282460208301886122f1565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a08301846122f1565b979650505050505050565b5f8151905061287181612256565b92915050565b5f805f6060848603121561288e5761288d6121ef565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e760208301846122f1565b9392505050565b6128f7816122be565b8114612901575f80fd5b50565b5f81519050612912816128ee565b92915050565b5f6020828403121561292d5761292c6121ef565b5b5f61293a84828501612904565b91505092915050565b5f81905092915050565b50565b5f61295b5f83612943565b91506129668261294d565b5f82019050919050565b5f61297a82612950565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129de602483612169565b91506129e982612984565b604082019050919050565b5f6020820190508181035f830152612a0b816129d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a6c602283612169565b9150612a7782612a12565b604082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612afa602583612169565b9150612b0582612aa0565b604082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b88602383612169565b9150612b9382612b2e565b604082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c16602983612169565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c7e601983612169565b9150612c8982612c4a565b602082019050919050565b5f6020820190508181035f830152612cab81612c72565b9050919050565b5f612cbc8261224d565b9150612cc78361224d565b9250828201905080821115612cdf57612cde6124a5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d19601a83612169565b9150612d2482612ce5565b602082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b5f612d578261224d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8957612d886124a5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dc8601783612169565b9150612dd382612d94565b602082019050919050565b5f6020820190508181035f830152612df581612dbc565b9050919050565b5f612e068261224d565b9150612e118361224d565b9250828203905081811115612e2957612e286124a5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ebb81612212565b82525050565b5f612ecc8383612eb2565b60208301905092915050565b5f602082019050919050565b5f612eee82612e89565b612ef88185612e93565b9350612f0383612ea3565b805f5b83811015612f33578151612f1a8882612ec1565b9750612f2583612ed8565b925050600181019050612f06565b5085935050505092915050565b5f60a082019050612f535f8301886122f1565b612f6060208301876127f5565b8181036040830152612f728186612ee4565b9050612f81606083018561243f565b612f8e60808301846122f1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fcf8261224d565b9150612fda8361224d565b925082612fea57612fe9612f98565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61304f602183612169565b915061305a82612ff5565b604082019050919050565b5f6020820190508181035f83015261307c81613043565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130b7601b83612169565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1a6600f659d23fd66c93343de93570daa8deb03db639f13e94ba07ae3da869264736f6c63430008190033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103db578063bf474bed14610417578063c9567bf914610441578063dd62ed3e14610457578063e086e5ec14610493578063f4293890146104bd5761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806352f7c988146102795780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d3565b60405161016491906121cf565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612280565b610510565b6040516101a091906122d8565b60405180910390f35b3480156101b4575f80fd5b506101bd61052d565b6040516101ca9190612300565b60405180910390f35b3480156101de575f80fd5b506101e7610533565b6040516101f49190612300565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612319565b610556565b60405161023091906122d8565b60405180910390f35b348015610244575f80fd5b5061024d61062a565b60405161025a9190612384565b60405180910390f35b34801561026e575f80fd5b50610277610632565b005b348015610284575f80fd5b5061029f600480360381019061029a919061239d565b6106c9565b005b3480156102ac575f80fd5b506102b561076f565b6040516102c291906123fb565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190612414565b610794565b6040516102fe9190612300565b60405180910390f35b348015610312575f80fd5b5061031b6107da565b005b348015610328575f80fd5b50610331610928565b005b34801561033e575f80fd5b50610347610a57565b6040516103549190612300565b60405180910390f35b348015610368575f80fd5b50610371610a5d565b60405161037e919061244e565b60405180910390f35b348015610392575f80fd5b5061039b610a84565b6040516103a89190612300565b60405180910390f35b3480156103bc575f80fd5b506103c5610a8a565b6040516103d291906121cf565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc9190612280565b610ac7565b60405161040e91906122d8565b60405180910390f35b348015610422575f80fd5b5061042b610ae4565b6040516104389190612300565b60405180910390f35b34801561044c575f80fd5b50610455610aea565b005b348015610462575f80fd5b5061047d60048036038101906104789190612467565b61100c565b60405161048a9190612300565b60405180910390f35b34801561049e575f80fd5b506104a761108e565b6040516104b491906122d8565b60405180910390f35b3480156104c8575f80fd5b506104d1611199565b005b60606040518060400160405280600e81526020017f496d6d6f7274616c205472756d70000000000000000000000000000000000000815250905090565b5f61052361051c611211565b8484611218565b6001905092915050565b600c5481565b5f6009600a6105429190612601565b6302cd29c0610551919061264b565b905090565b5f6105628484846113db565b61061f8461056e611211565b61061a856040518060600160405280602881526020016130ec6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d1611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c4b9092919063ffffffff16565b611218565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610672611211565b73ffffffffffffffffffffffffffffffffffffffff1614610691575f80fd5b5f61069b30610794565b90505f8111156106af576106ae81611cad565b5b5f4790505f8111156106c5576106c481611f18565b5b5050565b6106d1611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610754906126d6565b60405180910390fd5b81600581905550806006819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e2611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610865906126d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610930611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906126d6565b60405180910390fd5b6009600a6109ca9190612601565b6302cd29c06109d9919061264b565b6009819055506009600a6109ed9190612601565b6302cd29c06109fc919061264b565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a319190612601565b6302cd29c0610a40919061264b565b604051610a4d9190612300565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600681526020017f495452554d500000000000000000000000000000000000000000000000000000815250905090565b5f610ada610ad3611211565b84846113db565b6001905092915050565b600b5481565b610af2611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b75906126d6565b60405180910390fd5b600e60149054906101000a900460ff1615610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061273e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6a30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c569190612601565b6302cd29c0610c65919061264b565b611218565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf89190612770565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da29190612770565b6040518363ffffffff1660e01b8152600401610dbf92919061279b565b6020604051808303815f875af1158015610ddb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dff9190612770565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8630610794565b5f80610e90610a5d565b426040518863ffffffff1660e01b8152600401610eb296959493929190612804565b60606040518083038185885af1158015610ece573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef39190612877565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f939291906128c7565b6020604051808303815f875af1158015610faf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd39190612918565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f611097611211565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906126d6565b60405180910390fd5b5f61112c610a5d565b73ffffffffffffffffffffffffffffffffffffffff164760405161114f90612970565b5f6040518083038185875af1925050503d805f8114611189576040519150601f19603f3d011682016040523d82523d5f602084013e61118e565b606091505b505090508091505090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111d9611211565b73ffffffffffffffffffffffffffffffffffffffff16146111f8575f80fd5b5f4790505f81111561120e5761120d81611f18565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d906129f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612a82565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ce9190612300565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612b10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90612b9e565b60405180910390fd5b5f81116114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612c2c565b60405180910390fd5b5f611502610a5d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115705750611540610a5d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561199b575f600854036115a9576115a6606461159860055485611f8090919063ffffffff16565b611ff790919063ffffffff16565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116525750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116a5575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611789576009548211156116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e690612c94565b60405180910390fd5b600a54826116fc85610794565b6117069190612cb2565b1115611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e90612d2f565b60405180910390fd5b61176f606461176160055485611f8090919063ffffffff16565b611ff790919063ffffffff16565b905060085f81548092919061178390612d4d565b91905055505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118415761183e606461183060065485611f8090919063ffffffff16565b611ff790919063ffffffff16565b90505b5f61184b30610794565b9050600e60159054906101000a900460ff161580156118b65750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118ce5750600e60169054906101000a900460ff165b80156118db5750600b5481115b80156118ea5750600754600854115b1561199957601054431115611901575f600f819055505b6003600f5410611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612dde565b60405180910390fd5b61196361195e8461195984600c54612040565b612040565b611cad565b5f4790505f8111156119795761197847611f18565b5b600f5f81548092919061198b90612d4d565b919050555043601081905550505b505b5f811115611a9a576119f38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a919190612300565b60405180910390a35b611aea8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b8d611b4182846120b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c3084866120b590919063ffffffff16565b604051611c3d9190612300565b60405180910390a350505050565b5f838311158290611c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8991906121cf565b60405180910390fd5b505f8385611ca09190612dfc565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce457611ce3612e2f565b5b604051908082528060200260200182016040528015611d125781602001602082028036833780820191505090505b50905030815f81518110611d2957611d28612e5c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df19190612770565b81600181518110611e0557611e04612e5c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e6b30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611218565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ecd959493929190612f40565b5f604051808303815f87803b158015611ee4575f80fd5b505af1158015611ef6573d5f803e3d5ffd5b50505050505f600e60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f7c573d5f803e3d5ffd5b5050565b5f808303611f90575f9050611ff1565b5f8284611f9d919061264b565b9050828482611fac9190612fc5565b14611fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe390613065565b60405180910390fd5b809150505b92915050565b5f61203883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120fe565b905092915050565b5f81831161204e5782612050565b815b905092915050565b5f8082846120669190612cb2565b9050838110156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a2906130cd565b60405180910390fd5b8091505092915050565b5f6120f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c4b565b905092915050565b5f8083118290612144576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213b91906121cf565b60405180910390fd5b505f83856121529190612fc5565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a18261215f565b6121ab8185612169565b93506121bb818560208601612179565b6121c481612187565b840191505092915050565b5f6020820190508181035f8301526121e78184612197565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61221c826121f3565b9050919050565b61222c81612212565b8114612236575f80fd5b50565b5f8135905061224781612223565b92915050565b5f819050919050565b61225f8161224d565b8114612269575f80fd5b50565b5f8135905061227a81612256565b92915050565b5f8060408385031215612296576122956121ef565b5b5f6122a385828601612239565b92505060206122b48582860161226c565b9150509250929050565b5f8115159050919050565b6122d2816122be565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b6122fa8161224d565b82525050565b5f6020820190506123135f8301846122f1565b92915050565b5f805f606084860312156123305761232f6121ef565b5b5f61233d86828701612239565b935050602061234e86828701612239565b925050604061235f8682870161226c565b9150509250925092565b5f60ff82169050919050565b61237e81612369565b82525050565b5f6020820190506123975f830184612375565b92915050565b5f80604083850312156123b3576123b26121ef565b5b5f6123c08582860161226c565b92505060206123d18582860161226c565b9150509250929050565b5f6123e5826121f3565b9050919050565b6123f5816123db565b82525050565b5f60208201905061240e5f8301846123ec565b92915050565b5f60208284031215612429576124286121ef565b5b5f61243684828501612239565b91505092915050565b61244881612212565b82525050565b5f6020820190506124615f83018461243f565b92915050565b5f806040838503121561247d5761247c6121ef565b5b5f61248a85828601612239565b925050602061249b85828601612239565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252757808604811115612503576125026124a5565b5b60018516156125125780820291505b8081029050612520856124d2565b94506124e7565b94509492505050565b5f8261253f57600190506125fa565b8161254c575f90506125fa565b8160018114612562576002811461256c5761259b565b60019150506125fa565b60ff84111561257e5761257d6124a5565b5b8360020a915084821115612595576125946124a5565b5b506125fa565b5060208310610133831016604e8410600b84101617156125d05782820a9050838111156125cb576125ca6124a5565b5b6125fa565b6125dd84848460016124de565b925090508184048111156125f4576125f36124a5565b5b81810290505b9392505050565b5f61260b8261224d565b915061261683612369565b92506126437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612530565b905092915050565b5f6126558261224d565b91506126608361224d565b925082820261266e8161224d565b91508282048414831517612685576126846124a5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c0602083612169565b91506126cb8261268c565b602082019050919050565b5f6020820190508181035f8301526126ed816126b4565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612728601783612169565b9150612733826126f4565b602082019050919050565b5f6020820190508181035f8301526127558161271c565b9050919050565b5f8151905061276a81612223565b92915050565b5f60208284031215612785576127846121ef565b5b5f6127928482850161275c565b91505092915050565b5f6040820190506127ae5f83018561243f565b6127bb602083018461243f565b9392505050565b5f819050919050565b5f819050919050565b5f6127ee6127e96127e4846127c2565b6127cb565b61224d565b9050919050565b6127fe816127d4565b82525050565b5f60c0820190506128175f83018961243f565b61282460208301886122f1565b61283160408301876127f5565b61283e60608301866127f5565b61284b608083018561243f565b61285860a08301846122f1565b979650505050505050565b5f8151905061287181612256565b92915050565b5f805f6060848603121561288e5761288d6121ef565b5b5f61289b86828701612863565b93505060206128ac86828701612863565b92505060406128bd86828701612863565b9150509250925092565b5f6040820190506128da5f83018561243f565b6128e760208301846122f1565b9392505050565b6128f7816122be565b8114612901575f80fd5b50565b5f81519050612912816128ee565b92915050565b5f6020828403121561292d5761292c6121ef565b5b5f61293a84828501612904565b91505092915050565b5f81905092915050565b50565b5f61295b5f83612943565b91506129668261294d565b5f82019050919050565b5f61297a82612950565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129de602483612169565b91506129e982612984565b604082019050919050565b5f6020820190508181035f830152612a0b816129d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a6c602283612169565b9150612a7782612a12565b604082019050919050565b5f6020820190508181035f830152612a9981612a60565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612afa602583612169565b9150612b0582612aa0565b604082019050919050565b5f6020820190508181035f830152612b2781612aee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b88602383612169565b9150612b9382612b2e565b604082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c16602983612169565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c7e601983612169565b9150612c8982612c4a565b602082019050919050565b5f6020820190508181035f830152612cab81612c72565b9050919050565b5f612cbc8261224d565b9150612cc78361224d565b9250828201905080821115612cdf57612cde6124a5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d19601a83612169565b9150612d2482612ce5565b602082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b5f612d578261224d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8957612d886124a5565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dc8601783612169565b9150612dd382612d94565b602082019050919050565b5f6020820190508181035f830152612df581612dbc565b9050919050565b5f612e068261224d565b9150612e118361224d565b9250828203905081811115612e2957612e286124a5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ebb81612212565b82525050565b5f612ecc8383612eb2565b60208301905092915050565b5f602082019050919050565b5f612eee82612e89565b612ef88185612e93565b9350612f0383612ea3565b805f5b83811015612f33578151612f1a8882612ec1565b9750612f2583612ed8565b925050600181019050612f06565b5085935050505092915050565b5f60a082019050612f535f8301886122f1565b612f6060208301876127f5565b8181036040830152612f728186612ee4565b9050612f81606083018561243f565b612f8e60808301846122f1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fcf8261224d565b9150612fda8361224d565b925082612fea57612fe9612f98565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61304f602183612169565b915061305a82612ff5565b604082019050919050565b5f6020820190508181035f83015261307c81613043565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130b7601b83612169565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a1a6600f659d23fd66c93343de93570daa8deb03db639f13e94ba07ae3da869264736f6c63430008190033

Deployed Bytecode Sourcemap

3615:7999:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5329:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6162:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4486:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5606:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6331:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5515:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11048:348;;;;;;;;;;;;;:::i;:::-;;9912:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3890:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5709:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2698:148;;;;;;;;;;;;;:::i;:::-;;9745:159;;;;;;;;;;;;;:::i;:::-;;4306:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2484:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4365:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5420:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5836:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4426:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10332:671;;;;;;;;;;;;;:::i;:::-;;6011:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10158:166;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11402:209;;;;;;;;;;;;;:::i;:::-;;5329:83;5366:13;5399:5;;;;;;;;;;;;;;;;;5392:12;;5329:83;:::o;6162:161::-;6237:4;6254:39;6263:12;:10;:12::i;:::-;6277:7;6286:6;6254:8;:39::i;:::-;6311:4;6304:11;;6162:161;;;;:::o;4486:50::-;;;;:::o;5606:95::-;5659:7;4114:1;4168:2;:13;;;;:::i;:::-;4157:8;:24;;;;:::i;:::-;5679:14;;5606:95;:::o;6331:313::-;6429:4;6446:36;6456:6;6464:9;6475:6;6446:9;:36::i;:::-;6493:121;6502:6;6510:12;:10;:12::i;:::-;6524:89;6562:6;6524:89;;;;;;;;;;;;;;;;;:11;:19;6536:6;6524:19;;;;;;;;;;;;;;;:33;6544:12;:10;:12::i;:::-;6524:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6493:8;:121::i;:::-;6632:4;6625:11;;6331:313;;;;;:::o;5515:83::-;5556:5;4114:1;5574:16;;5515:83;:::o;11048:348::-;11112:10;;;;;;;;;;;11098:24;;:12;:10;:12::i;:::-;:24;;;11090:33;;;;;;11134:20;11155:24;11173:4;11155:9;:24::i;:::-;11134:45;;11206:1;11193:12;:14;11190:73;;;11221:30;11238:12;11221:16;:30::i;:::-;11190:73;11273:18;11292:21;11273:40;;11338:1;11327:10;:12;11324:65;;;11353:24;11366:10;11353:12;:24::i;:::-;11324:65;11079:317;;11048:348::o;9912:138::-;2621:12;:10;:12::i;:::-;2611:22;;:6;;;;;;;;;;:22;;;2603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10001:9:::1;9991:7;:19;;;;10032:10;10021:8;:21;;;;9912:138:::0;;:::o;3890:33::-;;;;;;;;;;;;;:::o;5709:119::-;5775:7;5802:9;:18;5812:7;5802:18;;;;;;;;;;;;;;;;5795:25;;5709:119;;;:::o;2698:148::-;2621:12;:10;:12::i;:::-;2611:22;;:6;;;;;;;;;;:22;;;2603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2805:1:::1;2768:40;;2789:6;::::0;::::1;;;;;;;;2768:40;;;;;;;;;;;;2836:1;2819:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2698:148::o:0;9745:159::-;2621:12;:10;:12::i;:::-;2611:22;;:6;;;;;;;;;;:22;;;2603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4114:1:::1;4168:2;:13;;;;:::i;:::-;4157:8;:24;;;;:::i;:::-;9798:12;:22;;;;4114:1;4168:2;:13;;;;:::i;:::-;4157:8;:24;;;;:::i;:::-;9831:14;:22;;;;9869:27;4114:1;4168:2;:13;;;;:::i;:::-;4157:8;:24;;;;:::i;:::-;9869:27;;;;;;:::i;:::-;;;;;;;;9745:159::o:0;4306:52::-;;;;:::o;2484:79::-;2522:7;2549:6;;;;;;;;;;;2542:13;;2484:79;:::o;4365:54::-;;;;:::o;5420:87::-;5459:13;5492:7;;;;;;;;;;;;;;;;;5485:14;;5420:87;:::o;5836:167::-;5914:4;5931:42;5941:12;:10;:12::i;:::-;5955:9;5966:6;5931:9;:42::i;:::-;5991:4;5984:11;;5836:167;;;;:::o;4426:53::-;;;;:::o;10332:671::-;2621:12;:10;:12::i;:::-;2611:22;;:6;;;;;;;;;;:22;;;2603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10396:11:::1;;;;;;;;;;;10395:12;10387:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10482:42;10445:15;;:80;;;;;;;;;;;;;;;;;;10536:58;10553:4;10568:15;;;;;;;;;;;4114:1;4168:2;:13;;;;:::i;:::-;4157:8;:24;;;;:::i;:::-;10536:8;:58::i;:::-;10639:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10621:55;;;10685:4;10692:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10621:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10605:13;;:110;;;;;;;;;;;;;;;;;;10726:15;;;;;;;;;;;:31;;;10765:21;10796:4;10802:24;10820:4;10802:9;:24::i;:::-;10827:1;10829::::0;10831:7:::1;:5;:7::i;:::-;10839:15;10726:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10873:13;;;;;;;;;;;10866:29;;;10904:15;;;;;;;;;;;10922:14;10866:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10962:4;10948:11;;:18;;;;;;;;;;;;;;;;;;10991:4;10977:11;;:18;;;;;;;;;;;;;;;;;;10332:671::o:0;6011:143::-;6092:7;6119:11;:18;6131:5;6119:18;;;;;;;;;;;;;;;:27;6138:7;6119:27;;;;;;;;;;;;;;;;6112:34;;6011:143;;;;:::o;10158:166::-;10209:4;2621:12;:10;:12::i;:::-;2611:22;;:6;;;;;;;;;;:22;;;2603:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10227:12:::1;10245:7;:5;:7::i;:::-;:12;;10265:21;10245:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10226:65;;;10309:7;10302:14;;;10158:166:::0;:::o;11402:209::-;11466:10;;;;;;;;;;;11452:24;;:12;:10;:12::i;:::-;:24;;;11444:33;;;;;;11488:18;11507:21;11488:40;;11553:1;11542:10;:12;11539:65;;;11568:24;11581:10;11568:12;:24::i;:::-;11539:65;11433:178;11402:209::o;241:98::-;294:7;321:10;314:17;;241:98;:::o;6652:335::-;6762:1;6745:19;;:5;:19;;;6737:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6843:1;6824:21;;:7;:21;;;6816:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6925:6;6895:11;:18;6907:5;6895:18;;;;;;;;;;;;;;;:27;6914:7;6895:27;;;;;;;;;;;;;;;:36;;;;6963:7;6947:32;;6956:5;6947:32;;;6972:6;6947:32;;;;;;:::i;:::-;;;;;;;;6652:335;;;:::o;6995:2143::-;7099:1;7083:18;;:4;:18;;;7075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7176:1;7162:16;;:2;:16;;;7154:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7246:1;7237:6;:10;7229:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7304:17;7346:7;:5;:7::i;:::-;7338:15;;:4;:15;;;;:32;;;;;7363:7;:5;:7::i;:::-;7357:13;;:2;:13;;;;7338:32;7334:1448;;;7401:1;7390:9;;:12;7387:91;;7434:28;7458:3;7434:19;7445:7;;7434:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7422:40;;7387:91;7506:13;;;;;;;;;;;7498:21;;:4;:21;;;:55;;;;;7537:15;;;;;;;;;;;7523:30;;:2;:30;;;;7498:55;:83;;;;;7559:18;:22;7578:2;7559:22;;;;;;;;;;;;;;;;;;;;;;;;;7557:24;7498:83;7494:372;;;7621:12;;7611:6;:22;;7603:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7716:14;;7706:6;7690:13;7700:2;7690:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7682:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7792:28;7816:3;7792:19;7803:7;;7792:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7780:40;;7839:9;;:11;;;;;;;;;:::i;:::-;;;;;;7494:372;7891:13;;;;;;;;;;;7885:19;;:2;:19;;;:43;;;;;7923:4;7908:20;;:4;:20;;;;7885:43;7882:124;;;7961:29;7986:3;7961:20;7972:8;;7961:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7949:41;;7882:124;8022:28;8053:24;8071:4;8053:9;:24::i;:::-;8022:55;;8097:6;;;;;;;;;;;8096:7;:30;;;;;8113:13;;;;;;;;;;;8107:19;;:2;:19;;;8096:30;:45;;;;;8130:11;;;;;;;;;;;8096:45;:89;;;;;8168:17;;8145:20;:40;8096:89;:123;;;;;8201:18;;8189:9;;:30;8096:123;8092:679;;;8259:13;;8244:12;:28;8240:90;;;8309:1;8297:9;:13;;;;8240:90;8368:1;8356:9;;:13;8348:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8416:69;8433:51;8437:6;8445:38;8449:20;8471:11;;8445:3;:38::i;:::-;8433:3;:51::i;:::-;8416:16;:69::i;:::-;8504:26;8533:21;8504:50;;8598:1;8577:18;:22;8573:106;;;8624:35;8637:21;8624:12;:35::i;:::-;8573:106;8697:9;;:11;;;;;;;;;:::i;:::-;;;;;;8743:12;8727:13;:28;;;;8221:550;8092:679;7372:1410;7334:1448;8807:1;8797:9;:11;8794:161;;;8847:39;8876:9;8847;:24;8865:4;8847:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8822:9;:24;8840:4;8822:24;;;;;;;;;;;;;;;:64;;;;8927:4;8904:39;;8913:4;8904:39;;;8933:9;8904:39;;;;;;:::i;:::-;;;;;;;;8794:161;8981:27;9001:6;8981:9;:15;8991:4;8981:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8965:9;:15;8975:4;8965:15;;;;;;;;;;;;;;;:43;;;;9033:40;9051:21;9062:9;9051:6;:10;;:21;;;;:::i;:::-;9033:9;:13;9043:2;9033:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9019:9;:13;9029:2;9019:13;;;;;;;;;;;;;;;:54;;;;9104:2;9089:41;;9098:4;9089:41;;;9108:21;9119:9;9108:6;:10;;:21;;;;:::i;:::-;9089:41;;;;;;:::i;:::-;;;;;;;;7064:2074;6995:2143;;;:::o;1378:190::-;1464:7;1497:1;1492;:6;;1500:12;1484:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1524:9;1540:1;1536;:5;;;;:::i;:::-;1524:17;;1559:1;1552:8;;;1378:190;;;;;:::o;9254:483::-;4947:4;4938:6;;:13;;;;;;;;;;;;;;;;;;9332:21:::1;9370:1;9356:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9332:40;;9401:4;9383;9388:1;9383:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9427:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9417:4;9422:1;9417:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9460:62;9477:4;9492:15;;;;;;;;;;;9510:11;9460:8;:62::i;:::-;9533:15;;;;;;;;;;;:66;;;9614:11;9640:1;9656:4;9683;9703:15;9533:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9321:416;4983:5:::0;4974:6;;:14;;;;;;;;;;;;;;;;;;9254:483;:::o;10058:92::-;10115:10;;;;;;;;;;;:19;;:27;10135:6;10115:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10058:92;:::o;1576:246::-;1634:7;1663:1;1658;:6;1654:47;;1688:1;1681:8;;;;1654:47;1711:9;1727:1;1723;:5;;;;:::i;:::-;1711:17;;1756:1;1751;1747;:5;;;;:::i;:::-;:10;1739:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1813:1;1806:8;;;1576:246;;;;;:::o;1830:132::-;1888:7;1915:39;1919:1;1922;1915:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1908:46;;1830:132;;;;:::o;9148:98::-;9205:7;9232:1;9230;:3;9229:9;;9237:1;9229:9;;;9235:1;9229:9;9222:16;;9148:98;;;;:::o;1047:179::-;1105:7;1125:9;1141:1;1137;:5;;;;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1217:1;1210:8;;;1047:179;;;;:::o;1234:136::-;1292:7;1319:43;1323:1;1326;1319:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1312:50;;1234:136;;;;:::o;1970:189::-;2056:7;2088:1;2084;:5;2091:12;2076:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2115:9;2131:1;2127;:5;;;;:::i;:::-;2115:17;;2150:1;2143:8;;;1970:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:474::-;4814:6;4822;4871:2;4859:9;4850:7;4846:23;4842:32;4839:119;;;4877:79;;:::i;:::-;4839:119;4997:1;5022:53;5067:7;5058:6;5047:9;5043:22;5022:53;:::i;:::-;5012:63;;4968:117;5124:2;5150:53;5195:7;5186:6;5175:9;5171:22;5150:53;:::i;:::-;5140:63;;5095:118;4746:474;;;;;:::o;5226:104::-;5271:7;5300:24;5318:5;5300:24;:::i;:::-;5289:35;;5226:104;;;:::o;5336:142::-;5439:32;5465:5;5439:32;:::i;:::-;5434:3;5427:45;5336:142;;:::o;5484:254::-;5593:4;5631:2;5620:9;5616:18;5608:26;;5644:87;5728:1;5717:9;5713:17;5704:6;5644:87;:::i;:::-;5484:254;;;;:::o;5744:329::-;5803:6;5852:2;5840:9;5831:7;5827:23;5823:32;5820:119;;;5858:79;;:::i;:::-;5820:119;5978:1;6003:53;6048:7;6039:6;6028:9;6024:22;6003:53;:::i;:::-;5993:63;;5949:117;5744:329;;;;:::o;6079:118::-;6166:24;6184:5;6166:24;:::i;:::-;6161:3;6154:37;6079:118;;:::o;6203:222::-;6296:4;6334:2;6323:9;6319:18;6311:26;;6347:71;6415:1;6404:9;6400:17;6391:6;6347:71;:::i;:::-;6203:222;;;;:::o;6431:474::-;6499:6;6507;6556:2;6544:9;6535:7;6531:23;6527:32;6524:119;;;6562:79;;:::i;:::-;6524:119;6682:1;6707:53;6752:7;6743:6;6732:9;6728:22;6707:53;:::i;:::-;6697:63;;6653:117;6809:2;6835:53;6880:7;6871:6;6860:9;6856:22;6835:53;:::i;:::-;6825:63;;6780:118;6431:474;;;;;:::o;6911:180::-;6959:77;6956:1;6949:88;7056:4;7053:1;7046:15;7080:4;7077:1;7070:15;7097:102;7139:8;7186:5;7183:1;7179:13;7158:34;;7097:102;;;:::o;7205:848::-;7266:5;7273:4;7297:6;7288:15;;7321:5;7312:14;;7335:712;7356:1;7346:8;7343:15;7335:712;;;7451:4;7446:3;7442:14;7436:4;7433:24;7430:50;;;7460:18;;:::i;:::-;7430:50;7510:1;7500:8;7496:16;7493:451;;;7925:4;7918:5;7914:16;7905:25;;7493:451;7975:4;7969;7965:15;7957:23;;8005:32;8028:8;8005:32;:::i;:::-;7993:44;;7335:712;;;7205:848;;;;;;;:::o;8059:1073::-;8113:5;8304:8;8294:40;;8325:1;8316:10;;8327:5;;8294:40;8353:4;8343:36;;8370:1;8361:10;;8372:5;;8343:36;8439:4;8487:1;8482:27;;;;8523:1;8518:191;;;;8432:277;;8482:27;8500:1;8491:10;;8502:5;;;8518:191;8563:3;8553:8;8550:17;8547:43;;;8570:18;;:::i;:::-;8547:43;8619:8;8616:1;8612:16;8603:25;;8654:3;8647:5;8644:14;8641:40;;;8661:18;;:::i;:::-;8641:40;8694:5;;;8432:277;;8818:2;8808:8;8805:16;8799:3;8793:4;8790:13;8786:36;8768:2;8758:8;8755:16;8750:2;8744:4;8741:12;8737:35;8721:111;8718:246;;;8874:8;8868:4;8864:19;8855:28;;8909:3;8902:5;8899:14;8896:40;;;8916:18;;:::i;:::-;8896:40;8949:5;;8718:246;8989:42;9027:3;9017:8;9011:4;9008:1;8989:42;:::i;:::-;8974:57;;;;9063:4;9058:3;9054:14;9047:5;9044:25;9041:51;;;9072:18;;:::i;:::-;9041:51;9121:4;9114:5;9110:16;9101:25;;8059:1073;;;;;;:::o;9138:281::-;9196:5;9220:23;9238:4;9220:23;:::i;:::-;9212:31;;9264:25;9280:8;9264:25;:::i;:::-;9252:37;;9308:104;9345:66;9335:8;9329:4;9308:104;:::i;:::-;9299:113;;9138:281;;;;:::o;9425:410::-;9465:7;9488:20;9506:1;9488:20;:::i;:::-;9483:25;;9522:20;9540:1;9522:20;:::i;:::-;9517:25;;9577:1;9574;9570:9;9599:30;9617:11;9599:30;:::i;:::-;9588:41;;9778:1;9769:7;9765:15;9762:1;9759:22;9739:1;9732:9;9712:83;9689:139;;9808:18;;:::i;:::-;9689:139;9473:362;9425:410;;;;:::o;9841:182::-;9981:34;9977:1;9969:6;9965:14;9958:58;9841:182;:::o;10029:366::-;10171:3;10192:67;10256:2;10251:3;10192:67;:::i;:::-;10185:74;;10268:93;10357:3;10268:93;:::i;:::-;10386:2;10381:3;10377:12;10370:19;;10029:366;;;:::o;10401:419::-;10567:4;10605:2;10594:9;10590:18;10582:26;;10654:9;10648:4;10644:20;10640:1;10629:9;10625:17;10618:47;10682:131;10808:4;10682:131;:::i;:::-;10674:139;;10401:419;;;:::o;10826:173::-;10966:25;10962:1;10954:6;10950:14;10943:49;10826:173;:::o;11005:366::-;11147:3;11168:67;11232:2;11227:3;11168:67;:::i;:::-;11161:74;;11244:93;11333:3;11244:93;:::i;:::-;11362:2;11357:3;11353:12;11346:19;;11005:366;;;:::o;11377:419::-;11543:4;11581:2;11570:9;11566:18;11558:26;;11630:9;11624:4;11620:20;11616:1;11605:9;11601:17;11594:47;11658:131;11784:4;11658:131;:::i;:::-;11650:139;;11377:419;;;:::o;11802:143::-;11859:5;11890:6;11884:13;11875:22;;11906:33;11933:5;11906:33;:::i;:::-;11802:143;;;;:::o;11951:351::-;12021:6;12070:2;12058:9;12049:7;12045:23;12041:32;12038:119;;;12076:79;;:::i;:::-;12038:119;12196:1;12221:64;12277:7;12268:6;12257:9;12253:22;12221:64;:::i;:::-;12211:74;;12167:128;11951:351;;;;:::o;12308:332::-;12429:4;12467:2;12456:9;12452:18;12444:26;;12480:71;12548:1;12537:9;12533:17;12524:6;12480:71;:::i;:::-;12561:72;12629:2;12618:9;12614:18;12605:6;12561:72;:::i;:::-;12308:332;;;;;:::o;12646:85::-;12691:7;12720:5;12709:16;;12646:85;;;:::o;12737:60::-;12765:3;12786:5;12779:12;;12737:60;;;:::o;12803:158::-;12861:9;12894:61;12912:42;12921:32;12947:5;12921:32;:::i;:::-;12912:42;:::i;:::-;12894:61;:::i;:::-;12881:74;;12803:158;;;:::o;12967:147::-;13062:45;13101:5;13062:45;:::i;:::-;13057:3;13050:58;12967:147;;:::o;13120:807::-;13369:4;13407:3;13396:9;13392:19;13384:27;;13421:71;13489:1;13478:9;13474:17;13465:6;13421:71;:::i;:::-;13502:72;13570:2;13559:9;13555:18;13546:6;13502:72;:::i;:::-;13584:80;13660:2;13649:9;13645:18;13636:6;13584:80;:::i;:::-;13674;13750:2;13739:9;13735:18;13726:6;13674:80;:::i;:::-;13764:73;13832:3;13821:9;13817:19;13808:6;13764:73;:::i;:::-;13847;13915:3;13904:9;13900:19;13891:6;13847:73;:::i;:::-;13120:807;;;;;;;;;:::o;13933:143::-;13990:5;14021:6;14015:13;14006:22;;14037:33;14064:5;14037:33;:::i;:::-;13933:143;;;;:::o;14082:663::-;14170:6;14178;14186;14235:2;14223:9;14214:7;14210:23;14206:32;14203:119;;;14241:79;;:::i;:::-;14203:119;14361:1;14386:64;14442:7;14433:6;14422:9;14418:22;14386:64;:::i;:::-;14376:74;;14332:128;14499:2;14525:64;14581:7;14572:6;14561:9;14557:22;14525:64;:::i;:::-;14515:74;;14470:129;14638:2;14664:64;14720:7;14711:6;14700:9;14696:22;14664:64;:::i;:::-;14654:74;;14609:129;14082:663;;;;;:::o;14751:332::-;14872:4;14910:2;14899:9;14895:18;14887:26;;14923:71;14991:1;14980:9;14976:17;14967:6;14923:71;:::i;:::-;15004:72;15072:2;15061:9;15057:18;15048:6;15004:72;:::i;:::-;14751:332;;;;;:::o;15089:116::-;15159:21;15174:5;15159:21;:::i;:::-;15152:5;15149:32;15139:60;;15195:1;15192;15185:12;15139:60;15089:116;:::o;15211:137::-;15265:5;15296:6;15290:13;15281:22;;15312:30;15336:5;15312:30;:::i;:::-;15211:137;;;;:::o;15354:345::-;15421:6;15470:2;15458:9;15449:7;15445:23;15441:32;15438:119;;;15476:79;;:::i;:::-;15438:119;15596:1;15621:61;15674:7;15665:6;15654:9;15650:22;15621:61;:::i;:::-;15611:71;;15567:125;15354:345;;;;:::o;15705:147::-;15806:11;15843:3;15828:18;;15705:147;;;;:::o;15858:114::-;;:::o;15978:398::-;16137:3;16158:83;16239:1;16234:3;16158:83;:::i;:::-;16151:90;;16250:93;16339:3;16250:93;:::i;:::-;16368:1;16363:3;16359:11;16352:18;;15978:398;;;:::o;16382:379::-;16566:3;16588:147;16731:3;16588:147;:::i;:::-;16581:154;;16752:3;16745:10;;16382:379;;;:::o;16767:223::-;16907:34;16903:1;16895:6;16891:14;16884:58;16976:6;16971:2;16963:6;16959:15;16952:31;16767:223;:::o;16996:366::-;17138:3;17159:67;17223:2;17218:3;17159:67;:::i;:::-;17152:74;;17235:93;17324:3;17235:93;:::i;:::-;17353:2;17348:3;17344:12;17337:19;;16996:366;;;:::o;17368:419::-;17534:4;17572:2;17561:9;17557:18;17549:26;;17621:9;17615:4;17611:20;17607:1;17596:9;17592:17;17585:47;17649:131;17775:4;17649:131;:::i;:::-;17641:139;;17368:419;;;:::o;17793:221::-;17933:34;17929:1;17921:6;17917:14;17910:58;18002:4;17997:2;17989:6;17985:15;17978:29;17793:221;:::o;18020:366::-;18162:3;18183:67;18247:2;18242:3;18183:67;:::i;:::-;18176:74;;18259:93;18348:3;18259:93;:::i;:::-;18377:2;18372:3;18368:12;18361:19;;18020:366;;;:::o;18392:419::-;18558:4;18596:2;18585:9;18581:18;18573:26;;18645:9;18639:4;18635:20;18631:1;18620:9;18616:17;18609:47;18673:131;18799:4;18673:131;:::i;:::-;18665:139;;18392:419;;;:::o;18817:224::-;18957:34;18953:1;18945:6;18941:14;18934:58;19026:7;19021:2;19013:6;19009:15;19002:32;18817:224;:::o;19047:366::-;19189:3;19210:67;19274:2;19269:3;19210:67;:::i;:::-;19203:74;;19286:93;19375:3;19286:93;:::i;:::-;19404:2;19399:3;19395:12;19388:19;;19047:366;;;:::o;19419:419::-;19585:4;19623:2;19612:9;19608:18;19600:26;;19672:9;19666:4;19662:20;19658:1;19647:9;19643:17;19636:47;19700:131;19826:4;19700:131;:::i;:::-;19692:139;;19419:419;;;:::o;19844:222::-;19984:34;19980:1;19972:6;19968:14;19961:58;20053:5;20048:2;20040:6;20036:15;20029:30;19844:222;:::o;20072:366::-;20214:3;20235:67;20299:2;20294:3;20235:67;:::i;:::-;20228:74;;20311:93;20400:3;20311:93;:::i;:::-;20429:2;20424:3;20420:12;20413:19;;20072:366;;;:::o;20444:419::-;20610:4;20648:2;20637:9;20633:18;20625:26;;20697:9;20691:4;20687:20;20683:1;20672:9;20668:17;20661:47;20725:131;20851:4;20725:131;:::i;:::-;20717:139;;20444:419;;;:::o;20869:228::-;21009:34;21005:1;20997:6;20993:14;20986:58;21078:11;21073:2;21065:6;21061:15;21054:36;20869:228;:::o;21103:366::-;21245:3;21266:67;21330:2;21325:3;21266:67;:::i;:::-;21259:74;;21342:93;21431:3;21342:93;:::i;:::-;21460:2;21455:3;21451:12;21444:19;;21103:366;;;:::o;21475:419::-;21641:4;21679:2;21668:9;21664:18;21656:26;;21728:9;21722:4;21718:20;21714:1;21703:9;21699:17;21692:47;21756:131;21882:4;21756:131;:::i;:::-;21748:139;;21475:419;;;:::o;21900:175::-;22040:27;22036:1;22028:6;22024:14;22017:51;21900:175;:::o;22081:366::-;22223:3;22244:67;22308:2;22303:3;22244:67;:::i;:::-;22237:74;;22320:93;22409:3;22320:93;:::i;:::-;22438:2;22433:3;22429:12;22422:19;;22081:366;;;:::o;22453:419::-;22619:4;22657:2;22646:9;22642:18;22634:26;;22706:9;22700:4;22696:20;22692:1;22681:9;22677:17;22670:47;22734:131;22860:4;22734:131;:::i;:::-;22726:139;;22453:419;;;:::o;22878:191::-;22918:3;22937:20;22955:1;22937:20;:::i;:::-;22932:25;;22971:20;22989:1;22971:20;:::i;:::-;22966:25;;23014:1;23011;23007:9;23000:16;;23035:3;23032:1;23029:10;23026:36;;;23042:18;;:::i;:::-;23026:36;22878:191;;;;:::o;23075:176::-;23215:28;23211:1;23203:6;23199:14;23192:52;23075:176;:::o;23257:366::-;23399:3;23420:67;23484:2;23479:3;23420:67;:::i;:::-;23413:74;;23496:93;23585:3;23496:93;:::i;:::-;23614:2;23609:3;23605:12;23598:19;;23257:366;;;:::o;23629:419::-;23795:4;23833:2;23822:9;23818:18;23810:26;;23882:9;23876:4;23872:20;23868:1;23857:9;23853:17;23846:47;23910:131;24036:4;23910:131;:::i;:::-;23902:139;;23629:419;;;:::o;24054:233::-;24093:3;24116:24;24134:5;24116:24;:::i;:::-;24107:33;;24162:66;24155:5;24152:77;24149:103;;24232:18;;:::i;:::-;24149:103;24279:1;24272:5;24268:13;24261:20;;24054:233;;;:::o;24293:173::-;24433:25;24429:1;24421:6;24417:14;24410:49;24293:173;:::o;24472:366::-;24614:3;24635:67;24699:2;24694:3;24635:67;:::i;:::-;24628:74;;24711:93;24800:3;24711:93;:::i;:::-;24829:2;24824:3;24820:12;24813:19;;24472:366;;;:::o;24844:419::-;25010:4;25048:2;25037:9;25033:18;25025:26;;25097:9;25091:4;25087:20;25083:1;25072:9;25068:17;25061:47;25125:131;25251:4;25125:131;:::i;:::-;25117:139;;24844:419;;;:::o;25269:194::-;25309:4;25329:20;25347:1;25329:20;:::i;:::-;25324:25;;25363:20;25381:1;25363:20;:::i;:::-;25358:25;;25407:1;25404;25400:9;25392:17;;25431:1;25425:4;25422:11;25419:37;;;25436:18;;:::i;:::-;25419:37;25269:194;;;;:::o;25469:180::-;25517:77;25514:1;25507:88;25614:4;25611:1;25604:15;25638:4;25635:1;25628:15;25655:180;25703:77;25700:1;25693:88;25800:4;25797:1;25790:15;25824:4;25821:1;25814:15;25841:114;25908:6;25942:5;25936:12;25926:22;;25841:114;;;:::o;25961:184::-;26060:11;26094:6;26089:3;26082:19;26134:4;26129:3;26125:14;26110:29;;25961:184;;;;:::o;26151:132::-;26218:4;26241:3;26233:11;;26271:4;26266:3;26262:14;26254:22;;26151:132;;;:::o;26289:108::-;26366:24;26384:5;26366:24;:::i;:::-;26361:3;26354:37;26289:108;;:::o;26403:179::-;26472:10;26493:46;26535:3;26527:6;26493:46;:::i;:::-;26571:4;26566:3;26562:14;26548:28;;26403:179;;;;:::o;26588:113::-;26658:4;26690;26685:3;26681:14;26673:22;;26588:113;;;:::o;26737:732::-;26856:3;26885:54;26933:5;26885:54;:::i;:::-;26955:86;27034:6;27029:3;26955:86;:::i;:::-;26948:93;;27065:56;27115:5;27065:56;:::i;:::-;27144:7;27175:1;27160:284;27185:6;27182:1;27179:13;27160:284;;;27261:6;27255:13;27288:63;27347:3;27332:13;27288:63;:::i;:::-;27281:70;;27374:60;27427:6;27374:60;:::i;:::-;27364:70;;27220:224;27207:1;27204;27200:9;27195:14;;27160:284;;;27164:14;27460:3;27453:10;;26861:608;;;26737:732;;;;:::o;27475:831::-;27738:4;27776:3;27765:9;27761:19;27753:27;;27790:71;27858:1;27847:9;27843:17;27834:6;27790:71;:::i;:::-;27871:80;27947:2;27936:9;27932:18;27923:6;27871:80;:::i;:::-;27998:9;27992:4;27988:20;27983:2;27972:9;27968:18;27961:48;28026:108;28129:4;28120:6;28026:108;:::i;:::-;28018:116;;28144:72;28212:2;28201:9;28197:18;28188:6;28144:72;:::i;:::-;28226:73;28294:3;28283:9;28279:19;28270:6;28226:73;:::i;:::-;27475:831;;;;;;;;:::o;28312:180::-;28360:77;28357:1;28350:88;28457:4;28454:1;28447:15;28481:4;28478:1;28471:15;28498:185;28538:1;28555:20;28573:1;28555:20;:::i;:::-;28550:25;;28589:20;28607:1;28589:20;:::i;:::-;28584:25;;28628:1;28618:35;;28633:18;;:::i;:::-;28618:35;28675:1;28672;28668:9;28663:14;;28498:185;;;;:::o;28689:220::-;28829:34;28825:1;28817:6;28813:14;28806:58;28898:3;28893:2;28885:6;28881:15;28874:28;28689:220;:::o;28915:366::-;29057:3;29078:67;29142:2;29137:3;29078:67;:::i;:::-;29071:74;;29154:93;29243:3;29154:93;:::i;:::-;29272:2;29267:3;29263:12;29256:19;;28915:366;;;:::o;29287:419::-;29453:4;29491:2;29480:9;29476:18;29468:26;;29540:9;29534:4;29530:20;29526:1;29515:9;29511:17;29504:47;29568:131;29694:4;29568:131;:::i;:::-;29560:139;;29287:419;;;:::o;29712:177::-;29852:29;29848:1;29840:6;29836:14;29829:53;29712:177;:::o;29895:366::-;30037:3;30058:67;30122:2;30117:3;30058:67;:::i;:::-;30051:74;;30134:93;30223:3;30134:93;:::i;:::-;30252:2;30247:3;30243:12;30236:19;;29895:366;;;:::o;30267:419::-;30433:4;30471:2;30460:9;30456:18;30448:26;;30520:9;30514:4;30510:20;30506:1;30495:9;30491:17;30484:47;30548:131;30674:4;30548:131;:::i;:::-;30540:139;;30267:419;;;:::o

Swarm Source

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