BNB Price: $696.76 (-1.86%)
Gas: 1 GWei
 

Overview

BNB Balance

BNB Smart Chain LogoBNB Smart Chain LogoBNB Smart Chain Logo594.358532643943706787 BNB

BNB Value

$414,125.83 (@ $696.76/BNB)

Token Holdings

Multichain Info

Transaction Hash
Method
Block
From
To
Transfer453251262024-12-30 11:02:0112 secs ago1735556521IN
0x40BA01dA...e11Cd94bD
0.08 BNB0.000089661
Approve453251082024-12-30 11:01:071 min ago1735556467IN
0x40BA01dA...e11Cd94bD
0 BNB0.000054052.02
Transfer453251022024-12-30 11:00:491 min ago1735556449IN
0x40BA01dA...e11Cd94bD
0.6 BNB0.000146582.02
Transfer453251012024-12-30 11:00:461 min ago1735556446IN
0x40BA01dA...e11Cd94bD
0 BNB0.000079511.0201
Transfer453250852024-12-30 10:59:582 mins ago1735556398IN
0x40BA01dA...e11Cd94bD
0.3 BNB0.000146582.02
Transfer453250802024-12-30 10:59:432 mins ago1735556383IN
0x40BA01dA...e11Cd94bD
0 BNB0.000085741.1
Transfer453250752024-12-30 10:59:282 mins ago1735556368IN
0x40BA01dA...e11Cd94bD
0.158 BNB0.000250212.02
Transfer453250752024-12-30 10:59:282 mins ago1735556368IN
0x40BA01dA...e11Cd94bD
0 BNB0.000073181
Transfer453250742024-12-30 10:59:252 mins ago1735556365IN
0x40BA01dA...e11Cd94bD
5 BNB0.000098631.1
Transfer453250742024-12-30 10:59:252 mins ago1735556365IN
0x40BA01dA...e11Cd94bD
2.474 BNB0.000181122.02
Transfer453250582024-12-30 10:58:373 mins ago1735556317IN
0x40BA01dA...e11Cd94bD
0 BNB0.000073181
Transfer453250572024-12-30 10:58:343 mins ago1735556314IN
0x40BA01dA...e11Cd94bD
0.73204192 BNB0.000072561
Transfer453250552024-12-30 10:58:283 mins ago1735556308IN
0x40BA01dA...e11Cd94bD
0.98 BNB0.000250212.02
Transfer453250532024-12-30 10:58:223 mins ago1735556302IN
0x40BA01dA...e11Cd94bD
0.49 BNB0.000181122.02
Transfer453250512024-12-30 10:58:163 mins ago1735556296IN
0x40BA01dA...e11Cd94bD
0 BNB0.000073171
Transfer453250502024-12-30 10:58:134 mins ago1735556293IN
0x40BA01dA...e11Cd94bD
2.92843671 BNB0.000089661
Transfer453250462024-12-30 10:58:014 mins ago1735556281IN
0x40BA01dA...e11Cd94bD
4.273 BNB0.000146582.02
Transfer453250402024-12-30 10:57:434 mins ago1735556263IN
0x40BA01dA...e11Cd94bD
0.02 BNB0.000215672.02
Transfer453250402024-12-30 10:57:434 mins ago1735556263IN
0x40BA01dA...e11Cd94bD
2.08 BNB0.000181122.02
Transfer453250252024-12-30 10:56:585 mins ago1735556218IN
0x40BA01dA...e11Cd94bD
0 BNB0.000085741.1
Transfer453250242024-12-30 10:56:555 mins ago1735556215IN
0x40BA01dA...e11Cd94bD
0 BNB0.000046421
Transfer453250222024-12-30 10:56:495 mins ago1735556209IN
0x40BA01dA...e11Cd94bD
0.06 BNB0.000250212.02
Transfer453250192024-12-30 10:56:405 mins ago1735556200IN
0x40BA01dA...e11Cd94bD
0 BNB0.000063521
Transfer453250192024-12-30 10:56:405 mins ago1735556200IN
0x40BA01dA...e11Cd94bD
0.16097661 BNB0.000146582.02
Transfer453250172024-12-30 10:56:345 mins ago1735556194IN
0x40BA01dA...e11Cd94bD
0.11 BNB0.000145132
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
453251022024-12-30 11:00:491 min ago1735556449
0x40BA01dA...e11Cd94bD
0.012 BNB
453251012024-12-30 11:00:461 min ago1735556446
0x40BA01dA...e11Cd94bD
0.10973743 BNB
453251012024-12-30 11:00:461 min ago1735556446
0x40BA01dA...e11Cd94bD
0.00223953 BNB
453250852024-12-30 10:59:582 mins ago1735556398
0x40BA01dA...e11Cd94bD
0.006 BNB
453250802024-12-30 10:59:432 mins ago1735556383
0x40BA01dA...e11Cd94bD
0.02741366 BNB
453250802024-12-30 10:59:432 mins ago1735556383
0x40BA01dA...e11Cd94bD
0.00055946 BNB
453250752024-12-30 10:59:282 mins ago1735556368
0x40BA01dA...e11Cd94bD
0.00316 BNB
453250752024-12-30 10:59:282 mins ago1735556368
0x40BA01dA...e11Cd94bD
1.3720543 BNB
453250752024-12-30 10:59:282 mins ago1735556368
0x40BA01dA...e11Cd94bD
0.0280011 BNB
453250742024-12-30 10:59:252 mins ago1735556365
0x40BA01dA...e11Cd94bD
0.1 BNB
453250742024-12-30 10:59:252 mins ago1735556365
0x40BA01dA...e11Cd94bD
0.04948 BNB
453250582024-12-30 10:58:373 mins ago1735556317
0x40BA01dA...e11Cd94bD
0.40058531 BNB
453250582024-12-30 10:58:373 mins ago1735556317
0x40BA01dA...e11Cd94bD
0.00817521 BNB
453250572024-12-30 10:58:343 mins ago1735556314
0x40BA01dA...e11Cd94bD
0.01464083 BNB
453250552024-12-30 10:58:283 mins ago1735556308
0x40BA01dA...e11Cd94bD
0.0196 BNB
453250532024-12-30 10:58:223 mins ago1735556302
0x40BA01dA...e11Cd94bD
0.0098 BNB
453250512024-12-30 10:58:163 mins ago1735556296
0x40BA01dA...e11Cd94bD
0.63736204 BNB
453250512024-12-30 10:58:163 mins ago1735556296
0x40BA01dA...e11Cd94bD
0.01300738 BNB
453250502024-12-30 10:58:134 mins ago1735556293
0x40BA01dA...e11Cd94bD
0.05856873 BNB
453250462024-12-30 10:58:014 mins ago1735556281
0x40BA01dA...e11Cd94bD
0.08546 BNB
453250402024-12-30 10:57:434 mins ago1735556263
0x40BA01dA...e11Cd94bD
0.0004 BNB
453250402024-12-30 10:57:434 mins ago1735556263
0x40BA01dA...e11Cd94bD
0.0416 BNB
453250252024-12-30 10:56:585 mins ago1735556218
0x40BA01dA...e11Cd94bD
0.02593203 BNB
453250252024-12-30 10:56:585 mins ago1735556218
0x40BA01dA...e11Cd94bD
0.00052922 BNB
453250222024-12-30 10:56:495 mins ago1735556209
0x40BA01dA...e11Cd94bD
0.0012 BNB
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
X314

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2024-11-25
*/

/**
 *Submitted for verification at BscScan.com on 2024-11-16
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

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

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
}

interface IERC314 {
  event Transfer(address indexed from, address indexed to, uint256 value);
  event AddLiquidity(uint256 _blockToUnlockLiquidity, uint256 value);
  event RemoveLiquidity(uint256 value);
  event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out);
}




contract X314 is IERC314, Ownable {
    mapping(address account => uint256) private _balances;
    mapping(address account => uint256) private _lastTxTime;
    mapping(address account => uint32) private lastTransaction;
    mapping(address => mapping(address => uint256)) private _allowances;

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    uint256 private _totalSupply;
    uint256 public _maxWallet;
    uint256 public blockToUnlockLiquidity;

    string private _name;
    string private _symbol;

    address public liquidityProvider;

    bool public tradingEnable;
    bool public liquidityAdded;
    bool public maxWalletEnable;

    modifier onlyLiquidityProvider() {
        require(msg.sender == liquidityProvider, 'You are not the liquidity provider');
        _;
    }

    address payable public mkt_314;

    constructor() {
        _name = "X314";
        _symbol = "X314";
        _totalSupply = 100_000_000 * 10 ** 18;

        uint256 liquidityAmount = 63_000_000 * 10 ** 18;
        uint256 ownerBalance = _totalSupply - liquidityAmount;

        address receiver = 0xa2ae2A3F25980D66190eBA8FE513A35BF3bC9f0a;
        mkt_314 = payable(0xB99F42Ef8E02F5A1e4DD41142517dfF54d7911F9);

        _balances[address(this)] = liquidityAmount;
        _balances[receiver] = ownerBalance;

        emit Transfer(address(0), address(this), liquidityAmount);
        emit Transfer(address(0), address(receiver), ownerBalance);

        _maxWallet = _totalSupply;

        cooldownSec = 10;

        buyFundFee = 500;

        sellFundFee = 500;

        maxWalletEnable = true;

        tradingEnable = false;
        liquidityAdded = false;

        excludeCoolingOf[receiver] = true;
        excludeCoolingOf[mkt_314] = true;
        excludeCoolingOf[address(this)] = true;

        transferOwnership(receiver);

    }


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

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

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

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

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

    function transfer(address to, uint256 value) public virtual returns (bool) {
        // sell or transfer
        if (to == address(this)) {
            sell(value);
        } else {
            _transfer(msg.sender, to, value);
        }

        return true;
    }

    function isContract(address _addr) private view returns (bool) {
        uint32 size;
        assembly {
            size := extcodesize(_addr)
        }
        return (size > 0);
    }

    uint256 public cooldownSec;
    function setCooldownSec(uint256 newValue) public onlyOwner{
        require(newValue <= 60,"too long");
        cooldownSec = newValue;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) private returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {

        address spender = msg.sender;
        _spendAllowance(from, spender, amount);

        if (to == address(this)) {
            require(false,"reject self");
            // sell(from, amount);
        } else {
            _transfer(from, to, amount);
        }

        return true;
    }

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

    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"
            );
            unchecked {
                _approve(_owner, spender, currentAllowance - amount);
            }
        }
    }

    function multiSendToken(
        address[] calldata accounts,
        uint256[] calldata amounts
    ) public onlyOwner{
        require(accounts.length == amounts.length,"dismatch length");

        for (uint256 i = 0; i < accounts.length; i++) {
            address to = accounts[i];
            uint256 amount = amounts[i];

            require(balanceOf(msg.sender) > amount,"not enough token");
            require(to != address(this),"cant send to pool");

            _basicTransfer(msg.sender, to, amount);
        }
    }

    mapping(address => bool) public excludeCoolingOf;
    function setExcludeCoolingOf(
        address[] memory accounts,
        bool _ok
    ) external onlyOwner {
        for (uint i = 0; i < accounts.length; i++) {
            excludeCoolingOf[accounts[i]] = _ok;
        }
    }

    function getERRORToken(
        address _t,
        address to,
        uint256 amount
    ) public {
        require(msg.sender == mkt_314,"no permission");
        require(_t != address(this),"cant claim self token");
        IERC20(_t).transfer(to,amount);
    }

    function _transfer(address from, address to, uint256 value) internal virtual {

        if (from == address(this) || to == address(this)){
            if (to != address(0) && !excludeCoolingOf[msg.sender]) {
                require(lastTransaction[msg.sender] != block.number, "You can't make two transactions in the same block");
                lastTransaction[msg.sender] = uint32(block.number);

                require(block.timestamp >= _lastTxTime[msg.sender] + cooldownSec, "Sender must wait for cooldown 1");
                _lastTxTime[msg.sender] = block.timestamp;
            }

            _basicTransfer(from, to, value);
            return;
        }

        uint256 finalValue = value;
        if(!excludeCoolingOf[from] && !excludeCoolingOf[to]) {
            if (to != address(0)){
                require(block.timestamp >= _lastTxTime[from] + cooldownSec, "Sender must wait for cooldown 3");
                _lastTxTime[from] = block.timestamp;
            }
        }

        _basicTransfer(from, to, finalValue);
    }

    function getReserves() public view returns (uint256, uint256) {
        return (address(this).balance, _balances[address(this)]);
    }

    // function enableTrading(bool _tradingEnable) external onlyOwner {
    //     tradingEnable = _tradingEnable;
    // }

    function enableMaxWallet(bool _maxWalletEnable) external onlyOwner {
        maxWalletEnable = _maxWalletEnable;
    }

    function setMaxWallet(uint256 _maxWallet_) external onlyOwner {
        // require(_maxWallet_ >= totalSupply() / 10000,"max wallet amount must be greater than 0.01% of supply");
        _maxWallet = _maxWallet_;
    }

    function addLiquidity(uint256 _lockBlock) public payable onlyOwner {
        // Prevent from errors due to misunderstanding
        require(_lockBlock < block.number, "lock block cant greater than current block");

        require(liquidityAdded == false, "Liquidity already added");
        require(balanceOf(address(this)) > 0, "zero balance");

        uint256 _blockToUnlockLiquidity = block.number + _lockBlock;

        liquidityAdded = true;

        require(msg.value > 0, 'No ETH sent');
        require(block.number < _blockToUnlockLiquidity, 'Block number too low');

        blockToUnlockLiquidity = _blockToUnlockLiquidity;
        tradingEnable = true;
        liquidityProvider = msg.sender;

        emit AddLiquidity(_blockToUnlockLiquidity, msg.value);
    }

    function removeLiquidity() public onlyLiquidityProvider {
        require(block.number > blockToUnlockLiquidity, "Liquidity locked");

        tradingEnable = false;

        payable(msg.sender).transfer(address(this).balance);

        emit RemoveLiquidity(address(this).balance);
    }

    function extendLiquidityLock(uint256 _extendLockBlock) public onlyLiquidityProvider {
        // Prevent from errors due to misunderstanding
        require(_extendLockBlock < block.number, "lock block cant greater than current block");

        uint256 _blockToUnlockLiquidity = blockToUnlockLiquidity + _extendLockBlock;

        require(blockToUnlockLiquidity < _blockToUnlockLiquidity, "You can't shorten duration");

        blockToUnlockLiquidity = _blockToUnlockLiquidity;
    }

    function getAmountOut(uint256 value, bool _buy) public view returns (uint256) {
        (uint256 reserveETH, uint256 reserveToken) = getReserves();

        if (_buy) {
            return (value * reserveToken) / (reserveETH + value);
        } else {
            return (value * reserveETH) / (reserveToken + value);
        }
    }

    uint256 public buyFundFee;
    function setBUYFee(uint256 newFund) public onlyOwner{
        buyFundFee = newFund;
    }

    uint256 public sellFundFee;
    function setSellFee(uint256 newFund) public onlyOwner{
        sellFundFee = newFund;
    }

    uint256 public tradingOpenTime;
    function setTradingOpenTime(uint256 _tradingOpenTime) public onlyOwner{
        tradingOpenTime = _tradingOpenTime;
    }

    function isTradingOpen() public view returns(bool){
        return (tradingOpenTime > 0 && block.timestamp >= tradingOpenTime);
    }

    function buy() internal {
        require(tradingEnable, 'Trading not enable');
        if (!excludeCoolingOf[msg.sender]){
            require(isTradingOpen(), "Trading not open");
        }
        require(msg.sender == tx.origin, "Only EOA");

        uint256 msgValue = msg.value;
        uint256 feeValue;

        feeValue = msgValue * buyFundFee / 10000;
        if (excludeCoolingOf[msg.sender]){
            feeValue = 0;
        }
        if (feeValue > 0){
            send_to_mkt_314(feeValue);
        }
        
        uint256 swapValue = msgValue - feeValue;

        uint256 token_amount = (swapValue * _balances[address(this)]) / (address(this).balance);

        uint256 user_amount = token_amount;

        _transfer(address(this), msg.sender, user_amount);

        if (maxWalletEnable && _maxWallet != 0 && !excludeCoolingOf[msg.sender]) {
            require(balanceOf(msg.sender) <= _maxWallet, "Max wallet exceeded");
        }

        emit Swap(msg.sender, swapValue, 0, 0, user_amount);
    }

    function sell(uint256 sell_amount) internal {
        require(tradingEnable, 'Trading not enable');
        if (!excludeCoolingOf[msg.sender]){
            require(isTradingOpen(), "Trading not open");
        }
        require(msg.sender == tx.origin, "Only EOA");

        uint256 swap_amount = sell_amount;

        uint256 ethAmount = (swap_amount * address(this).balance) / (_balances[address(this)] + swap_amount);

        require(ethAmount > 0, "Sell amount too low");
        require(address(this).balance >= ethAmount, "Insufficient ETH in reserves");

        _transfer(msg.sender, address(this), swap_amount);

        uint256 feeValue;

        feeValue = ethAmount * sellFundFee / 10000;
        if (excludeCoolingOf[msg.sender]){
            feeValue = 0;
        }
        if (feeValue > 0){
            send_to_mkt_314(feeValue);
        }

        payable(msg.sender).transfer(ethAmount - feeValue);
        emit Swap(msg.sender, 0, sell_amount, ethAmount - feeValue, 0);
    
    }
    function send_to_mkt_314(uint256 fundValue) private {
        (bool success,) = address(mkt_314).call{value: fundValue}("");
        require(success);
    }

    // Used to reset the number of tokens in the pool
    function initLiquidityAmount(
        uint256 newLiquidityAmount
    ) public onlyOwner{
        require(!liquidityAdded,"Liquidity already added");

        uint256 oldLiquidityAmount = balanceOf(address(this));
        if (oldLiquidityAmount > newLiquidityAmount){

            uint256 diff = oldLiquidityAmount - newLiquidityAmount;
            require(balanceOf(address(this)) >= diff,"lp not enough token");

            _basicTransfer(address(this), msg.sender, diff);
        }else{

            uint256 diff = newLiquidityAmount - oldLiquidityAmount;
            require(balanceOf(address(msg.sender)) >= diff,"owner not enough token");

            _basicTransfer(msg.sender, address(this), diff);
        }
    }


    receive() external payable {
        buy();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_blockToUnlockLiquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"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":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"RemoveLiquidity","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"}],"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":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lockBlock","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockToUnlockLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownSec","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":"bool","name":"_maxWalletEnable","type":"bool"}],"name":"enableMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludeCoolingOf","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_extendLockBlock","type":"uint256"}],"name":"extendLiquidityLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_t","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getERRORToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityAmount","type":"uint256"}],"name":"initLiquidityAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isTradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt_314","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendToken","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":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFund","type":"uint256"}],"name":"setBUYFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setCooldownSec","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_ok","type":"bool"}],"name":"setExcludeCoolingOf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet_","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFund","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tradingOpenTime","type":"uint256"}],"name":"setTradingOpenTime","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":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpenTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801562000010575f80fd5b505f80546001600160a01b031916339081178255604051909182915f805160206200278a833981519152908290a350604080518082019091526004815263160ccc4d60e21b6020820152600890620000699082620003c5565b50604080518082019091526004815263160ccc4d60e21b6020820152600990620000949082620003c5565b506a52b7d2dcc80cd2e400000060058190556a341cc4d7e46e7a9f000000905f90620000c29083906200048d565b600b80546001600160a01b03191673b99f42ef8e02f5a1e4dd41142517dff54d7911f9179055305f8181526001602052604080822086905573a2ae2a3f25980d66190eba8fe513a35bf3bc9f0a8083527f15c957475c2c68eb96f934dcb990059ebf5724b31d335968660d7f66720db68f8590559051939450925f80516020620027aa833981519152906200015a9087815260200190565b60405180910390a36040518281526001600160a01b038216905f905f80516020620027aa8339815191529060200160405180910390a3600554600655600a600c8190556101f4600e819055600f55805462ffffff60a01b1916600160b01b1790556001600160a01b038082165f908152600d6020526040808220805460ff199081166001908117909255600b5490941683528183208054851682179055308352912080549092161790556200020f8162000218565b505050620004b3565b5f546001600160a01b03163314620002775760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620002de5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200026e565b5f80546040516001600160a01b03808516939216915f805160206200278a83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200034e57607f821691505b6020821081036200036d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003c0575f81815260208120601f850160051c810160208610156200039b5750805b601f850160051c820191505b81811015620003bc57828155600101620003a7565b5050505b505050565b81516001600160401b03811115620003e157620003e162000325565b620003f981620003f2845462000339565b8462000373565b602080601f8311600181146200042f575f8415620004175750858301515b5f19600386901b1c1916600185901b178555620003bc565b5f85815260208120601f198616915b828110156200045f578886015182559484019460019091019084016200043e565b50858210156200047d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b81810381811115620004ad57634e487b7160e01b5f52601160045260245ffd5b92915050565b6122c980620004c15f395ff3fe608060405260043610610236575f3560e01c80636299f081116101295780639ac91660116100a8578063dd62ed3e1161006d578063dd62ed3e14610662578063e5596afc146106a6578063e7cb9f2d146106d4578063f2fde38b146106e9578063fa151bfe14610708575f80fd5b80639ac91660146105d0578063a9059cbb146105e5578063ae19139e14610604578063d0239a6314610623578063d944392314610642575f80fd5b806382247ec0116100ee57806382247ec01461054d5780638a4c25b9146105625780638b4cee08146105815780638da5cb5b146105a057806395d89b41146105bc575f80fd5b80636299f081146104c857806367b9a286146104e75780636829894c146104fb57806370a082311461051a578063715018a614610539575f80fd5b80632024b50c116101b557806351c6590a1161017a57806351c6590a1461044e57806356a060a2146104615780635b8bec55146104755780635d0044ca146104945780635e2d0df1146104b3575f80fd5b80632024b50c1461039f57806323b872dd146103be578063313ce567146103dd57806334bdbec2146103f857806338752caf1461042f575f80fd5b806311106ee2116101fb57806311106ee21461031757806311c3ec381461033657806312a54b621461034b5780631693e8d41461036b57806318160ddd1461038b575f80fd5b806304c0c4761461024957806306fdde03146102715780630902f1ac14610292578063095ea7b3146102c95780630a26cc2c146102f8575f80fd5b3661024557610243610727565b005b5f80fd5b348015610254575f80fd5b5061025e60075481565b6040519081526020015b60405180910390f35b34801561027c575f80fd5b50610285610978565b6040516102689190611dbb565b34801561029d575f80fd5b506102b4305f908152600160205260409020544791565b60408051928352602083019190915201610268565b3480156102d4575f80fd5b506102e86102e3366004611e21565b610a08565b6040519015158152602001610268565b348015610303575f80fd5b50610243610312366004611e49565b610a21565b348015610322575f80fd5b5061025e610331366004611e7b565b610ad2565b348015610341575f80fd5b5061025e600f5481565b348015610356575f80fd5b50600a546102e890600160b01b900460ff1681565b348015610376575f80fd5b50600a546102e890600160a01b900460ff1681565b348015610396575f80fd5b5060055461025e565b3480156103aa575f80fd5b506102436103b9366004611e49565b610b30565b3480156103c9575f80fd5b506102e86103d8366004611ea9565b610b5e565b3480156103e8575f80fd5b5060405160128152602001610268565b348015610403575f80fd5b50600b54610417906001600160a01b031681565b6040516001600160a01b039091168152602001610268565b34801561043a575f80fd5b50610243610449366004611e49565b610bc7565b61024361045c366004611e49565b610c31565b34801561046c575f80fd5b506102e8610e18565b348015610480575f80fd5b50600a54610417906001600160a01b031681565b34801561049f575f80fd5b506102436104ae366004611e49565b610e31565b3480156104be575f80fd5b5061025e60105481565b3480156104d3575f80fd5b506102436104e2366004611e49565b610e5f565b3480156104f2575f80fd5b50610243610fc9565b348015610506575f80fd5b50610243610515366004611e49565b6110a3565b348015610525575f80fd5b5061025e610534366004611ee2565b6110d1565b348015610544575f80fd5b506102436110eb565b348015610558575f80fd5b5061025e60065481565b34801561056d575f80fd5b5061024361057c366004611f4a565b61115c565b34801561058c575f80fd5b5061024361059b366004611e49565b6112d4565b3480156105ab575f80fd5b505f546001600160a01b0316610417565b3480156105c7575f80fd5b50610285611302565b3480156105db575f80fd5b5061025e600e5481565b3480156105f0575f80fd5b506102e86105ff366004611e21565b611311565b34801561060f575f80fd5b5061024361061e366004611fb1565b611344565b34801561062e575f80fd5b5061024361063d366004611fe0565b61138b565b34801561064d575f80fd5b50600a546102e890600160a81b900460ff1681565b34801561066d575f80fd5b5061025e61067c3660046120b2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106b1575f80fd5b506102e86106c0366004611ee2565b600d6020525f908152604090205460ff1681565b3480156106df575f80fd5b5061025e600c5481565b3480156106f4575f80fd5b50610243610703366004611ee2565b61141d565b348015610713575f80fd5b50610243610722366004611ea9565b611504565b600a54600160a01b900460ff1661077a5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b335f908152600d602052604090205460ff166107d757610798610e18565b6107d75760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610771565b3332146108115760405162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b6044820152606401610771565b600e5434905f906127109061082690846120f7565b610830919061210e565b335f908152600d602052604090205490915060ff161561084d57505f5b801561085c5761085c8161160e565b5f610867828461212d565b305f9081526001602052604081205491925090479061088690846120f7565b610890919061210e565b90508061089e30338361166a565b600a54600160b01b900460ff1680156108b8575060065415155b80156108d35750335f908152600d602052604090205460ff16155b15610928576006546108e4336110d1565b11156109285760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610771565b604080518481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050505050565b60606008805461098790612140565b80601f01602080910402602001604051908101604052809291908181526020018280546109b390612140565b80156109fe5780601f106109d5576101008083540402835291602001916109fe565b820191905f5260205f20905b8154815290600101906020018083116109e157829003601f168201915b5050505050905090565b5f33610a158185856118cf565b60019150505b92915050565b600a546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161077190612178565b438110610a6a5760405162461bcd60e51b8152600401610771906121ba565b5f81600754610a799190612204565b90508060075410610acc5760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610771565b60075550565b5f805f610aeb305f908152600160205260409020544791565b915091508315610b1c57610aff8583612204565b610b0982876120f7565b610b13919061210e565b92505050610a1b565b610b268582612204565b610b0983876120f7565b5f546001600160a01b03163314610b595760405162461bcd60e51b815260040161077190612217565b601055565b5f33610b6b8582856119f2565b306001600160a01b03851603610bb15760405162461bcd60e51b815260206004820152600b60248201526a3932b532b1ba1039b2b63360a91b6044820152606401610771565b610bbc85858561166a565b506001949350505050565b5f546001600160a01b03163314610bf05760405162461bcd60e51b815260040161077190612217565b603c811115610c2c5760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b6044820152606401610771565b600c55565b5f546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161077190612217565b438110610c795760405162461bcd60e51b8152600401610771906121ba565b600a54600160a81b900460ff1615610ccd5760405162461bcd60e51b8152602060048201526017602482015276131a5c5d5a591a5d1e48185b1c9958591e481859191959604a1b6044820152606401610771565b5f610cd7306110d1565b11610d135760405162461bcd60e51b815260206004820152600c60248201526b7a65726f2062616c616e636560a01b6044820152606401610771565b5f610d1e8243612204565b600a805460ff60a81b1916600160a81b179055905034610d6e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610771565b804310610db45760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610771565b6007819055600a80546001600160a81b0319163317600160a01b1790556040517fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb490610e0c9083903490918252602082015260400190565b60405180910390a15050565b5f80601054118015610e2c57506010544210155b905090565b5f546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161077190612217565b600655565b5f546001600160a01b03163314610e885760405162461bcd60e51b815260040161077190612217565b600a54600160a81b900460ff1615610edc5760405162461bcd60e51b8152602060048201526017602482015276131a5c5d5a591a5d1e48185b1c9958591e481859191959604a1b6044820152606401610771565b5f610ee6306110d1565b905081811115610f5c575f610efb838361212d565b905080610f07306110d1565b1015610f4b5760405162461bcd60e51b81526020600482015260136024820152723638103737ba1032b737bab3b4103a37b5b2b760691b6044820152606401610771565b610f56303383611a7c565b50505050565b5f610f67828461212d565b905080610f73336110d1565b1015610fba5760405162461bcd60e51b815260206004820152601660248201527537bbb732b9103737ba1032b737bab3b4103a37b5b2b760511b6044820152606401610771565b610f56333083611a7c565b5050565b600a546001600160a01b03163314610ff35760405162461bcd60e51b815260040161077190612178565b60075443116110375760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610771565b600a805460ff60a01b1916905560405133904780156108fc02915f818181858888f1935050505015801561106d573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b5f546001600160a01b031633146110cc5760405162461bcd60e51b815260040161077190612217565b600e55565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146111145760405162461bcd60e51b815260040161077190612217565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146111855760405162461bcd60e51b815260040161077190612217565b8281146111c65760405162461bcd60e51b815260206004820152600f60248201526e0c8d2e6dac2e8c6d040d8cadccee8d608b1b6044820152606401610771565b5f5b838110156112cd575f8585838181106111e3576111e361224c565b90506020020160208101906111f89190611ee2565b90505f84848481811061120d5761120d61224c565b90506020020135905080611220336110d1565b116112605760405162461bcd60e51b815260206004820152601060248201526f3737ba1032b737bab3b4103a37b5b2b760811b6044820152606401610771565b306001600160a01b038316036112ac5760405162461bcd60e51b815260206004820152601160248201527018d85b9d081cd95b99081d1bc81c1bdbdb607a1b6044820152606401610771565b6112b7338383611a7c565b50505080806112c590612260565b9150506111c8565b5050505050565b5f546001600160a01b031633146112fd5760405162461bcd60e51b815260040161077190612217565b600f55565b60606009805461098790612140565b5f306001600160a01b038416036113305761132b82611b2f565b61133b565b61133b33848461166a565b50600192915050565b5f546001600160a01b0316331461136d5760405162461bcd60e51b815260040161077190612217565b600a8054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b031633146113b45760405162461bcd60e51b815260040161077190612217565b5f5b82518110156114185781600d5f8584815181106113d5576113d561224c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061141081612260565b9150506113b6565b505050565b5f546001600160a01b031633146114465760405162461bcd60e51b815260040161077190612217565b6001600160a01b0381166114ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610771565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b0316331461154e5760405162461bcd60e51b815260206004820152600d60248201526c3737903832b936b4b9b9b4b7b760991b6044820152606401610771565b306001600160a01b0384160361159e5760405162461bcd60e51b815260206004820152601560248201527431b0b73a1031b630b4b69039b2b633103a37b5b2b760591b6044820152606401610771565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af11580156115ea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f569190612278565b600b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050905080610fc5575f80fd5b6001600160a01b03831630148061168957506001600160a01b03821630145b156117df576001600160a01b038216158015906116b55750335f908152600d602052604090205460ff16155b156117d457335f908152600360205260409020544363ffffffff909116036117395760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610771565b335f908152600360209081526040808320805463ffffffff19164363ffffffff16179055600c546002909252909120546117739190612204565b4210156117c25760405162461bcd60e51b815260206004820152601f60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e2031006044820152606401610771565b335f9081526002602052604090204290555b610f56838383611a7c565b6001600160a01b0383165f908152600d6020526040902054819060ff1615801561182157506001600160a01b0383165f908152600d602052604090205460ff16155b156118c4576001600160a01b038316156118c457600c546001600160a01b0385165f9081526002602052604090205461185a9190612204565b4210156118a95760405162461bcd60e51b815260206004820152601f60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e2033006044820152606401610771565b6001600160a01b0384165f9081526002602052604090204290555b6112cd848483611a7c565b6001600160a01b0383166119315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610771565b6001600160a01b0382166119925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610771565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600460209081526040808320938616835292905220545f198114610f565781811015611a6f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610771565b610f5684848484036118cf565b6001600160a01b0383165f90815260016020526040812080548391908390611aa590849061212d565b90915550506001600160a01b0383165f9081526001602052604081208054849290611ad1908490612204565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b1d91815260200190565b60405180910390a35060019392505050565b600a54600160a01b900460ff16611b7d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610771565b335f908152600d602052604090205460ff16611bda57611b9b610e18565b611bda5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610771565b333214611c145760405162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b6044820152606401610771565b305f90815260016020526040812054829190611c31908390612204565b611c3b47846120f7565b611c45919061210e565b90505f8111611c8c5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610771565b80471015611cdc5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610771565b611ce733308461166a565b5f612710600f5483611cf991906120f7565b611d03919061210e565b335f908152600d602052604090205490915060ff1615611d2057505f5b8015611d2f57611d2f8161160e565b336108fc611d3d838561212d565b6040518115909202915f818181858888f19350505050158015611d62573d5f803e3d5ffd5b50337f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7375f86611d91858761212d565b604080519384526020840192909252908201525f606082015260800160405180910390a250505050565b5f6020808352835180828501525f5b81811015611de657858101830151858201604001528201611dca565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1c575f80fd5b919050565b5f8060408385031215611e32575f80fd5b611e3b83611e06565b946020939093013593505050565b5f60208284031215611e59575f80fd5b5035919050565b8015158114611e6d575f80fd5b50565b8035611e1c81611e60565b5f8060408385031215611e8c575f80fd5b823591506020830135611e9e81611e60565b809150509250929050565b5f805f60608486031215611ebb575f80fd5b611ec484611e06565b9250611ed260208501611e06565b9150604084013590509250925092565b5f60208284031215611ef2575f80fd5b611efb82611e06565b9392505050565b5f8083601f840112611f12575f80fd5b50813567ffffffffffffffff811115611f29575f80fd5b6020830191508360208260051b8501011115611f43575f80fd5b9250929050565b5f805f8060408587031215611f5d575f80fd5b843567ffffffffffffffff80821115611f74575f80fd5b611f8088838901611f02565b90965094506020870135915080821115611f98575f80fd5b50611fa587828801611f02565b95989497509550505050565b5f60208284031215611fc1575f80fd5b8135611efb81611e60565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611ff1575f80fd5b823567ffffffffffffffff80821115612008575f80fd5b818501915085601f83011261201b575f80fd5b813560208282111561202f5761202f611fcc565b8160051b604051601f19603f8301168101818110868211171561205457612054611fcc565b604052928352818301935084810182019289841115612071575f80fd5b948201945b838610156120965761208786611e06565b85529482019493820193612076565b96506120a59050878201611e70565b9450505050509250929050565b5f80604083850312156120c3575f80fd5b6120cc83611e06565b91506120da60208401611e06565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a1b57610a1b6120e3565b5f8261212857634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610a1b57610a1b6120e3565b600181811c9082168061215457607f821691505b60208210810361217257634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252602a908201527f6c6f636b20626c6f636b2063616e742067726561746572207468616e2063757260408201526972656e7420626c6f636b60b01b606082015260800190565b80820180821115610a1b57610a1b6120e3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612271576122716120e3565b5060010190565b5f60208284031215612288575f80fd5b8151611efb81611e6056fea2646970667358221220819d04eed3e71517e9f319c55387de182374c5ea95a95f17cfc083722694210664736f6c634300081400338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610236575f3560e01c80636299f081116101295780639ac91660116100a8578063dd62ed3e1161006d578063dd62ed3e14610662578063e5596afc146106a6578063e7cb9f2d146106d4578063f2fde38b146106e9578063fa151bfe14610708575f80fd5b80639ac91660146105d0578063a9059cbb146105e5578063ae19139e14610604578063d0239a6314610623578063d944392314610642575f80fd5b806382247ec0116100ee57806382247ec01461054d5780638a4c25b9146105625780638b4cee08146105815780638da5cb5b146105a057806395d89b41146105bc575f80fd5b80636299f081146104c857806367b9a286146104e75780636829894c146104fb57806370a082311461051a578063715018a614610539575f80fd5b80632024b50c116101b557806351c6590a1161017a57806351c6590a1461044e57806356a060a2146104615780635b8bec55146104755780635d0044ca146104945780635e2d0df1146104b3575f80fd5b80632024b50c1461039f57806323b872dd146103be578063313ce567146103dd57806334bdbec2146103f857806338752caf1461042f575f80fd5b806311106ee2116101fb57806311106ee21461031757806311c3ec381461033657806312a54b621461034b5780631693e8d41461036b57806318160ddd1461038b575f80fd5b806304c0c4761461024957806306fdde03146102715780630902f1ac14610292578063095ea7b3146102c95780630a26cc2c146102f8575f80fd5b3661024557610243610727565b005b5f80fd5b348015610254575f80fd5b5061025e60075481565b6040519081526020015b60405180910390f35b34801561027c575f80fd5b50610285610978565b6040516102689190611dbb565b34801561029d575f80fd5b506102b4305f908152600160205260409020544791565b60408051928352602083019190915201610268565b3480156102d4575f80fd5b506102e86102e3366004611e21565b610a08565b6040519015158152602001610268565b348015610303575f80fd5b50610243610312366004611e49565b610a21565b348015610322575f80fd5b5061025e610331366004611e7b565b610ad2565b348015610341575f80fd5b5061025e600f5481565b348015610356575f80fd5b50600a546102e890600160b01b900460ff1681565b348015610376575f80fd5b50600a546102e890600160a01b900460ff1681565b348015610396575f80fd5b5060055461025e565b3480156103aa575f80fd5b506102436103b9366004611e49565b610b30565b3480156103c9575f80fd5b506102e86103d8366004611ea9565b610b5e565b3480156103e8575f80fd5b5060405160128152602001610268565b348015610403575f80fd5b50600b54610417906001600160a01b031681565b6040516001600160a01b039091168152602001610268565b34801561043a575f80fd5b50610243610449366004611e49565b610bc7565b61024361045c366004611e49565b610c31565b34801561046c575f80fd5b506102e8610e18565b348015610480575f80fd5b50600a54610417906001600160a01b031681565b34801561049f575f80fd5b506102436104ae366004611e49565b610e31565b3480156104be575f80fd5b5061025e60105481565b3480156104d3575f80fd5b506102436104e2366004611e49565b610e5f565b3480156104f2575f80fd5b50610243610fc9565b348015610506575f80fd5b50610243610515366004611e49565b6110a3565b348015610525575f80fd5b5061025e610534366004611ee2565b6110d1565b348015610544575f80fd5b506102436110eb565b348015610558575f80fd5b5061025e60065481565b34801561056d575f80fd5b5061024361057c366004611f4a565b61115c565b34801561058c575f80fd5b5061024361059b366004611e49565b6112d4565b3480156105ab575f80fd5b505f546001600160a01b0316610417565b3480156105c7575f80fd5b50610285611302565b3480156105db575f80fd5b5061025e600e5481565b3480156105f0575f80fd5b506102e86105ff366004611e21565b611311565b34801561060f575f80fd5b5061024361061e366004611fb1565b611344565b34801561062e575f80fd5b5061024361063d366004611fe0565b61138b565b34801561064d575f80fd5b50600a546102e890600160a81b900460ff1681565b34801561066d575f80fd5b5061025e61067c3660046120b2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156106b1575f80fd5b506102e86106c0366004611ee2565b600d6020525f908152604090205460ff1681565b3480156106df575f80fd5b5061025e600c5481565b3480156106f4575f80fd5b50610243610703366004611ee2565b61141d565b348015610713575f80fd5b50610243610722366004611ea9565b611504565b600a54600160a01b900460ff1661077a5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b335f908152600d602052604090205460ff166107d757610798610e18565b6107d75760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610771565b3332146108115760405162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b6044820152606401610771565b600e5434905f906127109061082690846120f7565b610830919061210e565b335f908152600d602052604090205490915060ff161561084d57505f5b801561085c5761085c8161160e565b5f610867828461212d565b305f9081526001602052604081205491925090479061088690846120f7565b610890919061210e565b90508061089e30338361166a565b600a54600160b01b900460ff1680156108b8575060065415155b80156108d35750335f908152600d602052604090205460ff16155b15610928576006546108e4336110d1565b11156109285760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610771565b604080518481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050505050565b60606008805461098790612140565b80601f01602080910402602001604051908101604052809291908181526020018280546109b390612140565b80156109fe5780601f106109d5576101008083540402835291602001916109fe565b820191905f5260205f20905b8154815290600101906020018083116109e157829003601f168201915b5050505050905090565b5f33610a158185856118cf565b60019150505b92915050565b600a546001600160a01b03163314610a4b5760405162461bcd60e51b815260040161077190612178565b438110610a6a5760405162461bcd60e51b8152600401610771906121ba565b5f81600754610a799190612204565b90508060075410610acc5760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610771565b60075550565b5f805f610aeb305f908152600160205260409020544791565b915091508315610b1c57610aff8583612204565b610b0982876120f7565b610b13919061210e565b92505050610a1b565b610b268582612204565b610b0983876120f7565b5f546001600160a01b03163314610b595760405162461bcd60e51b815260040161077190612217565b601055565b5f33610b6b8582856119f2565b306001600160a01b03851603610bb15760405162461bcd60e51b815260206004820152600b60248201526a3932b532b1ba1039b2b63360a91b6044820152606401610771565b610bbc85858561166a565b506001949350505050565b5f546001600160a01b03163314610bf05760405162461bcd60e51b815260040161077190612217565b603c811115610c2c5760405162461bcd60e51b8152602060048201526008602482015267746f6f206c6f6e6760c01b6044820152606401610771565b600c55565b5f546001600160a01b03163314610c5a5760405162461bcd60e51b815260040161077190612217565b438110610c795760405162461bcd60e51b8152600401610771906121ba565b600a54600160a81b900460ff1615610ccd5760405162461bcd60e51b8152602060048201526017602482015276131a5c5d5a591a5d1e48185b1c9958591e481859191959604a1b6044820152606401610771565b5f610cd7306110d1565b11610d135760405162461bcd60e51b815260206004820152600c60248201526b7a65726f2062616c616e636560a01b6044820152606401610771565b5f610d1e8243612204565b600a805460ff60a81b1916600160a81b179055905034610d6e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610771565b804310610db45760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610771565b6007819055600a80546001600160a81b0319163317600160a01b1790556040517fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb490610e0c9083903490918252602082015260400190565b60405180910390a15050565b5f80601054118015610e2c57506010544210155b905090565b5f546001600160a01b03163314610e5a5760405162461bcd60e51b815260040161077190612217565b600655565b5f546001600160a01b03163314610e885760405162461bcd60e51b815260040161077190612217565b600a54600160a81b900460ff1615610edc5760405162461bcd60e51b8152602060048201526017602482015276131a5c5d5a591a5d1e48185b1c9958591e481859191959604a1b6044820152606401610771565b5f610ee6306110d1565b905081811115610f5c575f610efb838361212d565b905080610f07306110d1565b1015610f4b5760405162461bcd60e51b81526020600482015260136024820152723638103737ba1032b737bab3b4103a37b5b2b760691b6044820152606401610771565b610f56303383611a7c565b50505050565b5f610f67828461212d565b905080610f73336110d1565b1015610fba5760405162461bcd60e51b815260206004820152601660248201527537bbb732b9103737ba1032b737bab3b4103a37b5b2b760511b6044820152606401610771565b610f56333083611a7c565b5050565b600a546001600160a01b03163314610ff35760405162461bcd60e51b815260040161077190612178565b60075443116110375760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610771565b600a805460ff60a01b1916905560405133904780156108fc02915f818181858888f1935050505015801561106d573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b5f546001600160a01b031633146110cc5760405162461bcd60e51b815260040161077190612217565b600e55565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146111145760405162461bcd60e51b815260040161077190612217565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146111855760405162461bcd60e51b815260040161077190612217565b8281146111c65760405162461bcd60e51b815260206004820152600f60248201526e0c8d2e6dac2e8c6d040d8cadccee8d608b1b6044820152606401610771565b5f5b838110156112cd575f8585838181106111e3576111e361224c565b90506020020160208101906111f89190611ee2565b90505f84848481811061120d5761120d61224c565b90506020020135905080611220336110d1565b116112605760405162461bcd60e51b815260206004820152601060248201526f3737ba1032b737bab3b4103a37b5b2b760811b6044820152606401610771565b306001600160a01b038316036112ac5760405162461bcd60e51b815260206004820152601160248201527018d85b9d081cd95b99081d1bc81c1bdbdb607a1b6044820152606401610771565b6112b7338383611a7c565b50505080806112c590612260565b9150506111c8565b5050505050565b5f546001600160a01b031633146112fd5760405162461bcd60e51b815260040161077190612217565b600f55565b60606009805461098790612140565b5f306001600160a01b038416036113305761132b82611b2f565b61133b565b61133b33848461166a565b50600192915050565b5f546001600160a01b0316331461136d5760405162461bcd60e51b815260040161077190612217565b600a8054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b031633146113b45760405162461bcd60e51b815260040161077190612217565b5f5b82518110156114185781600d5f8584815181106113d5576113d561224c565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061141081612260565b9150506113b6565b505050565b5f546001600160a01b031633146114465760405162461bcd60e51b815260040161077190612217565b6001600160a01b0381166114ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610771565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b0316331461154e5760405162461bcd60e51b815260206004820152600d60248201526c3737903832b936b4b9b9b4b7b760991b6044820152606401610771565b306001600160a01b0384160361159e5760405162461bcd60e51b815260206004820152601560248201527431b0b73a1031b630b4b69039b2b633103a37b5b2b760591b6044820152606401610771565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af11580156115ea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f569190612278565b600b546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611658576040519150601f19603f3d011682016040523d82523d5f602084013e61165d565b606091505b5050905080610fc5575f80fd5b6001600160a01b03831630148061168957506001600160a01b03821630145b156117df576001600160a01b038216158015906116b55750335f908152600d602052604090205460ff16155b156117d457335f908152600360205260409020544363ffffffff909116036117395760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610771565b335f908152600360209081526040808320805463ffffffff19164363ffffffff16179055600c546002909252909120546117739190612204565b4210156117c25760405162461bcd60e51b815260206004820152601f60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e2031006044820152606401610771565b335f9081526002602052604090204290555b610f56838383611a7c565b6001600160a01b0383165f908152600d6020526040902054819060ff1615801561182157506001600160a01b0383165f908152600d602052604090205460ff16155b156118c4576001600160a01b038316156118c457600c546001600160a01b0385165f9081526002602052604090205461185a9190612204565b4210156118a95760405162461bcd60e51b815260206004820152601f60248201527f53656e646572206d757374207761697420666f7220636f6f6c646f776e2033006044820152606401610771565b6001600160a01b0384165f9081526002602052604090204290555b6112cd848483611a7c565b6001600160a01b0383166119315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610771565b6001600160a01b0382166119925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610771565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600460209081526040808320938616835292905220545f198114610f565781811015611a6f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610771565b610f5684848484036118cf565b6001600160a01b0383165f90815260016020526040812080548391908390611aa590849061212d565b90915550506001600160a01b0383165f9081526001602052604081208054849290611ad1908490612204565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b1d91815260200190565b60405180910390a35060019392505050565b600a54600160a01b900460ff16611b7d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610771565b335f908152600d602052604090205460ff16611bda57611b9b610e18565b611bda5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b6044820152606401610771565b333214611c145760405162461bcd60e51b81526020600482015260086024820152674f6e6c7920454f4160c01b6044820152606401610771565b305f90815260016020526040812054829190611c31908390612204565b611c3b47846120f7565b611c45919061210e565b90505f8111611c8c5760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610771565b80471015611cdc5760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610771565b611ce733308461166a565b5f612710600f5483611cf991906120f7565b611d03919061210e565b335f908152600d602052604090205490915060ff1615611d2057505f5b8015611d2f57611d2f8161160e565b336108fc611d3d838561212d565b6040518115909202915f818181858888f19350505050158015611d62573d5f803e3d5ffd5b50337f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7375f86611d91858761212d565b604080519384526020840192909252908201525f606082015260800160405180910390a250505050565b5f6020808352835180828501525f5b81811015611de657858101830151858201604001528201611dca565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e1c575f80fd5b919050565b5f8060408385031215611e32575f80fd5b611e3b83611e06565b946020939093013593505050565b5f60208284031215611e59575f80fd5b5035919050565b8015158114611e6d575f80fd5b50565b8035611e1c81611e60565b5f8060408385031215611e8c575f80fd5b823591506020830135611e9e81611e60565b809150509250929050565b5f805f60608486031215611ebb575f80fd5b611ec484611e06565b9250611ed260208501611e06565b9150604084013590509250925092565b5f60208284031215611ef2575f80fd5b611efb82611e06565b9392505050565b5f8083601f840112611f12575f80fd5b50813567ffffffffffffffff811115611f29575f80fd5b6020830191508360208260051b8501011115611f43575f80fd5b9250929050565b5f805f8060408587031215611f5d575f80fd5b843567ffffffffffffffff80821115611f74575f80fd5b611f8088838901611f02565b90965094506020870135915080821115611f98575f80fd5b50611fa587828801611f02565b95989497509550505050565b5f60208284031215611fc1575f80fd5b8135611efb81611e60565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611ff1575f80fd5b823567ffffffffffffffff80821115612008575f80fd5b818501915085601f83011261201b575f80fd5b813560208282111561202f5761202f611fcc565b8160051b604051601f19603f8301168101818110868211171561205457612054611fcc565b604052928352818301935084810182019289841115612071575f80fd5b948201945b838610156120965761208786611e06565b85529482019493820193612076565b96506120a59050878201611e70565b9450505050509250929050565b5f80604083850312156120c3575f80fd5b6120cc83611e06565b91506120da60208401611e06565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a1b57610a1b6120e3565b5f8261212857634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610a1b57610a1b6120e3565b600181811c9082168061215457607f821691505b60208210810361217257634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252602a908201527f6c6f636b20626c6f636b2063616e742067726561746572207468616e2063757260408201526972656e7420626c6f636b60b01b606082015260800190565b80820180821115610a1b57610a1b6120e3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612271576122716120e3565b5060010190565b5f60208284031215612288575f80fd5b8151611efb81611e6056fea2646970667358221220819d04eed3e71517e9f319c55387de182374c5ea95a95f17cfc083722694210664736f6c63430008140033

Deployed Bytecode Sourcemap

2039:13678:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15701:5;:3;:5::i;:::-;2039:13678;;;;;2530:37;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;2530:37:0;;;;;;;;4014:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9432:137::-;;;;;;;;;;;;9554:4;9476:7;9536:24;;;:9;:24;;;;;;9513:21;;9432:137;;;;;923:25:1;;;979:2;964:18;;957:34;;;;896:18;9432:137:0;749:248:1;5651:217:0;;;;;;;;;;-1:-1:-1;5651:217:0;;;;;:::i;:::-;;:::i;:::-;;;1604:14:1;;1597:22;1579:41;;1567:2;1552:18;5651:217:0;1439:187:1;11169:494:0;;;;;;;;;;-1:-1:-1;11169:494:0;;;;;:::i;:::-;;:::i;11671:341::-;;;;;;;;;;-1:-1:-1;11671:341:0;;;;;:::i;:::-;;:::i;12151:26::-;;;;;;;;;;;;;;;;2740:27;;;;;;;;;;-1:-1:-1;2740:27:0;;;;-1:-1:-1;;;2740:27:0;;;;;;2675:25;;;;;;;;;;-1:-1:-1;2675:25:0;;;;-1:-1:-1;;;2675:25:0;;;;;;4308:99;;;;;;;;;;-1:-1:-1;4387:12:0;;4308:99;;12322:123;;;;;;;;;;-1:-1:-1;12322:123:0;;;;;:::i;:::-;;:::i;5876:438::-;;;;;;;;;;-1:-1:-1;5876:438:0;;;;;:::i;:::-;;:::i;4216:84::-;;;;;;;;;;-1:-1:-1;4216:84:0;;4290:2;2861:36:1;;2849:2;2834:18;4216:84:0;2719:184:1;2926:30:0;;;;;;;;;;-1:-1:-1;2926:30:0;;;;-1:-1:-1;;;;;2926:30:0;;;;;;-1:-1:-1;;;;;3088:32:1;;;3070:51;;3058:2;3043:18;2926:30:0;2908:219:1;5056:144:0;;;;;;;;;;-1:-1:-1;5056:144:0;;;;;:::i;:::-;;:::i;10063:795::-;;;;;;:::i;:::-;;:::i;12453:135::-;;;;;;;;;;;;;:::i;2634:32::-;;;;;;;;;;-1:-1:-1;2634:32:0;;;;-1:-1:-1;;;;;2634:32:0;;;9834:221;;;;;;;;;;-1:-1:-1;9834:221:0;;;;;:::i;:::-;;:::i;12285:30::-;;;;;;;;;;;;;;;;14912:741;;;;;;;;;;-1:-1:-1;14912:741:0;;;;;:::i;:::-;;:::i;10866:295::-;;;;;;;;;;;;;:::i;12052:91::-;;;;;;;;;;-1:-1:-1;12052:91:0;;;;;:::i;:::-;;:::i;4415:118::-;;;;;;;;;;-1:-1:-1;4415:118:0;;;;;:::i;:::-;;:::i;1045:148::-;;;;;;;;;;;;;:::i;2498:25::-;;;;;;;;;;;;;;;;7227:545;;;;;;;;;;-1:-1:-1;7227:545:0;;;;;:::i;:::-;;:::i;12184:93::-;;;;;;;;;;-1:-1:-1;12184:93:0;;;;;:::i;:::-;;:::i;831:79::-;;;;;;;;;;-1:-1:-1;869:7:0;896:6;-1:-1:-1;;;;;896:6:0;831:79;;4113:95;;;;;;;;;;;;;:::i;12020:25::-;;;;;;;;;;;;;;;;4541:274;;;;;;;;;;-1:-1:-1;4541:274:0;;;;;:::i;:::-;;:::i;9706:120::-;;;;;;;;;;-1:-1:-1;9706:120:0;;;;;:::i;:::-;;:::i;7835:233::-;;;;;;;;;;-1:-1:-1;7835:233:0;;;;;:::i;:::-;;:::i;2707:26::-;;;;;;;;;;-1:-1:-1;2707:26:0;;;;-1:-1:-1;;;2707:26:0;;;;;;5474:169;;;;;;;;;;-1:-1:-1;5474:169:0;;;;;:::i;:::-;-1:-1:-1;;;;;5607:19:0;;;5580:7;5607:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5474:169;7780:48;;;;;;;;;;-1:-1:-1;7780:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5023:26;;;;;;;;;;;;;;;;1201:244;;;;;;;;;;-1:-1:-1;1201:244:0;;;;;:::i;:::-;;:::i;8076:273::-;;;;;;;;;;-1:-1:-1;8076:273:0;;;;;:::i;:::-;;:::i;12596:1051::-;12639:13;;-1:-1:-1;;;12639:13:0;;;;12631:44;;;;-1:-1:-1;;;12631:44:0;;6722:2:1;12631:44:0;;;6704:21:1;6761:2;6741:18;;;6734:30;-1:-1:-1;;;6780:18:1;;;6773:48;6838:18;;12631:44:0;;;;;;;;;12708:10;12691:28;;;;:16;:28;;;;;;;;12686:105;;12743:15;:13;:15::i;:::-;12735:44;;;;-1:-1:-1;;;12735:44:0;;7069:2:1;12735:44:0;;;7051:21:1;7108:2;7088:18;;;7081:30;-1:-1:-1;;;7127:18:1;;;7120:46;7183:18;;12735:44:0;6867:340:1;12735:44:0;12809:10;12823:9;12809:23;12801:44;;;;-1:-1:-1;;;12801:44:0;;7414:2:1;12801:44:0;;;7396:21:1;7453:1;7433:18;;;7426:29;-1:-1:-1;;;7471:18:1;;;7464:38;7519:18;;12801:44:0;7212:331:1;12801:44:0;12948:10;;12877:9;;12858:16;;12961:5;;12937:21;;12877:9;12937:21;:::i;:::-;:29;;;;:::i;:::-;12998:10;12981:28;;;;:16;:28;;;;;;12926:40;;-1:-1:-1;12981:28:0;;12977:72;;;-1:-1:-1;13036:1:0;12977:72;13063:12;;13059:69;;13091:25;13107:8;13091:15;:25::i;:::-;13148:17;13168:19;13179:8;13168;:19;:::i;:::-;13254:4;13200:20;13236:24;;;:9;:24;;;;;;13148:39;;-1:-1:-1;13200:20:0;13265:21;;13224:36;;13148:39;13224:36;:::i;:::-;13223:64;;;;:::i;:::-;13200:87;-1:-1:-1;13200:87:0;13347:49;13365:4;13372:10;13200:87;13347:9;:49::i;:::-;13413:15;;-1:-1:-1;;;13413:15:0;;;;:34;;;;-1:-1:-1;13432:10:0;;:15;;13413:34;:67;;;;-1:-1:-1;13469:10:0;13452:28;;;;:16;:28;;;;;;;;13451:29;13413:67;13409:167;;;13530:10;;13505:21;13515:10;13505:9;:21::i;:::-;:35;;13497:67;;;;-1:-1:-1;;;13497:67:0;;8410:2:1;13497:67:0;;;8392:21:1;8449:2;8429:18;;;8422:30;-1:-1:-1;;;8468:18:1;;;8461:49;8527:18;;13497:67:0;8208:343:1;13497:67:0;13593:46;;;8803:25:1;;;13621:1:0;8859:2:1;8844:18;;8837:34;;;8887:18;;;8880:34;8945:2;8930:18;;8923:34;;;13593:46:0;;13598:10;;13593:46;;;;;;8790:3:1;13593:46:0;;;12620:1027;;;;;12596:1051::o;4014:91::-;4059:13;4092:5;4085:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4014:91;:::o;5651:217::-;5750:4;5784:10;5805:33;5784:10;5822:7;5831:6;5805:8;:33::i;:::-;5856:4;5849:11;;;5651:217;;;;;:::o;11169:494::-;2842:17;;-1:-1:-1;;;;;2842:17:0;2828:10;:31;2820:78;;;;-1:-1:-1;;;2820:78:0;;;;;;;:::i;:::-;11347:12:::1;11328:16;:31;11320:86;;;;-1:-1:-1::0;;;11320:86:0::1;;;;;;;:::i;:::-;11419:31;11478:16;11453:22;;:41;;;;:::i;:::-;11419:75;;11540:23;11515:22;;:48;11507:87;;;::::0;-1:-1:-1;;;11507:87:0;;10499:2:1;11507:87:0::1;::::0;::::1;10481:21:1::0;10538:2;10518:18;;;10511:30;10577:28;10557:18;;;10550:56;10623:18;;11507:87:0::1;10297:350:1::0;11507:87:0::1;11607:22;:48:::0;-1:-1:-1;11169:494:0:o;11671:341::-;11740:7;11761:18;11781:20;11805:13;9554:4;9476:7;9536:24;;;:9;:24;;;;;;9513:21;;9432:137;11805:13;11760:58;;;;11835:4;11831:174;;;11889:18;11902:5;11889:10;:18;:::i;:::-;11864:20;11872:12;11864:5;:20;:::i;:::-;11863:45;;;;:::i;:::-;11856:52;;;;;;11831:174;11972:20;11987:5;11972:12;:20;:::i;:::-;11949:18;11957:10;11949:5;:18;:::i;12322:123::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;12403:15:::1;:34:::0;12322:123::o;5876:438::-;5998:4;6035:10;6056:38;6072:4;6035:10;6087:6;6056:15;:38::i;:::-;6125:4;-1:-1:-1;;;;;6111:19:0;;;6107:176;;6147:28;;-1:-1:-1;;;6147:28:0;;11215:2:1;6147:28:0;;;11197:21:1;11254:2;11234:18;;;11227:30;-1:-1:-1;;;11273:18:1;;;11266:41;11324:18;;6147:28:0;11013:335:1;6107:176:0;6244:27;6254:4;6260:2;6264:6;6244:9;:27::i;:::-;-1:-1:-1;6302:4:0;;5876:438;-1:-1:-1;;;;5876:438:0:o;5056:144::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;5145:2:::1;5133:8;:14;;5125:34;;;::::0;-1:-1:-1;;;5125:34:0;;11555:2:1;5125:34:0::1;::::0;::::1;11537:21:1::0;11594:1;11574:18;;;11567:29;-1:-1:-1;;;11612:18:1;;;11605:38;11660:18;;5125:34:0::1;11353:331:1::0;5125:34:0::1;5170:11;:22:::0;5056:144::o;10063:795::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;10218:12:::1;10205:10;:25;10197:80;;;;-1:-1:-1::0;;;10197:80:0::1;;;;;;;:::i;:::-;10298:14;::::0;-1:-1:-1;;;10298:14:0;::::1;;;:23;10290:59;;;::::0;-1:-1:-1;;;10290:59:0;;11891:2:1;10290:59:0::1;::::0;::::1;11873:21:1::0;11930:2;11910:18;;;11903:30;-1:-1:-1;;;11949:18:1;;;11942:53;12012:18;;10290:59:0::1;11689:347:1::0;10290:59:0::1;10395:1;10368:24;10386:4;10368:9;:24::i;:::-;:28;10360:53;;;::::0;-1:-1:-1;;;10360:53:0;;12243:2:1;10360:53:0::1;::::0;::::1;12225:21:1::0;12282:2;12262:18;;;12255:30;-1:-1:-1;;;12301:18:1;;;12294:42;12353:18;;10360:53:0::1;12041:336:1::0;10360:53:0::1;10426:31;10460:25;10475:10:::0;10460:12:::1;:25;:::i;:::-;10498:14;:21:::0;;-1:-1:-1;;;;10498:21:0::1;-1:-1:-1::0;;;10498:21:0::1;::::0;;10426:59;-1:-1:-1;10540:9:0::1;10532:37;;;::::0;-1:-1:-1;;;10532:37:0;;12584:2:1;10532:37:0::1;::::0;::::1;12566:21:1::0;12623:2;12603:18;;;12596:30;-1:-1:-1;;;12642:18:1;;;12635:41;12693:18;;10532:37:0::1;12382:335:1::0;10532:37:0::1;10603:23;10588:12;:38;10580:71;;;::::0;-1:-1:-1;;;10580:71:0;;12924:2:1;10580:71:0::1;::::0;::::1;12906:21:1::0;12963:2;12943:18;;;12936:30;-1:-1:-1;;;12982:18:1;;;12975:50;13042:18;;10580:71:0::1;12722:344:1::0;10580:71:0::1;10664:22;:48:::0;;;10723:13:::1;:20:::0;;-1:-1:-1;;;;;;10754:30:0;10774:10:::1;10754:30:::0;-1:-1:-1;;;10754:30:0;;;10802:48:::1;::::0;::::1;::::0;::::1;::::0;10689:23;;10840:9:::1;::::0;923:25:1;;;979:2;964:18;;957:34;911:2;896:18;;749:248;10802:48:0::1;;;;;;;;10130:728;10063:795:::0;:::o;12453:135::-;12498:4;12540:1;12522:15;;:19;:57;;;;;12564:15;;12545;:34;;12522:57;12514:66;;12453:135;:::o;9834:221::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;10023:10:::1;:24:::0;9834:221::o;14912:741::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;15021:14:::1;::::0;-1:-1:-1;;;15021:14:0;::::1;;;15020:15;15012:50;;;::::0;-1:-1:-1;;;15012:50:0;;11891:2:1;15012:50:0::1;::::0;::::1;11873:21:1::0;11930:2;11910:18;;;11903:30;-1:-1:-1;;;11949:18:1;;;11942:53;12012:18;;15012:50:0::1;11689:347:1::0;15012:50:0::1;15075:26;15104:24;15122:4;15104:9;:24::i;:::-;15075:53;;15164:18;15143;:39;15139:507;;;15200:12;15215:39;15236:18:::0;15215;:39:::1;:::i;:::-;15200:54;;15305:4;15277:24;15295:4;15277:9;:24::i;:::-;:32;;15269:63;;;::::0;-1:-1:-1;;;15269:63:0;;13273:2:1;15269:63:0::1;::::0;::::1;13255:21:1::0;13312:2;13292:18;;;13285:30;-1:-1:-1;;;13331:18:1;;;13324:49;13390:18;;15269:63:0::1;13071:343:1::0;15269:63:0::1;15349:47;15372:4;15379:10;15391:4;15349:14;:47::i;:::-;;15183:225;15001:652;14912:741:::0;:::o;15139:507::-:1;15429:12;15444:39;15465:18:::0;15444;:39:::1;:::i;:::-;15429:54;;15540:4;15506:30;15524:10;15506:9;:30::i;:::-;:38;;15498:72;;;::::0;-1:-1:-1;;;15498:72:0;;13621:2:1;15498:72:0::1;::::0;::::1;13603:21:1::0;13660:2;13640:18;;;13633:30;-1:-1:-1;;;13679:18:1;;;13672:52;13741:18;;15498:72:0::1;13419:346:1::0;15498:72:0::1;15587:47;15602:10;15622:4;15629;15587:14;:47::i;15139:507::-;15001:652;14912:741:::0;:::o;10866:295::-;2842:17;;-1:-1:-1;;;;;2842:17:0;2828:10;:31;2820:78;;;;-1:-1:-1;;;2820:78:0;;;;;;;:::i;:::-;10956:22:::1;;10941:12;:37;10933:66;;;::::0;-1:-1:-1;;;10933:66:0;;13972:2:1;10933:66:0::1;::::0;::::1;13954:21:1::0;14011:2;13991:18;;;13984:30;-1:-1:-1;;;14030:18:1;;;14023:46;14086:18;;10933:66:0::1;13770:340:1::0;10933:66:0::1;11012:13;:21:::0;;-1:-1:-1;;;;11012:21:0::1;::::0;;11046:51:::1;::::0;11054:10:::1;::::0;11075:21:::1;11046:51:::0;::::1;;;::::0;11028:5:::1;11046:51:::0;11028:5;11046:51;11075:21;11054:10;11046:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11115:38:0::1;::::0;11131:21:::1;160:25:1::0;;11115:38:0::1;::::0;148:2:1;133:18;11115:38:0::1;;;;;;;10866:295::o:0;12052:91::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;12115:10:::1;:20:::0;12052:91::o;4415:118::-;-1:-1:-1;;;;;4507:18:0;4480:7;4507:18;;;:9;:18;;;;;;;4415:118::o;1045:148::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;1152:1:::1;1136:6:::0;;1115:40:::1;::::0;-1:-1:-1;;;;;1136:6:0;;::::1;::::0;1115:40:::1;::::0;1152:1;;1115:40:::1;1183:1;1166:19:::0;;-1:-1:-1;;;;;;1166:19:0::1;::::0;;1045:148::o;7227:545::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;7368:33;;::::1;7360:60;;;::::0;-1:-1:-1;;;7360:60:0;;14317:2:1;7360:60:0::1;::::0;::::1;14299:21:1::0;14356:2;14336:18;;;14329:30;-1:-1:-1;;;14375:18:1;;;14368:45;14430:18;;7360:60:0::1;14115:339:1::0;7360:60:0::1;7438:9;7433:332;7453:19:::0;;::::1;7433:332;;;7494:10;7507:8;;7516:1;7507:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7494:24;;7533:14;7550:7;;7558:1;7550:10;;;;;;;:::i;:::-;;;;;;;7533:27;;7609:6;7585:21;7595:10;7585:9;:21::i;:::-;:30;7577:58;;;::::0;-1:-1:-1;;;7577:58:0;;14793:2:1;7577:58:0::1;::::0;::::1;14775:21:1::0;14832:2;14812:18;;;14805:30;-1:-1:-1;;;14851:18:1;;;14844:46;14907:18;;7577:58:0::1;14591:340:1::0;7577:58:0::1;7672:4;-1:-1:-1::0;;;;;7658:19:0;::::1;::::0;7650:48:::1;;;::::0;-1:-1:-1;;;7650:48:0;;15138:2:1;7650:48:0::1;::::0;::::1;15120:21:1::0;15177:2;15157:18;;;15150:30;-1:-1:-1;;;15196:18:1;;;15189:47;15253:18;;7650:48:0::1;14936:341:1::0;7650:48:0::1;7715:38;7730:10;7742:2;7746:6;7715:14;:38::i;:::-;;7479:286;;7474:3;;;;;:::i;:::-;;;;7433:332;;;;7227:545:::0;;;;:::o;12184:93::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;12248:11:::1;:21:::0;12184:93::o;4113:95::-;4160:13;4193:7;4186:14;;;;;:::i;4541:274::-;4610:4;4674;-1:-1:-1;;;;;4660:19:0;;;4656:128;;4696:11;4701:5;4696:4;:11::i;:::-;4656:128;;;4740:32;4750:10;4762:2;4766:5;4740:9;:32::i;:::-;-1:-1:-1;4803:4:0;4541:274;;;;:::o;9706:120::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;9784:15:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;9784:34:0::1;-1:-1:-1::0;;;;9784:34:0;;::::1;::::0;;;::::1;::::0;;9706:120::o;7835:233::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;7961:6:::1;7956:105;7977:8;:15;7973:1;:19;7956:105;;;8046:3;8014:16;:29;8031:8;8040:1;8031:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8014:29:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8014:29:0;:35;;-1:-1:-1;;8014:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7994:3;::::1;::::0;::::1;:::i;:::-;;;;7956:105;;;;7835:233:::0;;:::o;1201:244::-;958:6;;-1:-1:-1;;;;;958:6:0;243:10;958:22;950:67;;;;-1:-1:-1;;;950:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1290:22:0;::::1;1282:73;;;::::0;-1:-1:-1;;;1282:73:0;;15624:2:1;1282:73:0::1;::::0;::::1;15606:21:1::0;15663:2;15643:18;;;15636:30;15702:34;15682:18;;;15675:62;-1:-1:-1;;;15753:18:1;;;15746:36;15799:19;;1282:73:0::1;15422:402:1::0;1282:73:0::1;1392:6;::::0;;1371:38:::1;::::0;-1:-1:-1;;;;;1371:38:0;;::::1;::::0;1392:6;::::1;::::0;1371:38:::1;::::0;::::1;1420:6;:17:::0;;-1:-1:-1;;;;;;1420:17:0::1;-1:-1:-1::0;;;;;1420:17:0;;;::::1;::::0;;;::::1;::::0;;1201:244::o;8076:273::-;8213:7;;-1:-1:-1;;;;;8213:7:0;8199:10;:21;8191:46;;;;-1:-1:-1;;;8191:46:0;;16031:2:1;8191:46:0;;;16013:21:1;16070:2;16050:18;;;16043:30;-1:-1:-1;;;16089:18:1;;;16082:43;16142:18;;8191:46:0;15829:337:1;8191:46:0;8270:4;-1:-1:-1;;;;;8256:19:0;;;8248:52;;;;-1:-1:-1;;;8248:52:0;;16373:2:1;8248:52:0;;;16355:21:1;16412:2;16392:18;;;16385:30;-1:-1:-1;;;16431:18:1;;;16424:51;16492:18;;8248:52:0;16171:345:1;8248:52:0;8311:30;;-1:-1:-1;;;8311:30:0;;-1:-1:-1;;;;;16713:32:1;;;8311:30:0;;;16695:51:1;16762:18;;;16755:34;;;8311:19:0;;;;;16668:18:1;;8311:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14690:159::-;14779:7;;14771:43;;14754:12;;-1:-1:-1;;;;;14779:7:0;;14800:9;;14754:12;14771:43;14754:12;14771:43;14800:9;14779:7;14771:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14753:61;;;14833:7;14825:16;;;;;8357:1067;-1:-1:-1;;;;;8451:21:0;;8467:4;8451:21;;:44;;-1:-1:-1;;;;;;8476:19:0;;8490:4;8476:19;8451:44;8447:589;;;-1:-1:-1;;;;;8515:16:0;;;;;;:49;;-1:-1:-1;8553:10:0;8536:28;;;;:16;:28;;;;;;;;8535:29;8515:49;8511:445;;;8609:10;8593:27;;;;:15;:27;;;;;;8624:12;8593:27;;;;:43;8585:105;;;;-1:-1:-1;;;8585:105:0;;17462:2:1;8585:105:0;;;17444:21:1;17501:2;17481:18;;;17474:30;17540:34;17520:18;;;17513:62;-1:-1:-1;;;17591:18:1;;;17584:47;17648:19;;8585:105:0;17260:413:1;8585:105:0;8725:10;8709:27;;;;:15;:27;;;;;;;;:50;;-1:-1:-1;;8709:50:0;8746:12;8709:50;;;;;8833:11;;8807;:23;;;;;;;:37;;8833:11;8807:37;:::i;:::-;8788:15;:56;;8780:100;;;;-1:-1:-1;;;8780:100:0;;17880:2:1;8780:100:0;;;17862:21:1;17919:2;17899:18;;;17892:30;17958:33;17938:18;;;17931:61;18009:18;;8780:100:0;17678:355:1;8780:100:0;8911:10;8899:23;;;;:11;:23;;;;;8925:15;8899:41;;8511:445;8972:31;8987:4;8993:2;8997:5;8972:14;:31::i;8447:589::-;-1:-1:-1;;;;;9089:22:0;;9048:18;9089:22;;;:16;:22;;;;;;9069:5;;9089:22;;9088:23;:48;;;;-1:-1:-1;;;;;;9116:20:0;;;;;;:16;:20;;;;;;;;9115:21;9088:48;9085:283;;;-1:-1:-1;;;;;9157:16:0;;;9153:204;;9240:11;;-1:-1:-1;;;;;9220:17:0;;;;;;:11;:17;;;;;;:31;;9240:11;9220:31;:::i;:::-;9201:15;:50;;9193:94;;;;-1:-1:-1;;;9193:94:0;;18240:2:1;9193:94:0;;;18222:21:1;18279:2;18259:18;;;18252:30;18318:33;18298:18;;;18291:61;18369:18;;9193:94:0;18038:355:1;9193:94:0;-1:-1:-1;;;;;9306:17:0;;;;;;:11;:17;;;;;9326:15;9306:35;;9153:204;9380:36;9395:4;9401:2;9405:10;9380:14;:36::i;6322:384::-;-1:-1:-1;;;;;6459:20:0;;6451:69;;;;-1:-1:-1;;;6451:69:0;;18600:2:1;6451:69:0;;;18582:21:1;18639:2;18619:18;;;18612:30;18678:34;18658:18;;;18651:62;-1:-1:-1;;;18729:18:1;;;18722:34;18773:19;;6451:69:0;18398:400:1;6451:69:0;-1:-1:-1;;;;;6539:21:0;;6531:68;;;;-1:-1:-1;;;6531:68:0;;19005:2:1;6531:68:0;;;18987:21:1;19044:2;19024:18;;;19017:30;19083:34;19063:18;;;19056:62;-1:-1:-1;;;19134:18:1;;;19127:32;19176:19;;6531:68:0;18803:398:1;6531:68:0;-1:-1:-1;;;;;6612:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;6665:33;;160:25:1;;;6665:33:0;;133:18:1;6665:33:0;;;;;;;6322:384;;;:::o;6714:505::-;-1:-1:-1;;;;;5607:19:0;;;6850:24;5607:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;-1:-1:-1;;6918:37:0;;6914:298;;7018:6;6998:16;:26;;6972:117;;;;-1:-1:-1;;;6972:117:0;;19408:2:1;6972:117:0;;;19390:21:1;19447:2;19427:18;;;19420:30;19486:31;19466:18;;;19459:59;19535:18;;6972:117:0;19206:353:1;6972:117:0;7133:52;7142:6;7150:7;7178:6;7159:16;:25;7133:8;:52::i;5208:258::-;-1:-1:-1;;;;;5317:17:0;;5300:4;5317:17;;;:9;:17;;;;;:27;;5338:6;;5317:17;5300:4;;5317:27;;5338:6;;5317:27;:::i;:::-;;;;-1:-1:-1;;;;;;;5355:20:0;;;;;;:9;:20;;;;;:30;;5379:6;;5355:20;:30;;5379:6;;5355:30;:::i;:::-;;;;;;;;5418:9;-1:-1:-1;;;;;5401:35:0;5410:6;-1:-1:-1;;;;;5401:35:0;;5429:6;5401:35;;;;160:25:1;;148:2;133:18;;14:177;5401:35:0;;;;;;;;-1:-1:-1;5454:4:0;5208:258;;;;;:::o;13655:1029::-;13718:13;;-1:-1:-1;;;13718:13:0;;;;13710:44;;;;-1:-1:-1;;;13710:44:0;;6722:2:1;13710:44:0;;;6704:21:1;6761:2;6741:18;;;6734:30;-1:-1:-1;;;6780:18:1;;;6773:48;6838:18;;13710:44:0;6520:342:1;13710:44:0;13787:10;13770:28;;;;:16;:28;;;;;;;;13765:105;;13822:15;:13;:15::i;:::-;13814:44;;;;-1:-1:-1;;;13814:44:0;;7069:2:1;13814:44:0;;;7051:21:1;7108:2;7088:18;;;7081:30;-1:-1:-1;;;7127:18:1;;;7120:46;7183:18;;13814:44:0;6867:340:1;13814:44:0;13888:10;13902:9;13888:23;13880:44;;;;-1:-1:-1;;;13880:44:0;;7414:2:1;13880:44:0;;;7396:21:1;7453:1;7433:18;;;7426:29;-1:-1:-1;;;7471:18:1;;;7464:38;7519:18;;13880:44:0;7212:331:1;13880:44:0;14062:4;13937:19;14044:24;;;:9;:24;;;;;;13959:11;;13937:19;14044:38;;13959:11;;14044:38;:::i;:::-;14004:35;14018:21;14004:11;:35;:::i;:::-;14003:80;;;;:::i;:::-;13983:100;;14116:1;14104:9;:13;14096:45;;;;-1:-1:-1;;;14096:45:0;;19766:2:1;14096:45:0;;;19748:21:1;19805:2;19785:18;;;19778:30;-1:-1:-1;;;19824:18:1;;;19817:49;19883:18;;14096:45:0;19564:343:1;14096:45:0;14185:9;14160:21;:34;;14152:75;;;;-1:-1:-1;;;14152:75:0;;20114:2:1;14152:75:0;;;20096:21:1;20153:2;20133:18;;;20126:30;20192;20172:18;;;20165:58;20240:18;;14152:75:0;19912:352:1;14152:75:0;14240:49;14250:10;14270:4;14277:11;14240:9;:49::i;:::-;14302:16;14368:5;14354:11;;14342:9;:23;;;;:::i;:::-;:31;;;;:::i;:::-;14405:10;14388:28;;;;:16;:28;;;;;;14331:42;;-1:-1:-1;14388:28:0;;14384:72;;;-1:-1:-1;14443:1:0;14384:72;14470:12;;14466:69;;14498:25;14514:8;14498:15;:25::i;:::-;14555:10;14547:50;14576:20;14588:8;14576:9;:20;:::i;:::-;14547:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14618:10:0;14613:57;14630:1;14633:11;14646:20;14658:8;14646:9;:20;:::i;:::-;14613:57;;;8803:25:1;;;8859:2;8844:18;;8837:34;;;;8887:18;;;8880:34;14668:1:0;8945:2:1;8930:18;;8923:34;8790:3;8775:19;14613:57:0;;;;;;;13699:985;;;13655:1029;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;1002:173::-;1070:20;;-1:-1:-1;;;;;1119:31:1;;1109:42;;1099:70;;1165:1;1162;1155:12;1099:70;1002:173;;;:::o;1180:254::-;1248:6;1256;1309:2;1297:9;1288:7;1284:23;1280:32;1277:52;;;1325:1;1322;1315:12;1277:52;1348:29;1367:9;1348:29;:::i;:::-;1338:39;1424:2;1409:18;;;;1396:32;;-1:-1:-1;;;1180:254:1:o;1631:180::-;1690:6;1743:2;1731:9;1722:7;1718:23;1714:32;1711:52;;;1759:1;1756;1749:12;1711:52;-1:-1:-1;1782:23:1;;1631:180;-1:-1:-1;1631:180:1:o;1816:118::-;1902:5;1895:13;1888:21;1881:5;1878:32;1868:60;;1924:1;1921;1914:12;1868:60;1816:118;:::o;1939:128::-;2004:20;;2033:28;2004:20;2033:28;:::i;2072:309::-;2137:6;2145;2198:2;2186:9;2177:7;2173:23;2169:32;2166:52;;;2214:1;2211;2204:12;2166:52;2250:9;2237:23;2227:33;;2310:2;2299:9;2295:18;2282:32;2323:28;2345:5;2323:28;:::i;:::-;2370:5;2360:15;;;2072:309;;;;;:::o;2386:328::-;2463:6;2471;2479;2532:2;2520:9;2511:7;2507:23;2503:32;2500:52;;;2548:1;2545;2538:12;2500:52;2571:29;2590:9;2571:29;:::i;:::-;2561:39;;2619:38;2653:2;2642:9;2638:18;2619:38;:::i;:::-;2609:48;;2704:2;2693:9;2689:18;2676:32;2666:42;;2386:328;;;;;:::o;3340:186::-;3399:6;3452:2;3440:9;3431:7;3427:23;3423:32;3420:52;;;3468:1;3465;3458:12;3420:52;3491:29;3510:9;3491:29;:::i;:::-;3481:39;3340:186;-1:-1:-1;;;3340:186:1:o;3531:367::-;3594:8;3604:6;3658:3;3651:4;3643:6;3639:17;3635:27;3625:55;;3676:1;3673;3666:12;3625:55;-1:-1:-1;3699:20:1;;3742:18;3731:30;;3728:50;;;3774:1;3771;3764:12;3728:50;3811:4;3803:6;3799:17;3787:29;;3871:3;3864:4;3854:6;3851:1;3847:14;3839:6;3835:27;3831:38;3828:47;3825:67;;;3888:1;3885;3878:12;3825:67;3531:367;;;;;:::o;3903:773::-;4025:6;4033;4041;4049;4102:2;4090:9;4081:7;4077:23;4073:32;4070:52;;;4118:1;4115;4108:12;4070:52;4158:9;4145:23;4187:18;4228:2;4220:6;4217:14;4214:34;;;4244:1;4241;4234:12;4214:34;4283:70;4345:7;4336:6;4325:9;4321:22;4283:70;:::i;:::-;4372:8;;-1:-1:-1;4257:96:1;-1:-1:-1;4460:2:1;4445:18;;4432:32;;-1:-1:-1;4476:16:1;;;4473:36;;;4505:1;4502;4495:12;4473:36;;4544:72;4608:7;4597:8;4586:9;4582:24;4544:72;:::i;:::-;3903:773;;;;-1:-1:-1;4635:8:1;-1:-1:-1;;;;3903:773:1:o;4681:241::-;4737:6;4790:2;4778:9;4769:7;4765:23;4761:32;4758:52;;;4806:1;4803;4796:12;4758:52;4845:9;4832:23;4864:28;4886:5;4864:28;:::i;4927:127::-;4988:10;4983:3;4979:20;4976:1;4969:31;5019:4;5016:1;5009:15;5043:4;5040:1;5033:15;5059:1191;5149:6;5157;5210:2;5198:9;5189:7;5185:23;5181:32;5178:52;;;5226:1;5223;5216:12;5178:52;5266:9;5253:23;5295:18;5336:2;5328:6;5325:14;5322:34;;;5352:1;5349;5342:12;5322:34;5390:6;5379:9;5375:22;5365:32;;5435:7;5428:4;5424:2;5420:13;5416:27;5406:55;;5457:1;5454;5447:12;5406:55;5493:2;5480:16;5515:4;5538:2;5534;5531:10;5528:36;;;5544:18;;:::i;:::-;5590:2;5587:1;5583:10;5622:2;5616:9;5685:2;5681:7;5676:2;5672;5668:11;5664:25;5656:6;5652:38;5740:6;5728:10;5725:22;5720:2;5708:10;5705:18;5702:46;5699:72;;;5751:18;;:::i;:::-;5787:2;5780:22;5837:18;;;5871:15;;;;-1:-1:-1;5913:11:1;;;5909:20;;;5941:19;;;5938:39;;;5973:1;5970;5963:12;5938:39;5997:11;;;;6017:148;6033:6;6028:3;6025:15;6017:148;;;6099:23;6118:3;6099:23;:::i;:::-;6087:36;;6050:12;;;;6143;;;;6017:148;;;6184:6;-1:-1:-1;6209:35:1;;-1:-1:-1;6225:18:1;;;6209:35;:::i;:::-;6199:45;;;;;;5059:1191;;;;;:::o;6255:260::-;6323:6;6331;6384:2;6372:9;6363:7;6359:23;6355:32;6352:52;;;6400:1;6397;6390:12;6352:52;6423:29;6442:9;6423:29;:::i;:::-;6413:39;;6471:38;6505:2;6494:9;6490:18;6471:38;:::i;:::-;6461:48;;6255:260;;;;;:::o;7548:127::-;7609:10;7604:3;7600:20;7597:1;7590:31;7640:4;7637:1;7630:15;7664:4;7661:1;7654:15;7680:168;7753:9;;;7784;;7801:15;;;7795:22;;7781:37;7771:71;;7822:18;;:::i;7853:217::-;7893:1;7919;7909:132;;7963:10;7958:3;7954:20;7951:1;7944:31;7998:4;7995:1;7988:15;8026:4;8023:1;8016:15;7909:132;-1:-1:-1;8055:9:1;;7853:217::o;8075:128::-;8142:9;;;8163:11;;;8160:37;;;8177:18;;:::i;8968:380::-;9047:1;9043:12;;;;9090;;;9111:61;;9165:4;9157:6;9153:17;9143:27;;9111:61;9218:2;9210:6;9207:14;9187:18;9184:38;9181:161;;9264:10;9259:3;9255:20;9252:1;9245:31;9299:4;9296:1;9289:15;9327:4;9324:1;9317:15;9181:161;;8968:380;;;:::o;9353:398::-;9555:2;9537:21;;;9594:2;9574:18;;;9567:30;9633:34;9628:2;9613:18;;9606:62;-1:-1:-1;;;9699:2:1;9684:18;;9677:32;9741:3;9726:19;;9353:398::o;9756:406::-;9958:2;9940:21;;;9997:2;9977:18;;;9970:30;10036:34;10031:2;10016:18;;10009:62;-1:-1:-1;;;10102:2:1;10087:18;;10080:40;10152:3;10137:19;;9756:406::o;10167:125::-;10232:9;;;10253:10;;;10250:36;;;10266:18;;:::i;10652:356::-;10854:2;10836:21;;;10873:18;;;10866:30;10932:34;10927:2;10912:18;;10905:62;10999:2;10984:18;;10652:356::o;14459:127::-;14520:10;14515:3;14511:20;14508:1;14501:31;14551:4;14548:1;14541:15;14575:4;14572:1;14565:15;15282:135;15321:3;15342:17;;;15339:43;;15362:18;;:::i;:::-;-1:-1:-1;15409:1:1;15398:13;;15282:135::o;16800:245::-;16867:6;16920:2;16908:9;16899:7;16895:23;16891:32;16888:52;;;16936:1;16933;16926:12;16888:52;16968:9;16962:16;16987:28;17009:5;16987:28;:::i

Swarm Source

ipfs://819d04eed3e71517e9f319c55387de182374c5ea95a95f17cfc0837226942106

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.