ETH Price: $2,852.38 (-2.94%)
 

Overview

ETH Balance

0.01757736318341804 ETH

ETH Value

$50.14 (@ $2,852.38/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Cyberlife (LIFE) ($0.0166)

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Transfer413035922026-01-26 3:02:1123 mins ago1769396531IN
Cyberlife: LIFE Token
0 ETH0.000001030.02160577
Transfer413035222026-01-26 2:59:5125 mins ago1769396391IN
Cyberlife: LIFE Token
0 ETH0.000000820.01268369
Transfer413034692026-01-26 2:58:0527 mins ago1769396285IN
Cyberlife: LIFE Token
0 ETH0.000001490.0215194
Transfer413033852026-01-26 2:55:1730 mins ago1769396117IN
Cyberlife: LIFE Token
0 ETH0.000001010.02113633
Transfer413028142026-01-26 2:36:1549 mins ago1769394975IN
Cyberlife: LIFE Token
0 ETH0.000000970.02035456
Transfer413027032026-01-26 2:32:3352 mins ago1769394753IN
Cyberlife: LIFE Token
0 ETH0.000000740.01148449
Transfer412991792026-01-26 0:35:052 hrs ago1769387705IN
Cyberlife: LIFE Token
0 ETH0.000001130.01622982
Transfer412817792026-01-25 14:55:0512 hrs ago1769352905IN
Cyberlife: LIFE Token
0 ETH0.000001240.02368104
Transfer412806982026-01-25 14:19:0313 hrs ago1769350743IN
Cyberlife: LIFE Token
0 ETH0.000001080.02068575
Transfer412805852026-01-25 14:15:1713 hrs ago1769350517IN
Cyberlife: LIFE Token
0 ETH0.000000960.02028584
Transfer412805492026-01-25 14:14:0513 hrs ago1769350445IN
Cyberlife: LIFE Token
0 ETH0.000001430.02059715
Transfer412804592026-01-25 14:11:0513 hrs ago1769350265IN
Cyberlife: LIFE Token
0 ETH0.000001440.02078856
Transfer412802262026-01-25 14:03:1913 hrs ago1769349799IN
Cyberlife: LIFE Token
0 ETH0.000001040.02177973
Transfer412801762026-01-25 14:01:3913 hrs ago1769349699IN
Cyberlife: LIFE Token
0 ETH0.00000080.01242803
Transfer412797092026-01-25 13:46:0513 hrs ago1769348765IN
Cyberlife: LIFE Token
0 ETH0.00000130.01873522
Transfer412796792026-01-25 13:45:0513 hrs ago1769348705IN
Cyberlife: LIFE Token
0 ETH0.00000130.01873522
Transfer412796782026-01-25 13:45:0313 hrs ago1769348703IN
Cyberlife: LIFE Token
0 ETH0.00000130.01873522
Transfer412795292026-01-25 13:40:0513 hrs ago1769348405IN
Cyberlife: LIFE Token
0 ETH0.000000940.01787936
Transfer412794382026-01-25 13:37:0313 hrs ago1769348223IN
Cyberlife: LIFE Token
0 ETH0.000001250.0180516
Transfer412794092026-01-25 13:36:0513 hrs ago1769348165IN
Cyberlife: LIFE Token
0 ETH0.000000940.0180516
Approve412793032026-01-25 13:32:3313 hrs ago1769347953IN
Cyberlife: LIFE Token
0 ETH0.00000040.00868048
Transfer412792892026-01-25 13:32:0513 hrs ago1769347925IN
Cyberlife: LIFE Token
0 ETH0.000000990.01884033
Approve412787612026-01-25 13:14:2914 hrs ago1769346869IN
Cyberlife: LIFE Token
0 ETH0.00000040.0086776
Transfer412773092026-01-25 12:26:0514 hrs ago1769343965IN
Cyberlife: LIFE Token
0 ETH0.000001080.01550952
Transfer412771602026-01-25 12:21:0715 hrs ago1769343667IN
Cyberlife: LIFE Token
0 ETH0.000000990.01429968
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AerodromeV3Token

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2025-10-21
*/

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IDexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20 is Context, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _createInitialSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, 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");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @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 functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @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 functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResultFromTarget(target, success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
     *
     * _Available since v4.8._
     */
    function verifyCallResultFromTarget(
        address target,
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        if (success) {
            if (returndata.length == 0) {
                // only check isContract if the call was successful and the return data is empty
                // otherwise we already know that it was a contract
                require(isContract(target), "Address: call to non-contract");
            }
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    /**
     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason or using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            _revert(returndata, errorMessage);
        }
    }

    function _revert(bytes memory returndata, string memory errorMessage) private pure {
        // Look for revert reason and bubble it up if present
        if (returndata.length > 0) {
            // The easiest way to bubble the revert reason is using memory via assembly
            /// @solidity memory-safe-assembly
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface IAerodromeRouter {
    function factory() external view returns (address);
}

interface IAerodromeFactory {
    function createPool(
        address tokenA,
        address tokenB,
        int24 tickSpacing,
        uint160 sqrtPriceX96
    ) external returns (address pool);
}

contract AerodromeV3Token is Ownable, ERC20 {

    IAerodromeRouter public immutable aeroRouter;
    address public pool;
    IERC20 public immutable WETH;
    address public immutable deployer;

    mapping (address => bool) public isPool;
    mapping (address => bool) public whitelisted;
    mapping (address => bool) public isMaxTxExempt;
    mapping (address => bool) public blacklisted;
    mapping (address => uint256) public lastTransferBlock;

    uint256 public maxTransactionAmt;
    uint256 public maxWallet;
    uint256 public tradingActiveBlock;
    uint256 public deadBlocks;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public transferDelayEnabled = false;

    receive() payable external{}

    constructor() ERC20("Cyberlife", "LIFE"){
        deployer = msg.sender;
        
        address wethContract;
        address _aeroRouter;
        // @dev assumes WETH pair on Aerodrome V3
        if(block.chainid == 8453){
            // Base Mainnet - Aerodrome V3
            wethContract = 0x4200000000000000000000000000000000000006;
            _aeroRouter = 0xBE6D8f0d05cC4be24d5167a3eF062215bE6D18a5;
        } else if(block.chainid == 84532){
            // Base Sepolia - Aerodrome V3 (if available)
            wethContract = 0x4200000000000000000000000000000000000006;
            _aeroRouter = 0xBE6D8f0d05cC4be24d5167a3eF062215bE6D18a5; // Update if different on testnet
        } else {
            revert("Chain not configured - Aerodrome V3 only on Base");
        }
        
        WETH = IERC20(wethContract);
        aeroRouter = IAerodromeRouter(_aeroRouter);

        uint160 sqrtPriceX96;
        
        if(address(this) < address(WETH)) {

            sqrtPriceX96 = 47536897508558598391726080;
            
        } else {
            sqrtPriceX96 = 132046937523773901994039420387328;
        }
    
        
      
        pool = IAerodromeFactory(aeroRouter.factory()).createPool(address(this), address(WETH), 2000,sqrtPriceX96);
        isPool[pool] = true;

        whitelisted[msg.sender] = true;
        whitelisted[address(aeroRouter)] = true;
        whitelisted[address(0xdead)] = true;

        isMaxTxExempt[msg.sender] = true;
        isMaxTxExempt[address(aeroRouter)] = true;
        isMaxTxExempt[pool] = true;
        isMaxTxExempt[address(0xdead)] = true;

        uint256 totalSupply = 100 * 1e6 * 1e18;
        
        maxTransactionAmt = totalSupply * 1 / 100; // @dev update
        maxWallet = totalSupply * 1 / 100; // @dev update

        _createInitialSupply(msg.sender, totalSupply);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(!blacklisted[from] && !blacklisted[to], "Blacklisted address");

        
        bool isWhitelistedTransfer = whitelisted[from] || whitelisted[to];
        
        // Whitelisted wallets bypass all limits and delays
        if(isWhitelistedTransfer) {
            super._transfer(from, to, amount);
            return;
        }
        
        require(tradingActive, "Trading not active");
        // Check if we're in the deadblock period (presale/anti-snipe period)
        bool inDeadblockPeriod = block.number < tradingActiveBlock + deadBlocks;
        
        // Calculate current limits based on deadblock period
        uint256 currentMaxTx;
        uint256 currentMaxWallet;
        
        if(inDeadblockPeriod) {
            // During deadblock: extremely restrictive (0.00001%)
            currentMaxTx = totalSupply() * 1 / 10000000;
            currentMaxWallet = totalSupply() * 1 / 10000000;
        } else {
            // After deadblock: normal limits (0.1% tx, 0.5% wallet)
            currentMaxTx = totalSupply() * 1 / 1000;
            currentMaxWallet = totalSupply() * 5 / 1000;
        }
        
        if(limitsInEffect) {
            //when buy
            if (isPool[from] && !isMaxTxExempt[to]) {
                require(amount <= currentMaxTx, "Buy transfer amt exceeds the max buy.");
                require(amount + balanceOf(to) <= currentMaxWallet, "Cannot Exceed max wallet");
                
                // Blacklist buyers during deadblocks period
                if(inDeadblockPeriod) {
                    blacklisted[to] = true;
                }
                
                // Transfer delay for non-whitelisted
                if(transferDelayEnabled) {
                    require(block.number > lastTransferBlock[to], "Transfer delay enabled");
                    lastTransferBlock[to] = block.number + 30;
                }
            } 
            //when sell
            else if (isPool[to] && !isMaxTxExempt[from]) {
                require(amount <= currentMaxTx, "Sell transfer amt exceeds the max sell.");
                
                // Transfer delay for non-whitelisted
                if(transferDelayEnabled) {
                    require(block.number > lastTransferBlock[from], "Transfer delay enabled");
                    lastTransferBlock[from] = block.number + 30;
                }
            }
            //when transfer
            else if (!isMaxTxExempt[to]){
                require(amount + balanceOf(to) <= currentMaxWallet, "Cannot Exceed max wallet");
            }
        }
        
        super._transfer(from, to, amount);
    }

    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Trading already active");
        tradingActive = true;
        tradingActiveBlock = block.number;
        deadBlocks = _deadBlocks;
        
        // Enable transfer delay
        transferDelayEnabled = true;
        
    }

    function endDeadblockPeriod() external onlyOwner {
        require(tradingActive, "Trading not active");
        require(block.number < tradingActiveBlock + deadBlocks, "Deadblock period already ended");
        
        // Set deadBlocks to current elapsed blocks, ending the period now
        deadBlocks = block.number - tradingActiveBlock;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
    }
    
    function removeTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }
    
    function setWhitelisted(address[] calldata wallets, bool status) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++){
            whitelisted[wallets[i]] = status;
        }
    }
    
    function setBlacklisted(address[] calldata wallets, bool status) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++){
            blacklisted[wallets[i]] = status;
        }
    }

    function multisend(address[] calldata wallets, uint256[] calldata amountsInWei) external {
        require(wallets.length == amountsInWei.length, "arrays length mismatch");
        for(uint256 i = 0; i < wallets.length; i++){
            super._transfer(msg.sender, wallets[i], amountsInWei[i]);
        }
    }
    
    // Only deployer can call to recover stuck ETH
    function recoverETH() external {
        require(msg.sender == deployer, "Only deployer can recover");
        uint256 balance = address(this).balance;
        require(balance > 0, "No ETH to recover");
        payable(deployer).transfer(balance);
    }
    
    // Only deployer can call to recover stuck ERC20 tokens
    function recoverERC20(address tokenAddress) external {
        require(msg.sender == deployer, "Only deployer can recover");
        require(tokenAddress != address(this), "Cannot recover native token");
        IERC20 token = IERC20(tokenAddress);
        uint256 balance = token.balanceOf(address(this));
        require(balance > 0, "No tokens to recover");
        SafeERC20.safeTransfer(token, deployer, balance);
    }
    
}

Contract Security Audit

Contract ABI

API
[{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aeroRouter","outputs":[{"internalType":"contract IAerodromeRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","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":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endDeadblockPeriod","outputs":[],"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":"address","name":"","type":"address"}],"name":"isMaxTxExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTransferBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amountsInWei","type":"uint256[]"}],"name":"multisend","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":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelisted","outputs":[],"stateMutability":"nonpayable","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526010805462ffffff191660011790553480156200002057600080fd5b506040518060400160405280600981526020016843796265726c69666560b81b815250604051806040016040528060048152602001634c49464560e01b8152506000620000726200044960201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506004620000ca8382620005d7565b506005620000d98282620005d7565b50503360c052506000804661210503620001205750734200000000000000000000000000000000000006905073be6d8f0d05cc4be24d5167a3ef062215be6d18a5620001c4565b4662014a34036200015e5750734200000000000000000000000000000000000006905073be6d8f0d05cc4be24d5167a3ef062215be6d18a5620001c4565b60405162461bcd60e51b815260206004820152603060248201527f436861696e206e6f7420636f6e66696775726564202d204165726f64726f6d6560448201526f205633206f6e6c79206f6e204261736560801b60648201526084015b60405180910390fd5b6001600160a01b0380831660a0819052908216608052600090301015620001f857506a27525460aa64c20000000062000209565b506d0682aaaaaaaaaac00000000000005b6080516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002709190620006a3565b60a0516040516308caa96b60e21b81523060048201526001600160a01b0391821660248201526107d06044820152838216606482015291169063232aa5ac906084016020604051808303816000875af1158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f89190620006a3565b600680546001600160a01b0319166001600160a01b0392831690811782556000908152600760209081526040808320805460ff19908116600190811790925533808652600885528386208054831684179055608051881680875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805484168517905590865260099094528285208054821683179055928452818420805484168217905593549094168252928120805484168317905561dead90527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb193075003785805490921681179091556a52b7d2dcc80cd2e40000009060649062000406908390620006eb565b6200041291906200070b565b600c55606462000424826001620006eb565b6200043091906200070b565b600d556200043f33826200044d565b5050505062000744565b3390565b6001600160a01b038216620004a55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620001bb565b8060036000828254620004b991906200072e565b90915550506001600160a01b03821660009081526001602052604081208054839290620004e89084906200072e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055d57607f821691505b6020821081036200057e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005d257600081815260208120601f850160051c81016020861015620005ad5750805b601f850160051c820191505b81811015620005ce57828155600101620005b9565b5050505b505050565b81516001600160401b03811115620005f357620005f362000532565b6200060b8162000604845462000548565b8462000584565b602080601f8311600181146200064357600084156200062a5750858301515b600019600386901b1c1916600185901b178555620005ce565b600085815260208120601f198616915b82811015620006745788860151825594840194600190910190840162000653565b5085821015620006935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006b657600080fd5b81516001600160a01b0381168114620006ce57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620007055762000705620006d5565b92915050565b6000826200072957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620007055762000705620006d5565b60805160a05160c051612138620007906000396000818161060e015281816107ad0152818161086a01528181610ba60152610d230152600061056b0152600061031b01526121386000f3fe6080604052600436106102345760003560e01c80639e8c708e1161012e578063dbac26e9116100ab578063f3c4b7041161006f578063f3c4b7041461072c578063f8686f071461074c578063f8b45b0514610761578063fabb0b4f14610777578063ff1c6ec61461078d57600080fd5b8063dbac26e914610660578063dd62ed3e14610690578063e1baae1f146106d6578063ee40166e146106f6578063f2fde38b1461070c57600080fd5b8063bbc0c742116100f2578063bbc0c7421461058d578063c1ec8d4b146105ac578063c876d0b9146105dc578063d5f39488146105fc578063d936547e1461063057600080fd5b80639e8c708e146104d9578063a457c2d7146104f9578063a9059cbb14610519578063aad41a4114610539578063ad5c46481461055957600080fd5b806339509351116101bc578063751039fc11610180578063751039fc1461044457806382aa7c68146104595780638712523e146104795780638da5cb5b146104a657806395d89b41146104c457600080fd5b8063395093511461038f5780634a62bb65146103af5780635b16ebb7146103c957806370a08231146103f9578063715018a61461042f57600080fd5b806318160ddd1161020357806318160ddd146102ea5780631909c2a81461030957806320d830551461033d57806323b872dd14610353578063313ce5671461037357600080fd5b80630614117a1461024057806306fdde0314610257578063095ea7b31461028257806316f0115b146102b257600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506102556107a2565b005b34801561026357600080fd5b5061026c6108b7565b6040516102799190611d5a565b60405180910390f35b34801561028e57600080fd5b506102a261029d366004611da9565b610949565b6040519015158152602001610279565b3480156102be57600080fd5b506006546102d2906001600160a01b031681565b6040516001600160a01b039091168152602001610279565b3480156102f657600080fd5b506003545b604051908152602001610279565b34801561031557600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561034957600080fd5b506102fb600c5481565b34801561035f57600080fd5b506102a261036e366004611dd3565b610960565b34801561037f57600080fd5b5060405160128152602001610279565b34801561039b57600080fd5b506102a26103aa366004611da9565b610a0a565b3480156103bb57600080fd5b506010546102a29060ff1681565b3480156103d557600080fd5b506102a26103e4366004611e0f565b60076020526000908152604090205460ff1681565b34801561040557600080fd5b506102fb610414366004611e0f565b6001600160a01b031660009081526001602052604090205490565b34801561043b57600080fd5b50610255610a46565b34801561045057600080fd5b50610255610aba565b34801561046557600080fd5b50610255610474366004611e31565b610af2565b34801561048557600080fd5b506102fb610494366004611e0f565b600b6020526000908152604090205481565b3480156104b257600080fd5b506000546001600160a01b03166102d2565b3480156104d057600080fd5b5061026c610b8c565b3480156104e557600080fd5b506102556104f4366004611e0f565b610b9b565b34801561050557600080fd5b506102a2610514366004611da9565b610d4d565b34801561052557600080fd5b506102a2610534366004611da9565b610de6565b34801561054557600080fd5b50610255610554366004611e96565b610df3565b34801561056557600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561059957600080fd5b506010546102a290610100900460ff1681565b3480156105b857600080fd5b506102a26105c7366004611e0f565b60096020526000908152604090205460ff1681565b3480156105e857600080fd5b506010546102a29062010000900460ff1681565b34801561060857600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b34801561063c57600080fd5b506102a261064b366004611e0f565b60086020526000908152604090205460ff1681565b34801561066c57600080fd5b506102a261067b366004611e0f565b600a6020526000908152604090205460ff1681565b34801561069c57600080fd5b506102fb6106ab366004611f02565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106e257600080fd5b506102556106f1366004611f46565b610ea8565b34801561070257600080fd5b506102fb600e5481565b34801561071857600080fd5b50610255610727366004611e0f565b610f49565b34801561073857600080fd5b50610255610747366004611f46565b611033565b34801561075857600080fd5b506102556110ce565b34801561076d57600080fd5b506102fb600d5481565b34801561078357600080fd5b506102fb600f5481565b34801561079957600080fd5b50610255611106565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461081b5760405162461bcd60e51b815260206004820152601960248201527827b7363c903232b83637bcb2b91031b0b7103932b1b7bb32b960391b60448201526064015b60405180910390fd5b478061085d5760405162461bcd60e51b815260206004820152601160248201527027379022aa24103a37903932b1b7bb32b960791b6044820152606401610812565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082156108fc029083906000818181858888f193505050501580156108b3573d6000803e3d6000fd5b5050565b6060600480546108c690611f9d565b80601f01602080910402602001604051908101604052809291908181526020018280546108f290611f9d565b801561093f5780601f106109145761010080835404028352916020019161093f565b820191906000526020600020905b81548152906001019060200180831161092257829003601f168201915b5050505050905090565b60006109563384846111ec565b5060015b92915050565b600061096d848484611310565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109f25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610812565b6109ff85338584036111ec565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610956918590610a41908690611fed565b6111ec565b6000546001600160a01b03163314610a705760405162461bcd60e51b815260040161081290612000565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ae45760405162461bcd60e51b815260040161081290612000565b6010805462ff00ff19169055565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161081290612000565b601054610100900460ff1615610b6d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610812565b6010805443600e55600f9290925562ffff001990911662010100179055565b6060600580546108c690611f9d565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c0f5760405162461bcd60e51b815260206004820152601960248201527827b7363c903232b83637bcb2b91031b0b7103932b1b7bb32b960391b6044820152606401610812565b306001600160a01b03821603610c675760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f766572206e617469766520746f6b656e00000000006044820152606401610812565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd49190612035565b905060008111610d1d5760405162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610812565b610d48827f0000000000000000000000000000000000000000000000000000000000000000836118b3565b505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610dcf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610812565b610ddc33858584036111ec565b5060019392505050565b6000610956338484611310565b828114610e3b5760405162461bcd60e51b81526020600482015260166024820152750c2e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610812565b60005b83811015610ea157610e8f33868684818110610e5c57610e5c61204e565b9050602002016020810190610e719190611e0f565b858585818110610e8357610e8361204e565b90506020020135611905565b80610e9981612064565b915050610e3e565b5050505050565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161081290612000565b60005b82811015610f435781600a6000868685818110610ef457610ef461204e565b9050602002016020810190610f099190611e0f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f3b81612064565b915050610ed5565b50505050565b6000546001600160a01b03163314610f735760405162461bcd60e51b815260040161081290612000565b6001600160a01b038116610fd85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461105d5760405162461bcd60e51b815260040161081290612000565b60005b82811015610f4357816008600086868581811061107f5761107f61204e565b90506020020160208101906110949190611e0f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806110c681612064565b915050611060565b6000546001600160a01b031633146110f85760405162461bcd60e51b815260040161081290612000565b6010805462ff000019169055565b6000546001600160a01b031633146111305760405162461bcd60e51b815260040161081290612000565b601054610100900460ff1661117c5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610812565b600f54600e5461118c9190611fed565b43106111da5760405162461bcd60e51b815260206004820152601e60248201527f44656164626c6f636b20706572696f6420616c726561647920656e64656400006044820152606401610812565b600e546111e7904361207d565b600f55565b6001600160a01b03831661124e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6001600160a01b0382166112af5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610812565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166000908152600a602052604090205460ff1615801561135257506001600160a01b0382166000908152600a602052604090205460ff16155b6113945760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610812565b6001600160a01b03831660009081526008602052604081205460ff16806113d357506001600160a01b03831660009081526008602052604090205460ff165b905080156113e657610f43848484611905565b601054610100900460ff166114325760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610812565b6000600f54600e546114449190611fed565b43109050600080821561149e576298968061145e60035490565b611469906001612090565b61147391906120a7565b91506298968061148260035490565b61148d906001612090565b61149791906120a7565b90506114e5565b6103e86114aa60035490565b6114b5906001612090565b6114bf91906120a7565b91506103e86114cd60035490565b6114d8906005612090565b6114e291906120a7565b90505b60105460ff161561189f576001600160a01b03871660009081526007602052604090205460ff16801561153157506001600160a01b03861660009081526009602052604090205460ff16155b156116cc57818511156115945760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d74206578636565647320746865206d617860448201526410313abc9760d91b6064820152608401610812565b806115b4876001600160a01b031660009081526001602052604090205490565b6115be9087611fed565b11156116075760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610812565b8215611631576001600160a01b0386166000908152600a60205260409020805460ff191660011790555b60105462010000900460ff16156116c7576001600160a01b0386166000908152600b602052604090205443116116a25760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610812565b6116ad43601e611fed565b6001600160a01b0387166000908152600b60205260409020555b61189f565b6001600160a01b03861660009081526007602052604090205460ff16801561170d57506001600160a01b03871660009081526009602052604090205460ff16155b1561180c57818511156117725760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d74206578636565647320746865206d616044820152663c1039b2b6361760c91b6064820152608401610812565b60105462010000900460ff16156116c7576001600160a01b0387166000908152600b602052604090205443116117e35760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610812565b6117ee43601e611fed565b6001600160a01b0388166000908152600b602052604090205561189f565b6001600160a01b03861660009081526009602052604090205460ff1661189f578061184c876001600160a01b031660009081526001602052604090205490565b6118569087611fed565b111561189f5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610812565b6118aa878787611905565b50505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610d48908490611ad4565b6001600160a01b0383166119695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610812565b6001600160a01b0382166119cb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610812565b6001600160a01b03831660009081526001602052604090205481811015611a435760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610812565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290611a7a908490611fed565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ac691815260200190565b60405180910390a350505050565b6000611b29826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ba69092919063ffffffff16565b805190915015610d485780806020019051810190611b4791906120c9565b610d485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610812565b6060611bb58484600085611bbd565b949350505050565b606082471015611c1e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610812565b600080866001600160a01b03168587604051611c3a91906120e6565b60006040518083038185875af1925050503d8060008114611c77576040519150601f19603f3d011682016040523d82523d6000602084013e611c7c565b606091505b5091509150611c8d87838387611c98565b979650505050505050565b60608315611d07578251600003611d00576001600160a01b0385163b611d005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610812565b5081611bb5565b611bb58383815115611d1c5781518083602001fd5b8060405162461bcd60e51b81526004016108129190611d5a565b60005b83811015611d51578181015183820152602001611d39565b50506000910152565b6020815260008251806020840152611d79816040850160208701611d36565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611da457600080fd5b919050565b60008060408385031215611dbc57600080fd5b611dc583611d8d565b946020939093013593505050565b600080600060608486031215611de857600080fd5b611df184611d8d565b9250611dff60208501611d8d565b9150604084013590509250925092565b600060208284031215611e2157600080fd5b611e2a82611d8d565b9392505050565b600060208284031215611e4357600080fd5b5035919050565b60008083601f840112611e5c57600080fd5b50813567ffffffffffffffff811115611e7457600080fd5b6020830191508360208260051b8501011115611e8f57600080fd5b9250929050565b60008060008060408587031215611eac57600080fd5b843567ffffffffffffffff80821115611ec457600080fd5b611ed088838901611e4a565b90965094506020870135915080821115611ee957600080fd5b50611ef687828801611e4a565b95989497509550505050565b60008060408385031215611f1557600080fd5b611f1e83611d8d565b9150611f2c60208401611d8d565b90509250929050565b8015158114611f4357600080fd5b50565b600080600060408486031215611f5b57600080fd5b833567ffffffffffffffff811115611f7257600080fd5b611f7e86828701611e4a565b9094509250506020840135611f9281611f35565b809150509250925092565b600181811c90821680611fb157607f821691505b602082108103611fd157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561095a5761095a611fd7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561204757600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006001820161207657612076611fd7565b5060010190565b8181038181111561095a5761095a611fd7565b808202811582820484141761095a5761095a611fd7565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120db57600080fd5b8151611e2a81611f35565b600082516120f8818460208701611d36565b919091019291505056fea264697066735822122050510daaf118c891c136930584a14f8325d345b1e7b2fa25fc97db4291f61e5b64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80639e8c708e1161012e578063dbac26e9116100ab578063f3c4b7041161006f578063f3c4b7041461072c578063f8686f071461074c578063f8b45b0514610761578063fabb0b4f14610777578063ff1c6ec61461078d57600080fd5b8063dbac26e914610660578063dd62ed3e14610690578063e1baae1f146106d6578063ee40166e146106f6578063f2fde38b1461070c57600080fd5b8063bbc0c742116100f2578063bbc0c7421461058d578063c1ec8d4b146105ac578063c876d0b9146105dc578063d5f39488146105fc578063d936547e1461063057600080fd5b80639e8c708e146104d9578063a457c2d7146104f9578063a9059cbb14610519578063aad41a4114610539578063ad5c46481461055957600080fd5b806339509351116101bc578063751039fc11610180578063751039fc1461044457806382aa7c68146104595780638712523e146104795780638da5cb5b146104a657806395d89b41146104c457600080fd5b8063395093511461038f5780634a62bb65146103af5780635b16ebb7146103c957806370a08231146103f9578063715018a61461042f57600080fd5b806318160ddd1161020357806318160ddd146102ea5780631909c2a81461030957806320d830551461033d57806323b872dd14610353578063313ce5671461037357600080fd5b80630614117a1461024057806306fdde0314610257578063095ea7b31461028257806316f0115b146102b257600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506102556107a2565b005b34801561026357600080fd5b5061026c6108b7565b6040516102799190611d5a565b60405180910390f35b34801561028e57600080fd5b506102a261029d366004611da9565b610949565b6040519015158152602001610279565b3480156102be57600080fd5b506006546102d2906001600160a01b031681565b6040516001600160a01b039091168152602001610279565b3480156102f657600080fd5b506003545b604051908152602001610279565b34801561031557600080fd5b506102d27f000000000000000000000000be6d8f0d05cc4be24d5167a3ef062215be6d18a581565b34801561034957600080fd5b506102fb600c5481565b34801561035f57600080fd5b506102a261036e366004611dd3565b610960565b34801561037f57600080fd5b5060405160128152602001610279565b34801561039b57600080fd5b506102a26103aa366004611da9565b610a0a565b3480156103bb57600080fd5b506010546102a29060ff1681565b3480156103d557600080fd5b506102a26103e4366004611e0f565b60076020526000908152604090205460ff1681565b34801561040557600080fd5b506102fb610414366004611e0f565b6001600160a01b031660009081526001602052604090205490565b34801561043b57600080fd5b50610255610a46565b34801561045057600080fd5b50610255610aba565b34801561046557600080fd5b50610255610474366004611e31565b610af2565b34801561048557600080fd5b506102fb610494366004611e0f565b600b6020526000908152604090205481565b3480156104b257600080fd5b506000546001600160a01b03166102d2565b3480156104d057600080fd5b5061026c610b8c565b3480156104e557600080fd5b506102556104f4366004611e0f565b610b9b565b34801561050557600080fd5b506102a2610514366004611da9565b610d4d565b34801561052557600080fd5b506102a2610534366004611da9565b610de6565b34801561054557600080fd5b50610255610554366004611e96565b610df3565b34801561056557600080fd5b506102d27f000000000000000000000000420000000000000000000000000000000000000681565b34801561059957600080fd5b506010546102a290610100900460ff1681565b3480156105b857600080fd5b506102a26105c7366004611e0f565b60096020526000908152604090205460ff1681565b3480156105e857600080fd5b506010546102a29062010000900460ff1681565b34801561060857600080fd5b506102d27f0000000000000000000000003f0b6c96834082a218edb1685b8023cca62a771181565b34801561063c57600080fd5b506102a261064b366004611e0f565b60086020526000908152604090205460ff1681565b34801561066c57600080fd5b506102a261067b366004611e0f565b600a6020526000908152604090205460ff1681565b34801561069c57600080fd5b506102fb6106ab366004611f02565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156106e257600080fd5b506102556106f1366004611f46565b610ea8565b34801561070257600080fd5b506102fb600e5481565b34801561071857600080fd5b50610255610727366004611e0f565b610f49565b34801561073857600080fd5b50610255610747366004611f46565b611033565b34801561075857600080fd5b506102556110ce565b34801561076d57600080fd5b506102fb600d5481565b34801561078357600080fd5b506102fb600f5481565b34801561079957600080fd5b50610255611106565b336001600160a01b037f0000000000000000000000003f0b6c96834082a218edb1685b8023cca62a7711161461081b5760405162461bcd60e51b815260206004820152601960248201527827b7363c903232b83637bcb2b91031b0b7103932b1b7bb32b960391b60448201526064015b60405180910390fd5b478061085d5760405162461bcd60e51b815260206004820152601160248201527027379022aa24103a37903932b1b7bb32b960791b6044820152606401610812565b6040516001600160a01b037f0000000000000000000000003f0b6c96834082a218edb1685b8023cca62a7711169082156108fc029083906000818181858888f193505050501580156108b3573d6000803e3d6000fd5b5050565b6060600480546108c690611f9d565b80601f01602080910402602001604051908101604052809291908181526020018280546108f290611f9d565b801561093f5780601f106109145761010080835404028352916020019161093f565b820191906000526020600020905b81548152906001019060200180831161092257829003601f168201915b5050505050905090565b60006109563384846111ec565b5060015b92915050565b600061096d848484611310565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156109f25760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610812565b6109ff85338584036111ec565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610956918590610a41908690611fed565b6111ec565b6000546001600160a01b03163314610a705760405162461bcd60e51b815260040161081290612000565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ae45760405162461bcd60e51b815260040161081290612000565b6010805462ff00ff19169055565b6000546001600160a01b03163314610b1c5760405162461bcd60e51b815260040161081290612000565b601054610100900460ff1615610b6d5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b6044820152606401610812565b6010805443600e55600f9290925562ffff001990911662010100179055565b6060600580546108c690611f9d565b336001600160a01b037f0000000000000000000000003f0b6c96834082a218edb1685b8023cca62a77111614610c0f5760405162461bcd60e51b815260206004820152601960248201527827b7363c903232b83637bcb2b91031b0b7103932b1b7bb32b960391b6044820152606401610812565b306001600160a01b03821603610c675760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207265636f766572206e617469766520746f6b656e00000000006044820152606401610812565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd49190612035565b905060008111610d1d5760405162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b6044820152606401610812565b610d48827f0000000000000000000000003f0b6c96834082a218edb1685b8023cca62a7711836118b3565b505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610dcf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610812565b610ddc33858584036111ec565b5060019392505050565b6000610956338484611310565b828114610e3b5760405162461bcd60e51b81526020600482015260166024820152750c2e4e4c2f2e640d8cadccee8d040dad2e6dac2e8c6d60531b6044820152606401610812565b60005b83811015610ea157610e8f33868684818110610e5c57610e5c61204e565b9050602002016020810190610e719190611e0f565b858585818110610e8357610e8361204e565b90506020020135611905565b80610e9981612064565b915050610e3e565b5050505050565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260040161081290612000565b60005b82811015610f435781600a6000868685818110610ef457610ef461204e565b9050602002016020810190610f099190611e0f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610f3b81612064565b915050610ed5565b50505050565b6000546001600160a01b03163314610f735760405162461bcd60e51b815260040161081290612000565b6001600160a01b038116610fd85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610812565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461105d5760405162461bcd60e51b815260040161081290612000565b60005b82811015610f4357816008600086868581811061107f5761107f61204e565b90506020020160208101906110949190611e0f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806110c681612064565b915050611060565b6000546001600160a01b031633146110f85760405162461bcd60e51b815260040161081290612000565b6010805462ff000019169055565b6000546001600160a01b031633146111305760405162461bcd60e51b815260040161081290612000565b601054610100900460ff1661117c5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610812565b600f54600e5461118c9190611fed565b43106111da5760405162461bcd60e51b815260206004820152601e60248201527f44656164626c6f636b20706572696f6420616c726561647920656e64656400006044820152606401610812565b600e546111e7904361207d565b600f55565b6001600160a01b03831661124e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610812565b6001600160a01b0382166112af5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610812565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166000908152600a602052604090205460ff1615801561135257506001600160a01b0382166000908152600a602052604090205460ff16155b6113945760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610812565b6001600160a01b03831660009081526008602052604081205460ff16806113d357506001600160a01b03831660009081526008602052604090205460ff165b905080156113e657610f43848484611905565b601054610100900460ff166114325760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610812565b6000600f54600e546114449190611fed565b43109050600080821561149e576298968061145e60035490565b611469906001612090565b61147391906120a7565b91506298968061148260035490565b61148d906001612090565b61149791906120a7565b90506114e5565b6103e86114aa60035490565b6114b5906001612090565b6114bf91906120a7565b91506103e86114cd60035490565b6114d8906005612090565b6114e291906120a7565b90505b60105460ff161561189f576001600160a01b03871660009081526007602052604090205460ff16801561153157506001600160a01b03861660009081526009602052604090205460ff16155b156116cc57818511156115945760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d74206578636565647320746865206d617860448201526410313abc9760d91b6064820152608401610812565b806115b4876001600160a01b031660009081526001602052604090205490565b6115be9087611fed565b11156116075760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610812565b8215611631576001600160a01b0386166000908152600a60205260409020805460ff191660011790555b60105462010000900460ff16156116c7576001600160a01b0386166000908152600b602052604090205443116116a25760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610812565b6116ad43601e611fed565b6001600160a01b0387166000908152600b60205260409020555b61189f565b6001600160a01b03861660009081526007602052604090205460ff16801561170d57506001600160a01b03871660009081526009602052604090205460ff16155b1561180c57818511156117725760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d74206578636565647320746865206d616044820152663c1039b2b6361760c91b6064820152608401610812565b60105462010000900460ff16156116c7576001600160a01b0387166000908152600b602052604090205443116117e35760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c8819195b185e48195b98589b195960521b6044820152606401610812565b6117ee43601e611fed565b6001600160a01b0388166000908152600b602052604090205561189f565b6001600160a01b03861660009081526009602052604090205460ff1661189f578061184c876001600160a01b031660009081526001602052604090205490565b6118569087611fed565b111561189f5760405162461bcd60e51b815260206004820152601860248201527710d85b9b9bdd08115e18d95959081b585e081dd85b1b195d60421b6044820152606401610812565b6118aa878787611905565b50505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610d48908490611ad4565b6001600160a01b0383166119695760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610812565b6001600160a01b0382166119cb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610812565b6001600160a01b03831660009081526001602052604090205481811015611a435760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610812565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290611a7a908490611fed565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ac691815260200190565b60405180910390a350505050565b6000611b29826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ba69092919063ffffffff16565b805190915015610d485780806020019051810190611b4791906120c9565b610d485760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610812565b6060611bb58484600085611bbd565b949350505050565b606082471015611c1e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610812565b600080866001600160a01b03168587604051611c3a91906120e6565b60006040518083038185875af1925050503d8060008114611c77576040519150601f19603f3d011682016040523d82523d6000602084013e611c7c565b606091505b5091509150611c8d87838387611c98565b979650505050505050565b60608315611d07578251600003611d00576001600160a01b0385163b611d005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610812565b5081611bb5565b611bb58383815115611d1c5781518083602001fd5b8060405162461bcd60e51b81526004016108129190611d5a565b60005b83811015611d51578181015183820152602001611d39565b50506000910152565b6020815260008251806020840152611d79816040850160208701611d36565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611da457600080fd5b919050565b60008060408385031215611dbc57600080fd5b611dc583611d8d565b946020939093013593505050565b600080600060608486031215611de857600080fd5b611df184611d8d565b9250611dff60208501611d8d565b9150604084013590509250925092565b600060208284031215611e2157600080fd5b611e2a82611d8d565b9392505050565b600060208284031215611e4357600080fd5b5035919050565b60008083601f840112611e5c57600080fd5b50813567ffffffffffffffff811115611e7457600080fd5b6020830191508360208260051b8501011115611e8f57600080fd5b9250929050565b60008060008060408587031215611eac57600080fd5b843567ffffffffffffffff80821115611ec457600080fd5b611ed088838901611e4a565b90965094506020870135915080821115611ee957600080fd5b50611ef687828801611e4a565b95989497509550505050565b60008060408385031215611f1557600080fd5b611f1e83611d8d565b9150611f2c60208401611d8d565b90509250929050565b8015158114611f4357600080fd5b50565b600080600060408486031215611f5b57600080fd5b833567ffffffffffffffff811115611f7257600080fd5b611f7e86828701611e4a565b9094509250506020840135611f9281611f35565b809150509250925092565b600181811c90821680611fb157607f821691505b602082108103611fd157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561095a5761095a611fd7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561204757600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006001820161207657612076611fd7565b5060010190565b8181038181111561095a5761095a611fd7565b808202811582820484141761095a5761095a611fd7565b6000826120c457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156120db57600080fd5b8151611e2a81611f35565b600082516120f8818460208701611d36565b919091019291505056fea264697066735822122050510daaf118c891c136930584a14f8325d345b1e7b2fa25fc97db4291f61e5b64736f6c63430008130033

Deployed Bytecode Sourcemap

13321:8047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20597:258;;;;;;;;;;;;;:::i;:::-;;1909:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2823:169;;;;;;;;;;-1:-1:-1;2823:169:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;2823:169:0;1107:187:1;13425:19:0;;;;;;;;;;-1:-1:-1;13425:19:0;;;;-1:-1:-1;;;;;13425:19:0;;;;;;-1:-1:-1;;;;;1463:32:1;;;1445:51;;1433:2;1418:18;13425:19:0;1299:203:1;2230:108:0;;;;;;;;;;-1:-1:-1;2318:12:0;;2230:108;;;1653:25:1;;;1641:2;1626:18;2230:108:0;1507:177:1;13374:44:0;;;;;;;;;;;;;;;13791:32;;;;;;;;;;;;;;;;3000:458;;;;;;;;;;-1:-1:-1;3000:458:0;;;;;:::i;:::-;;:::i;2129:93::-;;;;;;;;;;-1:-1:-1;2129:93:0;;2212:2;2397:36:1;;2385:2;2370:18;2129:93:0;2255:184:1;3466:215:0;;;;;;;;;;-1:-1:-1;3466:215:0;;;;;:::i;:::-;;:::i;13935:33::-;;;;;;;;;;-1:-1:-1;13935:33:0;;;;;;;;13528:39;;;;;;;;;;-1:-1:-1;13528:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2346:127;;;;;;;;;;-1:-1:-1;2346:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2447:18:0;2420:7;2447:18;;;:9;:18;;;;;;;2346:127;5888:150;;;;;;;;;;;;;:::i;19545:123::-;;;;;;;;;;;;;:::i;18841:333::-;;;;;;;;;;-1:-1:-1;18841:333:0;;;;;:::i;:::-;;:::i;13729:53::-;;;;;;;;;;-1:-1:-1;13729:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;5674:79;;;;;;;;;;-1:-1:-1;5712:7:0;5739:6;-1:-1:-1;;;;;5739:6:0;5674:79;;2017:104;;;;;;;;;;;;;:::i;20928:431::-;;;;;;;;;;-1:-1:-1;20928:431:0;;;;;:::i;:::-;;:::i;3689:413::-;;;;;;;;;;-1:-1:-1;3689:413:0;;;;;:::i;:::-;;:::i;2481:175::-;;;;;;;;;;-1:-1:-1;2481:175:0;;;;;:::i;:::-;;:::i;20217:316::-;;;;;;;;;;-1:-1:-1;20217:316:0;;;;;:::i;:::-;;:::i;13451:28::-;;;;;;;;;;;;;;;13975:33;;;;;;;;;;-1:-1:-1;13975:33:0;;;;;;;;;;;13625:46;;;;;;;;;;-1:-1:-1;13625:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14015:40;;;;;;;;;;-1:-1:-1;14015:40:0;;;;;;;;;;;13486:33;;;;;;;;;;;;;;;13574:44;;;;;;;;;;-1:-1:-1;13574:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13678;;;;;;;;;;-1:-1:-1;13678:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2664:151;;;;;;;;;;-1:-1:-1;2664:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;2780:18:0;;;2753:7;2780:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2664:151;20005:204;;;;;;;;;;-1:-1:-1;20005:204:0;;;;;:::i;:::-;;:::i;13861:33::-;;;;;;;;;;;;;;;;6046:244;;;;;;;;;;-1:-1:-1;6046:244:0;;;;;:::i;:::-;;:::i;19789:204::-;;;;;;;;;;-1:-1:-1;19789:204:0;;;;;:::i;:::-;;:::i;19680:97::-;;;;;;;;;;;;;:::i;13830:24::-;;;;;;;;;;;;;;;;13901:25;;;;;;;;;;;;;;;;19182:355;;;;;;;;;;;;;:::i;20597:258::-;20647:10;-1:-1:-1;;;;;20661:8:0;20647:22;;20639:60;;;;-1:-1:-1;;;20639:60:0;;5353:2:1;20639:60:0;;;5335:21:1;5392:2;5372:18;;;5365:30;-1:-1:-1;;;5411:18:1;;;5404:55;5476:18;;20639:60:0;;;;;;;;;20728:21;20768:11;20760:41;;;;-1:-1:-1;;;20760:41:0;;5707:2:1;20760:41:0;;;5689:21:1;5746:2;5726:18;;;5719:30;-1:-1:-1;;;5765:18:1;;;5758:47;5822:18;;20760:41:0;5505:341:1;20760:41:0;20812:35;;-1:-1:-1;;;;;20820:8:0;20812:26;;:35;;;;;20839:7;;20812:35;;;;20839:7;20812:26;:35;;;;;;;;;;;;;;;;;;;;;20628:227;20597:258::o;1909:100::-;1963:13;1996:5;1989:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1909:100;:::o;2823:169::-;2906:4;2923:39;140:10;2946:7;2955:6;2923:8;:39::i;:::-;-1:-1:-1;2980:4:0;2823:169;;;;;:::o;3000:458::-;3106:4;3123:36;3133:6;3141:9;3152:6;3123:9;:36::i;:::-;-1:-1:-1;;;;;3199:19:0;;3172:24;3199:19;;;:11;:19;;;;;;;;140:10;3199:33;;;;;;;;3251:26;;;;3243:79;;;;-1:-1:-1;;;3243:79:0;;6438:2:1;3243:79:0;;;6420:21:1;6477:2;6457:18;;;6450:30;6516:34;6496:18;;;6489:62;-1:-1:-1;;;6567:18:1;;;6560:38;6615:19;;3243:79:0;6236:404:1;3243:79:0;3358:57;3367:6;140:10;3408:6;3389:16;:25;3358:8;:57::i;:::-;-1:-1:-1;3446:4:0;;3000:458;-1:-1:-1;;;;3000:458:0:o;3466:215::-;140:10;3554:4;3603:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3603:34:0;;;;;;;;;;3554:4;;3571:80;;3594:7;;3603:47;;3640:10;;3603:47;:::i;:::-;3571:8;:80::i;5888:150::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;5997:1:::1;5981:6:::0;;5960:40:::1;::::0;-1:-1:-1;;;;;5981:6:0;;::::1;::::0;5960:40:::1;::::0;5997:1;;5960:40:::1;6028:1;6011:19:::0;;-1:-1:-1;;;;;;6011:19:0::1;::::0;;5888:150::o;19545:123::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;19599:14:::1;:22:::0;;-1:-1:-1;;19632:28:0;;;19545:123::o;18841:333::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;18924:13:::1;::::0;::::1;::::0;::::1;;;18923:14;18915:49;;;::::0;-1:-1:-1;;;18915:49:0;;7470:2:1;18915:49:0::1;::::0;::::1;7452:21:1::0;7509:2;7489:18;;;7482:30;-1:-1:-1;;;7528:18:1;;;7521:52;7590:18;;18915:49:0::1;7268:346:1::0;18915:49:0::1;18975:13;:20:::0;;19027:12:::1;19006:18;:33:::0;19050:10:::1;:24:::0;;;;-1:-1:-1;;19129:27:0;;;;;;;18841:333::o;2017:104::-;2073:13;2106:7;2099:14;;;;;:::i;20928:431::-;21000:10;-1:-1:-1;;;;;21014:8:0;21000:22;;20992:60;;;;-1:-1:-1;;;20992:60:0;;5353:2:1;20992:60:0;;;5335:21:1;5392:2;5372:18;;;5365:30;-1:-1:-1;;;5411:18:1;;;5404:55;5476:18;;20992:60:0;5151:349:1;20992:60:0;21095:4;-1:-1:-1;;;;;21071:29:0;;;21063:69;;;;-1:-1:-1;;;21063:69:0;;7821:2:1;21063:69:0;;;7803:21:1;7860:2;7840:18;;;7833:30;7899:29;7879:18;;;7872:57;7946:18;;21063:69:0;7619:351:1;21063:69:0;21207:30;;-1:-1:-1;;;21207:30:0;;21231:4;21207:30;;;1445:51:1;21165:12:0;;21143;;-1:-1:-1;;;;;21207:15:0;;;;;1418:18:1;;21207:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21189:48;;21266:1;21256:7;:11;21248:44;;;;-1:-1:-1;;;21248:44:0;;8366:2:1;21248:44:0;;;8348:21:1;8405:2;8385:18;;;8378:30;-1:-1:-1;;;8424:18:1;;;8417:50;8484:18;;21248:44:0;8164:344:1;21248:44:0;21303:48;21326:5;21333:8;21343:7;21303:22;:48::i;:::-;20981:378;;20928:431;:::o;3689:413::-;140:10;3782:4;3826:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3826:34:0;;;;;;;;;;3879:35;;;;3871:85;;;;-1:-1:-1;;;3871:85:0;;8715:2:1;3871:85:0;;;8697:21:1;8754:2;8734:18;;;8727:30;8793:34;8773:18;;;8766:62;-1:-1:-1;;;8844:18:1;;;8837:35;8889:19;;3871:85:0;8513:401:1;3871:85:0;3992:67;140:10;4015:7;4043:15;4024:16;:34;3992:8;:67::i;:::-;-1:-1:-1;4090:4:0;;3689:413;-1:-1:-1;;;3689:413:0:o;2481:175::-;2567:4;2584:42;140:10;2608:9;2619:6;2584:9;:42::i;20217:316::-;20325:37;;;20317:72;;;;-1:-1:-1;;;20317:72:0;;9121:2:1;20317:72:0;;;9103:21:1;9160:2;9140:18;;;9133:30;-1:-1:-1;;;9179:18:1;;;9172:52;9241:18;;20317:72:0;8919:346:1;20317:72:0;20404:9;20400:126;20419:18;;;20400:126;;;20458:56;20474:10;20486:7;;20494:1;20486:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20498:12;;20511:1;20498:15;;;;;;;:::i;:::-;;;;;;;20458;:56::i;:::-;20439:3;;;;:::i;:::-;;;;20400:126;;;;20217:316;;;;:::o;20005:204::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;20104:9:::1;20100:102;20119:18:::0;;::::1;20100:102;;;20184:6;20158:11;:23;20170:7;;20178:1;20170:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20158:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20158:23:0;:32;;-1:-1:-1;;20158:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20139:3;::::1;::::0;::::1;:::i;:::-;;;;20100:102;;;;20005:204:::0;;;:::o;6046:244::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6135:22:0;::::1;6127:73;;;::::0;-1:-1:-1;;;6127:73:0;;9744:2:1;6127:73:0::1;::::0;::::1;9726:21:1::0;9783:2;9763:18;;;9756:30;9822:34;9802:18;;;9795:62;-1:-1:-1;;;9873:18:1;;;9866:36;9919:19;;6127:73:0::1;9542:402:1::0;6127:73:0::1;6237:6;::::0;;6216:38:::1;::::0;-1:-1:-1;;;;;6216:38:0;;::::1;::::0;6237:6;::::1;::::0;6216:38:::1;::::0;::::1;6265:6;:17:::0;;-1:-1:-1;;;;;;6265:17:0::1;-1:-1:-1::0;;;;;6265:17:0;;;::::1;::::0;;;::::1;::::0;;6046:244::o;19789:204::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;19888:9:::1;19884:102;19903:18:::0;;::::1;19884:102;;;19968:6;19942:11;:23;19954:7;;19962:1;19954:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19942:23:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19942:23:0;:32;;-1:-1:-1;;19942:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19923:3;::::1;::::0;::::1;:::i;:::-;;;;19884:102;;19680:97:::0;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;19741:20:::1;:28:::0;;-1:-1:-1;;19741:28:0::1;::::0;;19680:97::o;19182:355::-;5801:6;;-1:-1:-1;;;;;5801:6:0;140:10;5801:22;5793:67;;;;-1:-1:-1;;;5793:67:0;;;;;;;:::i;:::-;19250:13:::1;::::0;::::1;::::0;::::1;;;19242:44;;;::::0;-1:-1:-1;;;19242:44:0;;10151:2:1;19242:44:0::1;::::0;::::1;10133:21:1::0;10190:2;10170:18;;;10163:30;-1:-1:-1;;;10209:18:1;;;10202:48;10267:18;;19242:44:0::1;9949:342:1::0;19242:44:0::1;19341:10;;19320:18;;:31;;;;:::i;:::-;19305:12;:46;19297:89;;;::::0;-1:-1:-1;;;19297:89:0;;10498:2:1;19297:89:0::1;::::0;::::1;10480:21:1::0;10537:2;10517:18;;;10510:30;10576:32;10556:18;;;10549:60;10626:18;;19297:89:0::1;10296:354:1::0;19297:89:0::1;19511:18;::::0;19496:33:::1;::::0;:12:::1;:33;:::i;:::-;19483:10;:46:::0;19182:355::o;4997:346::-;-1:-1:-1;;;;;5099:19:0;;5091:68;;;;-1:-1:-1;;;5091:68:0;;10990:2:1;5091:68:0;;;10972:21:1;11029:2;11009:18;;;11002:30;11068:34;11048:18;;;11041:62;-1:-1:-1;;;11119:18:1;;;11112:34;11163:19;;5091:68:0;10788:400:1;5091:68:0;-1:-1:-1;;;;;5178:21:0;;5170:68;;;;-1:-1:-1;;;5170:68:0;;11395:2:1;5170:68:0;;;11377:21:1;11434:2;11414:18;;;11407:30;11473:34;11453:18;;;11446:62;-1:-1:-1;;;11524:18:1;;;11517:32;11566:19;;5170:68:0;11193:398:1;5170:68:0;-1:-1:-1;;;;;5251:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5303:32;;1653:25:1;;;5303:32:0;;1626:18:1;5303:32:0;;;;;;;4997:346;;;:::o;16005:2828::-;-1:-1:-1;;;;;16138:17:0;;;;;;:11;:17;;;;;;;;16137:18;:38;;;;-1:-1:-1;;;;;;16160:15:0;;;;;;:11;:15;;;;;;;;16159:16;16137:38;16129:70;;;;-1:-1:-1;;;16129:70:0;;11798:2:1;16129:70:0;;;11780:21:1;11837:2;11817:18;;;11810:30;-1:-1:-1;;;11856:18:1;;;11849:49;11915:18;;16129:70:0;11596:343:1;16129:70:0;-1:-1:-1;;;;;16251:17:0;;16222:26;16251:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;16272:15:0;;;;;;:11;:15;;;;;;;;16251:36;16222:65;;16372:21;16369:107;;;16410:33;16426:4;16432:2;16436:6;16410:15;:33::i;16369:107::-;16504:13;;;;;;;16496:44;;;;-1:-1:-1;;;16496:44:0;;10151:2:1;16496:44:0;;;10133:21:1;10190:2;10170:18;;;10163:30;-1:-1:-1;;;10209:18:1;;;10202:48;10267:18;;16496:44:0;9949:342:1;16496:44:0;16630:22;16691:10;;16670:18;;:31;;;;:::i;:::-;16655:12;:46;16630:71;;16785:20;16816:24;16864:17;16861:421;;;17000:8;16980:13;2318:12;;;2230:108;16980:13;:17;;16996:1;16980:17;:::i;:::-;:28;;;;:::i;:::-;16965:43;;17062:8;17042:13;2318:12;;;2230:108;17042:13;:17;;17058:1;17042:17;:::i;:::-;:28;;;;:::i;:::-;17023:47;;16861:421;;;17208:4;17188:13;2318:12;;;2230:108;17188:13;:17;;17204:1;17188:17;:::i;:::-;:24;;;;:::i;:::-;17173:39;;17266:4;17246:13;2318:12;;;2230:108;17246:13;:17;;17262:1;17246:17;:::i;:::-;:24;;;;:::i;:::-;17227:43;;16861:421;17305:14;;;;17302:1470;;;-1:-1:-1;;;;;17364:12:0;;;;;;:6;:12;;;;;;;;:34;;;;-1:-1:-1;;;;;;17381:17:0;;;;;;:13;:17;;;;;;;;17380:18;17364:34;17360:1401;;;17437:12;17427:6;:22;;17419:72;;;;-1:-1:-1;;;17419:72:0;;12541:2:1;17419:72:0;;;12523:21:1;12580:2;12560:18;;;12553:30;12619:34;12599:18;;;12592:62;-1:-1:-1;;;12670:18:1;;;12663:35;12715:19;;17419:72:0;12339:401:1;17419:72:0;17544:16;17527:13;17537:2;-1:-1:-1;;;;;2447:18:0;2420:7;2447:18;;;:9;:18;;;;;;;2346:127;17527:13;17518:22;;:6;:22;:::i;:::-;:42;;17510:79;;;;-1:-1:-1;;;17510:79:0;;12947:2:1;17510:79:0;;;12929:21:1;12986:2;12966:18;;;12959:30;-1:-1:-1;;;13005:18:1;;;12998:54;13069:18;;17510:79:0;12745:348:1;17510:79:0;17691:17;17688:87;;;-1:-1:-1;;;;;17733:15:0;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;17733:22:0;17751:4;17733:22;;;17688:87;17869:20;;;;;;;17866:203;;;-1:-1:-1;;;;;17937:21:0;;;;;;:17;:21;;;;;;17922:12;:36;17914:71;;;;-1:-1:-1;;;17914:71:0;;13300:2:1;17914:71:0;;;13282:21:1;13339:2;13319:18;;;13312:30;-1:-1:-1;;;13358:18:1;;;13351:52;13420:18;;17914:71:0;13098:346:1;17914:71:0;18032:17;:12;18047:2;18032:17;:::i;:::-;-1:-1:-1;;;;;18008:21:0;;;;;;:17;:21;;;;;:41;17866:203;17360:1401;;;-1:-1:-1;;;;;18133:10:0;;;;;;:6;:10;;;;;;;;:34;;;;-1:-1:-1;;;;;;18148:19:0;;;;;;:13;:19;;;;;;;;18147:20;18133:34;18129:632;;;18206:12;18196:6;:22;;18188:74;;;;-1:-1:-1;;;18188:74:0;;13651:2:1;18188:74:0;;;13633:21:1;13690:2;13670:18;;;13663:30;13729:34;13709:18;;;13702:62;-1:-1:-1;;;13780:18:1;;;13773:37;13827:19;;18188:74:0;13449:403:1;18188:74:0;18357:20;;;;;;;18354:207;;;-1:-1:-1;;;;;18425:23:0;;;;;;:17;:23;;;;;;18410:12;:38;18402:73;;;;-1:-1:-1;;;18402:73:0;;13300:2:1;18402:73:0;;;13282:21:1;13339:2;13319:18;;;13312:30;-1:-1:-1;;;13358:18:1;;;13351:52;13420:18;;18402:73:0;13098:346:1;18402:73:0;18524:17;:12;18539:2;18524:17;:::i;:::-;-1:-1:-1;;;;;18498:23:0;;;;;;:17;:23;;;;;:43;18129:632;;;-1:-1:-1;;;;;18629:17:0;;;;;;:13;:17;;;;;;;;18624:137;;18700:16;18683:13;18693:2;-1:-1:-1;;;;;2447:18:0;2420:7;2447:18;;;:9;:18;;;;;;;2346:127;18683:13;18674:22;;:6;:22;:::i;:::-;:42;;18666:79;;;;-1:-1:-1;;;18666:79:0;;12947:2:1;18666:79:0;;;12929:21:1;12986:2;12966:18;;;12959:30;-1:-1:-1;;;13005:18:1;;;12998:54;13069:18;;18666:79:0;12745:348:1;18666:79:0;18792:33;18808:4;18814:2;18818:6;18792:15;:33::i;:::-;16118:2715;;;;16005:2828;;;:::o;12460:211::-;12604:58;;;-1:-1:-1;;;;;14049:32:1;;12604:58:0;;;14031:51:1;14098:18;;;;14091:34;;;12604:58:0;;;;;;;;;;14004:18:1;;;;12604:58:0;;;;;;;;-1:-1:-1;;;;;12604:58:0;-1:-1:-1;;;12604:58:0;;;12577:86;;12597:5;;12577:19;:86::i;4110:580::-;-1:-1:-1;;;;;4216:20:0;;4208:70;;;;-1:-1:-1;;;4208:70:0;;14338:2:1;4208:70:0;;;14320:21:1;14377:2;14357:18;;;14350:30;14416:34;14396:18;;;14389:62;-1:-1:-1;;;14467:18:1;;;14460:35;14512:19;;4208:70:0;14136:401:1;4208:70:0;-1:-1:-1;;;;;4297:23:0;;4289:71;;;;-1:-1:-1;;;4289:71:0;;14744:2:1;4289:71:0;;;14726:21:1;14783:2;14763:18;;;14756:30;14822:34;14802:18;;;14795:62;-1:-1:-1;;;14873:18:1;;;14866:33;14916:19;;4289:71:0;14542:399:1;4289:71:0;-1:-1:-1;;;;;4397:17:0;;4373:21;4397:17;;;:9;:17;;;;;;4433:23;;;;4425:74;;;;-1:-1:-1;;;4425:74:0;;15148:2:1;4425:74:0;;;15130:21:1;15187:2;15167:18;;;15160:30;15226:34;15206:18;;;15199:62;-1:-1:-1;;;15277:18:1;;;15270:36;15323:19;;4425:74:0;14946:402:1;4425:74:0;-1:-1:-1;;;;;4535:17:0;;;;;;;:9;:17;;;;;;4555:22;;;4535:42;;4599:20;;;;;;;;:30;;4571:6;;4535:17;4599:30;;4571:6;;4599:30;:::i;:::-;;;;;;;;4664:9;-1:-1:-1;;;;;4647:35:0;4656:6;-1:-1:-1;;;;;4647:35:0;;4675:6;4647:35;;;;1653:25:1;;1641:2;1626:18;;1507:177;4647:35:0;;;;;;;;4197:493;4110:580;;;:::o;12679:333::-;12760:23;12786:69;12814:4;12786:69;;;;;;;;;;;;;;;;;12794:5;-1:-1:-1;;;;;12786:27:0;;;:69;;;;;:::i;:::-;12870:17;;12760:95;;-1:-1:-1;12870:21:0;12866:139;;12927:10;12916:30;;;;;;;;;;;;:::i;:::-;12908:85;;;;-1:-1:-1;;;12908:85:0;;15805:2:1;12908:85:0;;;15787:21:1;15844:2;15824:18;;;15817:30;15883:34;15863:18;;;15856:62;-1:-1:-1;;;15934:18:1;;;15927:40;15984:19;;12908:85:0;15603:406:1;6963:229:0;7100:12;7132:52;7154:6;7162:4;7168:1;7171:12;7132:21;:52::i;:::-;7125:59;6963:229;-1:-1:-1;;;;6963:229:0:o;8083:455::-;8253:12;8311:5;8286:21;:30;;8278:81;;;;-1:-1:-1;;;8278:81:0;;16216:2:1;8278:81:0;;;16198:21:1;16255:2;16235:18;;;16228:30;16294:34;16274:18;;;16267:62;-1:-1:-1;;;16345:18:1;;;16338:36;16391:19;;8278:81:0;16014:402:1;8278:81:0;8371:12;8385:23;8412:6;-1:-1:-1;;;;;8412:11:0;8431:5;8438:4;8412:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8370:73;;;;8461:69;8488:6;8496:7;8505:10;8517:12;8461:26;:69::i;:::-;8454:76;8083:455;-1:-1:-1;;;;;;;8083:455:0:o;10656:644::-;10841:12;10870:7;10866:427;;;10898:10;:17;10919:1;10898:22;10894:290;;-1:-1:-1;;;;;6404:19:0;;;11108:60;;;;-1:-1:-1;;;11108:60:0;;16915:2:1;11108:60:0;;;16897:21:1;16954:2;16934:18;;;16927:30;16993:31;16973:18;;;16966:59;17042:18;;11108:60:0;16713:353:1;11108:60:0;-1:-1:-1;11205:10:0;11198:17;;10866:427;11248:33;11256:10;11268:12;12003:17;;:21;11999:388;;12235:10;12229:17;12292:15;12279:10;12275:2;12271:19;12264:44;11999:388;12362:12;12355:20;;-1:-1:-1;;;12355:20:0;;;;;;;;:::i;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1922:328::-;1999:6;2007;2015;2068:2;2056:9;2047:7;2043:23;2039:32;2036:52;;;2084:1;2081;2074:12;2036:52;2107:29;2126:9;2107:29;:::i;:::-;2097:39;;2155:38;2189:2;2178:9;2174:18;2155:38;:::i;:::-;2145:48;;2240:2;2229:9;2225:18;2212:32;2202:42;;1922:328;;;;;:::o;2444:186::-;2503:6;2556:2;2544:9;2535:7;2531:23;2527:32;2524:52;;;2572:1;2569;2562:12;2524:52;2595:29;2614:9;2595:29;:::i;:::-;2585:39;2444:186;-1:-1:-1;;;2444:186:1:o;2635:180::-;2694:6;2747:2;2735:9;2726:7;2722:23;2718:32;2715:52;;;2763:1;2760;2753:12;2715:52;-1:-1:-1;2786:23:1;;2635:180;-1:-1:-1;2635:180:1:o;2820:367::-;2883:8;2893:6;2947:3;2940:4;2932:6;2928:17;2924:27;2914:55;;2965:1;2962;2955:12;2914:55;-1:-1:-1;2988:20:1;;3031:18;3020:30;;3017:50;;;3063:1;3060;3053:12;3017:50;3100:4;3092:6;3088:17;3076:29;;3160:3;3153:4;3143:6;3140:1;3136:14;3128:6;3124:27;3120:38;3117:47;3114:67;;;3177:1;3174;3167:12;3114:67;2820:367;;;;;:::o;3192:773::-;3314:6;3322;3330;3338;3391:2;3379:9;3370:7;3366:23;3362:32;3359:52;;;3407:1;3404;3397:12;3359:52;3447:9;3434:23;3476:18;3517:2;3509:6;3506:14;3503:34;;;3533:1;3530;3523:12;3503:34;3572:70;3634:7;3625:6;3614:9;3610:22;3572:70;:::i;:::-;3661:8;;-1:-1:-1;3546:96:1;-1:-1:-1;3749:2:1;3734:18;;3721:32;;-1:-1:-1;3765:16:1;;;3762:36;;;3794:1;3791;3784:12;3762:36;;3833:72;3897:7;3886:8;3875:9;3871:24;3833:72;:::i;:::-;3192:773;;;;-1:-1:-1;3924:8:1;-1:-1:-1;;;;3192:773:1:o;4192:260::-;4260:6;4268;4321:2;4309:9;4300:7;4296:23;4292:32;4289:52;;;4337:1;4334;4327:12;4289:52;4360:29;4379:9;4360:29;:::i;:::-;4350:39;;4408:38;4442:2;4431:9;4427:18;4408:38;:::i;:::-;4398:48;;4192:260;;;;;:::o;4457:118::-;4543:5;4536:13;4529:21;4522:5;4519:32;4509:60;;4565:1;4562;4555:12;4509:60;4457:118;:::o;4580:566::-;4672:6;4680;4688;4741:2;4729:9;4720:7;4716:23;4712:32;4709:52;;;4757:1;4754;4747:12;4709:52;4797:9;4784:23;4830:18;4822:6;4819:30;4816:50;;;4862:1;4859;4852:12;4816:50;4901:70;4963:7;4954:6;4943:9;4939:22;4901:70;:::i;:::-;4990:8;;-1:-1:-1;4875:96:1;-1:-1:-1;;5075:2:1;5060:18;;5047:32;5088:28;5047:32;5088:28;:::i;:::-;5135:5;5125:15;;;4580:566;;;;;:::o;5851:380::-;5930:1;5926:12;;;;5973;;;5994:61;;6048:4;6040:6;6036:17;6026:27;;5994:61;6101:2;6093:6;6090:14;6070:18;6067:38;6064:161;;6147:10;6142:3;6138:20;6135:1;6128:31;6182:4;6179:1;6172:15;6210:4;6207:1;6200:15;6064:161;;5851:380;;;:::o;6645:127::-;6706:10;6701:3;6697:20;6694:1;6687:31;6737:4;6734:1;6727:15;6761:4;6758:1;6751:15;6777:125;6842:9;;;6863:10;;;6860:36;;;6876:18;;:::i;6907:356::-;7109:2;7091:21;;;7128:18;;;7121:30;7187:34;7182:2;7167:18;;7160:62;7254:2;7239:18;;6907:356::o;7975:184::-;8045:6;8098:2;8086:9;8077:7;8073:23;8069:32;8066:52;;;8114:1;8111;8104:12;8066:52;-1:-1:-1;8137:16:1;;7975:184;-1:-1:-1;7975:184:1:o;9270:127::-;9331:10;9326:3;9322:20;9319:1;9312:31;9362:4;9359:1;9352:15;9386:4;9383:1;9376:15;9402:135;9441:3;9462:17;;;9459:43;;9482:18;;:::i;:::-;-1:-1:-1;9529:1:1;9518:13;;9402:135::o;10655:128::-;10722:9;;;10743:11;;;10740:37;;;10757:18;;:::i;11944:168::-;12017:9;;;12048;;12065:15;;;12059:22;;12045:37;12035:71;;12086:18;;:::i;12117:217::-;12157:1;12183;12173:132;;12227:10;12222:3;12218:20;12215:1;12208:31;12262:4;12259:1;12252:15;12290:4;12287:1;12280:15;12173:132;-1:-1:-1;12319:9:1;;12117:217::o;15353:245::-;15420:6;15473:2;15461:9;15452:7;15448:23;15444:32;15441:52;;;15489:1;15486;15479:12;15441:52;15521:9;15515:16;15540:28;15562:5;15540:28;:::i;16421:287::-;16550:3;16588:6;16582:13;16604:66;16663:6;16658:3;16651:4;16643:6;16639:17;16604:66;:::i;:::-;16686:16;;;;;16421:287;-1:-1:-1;;16421:287:1:o

Swarm Source

ipfs://50510daaf118c891c136930584a14f8325d345b1e7b2fa25fc97db4291f61e5b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Cyberlife is an AI-native gaming platform on Base that lets anyone create, play, and own 2D/3D games through natural language prompts. Players earn, build, and trade using the $LIFE token, merging gaming, creativity, and blockchain ownership seamlessly.

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.